Does the thought of programming send shivers down your spine? Well, you’re not alone. For most people, coding seems about as doable (and as interesting) as solving differential equations. One look at a programmer’s screen is all the proof you need that coding is just mathematical gibberish. Right?? Wrong dumb dumb! You’d be surprised at just how easy it is to learn the basics of building a website or even an app.
I’m not talking about using WordPress, DreamWeaver or some other application to help you build a site. I’m talking about actually writing the code for a website or app from scratch yourself.
Alright, fine - it might not be that easy if you want to learn some advanced programming languages like C++ and build the next Photoshop. But, learning how to create websites and apps? Not nearly as tough as you might think!
Learning how to code is really just like learning a foreign language, except without the exotic allure. You’re just learning how to talk to computers instead of to people. You type certain words and your computer (not really your computer but we’ll just be moving on…) tries to understand what you mean. A large part of programming is simply learning which commands to use to talk to your computer in way it understands. You don’t need to be a genius or have a technical mind; you just need to learn how to speak a new language.
There are a LOT of programming languages out there and each of them has its own set of nuances, rules and quirks. Some of these languages are shockingly useles but most of them have some sort of purpose. However, don’t get overwhelmed by all the possibilities. You only need to learn a couple languages and you’ll be good to go.
If you’re interested in learning how to build websites, there are three must-learn languages:
Now, there are tons of websites built with only these three languages. However, some people are going to need more POWER. If you’re interested in building something more complicated (not necessarily a website), you’ll probably want to try your hand at one of these languages:
Admittedly these descriptions might not have been all that helpful. So, to put it simply:
If you’re looking to build websites, you need to learn HTML, CSS and JavaScript. You should also strongly consider learning one of: Python, PHP or Ruby eventually.
If you’re looking to build apps, you need to learn Objective C to build apps for Apple devices and Java to build apps for Android devices.
If you’re looking to build software programs, there are many possible options but C++ and Java are two of the most popular.
The first step is deciding which language(s) you're interested in learning. The next step is actually figuring out the different rules and commands that make up the language(s) you chose. The best approach we’ve found is to read a little bit about the language, maybe watch a few introductory tutorials and then immediately try building something very simple. Maybe just a blank web page with your name in fantastic red coloring. It’s tempting to try and absorb as much information as possible before building something but that’s a good way to become overwhelmed. The sooner you give it a go, the sooner you’ll realize that it really isn’t that difficult.
Gradually start adding more complicated features by reading briefly about them and then trying to put them into action. Maybe make a list of links on your web page, set a background color or include an image. Good! Now keep going. Keep adding more complicated features. For instance, if you’d like to build a website; look at a typical website page and notice every element that goes into it. Now slowly make your way through trying to copy the elements on that page. Make a navigation menu like the one you see, try to organize your page in a similar way, make some spiffy buttons that resemble the ones you see etc. The key here is to not feel like you need to understand the entire language front to back before using it. Just start using it!
You’re going to run into terms and explanations which make no sense at all but keep moving forward. A lot of these terms and concepts are actually very simple but have terrifying names and over-complicated definitions. It’s almost as if programmers want to seem more intelligent and badass by using the most intimidating words possible. Keep moving. Don’t get slowed down by trying to understand every piece of the puzzle. Just keep trying to gradually build a more sophisticated website, app etc.
To be honest, you really don’t much to get started with programming. The bare minimum is just a notepad-like program to write your code in. Although a simple text editor will do the trick, it’s easier to write code with an enhanced text editor like Notepad ++ and Sublime Text. These tools offer quite a few benefits but the main perk of them is “syntax highlighting”. This just means that your code will be highlighted in a way that makes it more readable.
There are a lot of other tools out there and a lot of people will tell you how much you absolutely need them. But, you really don’t need much more than a text-editor to get started. As you start doing more complicated things you will run into tools that can help you but don’t get overwhelmed trying to work with all the “must-have” tools right off the bat. All that being said, there is one type of tool that can be very helpful even if you’re just starting out:
Photo editors. These allow you to create graphics, manipulate images, design headers and much more. Almost every website or app out there uses graphics (except for maybe Craigslist) and having a photo editor can make using these graphics a lot simpler. Here are a few popular choices:
There are a TON of resources out there for learning how to program. They each have their own set of strengths and weaknesses. I wish I could just say you need to use so-and-so method to learn JavaScript, this course to learn C++, this website to get the basics of PHP down and so on. But the truth is that the right resource is going to depend on your situation. How do you learn best? What kind of budget do you have? Do you prefer learning from home? How quickly do you need to learn? And so on.
These are pretty self-explanatory, you go to a local school and register for a specific class on how to learn a language such as HTML. Programming classes can be a good option but suffer from the pitfalls of most classes: the lesson isn’t tailored to your needs and you’re sharing the teacher with many other students. On top of that you have to get dressed and leave the house.
Recommendations
Your local college, university or technical institute will likely offer some sort of coding classes
Every major programming language will have an official guide which outlines exactly how you can use it. However, most of these aren’t created for beginners. Learning how to program with these guides is a little like learning how to speak English with a dictionary. These guides are usually a great resource to consult and figure out exactly how you should accomplish a certain task but they leave a little to be desired when it comes to learning a language from scratch. All that being said, some of these guides are still a good starting point.
There are a lot of great online courses out there to learn programming. A lot of them consist of video tutorials, some interactive exercises and a quiz or test at the end. The great thing about these courses is that you can learn from your own home and at your own pace. There are tons of options to choose from. You can go with some sites that offer a monthly subscription of around $30 for access to video tutorials, exercises and what not. Or you can choose a more formal approach where you enroll in online classes with a curriculum, clear assignments, lectures and so on.
One of the best things about coding is that you can immediately get feedback on whether your code is correct. If your website or app crashes: you probably did something wrong. However, it can be a little (just a little) frustrating when your website or app returns a blank screen staring at you, waiting for you to figure out what went wrong. This is where interactive coding lessons come in handy. You’ll usually get to write code directly in your browser (as opposed to in a text-editor) and receive detailed feedback on the code you write.
Stack Overflow is quite simply fantastic. It’s a forum where you get to ask programmers specific questions and get feedback on what you’re doing. They will often tell you exactly where your code might be going wrong. Stack Overflow isn’t a tool for learning a language from scratch but it’s a great tool for fixing problems as you go along. Most developers are constantly using Google or Stack Overflow to help them out when their code is being uncooperative.
Tutoring is a great option if you’re the type of person who learns best with a teacher guiding you along the way. There are times when you’ll be ripping your hair out trying to figure something out which could be explained in a couple minutes by a tutor. Tutoring can save you time (and hair) but it's not for everyone. A mix of learning on your own and working with a tutor when you hit roadblocks is often a good approach.
Now, I have some bad news for you. The first websites or apps you make are going to stink. Like really bad. That doesn’t matter though. The important part isn’t making a beautiful, functional website or app right off the bat. The important part is learning the basic building blocks of making a beautiful, functional website or app and gradually improving over time.
As you’re learning, you’re going to run into many different technologies, lots of different advice and a fair number of speed bumps. Don’t get discouraged or overwhelmed. There are usually many different ways to solve a problem and you don’t need to learn about all of them. Some people are going to scream that you need to use a certain language or a certain method but don’t get bogged down by all the things you “need” to do. Find what works for you. Just keep trying to build something better and better until one day it all comes together.
Good luck!