Learning to program is something I’ve wanted to do for awhile. Like others, I kept telling myself it was going to happen, but it was never the right time. I’d tell myself I was too busy. Secretly, I was equally scared. Scared of the unknown. Scared of not being able to learn technical things. Scared of not being good.
But I’m not scared anymore. And if you’re on the fence like I was, you shouldn’t be either.
Over the past year I’ve been privileged to witness a few things that changed how I think of modern-day software engineering and how fast you can acquire the skill (note—this is much different than computer science). I first started realizing my mind-shift while at AngelHack, where I hosted over 100 hackathons worldwide, allowing me to witness 10,000s of budding programmers of varying skill levels. At these hackathons developers would share their programming stories with me. Many were students just starting out. In their college classes they would learn computer science, but at the hackathons they would practice software engineering — building things by learning from friends and what Google searches would tell them. Many built their first applications here — things that they weren’t even sure they were capable of before the weekend. It was awesome! And it made me wonder how hard is it really…
The second paradigm shift I had was while watching the rise of coding bootcamps — programs designed to teach non-technical people to be software engineers in under 12 weeks. Not only do these programs teach you how to program, they also help get you close to a 6-figure programming job when you graduate! WTF! Learn the skills for a $100k job in 12 weeks??? And the craziest thing… it works! This year alone I watched my roommate’s startup, a pretty technical company with high standards hire, 3 candidates. Three months later and his feedback — they’re good!
It turns out the complex world of computer science is only what 10% of programmers do. Algorithms, infrastructure, hard core math, all the real deal shit you’ll probably never understand — that’s computer science! In contrast, most applications built (and maintained) these days take only a novice amount of programming knowledge. And whatever you don’t know can be easily found through Google searches and reading documentation. It’s not rocket science. It’s barely computer science. And something you need not be afraid of.
I started last week. So far so good. I’m currently getting comfortable with Github, terminal, Sublime text editor, Heroku, AWS, Bootstrap, and Ruby on Rails. All things that used to confound me. Like learning any new skill, it just takes time, practice, and an openness to learn. Modern day programming is a mixture of logic, programming vocabulary, programming grammar (syntax), using online resources, and knowing how to Google search for answers. Or to put it another way: All the hard stuff you want is already built and easily searchable. You just need to put it together (shout out to benevolent open-source developers)!
I’ll be devoting my next 6 weeks to learning the basics and documenting my progress here in hopes of inspiring others. I don’t ever expect to be a great programmer — that would take considerable time. I expect to learn the fundamentals, to enhance my future career opportunities, and to have a heightened level of respect for what others build. And most importantly, I expect to be able to build small projects that inspire me.
In my next post I’ll go over the online resources I’m using, the things holding me back, and showcase my first project (thanks OMR). Also, I have a new puppy, HackerPup, who will be with me for the ride. Expect to see him in pictures along the way. He’s excited to learn to code, but not as excited as when new friends stop by. Visit us next time you got time to kill in SoMa. ^^ (email@example.com)
PS: During my time learning to code, I’ll also be consulting with companies on their hackathons, GDC events, and expansion plans across Asia, where I expanded AngelHack over the greater part of the last year. (firstname.lastname@example.org)