Spoiler alert: you can’t. You won’t become a developer overnight, and it won’t happen fast.
I’ve seen (and feel like I’ve answered) this question so many times on Quora, that I decided to just write an answer here and link it often. Mostly because I don’t like to write things more than once, but also because I like free traffic.
Everyone…seriously now…this isn’t a fast process. You don’t need to go to college or a coding bootcamp, you can do it totally on your own (but you’re nearly guaranteed to miss some of the more theoretical stuff…this won’t make or break you but may make future jobs unavailable).
Louder, for those in the back…
BECOMING. A. GOOD. DEVELOPER. TAKES. TIME.
Stop listening to the ads that promise you “become a coder in 6 weeks!” Sure, you’ll have some fundamentals, but you won’t be at a high level. Do you believe ads telling you “you can grow 6 inches overnight!,” “lonely wives want to meet you!,” or “lose 30 lbs of fat…and GAIN 30 lbs of muscle…in just 3 weeks!”
- You’re not gonna gain 6 inches…you aren’t getting a longer, thicker, stronger cock and you’re not getting any taller. The world isn’t a Daft Punk song. You can go have painful and expensive surgery to stretch your legs or inject silicon into your lil’ buddy, but that’s about it.
- The only lonely wife who wants to meet you is the one already married to you. If you’re not married, sorry, you’re probably out of luck and will die alone.
- Yes, people really do want to believe weight loss and muscle mass gain is this easy (admittedly, I’ve never tried this subject line, but now I lowkey want to…)
- You won’t become a developer in six weeks. You’ll get some fundamentals in a bootcamp if you’re self-driven, but most bootcamps are about as educationally rich as Trump University.
If you want to become a developer, you need to put in work.
A brief note on testing and TDD
You don’t need to test everything, that’s not realistic, but have some test cases for things when you need to confirm they work. Automated testing will save you QA, and if you have to QA your own stuff, you’re in trouble…you know how it’s supposed to work, you know how to use it from your experience, but you are probably not comfortable stress-testing a system.
So how do I start?
- Learn how to set up a development environment for your chosen language. Docker isn’t a bad option, but Bitnami or Heroku might be easier. Alternately, HostGator (use code YVOSAVE99 for $9.99 off your first month of hosting and to put money in my coffers) is pretty simple for a webhost and includes SSL/TLS.
- Learn the best practices for your chosen language(s)…including the testing framework(s). Learn git (use GitHub, GitLab, Bitbucket, whatever…) and understand why we use version control.
- Now that you have some groundwork (and an environment to work in), it’s time to start learning to develop.
- Tackle tutorials and learn the fundamentals. Develop some local projects just to learn how to do the work.
- This would be a good time to bring a database into the picture: traditional relational, like MariaDB, PostgreSQL, MySQL…or NoSQL like MongoDB. Almost everything today requires a data model and interaction with said model.
- Find some popular open source projects you can contribute to, understand what they’re doing, and tackle one or more of the issues. The hope, with more popular projects, is those projects are better moderated and therefore will require code reviews and feedback when you commit a pull request.
- Jump into freelancing or go work for someone else to get some team experience and a feel for working with other developers…no one likes a lone wolf (especially other lone wolves).
That’s it. That’s the big secret. Get out there and put in work.