Picking the Right Path to Success
With the exploding popularity of programming, there are more sites on learning to program than ever. A Google search of “programming courses” return a total of 154 million results. Adding “free” to the search reduces it to 106 million search results. With the vast number of options, how is one to know which option is right for them? Busy schedules require that time be set aside to learn how to program. With 106 million options for free programming courses, how can you be sure you are selecting the right one, and more importantly, how can you be sure you’re not wasting your time. The following list will provide seven exceptional resources for learning to program.
Picking one or two of these to start with and sticking with it will provide a wealth of information and increased programming ability. The courses can be completed on any operating system, although we here at LinuxMaster.me recommend using Linux as it is robust, capable, and is used for many backend applications. As with all things Open Source, it allows you to read, modify and change the code. This provides a valuable learning environment that you can bend to your needs. Check out our post, Linux Distributions Made Easy, to find the right distribution for you. Not sure what Linux is, check out A Brief History of Linux.
The Odin Project
The project also encourages coding with others, also known as pair programming. The community aspect can be seen in the comment below each course step. Have a question, just post a comment at the bottom of the page. This is a great way to communicate, especially as it does not require you to visit another page for assistance. Overall, the Odin Project has a lot of potentials and working through the projects will give you a good amount of examples to put in your portfolio. Having said that, for those new to programming, you will want to supplement this resource with additional materials as it is not an all-inclusive solution. For those seeking structure but still able to pull from outside resources, possibly including another course in this lineup, the Odin Project can be a great choice.
Free Code Camp
With each course consisting of multiple problems to work through, you will cover a lot of information quickly. This allows you to quickly jump in and start coding. Codecademy will get you coding fast while offer helpful hints along the way. There is a lot of hand holding through the process and I would recommend supplementing this resource with one of the others on this page, or a book on the programming language you’re interested in. Codecademy is an awesome resource as well for those who already have programming experience in another language who would like to add a new programming to their arsenal.
For those interested in a more academic teaching approach, Academic Earth provides classes directly from a few top name universities. Not only for those interested in programming, classes range from art to social science. The classes at Academic Earth consists of the more traditional in-class style teaching, as many of the computer science based courses are recorded from university courses. Outside of the individual courses there is no specific order, so for those interested in following a plan it may be wise to choose a different online site with more guidance. Courses are also offered in languages other than English, allowing this educational treat to expand beyond the United States.
With little structure inside Academic Earth itself, you will need to find your own support. Some of the courses listed are actually links to outside sites, which may include some sort of communication between learners, and possibly instructors. If you have an understanding of the topics you would like to study, Academic Earth can provide free, university-level education that may be unavailable otherwise. For ideas on how to structure your own learning with Academic Earth, pull a course list from one of the university degrees in computer science and work through their recommended classes while skipping the rest. This would provide most of what the university teaches, minus the interaction with teachers and students. With its wide selection of different universities, Academic Earth provides those without a computer science degree the ability to succeed.
If the previous educational site doesn’t provide what you need, check out Coursera. Like Academic Earth, Coursera provides university level courses but unlike some of the other competition, they provide verified certificates for a fee. This is a great way for learners to show off their new skills both to current and prospective employers. Courses are drawn from various top name universities around the United States. Topics range from Arts to Statistics. With such a large number of courses, the site provides an easy to navigate course selection for those searching the catalog.
One of the advantages of Coursera is the structure. Students have homework, quizzes and other assignments with due dates. This will keep you on track, especially useful for those who have a hard time motivating themselves. Assignments are designed to be assessed by your peers, which in turn means you are helping to grade other classmates work. Going over other people’s assignments after you have done yours will provide a wonderful insight into how others think, and possibly introduce you to new ideas. There is also heavy interaction with other classmates through the use of the discussion forums in each class. This open forum allows for fellow learners to interact and communicate with one another, something that is key in the learning process. It is hard to loose with a system like Coursera’s.
Similar to Coursera, edX provides a rich experience with some of the best free education on the Internet. Courses are pulled from different universities and cover a large range of topics. Courses provided by edX generally have a free track and a verified certificate option, similar to Coursera’s approach. Many of the universities involved in edX are well recognized in the computer science field. Harvard, Berkeley, and MIT are a few of the prominent members of the team. The course catalog is simple to use and most courses are easily found with little effort.
edX courses are designed in a way to engage the learner while providing the necessary information. The courses are well thought out and students have multiple types of interaction with the coursework. Through reading, videos, quizzes and assignments, students are taught in a modern fashion. Personally, I find the edX courses to be of outstanding quality and is one of my top choices when it comes to online learning. Currently, the Linux Foundation has a course for those learning Linux on the edX site called Introduction to Linux. With the vast amount of highly polished courses available at edX, it is worth taken a look at for your programming education needs.
The courses are laid out in sections broken down into short instructional videos. After a few videos, students have an assignment or quiz to take. This helps out a lot, as you are constantly applying the things you have just learned. I found this technique to work extremely well for me. Following along with the lessons, students create actual applications as they go along, slowly building up to the final stage of the course project. This iterative approach is great to show how things can be broken down into pieces and also helps the students learn the information presented. Udacity is my number one resource for learning online at this time. With their fun and interactive teaching methods, Udacity is a win for those looking to learn programming from a non-traditional method.
Which Course is Right for Me?
With a great selection of resources to teach yourself programming, which one should you choose? Personally, I recommend sticking with one or two, as not to spread you time out too thin, especially if you are working full time. To decide on which educational site to use, pick a course from each to test out. Go through a section in each and then decide which works best for you. If you have enough information above, pick one based on your learning style and just go for it. Once you’re started though, stick with it. One of the big downfalls of online learning is there is no one to hold you accountable. Create a schedule to do the course work and watch the videos. If you tend to procrastinate, take a look at How Not Creating Goals is Costing You. Sticking with it is the most important aspect.
Finding a balance of studying and practice is also important. Take the time to practice what you learn. You may think you’re absorbing all the information, but without practice it will not stick. Creating side projects will only strengthen what you have been studying. Also, participate in the forums or group discussions if available. This will get you to start thinking more about what you are learning. You may even help someone else out by answering their questions. Even newbies can provide insight to questions, and talking through a problem will generally cause all parties to think more about the subject at hand. If you have any questions about the sites above, post it in the comments section below.