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!
- 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
- 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
- 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
- Tons of challenges with difficulties attached: CodeWars
- Another code challenge site with more consistency: HackerRank
- Mathematical coding problems: Project Euler
- Build virtual reality applications with HTML: A-Frame
- 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!
As software gets more and more integrated into our lives, the industrialization of its crafting process becomes inevitable. But the over-generalization of software engineering can be crushing the creative side of programming.