A majority of my time these last year has been spent learning how to program, and I have gone at it using several different approaches. I’ve watched lectures on YouTube, worked through small test problems designed to highlight a specific technique, built out full project tutorials, attended meetups, and worked on projects with a peer or mentor. I’ve even read programming books (which to this day seems like such an odd way to learn how to do computer things). Each technique has had its strengths and weaknesses, but I’ve found that figuring out where to go to learn about a specific tool is really valuable.
Whats – You have to start somewhere, and learning what your tools are is the best way to start. I would say this is the most resourceful topic, and everyone has some information on what the building blocks of programming are. Books, YouTube, sites like Codecademy, and blogs are all great resources to begin learning the basics of programming or even a new language. This would cover things like functions, arrays, and data types, as well as more specific topics like individual jQuery functions like .show() and the difference between an HTML class and ID.
Hows – But HOW does all this stuff work, you ask? For languages and APIs, the documentation is usually the best place to start. I know, I know. It’s usually dry and wordy, but you really don’t have to understand everything right away. Some online classes such as Treehouse can take out some of that dryness at the cost of limiting the scope of the topic. These classes are also great for learning the basics. Fortunately, you don’t have to leave the class remembering every single bit. If you can grasp a general understanding, that’s great! The holes will get filled in later as your start using that specific tool in real projects. In fact, especially as a beginner, you may have to use a tool without understanding anything other than it works.
Whens – Putting these tools to work is where it all starts coming together. I’ve found guided tutorial projects to be most helpful when it comes to figuring out how different tools begin to play with each other. Some developer blogs will offer these for free, and there are even a few sites that will offer paid versions (which are usually worth the investment). Oftentimes in a sample project, you will experience a development workflow, which is impossible to learn from small code challenges. Seeing things work in context and producing a tangible result is rewarding and helps build a greater understanding of your toolkit as a whole.
Whys – This is a trick. There isn’t really a good place for figuring out WHY you should use a specific tool. You kind of just have to try it out…and then try something else…and then maybe something else…and THEN you’ll know why that works. Part of the programming practice is taking the time to go back and find a new way to approach a problem or refactor your code. Understanding the why is probably the most time consuming part of a project, as well as the most intimidating. You are allowed to get it wrong though, and with enough trial and error, you’ll get to a point where the why is so obvious that you’ll wonder why that solution wasn’t the first approach you thought about!
All of these resources are easily accessible and incredibly valuable. However, none can compare to knowing someone who would be willing to mentor you and answer your questions directly. If you are fortunate to know someone experienced in the tech industry, they can be infinitely valuable to your learning process and are usually more than willing to help you learn. If you don’t know anyone offhand, attending a meetup is a great place to meet such people! Before you know it, you’ll know enough that you too can help fledgling programmers!