Do you want to grow up to be a programmer? You have a choice. You can go off to one of the best computer science colleges, or you can learn the basics now at home. Whether you can learn those programming skills for free or not is the question. So, we went on a search for the most common and the most popular programming languages to see what we could find. We learned that you can learn every computer language known to mankind online through open source projects, free online tutorials, free eBooks and wikis.

The downside to these tutorials is that none of them offer college credits nor do they offer certifications. With that said, it never hurts to have this knowledge under your belt for the time when you’re ready to take a full-fledged plunge into paying for your sheepskin or certification.

The list begins with comprehensive courses offered through online college venues. From there, you’ll discover various computer programs sorted by language or by technology. You’ll see that we listed the courses alphabetically. Finally, unless stated otherwise, none of these programs require registration.

Comprehensive Courses

  • Electrical and Computer Engineering: Utah State University’s online venue contains different courses for advanced learners through their electrical and computer engineering program. These courses are not static, so if you don’t see anything you want now, then check back for the spring or summer additions. The courses contain a syllabus, homework assignments and solutions, and programming assignments. You can download the whole course. They also maintain a separate channel on Instructional Technology that might appeal to a person who wants to build wikis and other new media or learn about data visualization and more.
  • Electrical Engineer and Computer Science: This MIT course will take you through all the computation structures taught at this university. Take advantage of tutorials, quizzes, beta trials and more. They offer Programming Languages, Structure and Interpretation of Computer Programs and Mathematics for Computer Science plus individual online course materials through this comprehensive category.
  • Computers and Computer Systems: Britain’s Open University offers a number of computer programming courses through their LearningSpace initiative. Individual courses are designed for intermediate and advanced level users and take from five to 40 hours to complete. Samples include Computers and Computer Systems, Representing and Manipulating Data in Computers, and Data and Processes in Computing.
  • Science and Technology: OER (Open Educational Resources) Commons provides thousands of free college-level computer programming courses, all sorted by subject and level. Course materials include text, audio lectures, graphics, activities and labs, assignments and online textbooks. Not all courses remain static, so a course that was offered six months ago may be not be available now. Your best options are to use the ‘search’ feature or to peruse the courses offered through the Science and Technology section and filter those selections to your preferences.
  • Science and Technology: Rice University’s online Connexions network will lead you to courses that range from a comprehensive Programming Methodology that focuses on C++ to anything else you can dream up. The first link will take you to the Science and Technology search page, where you can type in a programming language to discover results.
  • Information Science and Technology: This University of Tokyo’s OCW project is an open source of courses that pertain to computational linguistics, systems, and more. Most modules at this online university contain lectures and video files that have been translated into English.


Also known as Asynchronous JavaScript and XML, AJAX provides a set of scripting languages that are used to create browser-based applications. These browser-based applications behave more like software applications that process a user request immediately.

  • 18-week AJAX Code Camp: Programmers and Developers couldn’t line up fast enough for this free online course in 2006 and in 2007, provided by Sang Shin and Sun Microsystems. Now, you can gain access to the materials from that course and learn about all the components contained within AJAX as well as practical applications.
  • AJAX: Mozilla Developer Center provides users with free resources and tutorials on AJAX. You can learn the basics, but you can also learn AJAX alternatives and learn how to correct AJAX mistakes.
  • AJAX: Land of Code provides great tutorials for beginners, and this AJAX tutorial is no exception. They cover the intro, basics, browsers, form, sending data and a summary. These basics are enough to get started on the AJAX highway.
  • AJAX Patterns: began as a collection of design patterns, which formed the basis of the book, Ajax Design Patterns, and grew into a publicly editable wiki on anything and everything Ajax. All pages (except the homepage) are now editable, no registration required. The editable pages include tutorials, books, projects and links that all pertain to AJAX.
  • AJAX Roadmap: ASP.NET provides a ‘roadmap’ for beginners to AJAX, where you can get started with learning what tools you need, how to manage server controls and client scripting, how to debug and trace and more.


