Seeking to “become a software engineer” is a better goal than just “learning to code”. Therefore, your focus should be on landing that first job (that’s where the real learning happens). But if you’re just beginning this journey, all of that can be really overwhelming. It’s difficult to know exactly what to do. Wonder no more. Follow this checklist to get started.
1. Decide to Take Action, TODAY
If you remember nothing else from this post, remember this: starting imperfectly is better than not starting at all.
If you’re waiting for just the right moment in your life and just the right learning resource, you’ll never begin.
If you’re like most people, you’ve been thinking about learning to code for a while. Imagine how good you’d be right now if you’d started back then?
So pick something, and go for it! If you’re local to Raleigh-Durham, you can join us every other week for our meetup, Learn to Code RDU (https://meetup.com/learn-to-code-rdu). We’d be happy to help you get started there!
2. Commit to a Path
There are many different job descriptions and paths that software engineering can lead you on, but you’ve got to start somewhere and commit to one path first.
3. Write your First Line of Code
Try to avoid HTML and CSS at first, as sometimes learning HTML and CSS gives you a “false positive”, because the experience of coding in HTML and CSS if far different from using programming languages.
Coding will feel weird at first and you won’t understand where you’re going in the beginning and how what you’re learning will be useful, but remember, everyone started off just like this.
4. Code Every Day
We often get the question, "how long does it take to learn to code"? Now here’s a tough pill to swallow - all of this takes time and can be really hard. We suggest that someone have at least 1000 hours of coding experience and several advanced web application projects under their belts before applying to jobs.
If you do the math, at a minimum this would mean that you’re able to commit 10 hours/week for a complete year to coding! EVERY WEEK FOR A YEAR STRAIGHT. If you commit to coding every day, that’s 1.5 hours a day.
There are, of course, other options to doing this on your own, but likely, in the beginning, you’ll be just “learning to code” on your own in your “spare time” (which we don't suggest you do for long unless you have superhuman focus or live in your parents basement).
5. Decide if You Like Coding
At some point during this journey you’ll realize that you’re enjoying this process, or you’re not. If you’re just in this for the money, you should spend your time on something else.
If, however, you enjoy this process and crushing problems and staying up late trying to get your code to run, then congrats! You’ll probably make it because this is the real secret sauce to see who will do well in this field - those who enjoy it. Strangely enough, developers do for fun (code) what they do for work (code).
Be careful to confuse “frustration” and “difficulty” with enjoyment. You usually enjoy what you’re good at and you won’t be good at coding for a while. So push through for a bit, give it everything you have and try and fight the lies that tell you that you cannot do this, because you can.
6. Find a Mentor
If you’re amongst the rare few who can really teach themselves to code and you’re plugging away at your 500+ hours, you’ll quickly realize that you have no idea what you’re doing on your own.
Then, it’s time to find a mentor or at least a connection who can give you some advice for your next steps. Start with friends of yours who have the job you want - offer to buy them lunch and ask them for some advice. Come prepared with good questions.
7. Got to Meetups
If you don’t have software engineer friends, going to local meetups is a great place to start. This can be intimidating but have a friend who is also interested in learning to code come along.
Make it a goal to meet one software engineer whom you'll share your passion for learning to code with and offer to buy them lunch/coffee in exchange for some good advice on your next steps. Chances are they’d be happy to help and could even be a connection to potential employment in the future. Companies love beginners who have a real passion and hunger to learn.
8. Learn How to Manage Your Time
Pretty soon you’ll realize that learning to code is starting to take over your life, but that it’s easy to get distracted. Make sure that you set aside designated times to code and focus.
It might be useful to install software on your computer that limits your ability to use social media websites, as you can easily distract yourself.
You may want to consider other productivity techniques, like “Pomodoro”. With “Pomodoro”, you set a timer for 25 minutes and work through the entire 25 minutes without losing focus. Then, we then the time goes off, you set another 5 minutes timer where you can do whatever you want. Rinse and repeat your way to becoming a Software Engineer.
9. Learn a “Stack”
Obviously you can go 100 directions with “coding”, but remember, we’re on a focused mission - to get a job as a Software Engineer.
Regardless of your specific interest under the umbrella of “coding”, make it your aim to learn “Full Stack Software Engineering” and get a job doing something in that realm.
For example, perhaps you’re aiming to become a Data Scientist. Very few Data Scientist these days are pure data-wranglers. Those who are come from a deep mathematics background and hold advanced degrees. However, most Data Scientists these days are also programmers.
So even if you’re aim to to get into Data Science (or any other field in coding), Software Engineering will prove to be a more clear and achievable path than anything else.
So by “stack”, we’re referring to the technologies used on the “front-end” and “back-end”. Of course the “front-end” is what the user interacts with and the “back-end” is where the data for the “front-end” is stored and served up.
For the back-end, some of the most popular language/framework mixtures are:
10. Build Something Significant
A simple application will probably be something like a todo-list that saves your todos to a web-server that you’ll build, or some kind of blog creation application.
From there, begin to strategize your own project ideas and see what you can build. You’ll find that in the beginning you’ll be relying heavily on your sample tutorial project until you can learn all the concepts from that initial application you built.
You may soon hit a wall as you can only learn so much on your own with online tutorials. You’ll eventually need to learn how to think like a Software Engineer and how to work like one as well. This calls for some kind of apprenticeship or deep mentoring relationship.
These things cannot be learned on your own, but building something significant will give you good foundational experience and prepare you well for your next step.
For more information on how to code for a living, download our updated ebook - 2019's Guide To Coding For a Living