Short intro by Kyle:
This is a great article for beginners by William Kennedy from New to Code.
William has a blog where he helps code newbies answer the basic questions and become web developers.
Without further delay, here's William:
Let's face it...
Dipping your toe into the web development industry is scary. I have to admire people that don't quit. There is so much to learn; it is hard to know where to begin.
Ever since I launched New to Code last year, I have spoken with dozens of aspiring developers like you. I tend to hear the same kind of questions:
"If I learn Rails, does that mean I will have to begin looking for a new job in 5 years time?"
"JavaScript and (insert framework name) seems to be kind of hot right now, should I learn that? Will that lead to a job or me building my startup."
"Java gets used everywhere, so I should start with that because I can make Android apps with that."
Everyone's afraid of learning the wrong thing. There is fear of a sunken cost of time and money (as well as emotion). This fear can crush you into solitude, stillness, and shame. We can overcome this.
If I was starting over again, there are five things I recommend to any beginner:
Kyle has talked about goals before. I want to expand a tiny bit on that. Before learning anything, commit to being the best in five years time.
Committing to being the best in five years at anything does a few things for you:
Notice the last point. So many people spend their lives looking for their passion. Passion is not born. It's forged in through battle scars of overcoming inertia and fighting the war of art. People become passionate about what they are good at not the talent they are born with.
At first, I hated programming, but by committing to being the best I can be, I soon came to love and become fascinated by it. Passion is fickle. Some days you love it, and sometimes it's not there. It is natural and this is why a lot of my blog posts focus on systems, not individual motivation.
Like you, I heard stories of people learning to code in 6 months and getting a job immediately. It took me a bit longer than six months. I set a five-year goal in November 2013 to become a Software Developer and became employed in June 2015.
Not exactly extraordinary. Don't let other's success drown out your journey. I am still happy because I beat my 5-year goal by three years. It was reassuring about working daily towards a plan, and it ensured I never panicked due to self-induced pressure.
Most subscribers I talk to on my email list have one big fear.
Spending time learning something then finding out they're not passionate about it.
I get it.
Here is an even worse scenario:
Being passionate about something that no one will pay you to do. Is there anything glamorous about the starving artist? I love reading Harry Potter (please don't judge me). I reread it every couple of years. You could say I am very passionate about the wizarding world, but no one is ever going to pay me for my knowledge.
Don't get me wrong. It is great when people find what they are passionate about and make a living from it. We have to be realistic. The world is not black and white, and we need to see reality.
Choosing a language that the market wants and needs is a sure-fire way to success. Here is how to do it:
After doing these steps, you should see which languages the market wants, and that is usually the best place to start learning.
Of course, there is nothing wrong with picking a language for fun but it is good to be cognizant of the market.
Employers and clients pay you based on what you can do for them. Not what you can do.
Ok. You figured what to learn. Good.
How do you start learning?
Before we find the best learning tools, we need to step back and acknowledge the best way to start programming independently. Let's face it, if you are learning to code, you should be typing code and making it work:
Typing code is the best way of learning code.
With that criterion in mind, pick learning resources based on the volume of work you will be doing. If you are not able to type the code and make it run on a machine, then consider that to be a weak book. Do the same for video tutorials and article tutorials you see around the net. If you can't physically create them yourself, it gets hard to translate that into a new project.
The second criteria for judging is how popular is it in the language community. In the Rails community, Agile Web Development with Rails 4 by Dave Thomas and Sam Ruby is the de facto book along with The Rails Tutorial by Michael Hartl. These are excellent books because they introduce concepts by asking you to build the code along with them. They also provide a solid background on what they are building.
When it comes to actual Ruby, the Command Line or Python, I highly recommend Learn Code The Hard Way by Zed Shaw. These books acknowledge that you learn by actually typing and doing the exercises. Trust me; it got Ruby stuck in my head.
Action Step: Find any tutorials, books or resources and make a list.
So you have created a list of resources. Now your job is to start going through each one and deciding in what order will you do them. I would expect you to have at least five. Start with what seems to be the shortest and go from there. Here is an example of what I would learn if I were learning Ruby on Rails for the first time:
Beginning Ruby by Peter Cooper
The Rails Tutorial by Michael Hartl
Agile Web Development with Rails 4
Notice that I start with the smallest books and work my way up. Starting small allows me to get a quick win under my belt. If you come to a point in the book where you are stuck, and it seems pointless, then it is best to move on and plan to get back to it.
Now that you have your plan of what to learn and how to learn, we need to find out when to learn it. Pick a schedule you can live with and stick to it. Don't try too much at once. Start small.
Start with 20 minutes a week if you have to.
Don't try and do it all at once. Begin in a way that does not negatively impact your life. Once you master doing 20 minutes a week, move on to 20 mins twice a week.
Then increase it to 30 mins. Then 30 minutes 3 times a week.
These times might seem small. We are looking to make a behavioral change and avoid procrastination. The best way to beat procrastination is to start small and scale back. Hence, why we start with a little commitment.
Conclusion:
So there we have it. We have done a few things in this article.
Now you can start mastering that new programming language in a week and five years, and you may even be the best.
Don't forget that there is still loads of work to do if you want to land that first development job. From interviews to mindset and more.
If you liked what you read, then you might like my blog. I have set up some special goodies for Study Web Dev readers to help you get that first coding job. You can sign up here. I look forward to hearing from you.
Happy coding!
Conclusion by Kyle:
Thanks for sharing your valuable steps, William! It's definitely helpful and I appreciate your constribution to SWD.
Make sure to check out William's 'goodies' here and let him know what you thought of the article on social media:
GET MORE CLIENTS
Free 3 day email course with no fluff to help you get more clients
GET PAID MORE
Free 3 day email course filled with actionable steps to get paid more
LEARN: