This article is meant to be a primer for anyone interested in learning the skill of programming. However, we won’t be giving you any lessons on data types or control structures. Instead, we’ll be providing you with something much more valuable.
We at POCO encourage everyone to give some type of programming a try at least once in their life. As Steve Jobs put it “Everybody in this country should learn to program a computer, because it teaches you how to think”.
“Everybody in this country should learn to program a computer, because it teaches you how to think”
However, if you’re looking to go beyond an afternoon on codecademy it’s important not to be naive about how difficult learning a new skill can be. Every day we stumble across books, blog posts, and videos with titles like “learn python in a month” or “learn anything in six months”. It’s not that they’re lying, really. These resources should be able to teach you the logic, the terminology, and the syntax you’ll need in the time they claim. But, just because you can tell us what a FOR IN loop is and what it’s used for doesn’t mean you’ll always know the proper time to use one. Programming is the ability to break down a process into it’s smallest steps and then explain those steps to a machine in order for it to execute the process for you. It requires careful planning, patience, and dedication to build something great using code.These are also the qualities required to learn a skill on your own.
Patience and dedication are something you’ll have to bring to the game yourself. But, If you want to learn how to code or learn any skill on own for that matter you’ll need a solid plan. That we can help with. Below you’ll find a list of questions to ask yourself along with some tips and resources to get you on your way.
This is the first and most important question to ask yourself because it determines what you’ll need to learn and how long you’ll be learning it. Why do you want to learn how to code? Are you just looking to accomplish a very specific task at work? Then, maybe just a quick trip over to stackoverflow to ask a few questions is right for you. Are you an entrepreneur looking to build a rough prototype to pass on to a professional developer or potential investor? Then maybe a few weeks or months on codcademy is what you need. Or, are you out to build a career? That is a much longer and more difficult road. This video might be a good place to start. It will give you a good overview of the different skills you might need to learn depending on the path you choose.
Once you’ve set clear goals for yourself and know the course you’re taking it’s time to decide when you’ll do it.
If we’re asking ourselves when the best time to start learning the answer will always be anytime. If you’re capable of doing some basic math then you can learn to code. It doesn’t matter how young or old you are. Now is always the best time.
However, while we’re on the subject of time, you should know that to do this right It’s not going to happen overnight. Peter Norvig summed things up pretty well with this blog post. Norvig talks about how researchers claim that it takes about ten years of real world experience for anyone to claim to be an expert in any skill. Luckily, you might not have to wait until you’re an expert to accomplish your coding goals. Even if your goal is to land a job. More on that later.
For now suffice it to say that Rome wasn’t built in a day. And, when you finally sit down to start building Rome it’s best to do it on a schedule. Set aside a specific time during the week. Whether it’s an hour a day, four hours on a Saturday morning, or all day Sunday. Whenever you decide to dedicate your time make sure you emphasize the dedicated part. Learning something new is like going to the gym. If you want to see results you have to be consistent. We’d recommend sitting down to code at least once a week for maybe 4-8 hours.
Who you learn from can be just as important as what you’re learning.Here is a list of 45 of the best places to learn how to code for free. Yes, we live a wonderful age where information that used to cost four years of your life and thousands of dollars is now completely free online. No, you should not rely too heavily on it. There is something known as tutorial paralysis. That’s when someone has spent so much time working to understand theory that struggle with real world application of what they’ve learned. Think of it in terms of the medical field. Would you rather receive open heart surgery from someone who’s read hundreds of books on the subject or someone who’s been performing them successfully for ten years.Yeah, that’s what we thought.
Never forget that the most important person you can learn from is yourself. There is no substitute for experience. Gain experience by working on your own projects. Don’t start off with any thing too complicated. Here is a list of projects for absolute beginners. Never forget that coding is half learning the rules of a language and half your own creative problem solving ability. So, don’t forget to exercise this ability whenever possible.
Another great person to learn from is a mentor. If you’re lucky enough to find someone willing to take you under their wing then take the opportunity. That kind one on one teaching experience is a big part of what makes people willing to pay ridculous amounts of money to a college. Fortunately, if you can’t find a mentor the developer community is notorious for being very helpful to newbs. Stackoverflow is great place to go when you need help answering your development related questions.
Where you learn to code might not seem like such a hard question. If you’re learning on your own you’ll probably be working in your office or living room.It doesn’t matter where you set up but it’s important that you have a quiet space where you won’t be interrupted.
A better question is where to take your skills once you have them. Whether it’s linkedin, github, or maybe just attending a few meetups, becoming a part of the community is a vital part of growing as a developer. Keeping up with the current trends in this constantly changing field, getting involved in projects, or just having a network of people for support are all good reasons to have a plan for networking.
Earlier we mentioned that you might not have to be considered an expert to land you’re first job in the field.Currently, the demand is so high for developers that companies (especially startups) will hire people with less skill just to handle the more menial tasks and free up their really talented people.If in your networking efforts you come across an opportunity to get paid to work on a project take it. There is no better way to learn how to do this job than to actually do it. But, be mindful of what you can accomplish. You don’t want to promise something to someone that you can’t deliver. We suggest building a few projects on your own or contribute to a few open source projects first.
We hope this post has given you a foundation for your self education. If you have any thing to add to the conversation please leave a comment or reach out to us on Twitter. Please, let us know if this article has been helpful to you.