The more I consider this topic the more I think I have to say, but I’ll start with something simple — the two kinds of medium/LifeHacker/whatever posts that pop up on my Google news feed and drive me up the wall.
- Start Coding and Change Your Career with 75% off this Python course bundle
- Here’s how I changed my life and became a web developer in 5 months
In regard to the first — I have paid for one of those bundles because “what the hell, worth a shot.” You can access the same information for free elsewhere and literally no one single bundle will teach you all (or even most) of the things you need to know to be a software engineer. If you’re getting your feet wet, I would instead recommend any of the following:
- Computer Science 101 from Stanford (self-paced)
- Learn Python the Hard Way
- Grokking Algorithms (amazing book, particularly if you’re a visual learner)
- Cracking the Coding Interview
- Python For Everybody (UMich 5-part specialization)
- The Bash Academy
- CodeFights, Hackerrank, Codecademy, pramp, etc
- Reading documentation! Stackoverflow! Familiarize yourself with the terminal, virtual environments, basic OOP principles, and prepare to learn a lot of jargon.
The reason I recommend these so much more than just buying a bundle is that I think you’re going to have the same barrier to entry with a bundle as you do without one. A bundle gives you a bunch of information but that knowledge won’t necessarily stick with you if you don’t have an application for it — it’s hard to get started if you don’t have a project or a particular thing in mind that you want to understand or build. You can find everything you need on the web, for free, and if you’re looking for something that helps you get the ball rolling I think starting with an intro course is a much nicer way to test the waters than plunging right into an “all inclusive” bundle that will just pummel you with facts that could or could not be relevant to what you actually might end up wanting to build.
I think it’s also easy to get overwhelmed by how much a) everyone else seems to know that you don’t and b) simply how much information is out there. Where do you start? What do you prioritize? I remember when I was getting started, I had never interacted with the terminal before and well-intentioned engineers were expressing shock that I didn’t have tmux. I spent 4 hours down that rabbit hole when I really should have focused on understanding basic functionality (chmod, chown, sudo, etc.) in that moment instead. This ties into the issue I have with bundles because again, it’s like asking for a glass of water and getting a deluge. Take it step by step! And bonus, save your money. If you really feel the need to burn cash, buy the full version of SublimeText3 so you won’t get interrupted with warnings about the “demo limitations” for the next year (ST3 is a nice text editor with a lot of features/customizations/support! Speaking of, if you get started with that, you’ll want to install the Package Control add-on, and a linter for whatever your chosen language is).
Second issue is the “Here’s how I achieved in 5 months what other humans spend 4 years in school learning to do” blog post. This is just bullshit. If you’re starting from zero, you might build a React app and have a decent grasp on an OOP language or two in 5 months. You will not be an engineer. That’s ok, but don’t think you’re going to be designing amazing web apps, reversing BSTs, and landing a job at Google if you spend half a year learning software development. Engineering skills are different from development skills for one thing, and for folks without STEM backgrounds, learning the latter is probably going to come easier than the former, but learning both is vital to actually being a good engineer. Also, I have interviewed folks that came out of the best-regarded coding bootcamps (ie. Hack Reactor) — intensive full-time 6 week courses, mind you — who couldn’t start to explain class inheritance or reverse a string. This shit takes time. There’s a lot to learn — but that’s ok, and if you’re interested in programming, misleading medium posts selling snake-oil and “a new lease on life in 3 easy steps” should not discourage you from starting on this path.
Anyway, that’s my rant for now. Go forth and code, it’s fun!*
*Also infuriatingly frustrating, painstaking, putsy, and 100% worth it.
