His name is Sherif Ramadan, he grew up in New York and he thinks everyone should learn about programming. Like many of you, he is also a software engineer. Sherif has worked for companies like Tumblr and Grovo in NYC and did a lot of contracting and freelance work or even helped cofound a few startups.
He thinks that there are a lot of people out there that are discouraged and that have turned away from programming because of the daunting bar-to-entry that so much of our technology has created, which for him is just a way to experiment with how we might go about solving this problem in a way that we haven’t really tried before.
How it all started
“As I didn’t always have access to the computer, I would have to write my code on paper, and what little time I was allowed on the computer, I would type up my code into the BASIC compiler and test it.”
Sherif has been coding since he was 7 or 8, when he started teaching himself BASIC. “I guess it all started when my parents bought their first computer and I quickly realized that trying to play a game on that thing was no trivial task. Back then you had to load the graphics drivers from a floppy disk, when you first booted up the computer before you could play those games. Some games required you to load different drivers in a different order and so you had to write a small system startup script to get the boot up sequence right, depending on which game you wanted to play. My brother taught me how to do it and I was instantly drawn in by the idea of being able to automate the process. Being the youngest child in my family, at the time, it was a very powerful feeling to be able to tell something else what to do and have it follow my every instruction (even if that thing was a cold lifeless machine). It felt like I was performing magic. So from there, the challenge of making the seemingly arduous task of doing stuff on a computer, become somewhat of an obsession for me. I picked up all the technical documentation and manuals we had lying around the house and tried to read them. Then I would try playing around with stuff on the computer until I could understand what it does.”
Eventually he found a manual for the, then popular, computer programming language BASIC, and began teaching himself. “It was mostly trial-by-error for the first few years. As I didn’t always have access to the computer, I would have to write my code on paper, and what little time I was allowed on the computer, I would type up my code into the BASIC compiler and test it. Most times if I had a bug I usually didn’t have enough time to fix it so I would have to continue trying to debug code on paper and eventually I learned a lot about writing and testing code this way.”
Ask him about what programming languages he knows and Sherif will say that he has worked with a lot of them over the years. “Everything from mark languages and SQL to programming languages like BASIC, Java, Scala, C, C++, C#, Javascript, Python, Ruby, Perl, and of course PHP. But mostly I like to program in PHP these days.”
“As the web scales so rapidly my biggest challenge would have to be learning to keep up with scale.”
He thinks technology is changing around us faster than most of us can even learn it, alone master it. “What’s new and hot today is archaic and antiquated tomorrow. So it’s never easy trying to stay current on technology. Even learning best practices is not always easy when it comes to writing code”. He sees this as his biggest challenge as a coder. “As the web scales so rapidly my biggest challenge would have to be learning to keep up with scale. Talking about scaling something is one thing, but actually building something at scale turns out to present a totally different set of challenges.”
On becoming a founder
“I thought, what if, instead of giving them an example that they could copy and paste, why not give them an example that they could play around with right in their browser?”
Sherif conceived the idea behind phplab many years ago when he was trying to help teach others programming online. “Before the days of StackOverflow there weren’t very many good places on the web to turn to for programming help, where you knew you could get somewhat reliable answers. Even if there were they weren’t easily accessible for a beginner. You had to jump through a lot of hoops and, more often than not, people had to tell you to read countless pages of technical documentation (or even worse, tell you to read documentation about how to ask an intelligent question) before you could even ask your question. To me this was a challenge and I like challenges.” So he took the challenge and spent a lot of time thinking about the problem and learning how others were learning programming online. “What I found was that there are indeed a lot of people out there that are discouraged and turned away from programming because of the daunting bar-to-entry that so much of our technology has created. However, they seemed to learn pretty quickly when you gave them an example.” It was almost as if handing them a few lines of code that did what they wanted, it was more informative than the entire manual. “Even if you talk to anyone online today that gets directed to the PHP manual, the first thing they will look for are the examples in the manual. Most of the time people don’t even bother to read anything but the examples. So clearly learn-by-example made a profoundly impactful statement for beginners.”
It was exactly this that sparked the idea in his head that there had to be a better way to teach beginners programming online. An example wasn’t interactive enough. It didn’t engage the reader. It also couldn’t cover enough scope, because it either applied to their use case or it didn’t. “I thought, what if, instead of giving them an example that they could copy and paste, why not give them an example that they could play around with right in their browser? Take that a step further and actually guide them through transforming the code used in the example to something more fitting of their use case and you just created a shortcut for the learner.” Sherif knows that this doesn’t replace the valuable technical knowledge that the documentation serves. “Even StackOverflow, today, has realized the power in learning by example with their new Documentation efforts. They know that Q&A isn’t enough to learn. You also need to feed the learner some actual knowledge to fill their information coffer with something to be more inquisitive about. Otherwise, how do they even begin to ask a meaningful question? Some people don’t actually know enough to formulate the question, in the first place, so that they can ask for help.”
“In my opinion, everyone should learn about programming.”
Sherif found this challenge interesting. “To me phplab.io was just a way to experiment with how we might go about solving this problem in a way that we haven’t really tried before. If you look around on the web, no one is really innovating in the “learn by doing” space in programming. It’s not just enough to have a Q&A site where people can ask questions. Because some questions lead to follow-up questions and the answer becomes chronologically significant. So this makes an approach like StackOverflow somewhat tedious for that type of learner and even more tedious for the person trying to help them.”
Everyone should learn about programming, says Sherif, quoting Steve Jobs who also said that “it will teach you how to think”. I Sherif’s opinion, everyone should also be encouraged to do so without being frightened away with how daunting it can be, because to learn a highly technical skill can be a very challenging process, but not an impossible one. “I mean, I learned it and I did just fine. So obviously it can be learned. We just need more inviting ways to start teaching it.”
Let’s talk about PHPlab.io
If you ask Sherif what this project has that other similar projects don’t, he’ll say that the one thing that makes it stand out is that it’s built to be a community rather than a utility. “Just like StackOverflow, the idea is to have people on the site who have questions or need someone to show them how to do something in code. Then someone who does have the answers or know-how can join them and just show them how to do something, rather than tell them how to do it.” He says this is unique on the web today. “Sure, there are lots of collaborative code editors and tons of IM and chat programs out there today for people to communicate. There are also tons of pastebins and codepads for people to share code. But no one has really bothered to try and bring the two together in a way that makes the process really streamlined for the beginner.”
He saw different other projects try it, but didn’t do such a great job. “They either didn’t provide the right tools or they completely neglected the social aspect of it. They’re either trying to sell you a tool or they’re trying to sell you knowledge.“ StackOverflow is the closest he saw to managing to do it successfully, because what you need is to first gather the right community that’s willing to share their knowledge with others who are eager to learn, and furnish both the person that wants to learn as well as the person that wants to share their hard-earned knowledge, with the right set of tools that makes the process simple and effective. “That’s really the key and it’s not easy to do.”
“It costs less than a latte at Starbucks to run phplab.io in the cloud”
For Sherif, the most difficult part in launching this project was probably finding a Starbucks that’s open at 3 am to sell him coffee since he had to spend his nights working on it in his spare time, but we’re talking of a very young project so more difficult parts may lie ahead. “While I’ve spent the last few years toying with the concept in my head, and probably writing many prototypes of how I thought it should work, I only started developing phplab.io early this month in July.”
His project is self-funded at this moment. “Though that’s perfectly OK since it costs less than a latte at Starbucks to run phplab.io in the cloud”. He put up a kickstarter campaign to see if people were interested in funding and supporting the project, but so far he thinks it doesn’t seem to be taking off.
“The PHP community, StackOverflow, and many of my friends and colleagues are always just a ping or a tweet away when I need them.”, he’ll say, if you ask him if he received any support from others. “No one knows everything and obviously you eventually get stuck on a problem you’ve never come across before.”
Entrepreneur or developer?
Speaking about the difference between a software developer and an entrepreneur, Sherif thinks they’re very different things. “A software developer wants to focus on developing software, building things, and solving technical problems they think are interesting. At the very least, they want to work mostly within the software development boundaries. However, an entrepreneur is someone that has to do a lot more than just develop software (if at all). They have to actually run a business or at least the early edges of one. There’s a very different set of challenges you face as an entrepreneur, but both take risks
“You have to have to learn to remain objective, persistent, ambitious, and sometimes even paranoid as both a software developer and an entrepreneur in order to be highly successful”
Sherif doesn’t consider himself an entrepreneur. He just sees himself as someone that’s not highly risk-averse and so he is willing to take on challenges that sometimes aren’t ideal for others. “As a software developer there’s a certain comfort in knowing that if you’re just employed by someone else you can rely on a steady stream of income, financially, and you aren’t burdened with carrying the weight of an entire organization on your shoulders. That’s not the same story for an entrepreneur. However, they do share some similar traits with a varying degree of severity. You have to have to learn to remain objective, persistent, ambitious, and sometimes even paranoid as both a software developer and an entrepreneur in order to be highly successful. Otherwise, it’s easy for others to come in and just copy what you’re doing and find a more cunning way to steal your work right out from under you. You definitely have to learn to be organized and meticulous if you value your time, because as the workload increases, so does the time taken to actually ship anything of value and that could end up costing you your business in both cases.
He has quite an ambitious long term objective for phplab.io. “The idea is to build a platform where communities can form online to help teach others programming and web development in general. A place that not only promotes knowledge sharing, but actual social and technical interactions that beginners thrive on when they first dive into a technical subject. The idea of extending the interaction beyond that of a question and answer format is certainly one that presents a great many number of challenges, but would also contribute a great deal of social good in the long term.”
“My best advice is to always start small and start simple.”
We asked Sherif what advice he has for other people that would like to start similar projects or start-ups. He thinks they should focus on particular components and develop step-by-step. My best advice is to always start small and start simple. Often I see software developers and entrepreneurs chase after an idea or a dream and become way too heavily invested in their approach to know when it’s failing and when to back down or pivot. The cost of trying something online today is virtually zero. I mean, I spent less than $5 building phplab.io on AWS, and testing it online with a small group of users (apart from my own time). If it fails tomorrow, I lost $5, but what I learned from that failure I will take with me forever to do better the next time. But if I were to have invested thousands into this thing I would probably find it very difficult to admit when and if it’s failing. I would probably be inclined to just throw more money at it if does in an effort to keep it alive. This is usually referred to as “the double down effect”, when you’re just being stubborn because you feel you have too much to lose to give up now. That’s not good.
Remember to focus on your MVP (Minimal Viable Product) and your early adopters. Otherwise you will get buried in trying to compete with people that have more resources than you and never gain any real critical mass.
This article is part of a new series called “From Programmer to Entrepreneur”. If you want to find out more about Sherif Ramadan, you can follow him or simply say “hi” to him at @sr_googleguy.