- freeCodeCamp is a great place to start - as you can tell by the name, it's totally free and they do a really good job of starting off simple and slowly adding difficulty with each lesson. I think CodeAcademy holds your hand a little too much, whereas freeCodeCamp was the right amount of difficult to allow you to learn a little more.As a constant student, I'm constantly encountering the best resources for learning how to code. I cannot recommend freeCodeCamp enough. First, I think there are few teams that are as genuine in their quest to teach people as this team. As far as their teaching process, they combine methodologies to use a project-based approach, while encouraging you to utilize Google and other students and the dev community (via Gitter) to learn.The freCodeCamp community is a key asset. The newsletters and Medium posts are a great aditional resource. Depending on your interest you will find a lot of relevant content and recommendations. For instance, I am into data science and regularly get on my Medium digest well explained and analyzed resources (e.g. Check this or that MOOC for learning about Neural Networks). Time saver!
- I love the broad range of options for learning Codeacademy offers. From what seems like every language under the sun to flexible tutorials, freemium model with optional quizzes and advanced versions of their lessons, etc., it's an all-around great site.
- When I was learning to code, Treehouse was an incredible resource. It is a really nice balance of video lectures and hands on activities, and takes you through from the basics. The paths are nice if you're focusing on a particular area as well.
- I'm currently going through a Web Development course on Udemy taught by a dev bootcamp instructor. I like that I can learn at my own pace, there's also a Gitter board with other students that I can interact with and who can help me get past any roadblocks I encounter. I also tried Code Academy, but had trouble having the info stick. There's something about writing my own code versus just filling in blanks in a browser console that works better for my long term memory.
- If you're just starting and exploring different ways to learning to code, consider Bubble! Bubble lets you build a fully functional web/iOS app with **Visual Programming** There is a bit of learning curve to understand the fundamentals of visual programming. Hope it helps, let me know if I can add any further info on this.
- Codecamy, W3schools, and sites like those will help you get from 0 to 1. Github will help you get from 1 to 10. To use the metaphor of literacy, if tools like Codecademy teach you how to write words and sentences, Github teaches you to write essays and books. Once you know what a function, a loop, an object, and an array are, Github will be your best friend. It's a directory of thousands or millions of free programs written in every language, of every level of complexity. You can find one-line programs and 1-million line programs. One of the best ways to learn how to code is to read and manipulate other people's code. A few times a week I download a different project from Github, run it, play with it, and read through the code to understand how it works. Whenever I'm building something specific, I try to find a project on Github doing something similar. I look at their implementation, and it helps me greatly in building my own. Github is technically version-control. It's technically meant to help software professionals AS they build software. Secondarily though, it is the best resource for learning how to code on the web.
- A simple programming "game" that teaches you coding while also demonstrating why algorithms are important, how to use an API, and how testing works. Can just jump right into it with any browser, so it's very accessible. Certainly not enough on its own, but its a cool supplement for learning to code.
- keyul made this productQuick Code has a great collection of all the free courses available to learn different programming languages. These free courses are very useful for people who want to start learning code and also someone who needs to revise their concepts in different programming skills.