When you think of having basic job skills in the 21st century, what does that mean? Of course we have the old stand-bys of reading, writing and arithmetic; but what about being able to shoot a photo, create a film, or make a simple program? With the advent of new technologies, people need to step up their games when it comes to learning new skills. Even with my love of technology, programming has always been a huge barrier that I've needed to cross (and I bet it's even scarier for the majority of non-computer science majors). In this article, I'm going to present you with some free tips and resources to get you on the path to becoming computer programming literate.
Before you get into programming proper, here are a couple of tips to put you in the right mindset:
The first thing I would suggest is starting with some non-programming languages and just some basic markup languages or Style Sheet Languages to get used to the syntax. HTML and CSS are hugely useful when it comes to putting content on the web and they aren't too hard to get started with. By using HTML and CSS in conjunction with some pre-made themes to create a personal blog you can learn a lot, and have some work that you can show off. By looking at the Google Code University you can find free resources for learning HTML, CSS and Javascript. Another good resource that is just getting started is the Mozilla sponsored P2P University School of Webcraft, a free and open-source project that will be sharing all of the resources on the Internet.
tl;dr - HTML and CSS are highly useful and a super easy way to get started with learning the basics in computer language.
The next tip you can follow is to start busting out your command line and learning the entire secret features that come with that. Mac and Window machines have plenty of cool tricks that you can use to further your basic computer knowledge, and by learning more about how your computer interprets these commands, you will learn some basics of computer hierarchies. If you want to take it a step further, dual boot your computer with Ubuntu (a user friendly variant of Linux). Because of the way you interact with Ubuntu, you will need to learn the terminal commands and you will be a better person because of it. (I promise.)tl;dr - The command line will teach you the basics of your operating systems hierarchy and Linux is a great tool when learning about computer science.
Using the programs Autohokey (Windows) and Google's App Invetor you can build simple scripts or android applications without having to learn complicated programming languages. Autohokey allows you to create scripts by just using mouse clicks to create a simple exectuable. You can then add your own annotations to that mouse clicks to tweak the program, and create surprisingly powerful applications. Google App Inventor is an almost plug and play system of creating simple apps for use on an Android phone. By running through the tutorials you can get a pretty good idea about how to piece together a program, with barely any programming involved.
tl;dr - Using Google App Inventor and Autohotkey you can create simple apps without having to learn a language
Now were going to get into the tools you need to program, and some pitfalls to avoid:
Choosing your first language can be tough. I would recommend the relatively easy to understand Python because of it's open-source nature and it's easy adaptability. You can return to the Google Code University and follow the Python guides for a pretty in-depth explanation of what Python is. C++ is one of the most popular programming languages ever created and has been a programming standard since 1983. Resources are plentiful and with the continued support of Microsoft (With C#) learning C++ will allow you skills to stay relevant. That being said C++ is notoriously hard for programming noobs to learn.tl;dr - Choose between Python and C++ as your first language because of the amount of resources and adaptability.
Use Eclipse as your primary software development environment. It's highly extensible with plug-ins for both C++ and Python (As well another one hundred languages). With built in tools for debugging and compiling Eclipse works well for small projects. There is a huge wiki devoted to Eclipse questions, as well as a very in-depth FAQ page.
tl;dr – Eclipse is a good SDE to use because there it can interact with almost every language and it can program, debug and compile all in the same window.Finally don’t be afraid to seek out help either in the form of books, computer science clubs or forums. The structured nature of books really helped me stick to a programming schedule. Check out the top-selling books on Amazon to get an idea of the books you should be looking at. On the Tempe campus check out the Department of Information Sciences Club or The iPhone and Android Open Source Club to find some locals who are interested in programming. The Sourceforge forums have been a huge help for me in terms of finding a community of programmers.
tl;dr – Find a community of programmers to help you out!
I am by no means an expert in programming (I'm a Creative Writing Major!), so understand these are just the steps I took to learn some basics. If you are an expert and have tips that I didn't talk about, leave a comment.
Further Reading
How to Teach a Kid to Program - WiredWiki
Programmer 101: How to Teach Yourself to Code - Lifehacker
Geekin’ It is a blog that focuses on technology and geek culture for ASU students. Geekin’ It covers how to use technology to your advantage as an ASU student, as well as comic books, videogames, electrical engineering and geek culture in general. The writer loves Mass Effect 2, Scott Pilgrim, 8-bit music, creative writing and learning how to use an Arduino board. You can follow him on Twitter here.