There are many reasons to learn programing. It could be something small like writing a script that helps your team with automating a task or something much grander like creating an application as big as Facebook. Both examples are valid and can both garner the same results.
You want to learn programming, but where do you begin? That is the question that most people ask when they start. They want to know what the easiest language is to learn. They want to know what they should start learning first. What if I told you that these are all the wrong questions to ask? Why is it the wrong question? Because you don’t want to learn how to program, you want to learn to make things! (Or create things!)
There is a school of thought when it comes to learning how to play guitar (which I learned young), that says you must to learn the fundamental basics of scales, time signatures, etc. That isn’t what you want to learn when you begin though is it? You want to learn how to play songs and write music.
Learning a programming language is very similar to this. You don’t want to learn how to program, you want to learn how to build things that will help you. Many people will say that you have to learn the basics by doing exercises and studies before you can build things and they’re… well, they’re dead wrong. You don’t have to have a solid understanding of any language before you start using it. Would it be nice? Yes, but it isn’t necessary.
“So, if it isn’t necessary to know the fundamentals when I start building my project, how will I learn, Randall?” That’s a good question reader. My answer is just to build things. Find something that you want to make, for whatever reason that you want to make it, and start; this is what will teach you. It will teach you is because your passion will drive you to continue learning.
Have you ever been in a classroom or meeting and information went in one ear and out the other? This happens because you don’t care about what you’re hearing or seeing. Kids learn by playing because their natural curiosity keeps them moving through it. When they’re passionate, they don’t give up.
Here is my guide to learning any language or framework that you might want to use:
- Step one: Find Project (preferably one at your skill level) *
- Step two: Start Project (begin coding what you know)
- Step three: Research bugs and errors, or outputs that don’t match expectations
- Step four: Complete Project
Step one is easy to understand, finding your skill level can be confusing. What is your skill level? “Randall, you told me to pick any project and just do it”. To answer the first question, your skill level doesn’t mean (doesn’t focus on) programming language, rather size of the project. For instance, when I first started, I made a few command line interface tools that did one thing very well. Once I was confident in that, I started creating GUIs that did many things.
Think of your skill level less about programming knowledge and more about project complexity. As for picking anything, I honestly mean it. Pick anything. My first project was a python CLI that connected to an access database and kept track of inventory data in a warehouse and would give our team warnings when certain values went too high.
Start that project earnestly and wholly. Spend time devoted to it. Take hours of your life each night or morning and sit down and start working on it. Understand the process will be hard to go through, but that’s part of the fun right?
The key to getting through this part and step three is to treat it like it’s a game, or a puzzle. Each error is a puzzle to be solved. Each wrong output is a Sudoku of the mind. By solving the problem you’ll come out the other side as a better developer than you were when you started.
Work through the problems as they come up. Read documentation, look at stack overflow, and look through places like this site. All of these resources are here to help you. USE THEM. We want to help you. We want to make sure that you’re successful because programming is awesome, and it’s a skill that we like to help others with. I do anyway.
Complete your project, but don’t just complete it. Share it with people. Post it online for others to download. Take that project and talk about it on twitter and on Facebook. Make sure people know that you’re proud of what you’ve done.
Even if you’re new and your code looks like someone just threw files together, being proud of what you’ve built is the first sign that you’ll do it again. You can come back to that project later and fix it, or even laugh at the silly things you did back in the day.
Go forth. Make things. Be happy.