After attending a great coding bootcamp (CodeClan), I've been a software engineer for four years, and I've been coding in various ways since I was a teenager. This is an evolving list of free resources for people starting out. I'm including books, articles, interactive tutorials, and anything I have found useful.
I work primarly making webapps. I am not super familiar with native mobile app development. These resources are primarily about familiarising oneself with the basic principles of programming, and the architecture of websites and web apps.
This list is intended for total beginners. They're resources I've found along my journey that I have found particularly useful. I am sure there are other excellent resources avaiable and I'd love to hear about them. This list currently only includes resources I've used so they are genuine recommendations.
- This is an amazing introduction for total beginners. The reason it's so good is that it immediately places you in an environment analogous to one you'd be using as an actual developer. It mandates that you use git, and test driven development - two essential processes. It also has a fantastic community of learners, and a live chat functionality where other students will help you out when you get stuck. FlatIron School
- Free CodeCamp is similar in style to CodeAcademy but in my experience it's more effective. Founded by Quincy Larson, it takes you through a track of courses that presuppose no knowledge and move at a good pace. Starting with the fundamentals of HTML and CSS, FCC offers free certifications in Front End Development and Data Visualization. Ever better, once you've completed courses, you're able to gain experience and portfolio work because FCC link members up with non-profits who need development help. AND it's all totally free. AND there's a worldwide community of Free Code Camp members who host regular meetups where you can connect with other learners. FreeCodeCamp.
- Udacity is an online learning portal, full of classes on all kinds of technical subjects. While they offer paid ongoing "nanodegree" programs, there is a wealth of free courses available. This course is a good introduction to the basic structure of a webpage and how to make things appear on it! It has a good combination of short videos and practical exercises, so I found it easy to follow and fit into my schedule. Intro to HTML and CSS
- Exercism is an amazing resource. It's full of little puzzles and challenges to help you familiarize yourself with languages and their features, and has an active community where other coders will give you feedback on your solutions and coding tips. I cannot recommend it highly enough!
- Zed Shaw's series of books cover multiple languages and technologies, and the Ruby instance is available for free. Shaw emphasizes practical work, large amounts of typing and reading code and he provides some great techniques for helping knowledge stick and learning how to spot mistkaes in your code. This series was what helped me really become comfortable with writing code, and it's a perfect way in for a total beginner to immerse themelves in coding. Learn Ruby The Hard Way
- Learn To Program was recommended as part of the course prep work at my bootcamp, and it's a great introduction to the basic concepts of programming. Pine uses Ruby but covers concepts that are included in pretty musc every programming language. It is pitched at complete beginners and goes through concepts clearly, with plenty of exercises to consolidate your learning. The free version is available here and it's possible to purchase a paid version with extra content and exercises.
- Laurie Voss (former COO of npm) gave this talk at a bootcamp and it's the perfect thing to watch as a junior developer. Subtitled "A flythrough guide to Web Development's best practices", it covers topics that might be alien to a total beginner but are important to understand as soon as possible. These include debugging, databases and security. It's a whirlwind tour through a lot of aspects of programming, is super insightful, very accessible and most importantly, funny. Part One // Part Two Plus, a helpful person turned it into a infographic here.
Life As A Developer: My Code Does Not Work Because I Am A Victim Of Complex Societal Factors That Are Beyond My Control…. - James Mickens
One of my favourite things that happened as a side effect of my learning to program was that I became aware of James Mickens. A Harvard professor, Microsft engineer and security expert, Mickens delivers tech talks that do not linger too long on any particular topic and are extremely funny musings on programming and the tech industry. I have watched plenty of actual comedy that is much less funny that this talk. This talk conveys the fun and black humour that often comes along with life as a programmer. Life As A Developer: My Code Does Not Work Because I Am A Victim Of Complex Societal Factors That Are Beyond My Control….
- BaseCS is a fantastic series of illustrated posts about computer science fundamentals by progammer and writer Vaidehi Joshi. She uses pictures, analogies and examples to make concepts including different types of data structures and algorithms accessbile to beginners. Base CS
- The great article series is a now a podcast! Vaidehi and Saron Yitbarek of CodeNewbie cover the topics in the articles and more. I cannot overstate how useful this podcast is for friendly and clear explanations of concepts that initally seem scary. Base CS Podcast
- This is a podcast hosted by the amazing Saron Yitbarek. Every week she interviews someone from the world of coding, covering everything from the ethics of coding to getting your first job as a developer to accesibility. These interviews are all conducted with noobs in mind, so they become interesting deep dives, while remaining accessible. CodeNewbie Podcast
- Ok, I appreciate that the thought of meetups can be a little bit scary. Meeting people - in real life? Ugh. Codebar is amazing. Its mission is to enable underrepresented people to learn programming in a safe and collaborative environment and it's perfect for beginners and specifically those from groups underrepresented in tech. They host meetups in cities all over the world where tech professionals volunteer their time to teach about different languages and technologies. In my experience it's been a fun and freeform environment where learners are paired with students based on what they want to learn. It's a great place to support your self-study and ask questions of other learners and people with tech industry experience. Meetups in general are a fantastic way to get a different perspective on what you're learning, and to talk through issues you might be having with your code, and CodeBar is a welcoming and inclusive place to start. Plus, it's totally free and there's always food! CodeBar
- There are SO MANY communities for you to join on Slack (and Discord) where there are tons of other people at various stages in their coding journey. You can share resources, ask people questions about what they do and get help debugging. Here are a few lists of communities you can join - I'd particularly recommend the CodeBar slack but there are TONS - find one you like! List of slack communities // Another list with some more to join!
- CodeNewbie is a fun, open and diverse community of people all learning to code. There are chats, events, challenges, and the podcast mentioned above. It's an amazing resource for learners.