ASP is more a technology, because it is not a language. This technology incorporates several scripting languages such as JavaScript and VBScript and allows for their use as it acts as a coordinator. It is part of Microsoft’s .NET platform and is the successor to Microsoft’s Active Server Pages (ASP) technology.

  • ASP: Land of Code wants to help you become familiar with implementing dynamic and interactive content on webpages with a server-side technology. They cover an introduction, basics, variables and operators – enough to keep any ASP beginner happy.
  • ASP is Fun: Yes, this is the name of the Web site, and they offer a free online course that’s as entertaining as it is concise and accurate. Plus, they offer many other resources that you may not find even at Microsoft.
  • ASP.NET Tutorial: This is a beginners tutorial for ASP .NET. All examples have been worked out in VB and with three web server controls. The tutorial is brought to everyone via ASP Alliance.
  • ASP.NET Tutorial – with ASP.NET 2.0: W3Schools provides a beginner’s venue for learning ASP, starting with an introduction and ending with a collection of ASP.NET examples.
  • Microsoft ASP.NET: Get the tools, the instruction and more straight from Microsoft. You can enjoy learning through written tutorials, videos, find a chat and other resources that will round out your ASP education.
  • Microsoft .NET SDK QuickStart Tutorials: Microsoft’s QuickStart Tutorials are the fastest way to understand what the .NET Framework technology offers leading-edge developers. The list includes various ASP tutorials including the ASP.NET QuickStart and the ASP.NET Web Services QuickStart.

C and C++

C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. C++, which originally was designed as an extension to C, is the object-oriented development of C with classes, member functions, operator overloading, constructors etc. The first five links listed below lead to C tutorials, and the rest of this group is devoted to C++.

  • C Programming: Steve Holmes, formerly of the University of Strathclyde Computer Centre in Glasgow, offers an award-winning comprehensive overview about C programming. Realize that this is an older course, so many items may not pertain to current C structure.
  • C Programming Basics: Rice University’s Connexions offers a C Programming Basics module. At this time all that is offered is a PDF download, as discussion is sparse.
  • C Tutorial: offers courses online for C and for C++ (see below). The tutorials contain quizzes, advanced tutorials, templates, and more. Anything that pertains to C Programming can be found at this site.
  • How C Programming Works: Marshall Brain wrote a very detailed tutorial for How Stuff Works that will enable any beginner to understand how C programming works.
  • Progamming in C: This free WikiBook will provide you with all the basic information you need to learn how to program in C. Learn how to use a compiler, learn programming structure, and gain advanced skills all at home and at your own pace.
  • C++ Programming: Wiki Books is attempting to provide a book on C++ Programming, but it appears that the online application is under dispute. Despite this problem, they provide three tables of content for this book that lead to actual online materials you can use now.
  • C++ Wikibooks: This link will take you to a page where you’ll find a few Wikibooks devoted to the C++ subject. The range of users to date would include beginners and mid-range developers and programmers.
  • Fundamentals of C++: Offered by Free Education on the Internet, this course is intended for serious computer hobbyists, IT students, and IT professionals. You need Windows and Visual C++ installed.
  • This site offers tutorials for individuals with little to no previous experience in programming. Although the focus is on C++, some C materials are held here as well.
  • Learning to Program in C++: offers courses online for C and for C++ (see above). The tutorials contain quizzes, advanced tutorials, templates, and more. Anything that pertains to C++ Programming can be found at this site.
  • Object-Oriented Programming in C++: This course, offered by the University of Southern Queensland’s Open Courseware program (USQ OCW), extends the student’s basic procedural design and programming knowledge into the object oriented paradigm. Key software engineering principles such as decomposition and component re-use shall also be emphasized. This program is for more advanced programmers.
  • Starting C++: University of Cambridge Department of Engineering offers a beginner’s resource for C++. Local resources include those materials used at Cambridge, while outside materials are linked to Web resources. The latter include advanced resources.


