1Like learning any new domain (be it music or a foreign language), there is a tremendous learning curve to programming.  At first, it seems like a massive mountain to climb, but the most important thing is to keep learning and not to give up when you feel discouraged.  Here are a five tips for anyone considering whether they should take the time to learn how to program.

  1. Bet on any horse, because all of them will get you where you need to go – When it comes to which programming language to choose, think about what type of skill set you want to develop.
  • Mobile – Objective-C (iOS), Swift (HackHand’s Expert, Richard Clark explains what Swift is here) and Java (Android) are the main options for mobile development.
  • Web – Any modern web language is capable of all functionality (even mobile with the use of hybrid frameworks such as Phonegap and Xamarin) so when deciding to learn web development, there are two main areas to conquer.
  • Client-side (Frontend) – JavaScript, HTML5 and CSS are your toolbelt for the front end. Additionally, Twitter Bootstrap  and Foundations are popular template resources for front end development.
  • Server-side (Backend) – Ruby, which is preinstalled on all Macs (just type ‘irb’ in Terminal)/Rails, Python/Django, J2EE/Spring are all server side languages/frameworks that can get you to the same result. Additionally, JavaScript extends beyond client-side development.  The MEAN stack composed of MongoDB (NoSQL database), Express (Node.js framework), Angular.js (frontend framework) and Node.js (server-side platform) is an example of how JavaScript can be used for full-stack development.
  1. Start with tutorials online – You can now find tutorials and resources everywhere.  Start learning the basics online with MOOCs (Massive Online Open Courses) like Codecademy and CodeSchool.  You can even take Harvard’s CS50x, Intro to Computer Scienceclass for free at your own pace.  One tutorial that really helped me grasp the full stack fundamentals was Michael Hartl’s Sample Tutorial Guide. Here are some more resources for online tutorials.
  1. Graduate to projects as soon as possible – You could easily spend years taking all the tutorials and courses.  From my experience, nothing compares to the amount of learning when you are working on your own project.  So as soon as you feel comfortable with the basics and are able to get an environment setup, start hacking.  If you find that you get stuck or need hands on help, head over to HackHands.com.
  1. Read the documentation – Many new programmers just copy-paste code without understanding the details.  This can be tempting, but sets you back in the long run.  Programming these days is more about configuration rather than writing code, since software is now assembled from open source API puzzle pieces.  Reading the API docs can save you hours of wasted time on bad configurations.
  1. Get live help and keep coding – While first getting started programming I got stuck…a lot.  I relied on StackOverflow and meetups to get me out of the trenches.  Theses are definitely essential resources for programmers, but sometimes you can’t find the answer you need.  For this reason, I realized programmers need a live support system.  Thus, I startedHackHands.com.  For $1/minute you instantly connect to a programming expert for help over video chat and screen share.  This service enables programmers to learn more, never get too hung up when they get stuck, and keep coding.

About Forest Good

Forest is the co-founder ofHackHands.com.  HackHands is the SOS button for live programming support, available 24/7. Our mission is to double the productivity of software development. We do this by providing real-time access to the best software developers in the world.  To learn more aboutHackHands.com or to get instantly connected to a programming expert.  VERGE members can get 20% off their first session, just reach out to info@hackhands.com after your session and provide any feedback.