How To Pick a Programming Language: An Uncommon Guide


sell-web-development-services

william-kennedy  by William Kennedy       Last updated Mar. 10, 2017


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:



1. Commit to Being the Best in Five Years



success

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:


  • It narrows your focus
  • It does not discourage you from giving up too soon
  • It makes you realize that there is a bigger picture
  • If you don't become the best, you will still become good
  • It will make you passionate about what you have committed to


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.



2. Pick a Language Based On Your Local Market


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:


  1. Take a look at the local job websites and note the most common technologies mentioned. Don't skip over posts that say experience required or senior developer. These are really in demand (because they are willing to pay more). Job sites should give you a good sign of what the market will pay. If you are unsure what your local job site is, start with Indeed, LinkedIn, and Craigslist (or Gumtree if you are in the UK).
  2. After gathering a list of technologies, visit meetup.com and see which tech meetups are popular in your area.
  3. Go out and meet with those people. Scope out the atmosphere and see which group appeals to you most.


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.



3. How You Find The Best Learning Resources



coding-languages

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.


  • It creates a muscle memory connection between thinking in code and physically producing code
  • You get to create
  • You get to break and put it back together
  • You get a quick win that enables you to get more motivation to keep going
  • It is fun when you get the hang of it and so satisfying


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.



4. Make a List of The Best Learning Resources and Go Through Them One at a Time

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:


Learn Ruby the Hard Way


Beginning Ruby by Peter Cooper

The Rails Tutorial by Michael Hartl


Agile Web Development with Rails 4


The Odin Project


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.



5. Make a Study Schedule



study-schedule

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.


  1. We talked about setting a goal of becoming the best
  2. We learned how to pick a language based on the market
  3. We learned how to find the best resources to learn from
  4. We learned how to make a list of the best resources to learn from
  5. We learned to start small and set a realistic schedule


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:






more-clients

GET MORE CLIENTS

Free 3 day email course with no fluff to help you get more clients


paid-more

GET PAID MORE

Free 3 day email course filled with actionable steps to get paid more





LEARN:






        



forbes-swd
sitepoint-swd
template-monster-swd
speckyboy-swd
webdesignerdepot-swd