C# (C Sharp) is an ECMA-compliant programming language designed to support .NET development. It is a new object oriented language from Microsoft and is derived from C and C++.

  • C# .NET School: Programmers Heaven provides free weekly online lessons in C#. The lessons include a weekly exercise, and they provide the answers in the following week’s lesson. They also provide a message board and the author of the tutorials is available to answer questions.
  • C# Progamming: This book is a featured book on Wikibooks because it contains substantial content and it is well-formatted. The book includes an introduction, basics, classes, the NET Framework explanation, advanced topics and a full index online.
  • C# Programming for Beginners: This free book download at C# Corner covers all versions of C# language including 1.0, 2.0, and 3.0. The features added in versions 2.0 and 3.0 are covered in the Advanced Topics of this tutorial. This book is recommended for beginners and students who want to learn C# programming. It is recommended that you have some programming experience using any of the object-oriented languages such as C++, Pascal, or Java.
  • C# Station Tutorial: C# Station offers tutorials aimed at beginning to intermediate programmers or anyone who would like to gain familiarity with the C# programming language. This is a great tutorial as they state at the very beginning what any programmer will need for tools before they can begin the lessons. Few other tutorials offer this information.
  • C# Tutorial: Softsteel Solutions provides a fairly comprehensive tutorial on C# through twenty-five online lessons. Beginners start with an understanding of the .NET development and move quickly into learning the C# language and its capabilities.
  • CSharp Tutorial: VisualBuilder provides users with the main concepts behind C# as well as the chance to write a few C# programs. There currently are 42 lessons included at this site.
  • The Advanced C#/.NET Tutorial: Gopalan has been a Software Engineering Professional since 1991, and he brings his C# expertise online to help advanced students grapple with such tasks as building a complete COM+ Server component using C# and .NET. He also offers other avenues to explore including remoting, reflections, and messaging.


Java refers to a number of computer software products and specifications from Sun Microsystems (the Java™ technology) that together provide a system for developing and deploying cross-platform applications.

  • Fundamentals of Java: Offered by Free Education on the Internet, this course is intended for beginning computer hobbyists and first-year IT students. The free online textbook for this course is Sams Teach Yourself Java 2 in 24 Hours. You’ll find step-by-step instructions along with study aids that will help you along the way.
  • Introduction to Java Programming: The Sofia Open Content Initiative brings an introductory course on Java programming to anyone interested in this language. Steve Gilbert, Computer Science Professor at Orange Coast College, wrote this course for beginners.
  • Java: Land of Code has put together this basic course on Java for beginners. Learn how to create a GUI layout, applets, graphics, sound and more through the easy-to-use tutorials.
  • JGuru: The owners of this site provide tutorials for everyone, from the novice to experienced programmers. Learn the basics and then explode into the variety of applets and other tools that you can use online.
  • Java Programming: This material provided by WikiBooks includes more than a mere online book. You have access to online resources, chats, group discussions, more online tutorials and external tools for certifications and specifications.
  • Java Programming Tutorials: WebMonkey goes above and beyond the average Java to provide tutorials in JavaServer Pages (JSP), JHTML and more.
  • Java Training: Sun Developer Network (SDN) provides various Java technologies through a variety of online tutorials and training classes. Learn information about the fundamentals of the Java programming language to web services and the Java EE platform and more.
  • The Java Tutorial!: This is an on-line draft version of the fifth version of The Java Tutorial by Mary Campione and Kathy Walrath. Learn the language basics and proceed on to harder assignments.
  • The Java Tutorials: This site is filled with practical guides for programmers who want to use the Java programming language to create applications. They include hundreds of complete, working examples, and dozens of lessons. Groups of related lessons are organized into “trails” you can follow to become a ‘pro’ in that given avenue.


