My co-founder and I are currently busy building our latest startup, placemeter. We are a technology heavy play that involves massive inbound video streaming, scalable and robust computer vision algorithms, sound recognition, analytics and predictions, mobile computing, and other things. Needless to say we need a sturdy tech team to build it all. So I’m currently looking to hire software engineers to help me out. Hard task. You do find many software engineers on the market, but I find it alarming to see how their skills are getting lower and lower on average.
At the same time, I am reading blog posts, articles, or Peter Thiel paying children to drop out from entrepreneurs who are confronted with the deficit of software engineers as I am. It seems like there is a consensus or a trend from these often non-technical loud voices is to encourage people to drop out of school and learn coding by themselves.
People, please, do NOT do that! And I am not saying that just for my son and daughter.
Stay in school, learn, practice. Be picky and smart about choosing the right education, but don’t ditch it. Unless your IQ is seven or eight standard deviations above the average person, as Alexis Ohanian put it, there are key concepts to software and data science that you can not learn without theoretical training, without mastering key logic, electronic, software science, applied mathematics, and even electronics or physics concepts.
Of course, don’t forget to be hands on and practical once you’ve learned the theory!
Being a “hacker” is a myth. You can be a product person who can code. You can be a software engineer who understands about products. But being a plain “hacker”, with just the skills you learn on code academy or by yourself, will most likely be too limited to build yourself a career. It is a cool feature in your resume, but not a goal per se. It is something non technical entrepreneurs like because it makes software look simple for once. But it is just a misunderstanding. See my post about hackers.
If you are a software engineer, you need to know about the principles of software engineering to build good, scalable software. Object oriented principles, parallel processing, compilers, electronics, design patterns. But this is not enough today. Software engineers need to develop new skills. AI is getting much more important, data analytics is already huge. Software developers should always have a background in logics, mathematics, applied mathematics, and statistics to be able to adapt and learn quickly. When I interview software engineers, I always ask theoretical questions in one of these fields. And this is really hard to learn by yourself, although not impossible. While learning how to code a blog site on django is not as difficult. And I heard will.i.am is planning on doing so.
So guys, please, stay in school, learn a lot, be very demanding about your education, and be humble towards what it takes to make great stuff. In software, hardware, design, or rocket science. There is a fine line between being audacious and being arrogant. Education and training will help you stay on the right side of that line.