10 Websites that Will Teach You Programming for Free

Whether you want to learn for leisure, a hobby, or even for a career, programming can be a tough nut to crack. After all, it’s not like painting or writing where you can start with a blank page and do your best. Coding has its standards and methods that need to be taught before someone can create even the most basic of programs. Thankfully, with programming being vital in today’s computing world, free programming websites have appeared to help people get into this complex field.

Here are ten websites where you can hop in and study programming without paying a penny.

1. Codecademy


Codecademy does what it says in the name – teaches you all about the basics of how to code. It does this through specific courses that you can sign up for, supplying you the materials to learn the subject of your choice. Codecademy has topics ranging from learning a specific language (HTML, Java, Python) to learning how to build a website. If you really enjoy Codecademy, you can purchase the premium plan which unlocks additional learning support.

2. edX


While edX is a website that supplies all-purpose courses, it has a wide array of computer programming courses tucked away in its library. edX was founded by Harvard and MIT back in 2012, so you know you’ll be getting quality courses through here! Courses are either lead by an instructor or completed by yourself. Just search their library for “programming” to see their range, or use specific terms to find the courses you want.

3. MIT Open Courseware


Speaking of MIT, why not access their pre-made course material online? You can search their libraries or browse the computer science section for relevant courses. There’s plenty out there, such as an introduction to Computer Science and a C++ primer, and they’re all free to use. It’s a little different from other free programming websites, as it’s downloading raw university materials rather than videos or articles. If you enjoy printing off course material and chewing it over in your spare time, this is a great option.

4. Khan Academy


If you prefer a collection of videos you can peruse at your own pace, Khan Academy has what you’re looking for. Just browse their programming section and pick out what you like the looks of. The basic topics range from what programming is, through all the basic functions of programming, all the way to object-oriented programming.

5. Udemy


While Udemy charges for its courses, it also supplies free ones for you to try. These can be done by selecting “Free” under the “Price” filter option when performing a search. Each course has a rating and a counter of how many people have taken it already, meaning you can locate the ones worth your precious time.

6. Free Code Camp


Free Code Camp has an interesting twist to it: You study coding online with them, and then after a period of about a year, you are then entitled to work on open-source projects for non-profits. The idea is that you can use the time and experience at Free Code Camp to translate into a real-world portfolio to help you land a job. Free Code Camp requires a GitHub account to be created during the registration process, so if you already have one, keep it on hand.

7. GitHub


Perhaps a strange entry for those semi-familiar with the website, GitHub is loaded with programming tutorials. It’s maintained by Victor Felder (A.K.A vhf) who has created a huge database of free (and legal!) programming materials and opened it up so other people can contribute. The result is a fantastic collection of free material to use and learn from. Scroll down and select the language you’d like your books to be in, including English.

8. The Code Player


Out of all the free programming websites, The Code Player is a great choice for people who learn by example. Pick a course, and it will give you a line-by-line playback of someone constructing it out of code from scratch. Then, either code it yourself or copy the code for your own project. This makes for a great tool for people who learn by watching people perform, rather than being taught directly. Their HTML5 Snake game course is particularly impressive!

9. The Odin Project


The Odin Project is all about learning how to do web development. Its course gets you started with languages such as Ruby on Rails, HTML5, and Javascript, to name a few. What makes the Odin Project particularly interesting is that at the end it’ll give you some tips and pointers on how to land your first job as a web developer, making it an interesting choice for budding career developers.

10. Code Wars


Code Wars is a great option for when you’ve learnt the basics from the above free programming websites and want somewhere to put your skills to the test and learn at the same time. You can take on a community-set challenge (called a “kata”) relevant to your coding skill and language. Code up your solution and submit it, then when the challenge expires, everyone’s solutions are revealed. You can then browse how everyone else tackled it and learn how you can improve yourself.

Free to Code

With programming being a fantastic skill to learn in this current day, it’s also never been easier to start learning. You now have ten free programming websites you can learn from, without breaking the bank!

Do you want to learn to code? What languages are you learning? If you’re a veteran, how did you learn to code? Share your stories below!

Simon Batt Simon Batt

