Last week, I shared my tips for new developers and how to start coding. I also wanted to share my favorite free resources for learning how to code. I have used or gone through each of these personally, so I can vouch for them being good quality and beginner friendly!
For HTML and CSS
- A game for learning CSS selectors: CSS Diner
- A game for learning CSS Flexbox: Flexbox Froggy
- A game for learning CSS Grid: CSS Grid Garden
- A video I made for learning CSS from zero: Learning CSS Through Creating Art
- An awesome CSS Grid series by Jen Simmons: Layout Land
For JavaScript
- FreeCodeCamp
- A video series introducing JavaScript: Khan Academy Computer Programming
- An awesome more advanced written introduction to JavaScript: A re-introduction to JavaScript
- 30 days of JavaScript challenges with corresponding videos by Wes Bos: JS 30
For other Programming Languages and Concepts
- This site has it all -- from HTML, CSS, and JS through frameworks and other programming languages. It has a unique REPL tutorial format: Code Academy - this would be my top recommendation for where to start.
- Learn a web framework -- from the command line through Python and Django and through HTML and CSS -- all in roughly a day: Django Girls - their online tutorial was where web development clicked for me -- it was very pivotal in my career!
- Try Ruby code directly in your browser: Try Ruby
- Github has a series of tutorials for learning both Git and GitHub directly in the browser: Try Git
- A full list of resources for learning Python
For Computer Science
- A series of illustrated guides to computer science fundamentals: BaseCS - there are also podcast and video versions of some of these articles!
- A bunch of cheat sheets I wrote when studying for interviews: Coding Cheat Sheets
- Video versions of a lot of classes including computer science classes: MIT on YouTube
For Code Challenges
- Tons of challenges with difficulties attached: CodeWars
- Another code challenge site with more consistency: HackerRank
- Mathematical coding problems: Project Euler
Awesome beginner Libraries
- Build art with JavaScript: P5 JS
- Build a customized map with JavaScript: Leaflet
- Build virtual reality applications with HTML: A-Frame
- Build a JavaScript game: Phaser
Communities
- Ask questions with the #explainlikeimfive, #help, and #meta tags dev.to
- Participate in Twitter chats, listen to awesome motivational podcasts, and read helpful blog posts: CodeNewbies - they also have a Slack group!
Your Favorites
Again, these are the resources that I have used myself or gone at least gone through, so I can definitely recommend them. Since I do mostly Python and JavaScript development, these lean pretty heavily in that direction! Tweet me your favorite resources! If you liked this article, subscribe to my weekly mailing list with my favorite links from the week and all of my writing from that week!
Discussion (54)
Personally I felt like most of the resources we find online are great, However Harvards CS50 course teaches a student from the ground to the top. Great emphasis on algorithm, thinking and in some ways teaching how to learn and think in cs.
Currently taking it (on Week 4 wherein they elaborate a bit on data structures) and all I can say that it is good stuff. The problem sets they give are also quite of a challenge (at least for me). Depends on how you approach the problem, anyway.
I definitely recommend only if you have the time. My progress with CS50 is becoming a lot slower now that the concepts introduced and the problem sets is becoming harder and I'm also studying the gist of electronics now so my time is divided (not to mention some stuff outside of those things).
I also heard wherein some of the takers in CS50 completed it in a year so there's another consideration for you.
Thats a really good one :)
Could you drop a link to this? Thank you
edx.org/course/cs50s-introduction-...
here you go
Do know where to find this course in youtube?
youtube.com/watch?v=jjqgP9dpD1k
freenode.net port 6666
I usually recommend to check the "awesome list" for your programming language:
github.com/sindresorhus/awesome/bl...
FreeCodeCamp should be here.
I'll also toss in dev.to as a tool. Obviously I'm biased, but If you come actively seeking help, you will find it comes to you a lot of the time.
Check out @brendazam for an example of someone using the platform really well in this regard.
[Deleted User]
Been a beginner learning online is hard, too many questions and a lot of information. Having a community as Dev.to allows me to ask without been judged and get the support that I need to stay focused. Ben and Ali you both are an inspiration, thanks for all your content. Hugs & Husky love 🐶👩🏻💻
Totally agree! Going to add in a communities section right now!
I added a Google custom search for devdocs.io, it's a really handy resource full of documentation for pretty much every language or framework. Plus it works offline!
Also, dev.tube/ is basically the Netflix of dev videos, very handy.
And once you're ready to start looking for a coding job, I recommend pramp.com, which pairs you up with other students to practice interview-style coding challenges.
I would add Practical Javascript and MongoDB University to the list. Gordon Zhu's course is one of the best introductions to Javascript that I've ever came across and MongoDB University is great source for intro to NoSQL databases.
university.mongodb.com/courses/cat...
watchandcode.com/courses
I love watch and code! It helped me drastically!
Free Programming books from StackOverflow
goalkicker.com/
Wow !
I never heard about it before !
Thanks a lot!
I have some folders of bookmarks for this purpose, as I don't have the time now to go trough them I would like to add:
Do not throw all these resources to a new starter, filter them based on on the developer experience and future, and share them when needed.
I have 2 main categories or mentees:
The main idea is that, CS and other soft skills will add value on the long run, and they can build a strong foundation to build upon. The downside is that it will not bring much value at the beginning, unless you aim for a big tech company that build tools for other devs, and work at a more low level (instead of building products for end consumers).
Also some big categories are missing from here I think (not much just the big picture):
Been coding for 24 years now, start at age 11 and now 35. Love that I still learn new things from new programmers. Really appreciate you sharing your resources!
I would love to suggest adding Udemy to the list. They always have "sales" where you can get their courses for less than $20 bucks. They are highly well done and an amazing resource.
Awesome resources but I think this is going to be one of those article that's gonna be in my bookmarks but I rarely open it. Thanks for the list :)
Thanks for sharing
I created my list too - dev.to/devlorenzo/the-ultimate-com...
The ultimate Cheat sheets compilation (200+) - 🔥🎁 / Roadmap to dev 🚀
DevLorenzo ・ Mar 2 ・ 15 min read
Great list of resources; well researched. In addition, my blog, thejavascriptninja.com, has some awesome Javascript learning content that you might want to check out if you're interested. Awesome job, keep up the great work.
I like You don't know JS . Great free reading from your phone while queuing.
I like and would recommend some of the already mentioned. Others I didn't know them. If you speak Spanish, I'd also recommend CodigoFacilito 😊
Codingame.com is another site for Code Challenges
Jep, I wanted to recommend that too :D Challenging and fun at the same time! :)
i've found quite a few interesting and helpful tutorials on css-tricks.com/ ;)
I would add Shay Howe's HTML & CSS tutorials and P1XT's Guides to the list:
learn.shayhowe.com/advanced-html-css/
github.com/P1xt/p1xt-guides
Mam can you guide me on, which library from smtplib or send_mail should I use to send emails through a django website.
Thanks
A free PDF for new programmers: Introduction to Programming with Xojo
Why a new programmer should learn an exotic language?
Learning to program does not mean "learning a language". It means learning the concepts behind programming that you can apply to any language. Starting with a language that is simpler can make it easier to learn these basic concepts and prevent frustration (and even giving up entirely on learning to program). Once you've learned the concepts it makes it much, much easier to learn other languages. In general, most programmers know several different programming languages.
Adding to this collection,
If someone wants to keep updated on front-end tips and news - smashingmagazine.com
Thank you so much Ali! This is very helpful.
You forgot "THIS IS SPARTA sorry CS50!!"
Geeks for Geeks is another good resource for computer science puzzles and problems. Mostly useful for interview prep.
I LOVE listening to the Syntax podcast with Wes Bos and Scott Tolinski. They are full-stack devs who talk about all kinds of things. syntax.fm/
You don't know JS is also great to bookmark and read from phone whole queueing.
what is the best place to learn JavaScript??
Another ones
Ruby koans
Code combat
Thanks
Another one I love for JS katas is es6katas.org.
what is the best place to learn JavaScript