JavaScript is an easy-to-learn programming language which can be built into Web pages, so that it executes from within the browser rather than on the web server. Originally developed by Netscape, this scripting language can make Web pages seem more animated and dynamic within the areas of graphics and navigation.

  • Introduction to JavaScript: Scroll down a bit to begin a beginner’s lesson on the history and applications of the JavaScript language from Intranet Journal. At the top of the page you’ll notice some other JavaScript resources offered by this online venue as well, so even seasoned JavaScript programmers can use this journal as a tool.
  • JavaScript: This course assumes the basic knowledge of HTML programming, but it still provides the basics, including validation. Then the “book” will take you into initial tutorials and then into Core JavaScript. Standards and practices, debugging and more are all part and parcel of this wiki resource.
  • JavaScript Kit: This site is less of a kit and more an online venue for JavaScript tutorials. They appeal both to the novice and to the expert, as there are so many samples and lessons here.
  • JavaScript Primers: This 30-step course provided by HTML Goodies, provides non-programmers with the goods to create JavaScript scripts on the fly. You’ll walk away from each step with a new ability!
  • JavaScript Programming: WebMonkey comes to the rescue again, with tutorials that range from introductions for novices to advanced tricks and treats for the professional JavaScript programmer.
  • Learning JavaScript: provides a complete course on JavaScript, from an introductory lesson to advanced creations like Creating Windows on the Fly. This is a great course, as they take a script and modify it to accomplish several goals.
  • The JavaScript Weenie: This is an excellent resource for the JavaScript junkie, provided by the Web Developer’s Journal. Not only do you have access to tons of tutorials, but you also can tap into discussions, articles, archives and other resources. This is a nice tool for any student or beginner.


Perl, otherwise known as Practical Extraction and Reporting Language, is a programming language frequently used for creating CGI programs on web servers.

  • Learn Perl in 10 easy lessons: This set of lessons is posted at Linux Forums. Users go straight from a brief introduction to Perl to working in code.
  • Mother of Pearl: This site is a free how-to devoted to all things Perl. The tutorials aren’t all neatly lined up like a book’s table of contents, so you’ll need to search through the lessons to find what you need.
  • Perl CGI Tutorial: This tutorial will lead you through the steps involved with setting up a Perl CGI (Common Gateway Interface) Web page. You can also find a Cookie and database tutorials here.
  • Perl Lessons: This tutorial on the Perl programming language is largely based on the Introduction to Perl by Greg Johnson. It’s a great tool for beginners to learn this language. The course has lessons, goals, and samples to work with.
  • Perl Programming: WikiBooks provides users with a comprehensive overview on basics, straight to in-depth Perl ideas, CGI and Apache and more. Readers also get sample code to get started on their lessons.
  • Perl, SQL, and Web Publishing Security: The material located on this site came from an informal summer course taught through Networking & Systems at Haverford College in June, 2005. The intent of this summer training was to expose the broader computing center staff (along with others) to advanced publishing topics, the cPanel interface, and to demonstrate what is necessary to manage, support and secure dynamic web sites.


PHP represents the longer “PHP Hypertext Preprocessor.” PHP is an open source, interpretive, HTML centric server side scripting language. It’s especially suited for blogs and other Web developments and it can be embedded into HTML code as well.

  • Beginners PHP: These tutorials are provided by Free Computer Tutorials. The lessons are simple to understand, easy to use and read, and they’re a great resource for anyone who wants to learn PHP slowly and at a convenient pace.
  • Good PHP Tutorials: Discover page upon page of information about PHP programming, from novice introductions to advanced tutorials. We included this site although it’s not clear who runs the back end, because the tutorials were so comprehensive. They also have tutorials and tips that focus on other programming skills such as Python, Ruby, and more.
  • PHP: Land of Code offers a step-by-step tutorial on every aspect of PHP server scripting. This is a great tool for beginners and a wonderful reference for advanced programmers.
  • PHP Buddy: This site is focused solely on PHP tutorials, snippets, novice tools and advanced articles. No matter your skill level, this site will prove to be a great resource for anything PHP.
  • PHP.NET: This is the PHP Web site, but you don’t need to bow and genuflect before you enter. Scroll down a bit and look at the right hand column where you’ll find a range of tutorials that will rock your world.
  • PHP Programming: WebMonkey delves into PHP with tutorials, cheats, interactive learning tools and more for everyone from the novice to the advanced PHP pro.
  • Programming: PHP: This WikiBook is fairly straightforward, as it tells you what you need to know and accomplish before you can tackle PHP. Learning the language is the first step, following by more advanced subjects such as templates, libraries, frameworks, and security. You also can grab some snippets on your visit.

