Learning how to program software isn't necessarily the easiest thing you'll ever do. In fact, it's going to be one of the hardest. Programming and code are difficult, and not just in the sense of understanding logic and syntax, but also in the way that it's a never-ending achievement because it's always evolving. Programmers never stay in one place very long, at least the good ones. New ways of programming are created every day, and languages change at an even faster pace.
Fahim Ul Haq is the CEO and co-founder of Educative, and a former Microsoft and Facebook software engineer. He's experienced all of this first-hand and saw a need for an online learning resource tailored to the way programmers learn best - by actually spending time writing code, solving quizzes and working through code challenges.
We spoke with Ul Haq about his programming history, the inspiration to code and create software, developer pitfalls, and why you should learn to code too.
Ul Haq: I learned to code in the traditional way: taking an undergraduate class on programming, and studying from the Turbo C Programming book by Robert Lafore. Back then, C was the language taught in school. C is a good, basic, raw language with a small feature set. With C, you can get a real understanding of how a language works without all the abstraction you get from languages like, say, JavaScript. It did - and still does - lay the foundation for all the other programming languages you’ll learn.
Ul Haq: Tech is evolving all the time, and if your skills aren’t up to date, you’ll be left behind. As developers ourselves, our co-founder and I found it difficult to continually update our skills with current learning resources. Many are video-based, and video is definitely not the most efficient way to learn something like programming.
While employed at Microsoft and Facebook, we worked on a mobile app with interactive lessons to teach developers new skills. We got quite a bit of traction with the app and got requests from other developers to keep publishing new content on it. In 2014, one of the largest publishers in America approached us to write a book based on the material in our app. We wanted to create a companion website with the material presented in a more interactive format, but the publisher wasn’t interested.
This gave us the motivation to create a platform that hosts fully interactive content to teach new skills in a format best suited for developers. Programmers learn best when they’re given the opportunity to play with live code and get used to writing it. So our courses feature code playgrounds, quizzes, and code challenges to keep learners engaged throughout. And the platform’s WYSIWYG code editor makes it very easy for content creators to feature visually rich, interactive elements in their lessons.
Ul Haq: Not sticking with it! It’s easy to imagine that the great programmers don’t struggle. Or that if it’s not coming to you very quickly or easily, then you’re not cut out to be a programmer. Beginners can feel like if they’re not seeing immediate results or having an easy time, then it’s not worth continuing. But the best programmers in the world can spend a lot of time stuck on the same thing, trying to fix a bug or some other problem.
Deliberate practice is necessary to master anything. Work on it every day. The consistency of your practice is more important than putting in a certain number of hours.
Ul Haq: At Microsoft, a hiring manager will hire you to work on a particular team, then your training is mostly done on the job. For Facebook, new candidates land into a boot camp, where they’re brought up to speed on different parts of the codebase, then work on different parts for a few weeks before you’re selected to work on a specific team. For continued training, both companies have similar offerings for online training resources, more or less. The difference between the two styles of training basically comes down to what each company is willing to budget for training.
Ul Haq: Demand for programmers is increasing a lot. The US already has something like 1 million job openings. As we move further into a more tech-focused environment with more automation, and with the advent of IoT, more and more programming jobs will open up. You’ll start seeing more industries - well outside just software and tech companies - looking for employees with a programming skill set to stay competitive and successful. So, now is the time to get some programming under your belt.
Ul Haq: Yes. In 5 to 10 years, most office workers will think of programming as a skillset like Excel is today. As programming becomes more prevalent and data insights become even more important, non-programmer employees will use programming to become more proficient in their jobs. And more companies will start looking for it. Companies like GE and AT&T now have a goal of training all their employees to learn to code.
Ul Haq: Decide that you’re going to commit to it. Understand going in that it won’t be a smooth ride. It doesn’t matter what programming language you start with, or what learning resources you have at your disposal, it will be a slog at times. But that’s where all the great insights come from.
Ul Haq: One thing that stands out is that a lot of programmers can take a lot of time just setting up a development environment on their computer - even just to look at the code. It can take 30 minutes to an hour to download, install, and configure the environment before you write your first line of code. For beginners, this is enough to get them to throw in the towel before they even start learning.
One of the key facets of Educative is that everything is hosted in-browser and on the cloud. By reducing the barriers to learning, our hope is that beginners can get on board with programming a lot more quickly, and stay on board.
Ul Haq: Yes, programmers from universities are well-rounded and tend to have a good grasp of the fundamentals of programming. University tech programs don’t typically focus on specific languages, frameworks or technologies you’ll need to know to get a particular job. You’ll learn the core CS concepts, like algorithms and data structures - stuff you might skip over if you’re teaching yourself or come from a boot camp. But most importantly, you’ll learn enough to be able to pinpoint which in-demand tools you’ll need to get the job you want.
Address:
3003 East Chestnut Expy
STE# 575
Springfield, Mo 65802
Phone: 1-844-277-3386
Fax:417-429-2935
E-Mail: contact@appdevelopermagazine.com