Simon Batt is a Computer Science graduate with a passion for cybersecurity.


  1. For some languages I took intro courses at the local community college. Then I was force-fed more of them by doing maintenance and development of real life programs written in those languages. Other languages I learned on the job by using them to develop programs.

  2. My apologies. This is slightly longer than most comments. My purpose is to show how I used experience and knowledge, then an idea that grew step by step using programming, to fill a perceived need. Please edit it as you wish.

    In 1985 I was injured in an automotive accident and could no longer do physical labor. When I got my social security disability check, six months worth, I knew I had to do something mental to keep from going batty. I had access to both an Apple IIe and an IBM XT, and AT. My father was retired from IBM so my brother had bought the XT (8086 8-bit) and an AT (16-bit 80286) computers with an employee discount for his business. The AT came with a whopping 512 kb of RAM (optional card with 128kb to total 640), 20Mb hard drive, monochrome graphics card, etc. and sold for about $4500. The hard disk could be increased to 30Mb for about $100 so he got that. The IBM salesman actually said, “You’ll never need that much storage.”

    I tried my hand at programming both the Apple and the AT. The Apple programming consisted of typing code from a magazine. The AT had programming languages available including Basic, which made it an easy choice.

    I bought my first computer, an IBM AT clone with 1Meg RAM,40mb hd and MSDOS 3.3 for $1995. Basic,C and assembly languages were the first challenges. I later added an EGA card and monitor. I bought MS Windows 1.03 and another GUI. In the late 80’s or early 90’s the internet was accessible at realistic speeds up to 14kHz, usually much less, through AOL and Compuserve. Concentrating on “C” and downloading code, programming became much easier.

    Writing in C and using a database made programs for use in the business, floor covering retail sales, possible. The only software for floor covering,at that time, was generic accounting such as ‘Peachtree’ and it did nothing for the front end sales i.e. calculations for takeoffs (quantity needed for areas like living room and kitchen) because each product is figured differently. Other programs tried but were not user friendly or had a learning curve that was beyond the reach of most folks in that business. My program addressed this. All that was needed for input was room size, material (with pattern match if necessary) base floor material (over concrete, wood) price, other necessary stuff (underlayment: padding and tackstrip for carpet, plywood and transitions for sheet vinyl or VCT) etc. As you can see a knowledge of the flooring business was necessary, so I learned that, too.

    The lesson is that a working knowledge, as thorough as possible, of the desired result and the intricacies of necessary methods, the “how to get there’s” or a team effort, should be addressed before coding is possible. For my program to function, then and now, calculations (subroutines) needed to be streamlined so the desired result was achieved without a long wait. For example, a program was available that was used on large commercial jobs like schools, banks, office buildings, hotels, etc. that would show the needed cuts diagrammed on printouts to minimize waste. I worked fantastically well bringing the waste from an average of 4% to 10% (depending on factors like pattern match and the experience and skill level of the person doing the takeoff) to less than 1%. But the program had its drawbacks. The front end for entering room information used “Edlin”, a DOS command line editor. Edlin is a DOS program automatically installed when you installed DOS so everyone had it. Actually that was the only reason for its use. At best, edlin was clumsy and required rewrites line by line. Search for edlin for your edification. Egad, enough to keep everyone away. The other reason was the time factor. It could take upwards of six hours or more to perform calculations. Change one room or add/subtract an area, another wait. The inner workings of the program and the results when all was properly done more than paid for itself. Three percent added material costs made the difference for bidding and winning the bid for the contracted job. I wrote a front end allowing users to easily make entries and changes to same, then run the program, saving the input data for future purposes or reference. This is an example of having a user-friendly, forgiving front end. Sadly, the program’s owner wanted it to be difficult if not impossible to use for the industry.

    As an aside, a principal for the contracted school decided, after the bid was accepted, he wanted a large closed off his office carpeted. It was not on the bid so not in the entry data nor calculated. He, the principal, said, “I know the waste should fill the closet.” The actual waste was enough to fill two wheelbarrows due to trimmings. We needed to order the extra for the closet, which we did. Trim waste was all that remained after cuts were made. Not even a closet-sized piece.

    I do not know if that “contract job” software is available today. It was super for the purpose but clumsy to use. My software used the general idea but did calculation based on material for each area, different rooms, same or not calculated and the results given in the form of a contract showing, room by room, what went where including color/pattern, cost with necessary extras, elected special or custom work, warranties, all on a single report. And, even without years of experience, easy to use. The program prompted for almost every option available priced so that both the seller and buyer had promised labor and materials clearly stated for reference. This could be done either as an estimate or a final contract.

    The only drawback at the time the program was written was the data entry. Today most of the products are available for download from the manufacturers and can be tweaked into a usable database. Labor is optional depending on whether it is offered by the store.

    I am a disabled retired person on a fixed income not really looking to do more than show that, if you look, there are many opportunities to find a niche for the results of your ability to write programs to fit what you already know. The above started as a spreadsheet with formulas to do the calculations for a builder offering six different homes with a limited choice of products for the flooring The printout could then be referenced and results entered on a sales ticket. With further rewrites and transferring the product information to a database the result became a retail tool. The results of the estimate became the contract which then supplied the materials for orders to the manufacturers and so forth. It was such a time saver that three people ran a builder supplier doing three million per year while subcontracting the labor. One to measure, one sales, one ordering and receiving and each able to do the other’s job. Retail naturally needs more people.

Comments are closed.