Ruby/Ruby on Rails

Ruby is a dynamic object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like object-oriented features. It also shares some attributes with Python, Lisp, Dylan, and CLU. Its creator, Yukihiro Matsumoto, a.k.a “Matz” released it to the public in 1995. Ruby on Rails is a web application framework released in 2004 that aims to increase the speed and ease of web development. Often shortened to Rails, or RoR, it is an open source project written in the Ruby language.

  • Ruby: This is THE Ruby site, where you can use downloads, read documentation, access libraries, and join the community with your questions and answers.
  • A Ruby Learning Hub: Satish Talim is a programmer, author, trainer and speaker who has been teaching Ruby for the last two years and Java since 1995. His free online course started on 7th Jan. 2008 and was for anyone who wanted to enhance his/her knowledge and programming skills in Ruby (stable version 1.8.6). There are 2190 participants. The 4th Batch of the free online Ruby programming course starts 1st March 2008.
  • Ruby Learning: is a thorough collection of Ruby Study Notes for those who are new to the Ruby programming language and in search of a solid introduction to Ruby’s concepts and constructs. This is another Satish Talim course.
  • Ruby on Rails: This site offers tools, instructions, novice help and advanced advice. This is the site that many people are using for Web development answers to the Ruby on Rails questions.
  • Ruby on Rails: This is the WikiBook on the subject. This free book has been culled together from a variety of sources including the Rails API Documentation and articles where permission has been granted to republish in modified form. It also includes brand new content created by Ruby on Rails users.
  • Ruby Programming: This WikiBook shows how to install and get started with Ruby in your environment. Basic Ruby demonstrates the main features of the language syntax. The final section covers a selection of slightly more advanced topics. Each section is designed to be self contained. Finally, the Ruby language section is organized like a reference to the language.
  • Ruby/Ruby on Rails programming tutorials: This tutorial will cover many areas of the ruby and rails programming language. If you think a part of this tutorial is incorrect please feel free to edit it! These lessons are brought to you by Meshplex tutorial database.

Visual Basic

VBScript is a scripting language used in Microsoft’s Internet Explorer web browser and browsers based on Internet Explorer’s engine. First developed in 1991, this language has evolved to VB6, which currently is scheduled to enter Microsoft’s “non-supported phase” starting March 2008. Why is it included here? Because it is one of the foundation languages for programming with an easy to understand syntax. It’s a good way to get started in understanding programming.

  • Fundamentals of Visual Basics: Free Education on the Internet provides this course intended for serious computer hobbyists, IT students, and IT professionals. Windows and Visual Basic are required for this course that ranges from a basic introduction to advanced applications.
  • “How Do I” Videos — Visual Basic: Microsoft provides dozens of videos designed for all Visual Basic developers, from the novice to the professional. New videos are added regularly, so check back often.
  • VBScript: Land of Code provides a beginner’s guide to everything you’d ever want to know about Visual Basic. Learn about variables, loops, arrays, conditions and strings in step-by-step tutorials.
  • Visual Basic: This book is written from a VB6 perspective although much of what is said is also valid for VB5 and VB4. This book does not cover VB.NET which is in fact a radically different language. This book seems to ain at beginners, but it seems more appropriate for mid-range programming skills.
  • Visual Basic 6: This site is dedicated to helping you learn and advance in VB6, mainly because many businesses still use this language for applications. You’ll find Visual Basic tutorials and Visual Basic source code samples for all levels from beginner to advanced. The VB6 forum is waiting for your questions, and the latest articles can help you stay up-to-date on VB6 issues.

Josh Weikel

WHdb has been around since 2007, and I have a background in web design and development for nearly that long. In 2009, I graduated with a bachelor’s degree in Web Design and Interactive Media, and since then, I’ve created dozens (possibly hundreds) of web sites, developed web apps, and yes, dealt with web hosts in all varieties. From simple shared plans to cloud hosting, I’ve seen (and dealt with) it all.