E-Learning

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

 

Free to use and Open Source, the Odin Project allows those learning to contribute to the project as well as learn from the site. The project provides a structure that is easy and fun to follow. The courses consist of Web Development, Ruby, Rails, HTML5, CSS3, JavaScript, and jQuery. The final section even discusses how to go about finding employment with your new found skills. In each course, the Odin Project goes over the material and providing additional outside references when needed. There are projects along the way, and student submitted projects are linked to in each project section. Try working on your project first before looking at others code, as this will increase your ability to think through problems — something every programmer needs to develop.

 

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.

 

The Odin Project website
The Odin Project

Free Code Camp

 

Another well-structured option for learning web development is Free Code Camp. Based on the popular boot camp model but unlike most boot camps, Free Code Camp is as the name suggests, free. The courses are based online and incorporate external courses to for most of their actual challenges. Challenges are anywhere from 2 to 120 minutes to complete, with most being between 30 to 60 minutes in length. This allows you to block out your time and gives an idea of how long it should take you to complete each challenge. The camp covers Web Development and includes HTML, CSS and JavaScript for both front-end and back-end development. If you’re interested in a JavaScript specific learning plan, this may be the choice for you. Allowing students to concentrate on fewer languages is a smart move, especially for those new to programming.

 

One of the major advantages of Free Code Camp is the community support. The camp has chat rooms where students can engage with others, discussing things from projects to setting up pair programming with one another. This early interaction is a great help to budding developers, allowing students to learn from one another. The goals of the camp are to provide the students with a thousand hours of programming experience, much more than standard boot camps. With the first 100 hours on challenges and 900 coding for non-profits in need, the design for this camp is a recipe for success if you can stay focused for that long. If you’re interested in a JavaScript focused path and helping non-profits along the way, Free Code Camp may be for you.

 

Free Code Camp website
Free Code Camp

Codecademy

 

Codecademy is an interactive learning experience for those who want to jump right into the action. They offer courses in HTML, CSS, JavaScript, jQuery, PHP, Python, and Ruby. They also have courses covering APIs for GitHub, Box, YouTube, and more. For those looking for a quick introduction to any of these topics, Codecademy is an amazing resource that will show you the basics of the technologies you’re interested in. One thing Codecademy does not teach is theory, which can be covered by some of the other educational resources in this list.

 

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.

 

Codecademy site
Codecademy

Academic Earth

 

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.

 

Academic Earth website
Academic Earth

Coursera

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.

 

Coursera website
Coursera

edX

 

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.

 

edX website
edX

Udacity

 

Udacity is another favorite. Unlike the other educational platforms listed above, Udacity has created an ideal learning environment. Students can learn for free or enroll for a certificate or nano degree for a fee. Udacity has partnered with major tech companies to provide you with the skills and knowledge to pursue your programming dreams. With support from companies like AT&T and Google, you can see why this education platform is growing fast. Students can learn Python, Java, JavaScript, web, Android and iOS development. Although not as wide of a selection as other online educational sites, Udacity focuses in and provides a solid learning experience.

 

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.

 

Udacity website
Udacity

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.

 

 

Published by Brandon

Software Developer and Computer Science Student

Leave a comment

Your email address will not be published. Required fields are marked *