The following list is by no means exhaustive, and I've tried to keep it as objective as possible. Pull requests are welcome, as is discussion in the form of issues. Suggestions, problems, feedback is also welcome.
Name | Description | Level |
---|---|---|
Coursera | Massive Open Online Course (MOOC) provider | All levels |
O'Reilly Online | Subscription-based online book provider. Contains entire O'Reilly catalogue and more. | All levels |
Udemy | Massive Open Online Course (MOOC) provider | All levels |
MIT Open Courseware | Free course material provided by Massachusetts Institute of Technology. | Intermediate - Advanced |
acloud guru | Subscription-based cloud service training platform. Covers AWS mainly, but also Azure and GCP. Also includes the entire Linux Academy catalogue. | All levels |
Execute Program | Subscription-based spaced repetition learning platform. Web development heavy, with a bit on SQL. | Beginner - Intermediate |
Udacity | Online 'nano-degrees' | All levels |
Complexity Explorer | Free deep dives into technical topics ranging from mathematics, machine learning, computer science etc. | All levels |
Lynda / LinkedIn Learning | Wide range of online software development courses provided by LinkedIn | All levels |
Pluralsight | Massive Open Online Course (MOOC) provider | All levels |
Codecademy | Online interactive courses to learn to code and different languages / frameworks. | Beginner |
Skillshare | Massive Open Online Course (MOOC) provider. Provides Web Development courses. | Beginner - Intermediate |
FreeCodeCamp | Free (non-profit) online learning platform with interactive lessions and certifications | Beginner |
LeetCode | Interactive computer science interview questions platform. Typical FAANG interview questions. | All levels |
GameDev.tv | Online videos and courses for game development and art in Unity, Unreal, Godot, Blender etc. | All levels |
Name | Description | Level |
---|---|---|
Writing an Interpreter in Go | A test-driven development (TDD) focussed approach to writing an interpreted programming language purely in Go. | All levels |
DevOps with Docker | Free online Docker course provided by the University of Helsinki | Beginner |
FlexBox Froggy | Interactive gamified way to learn CSS flexbox | Beginner - Intermediate |
Vimtutor | A tutorial for Vim that comes with the commandline text editor. Accessed with the vimtutor command in the terminal. |
Beginner |
Crafting Interpreters | An online guide on creating an interpreter for a new programming language, in Java. | All levels |
Design of Computer Programs | Free course on designing solutions in Python, using Peter Norvig's problem-solving techniques and clean coding style. By Peter Norvig & Udacity | All levels |
Epic React | A series of courses on advanced React concepts, covering testing and architecting of React applications as well as user experience. Courses by Kent C. Dodds | Intermediate, Advanced |
Name | Description | Level |
---|---|---|
GOTO Conference Talks | Recorded talks from the GOTO conference. | All levels |
YOW! Online | Australian conference talks with workshops and Q&A sessions | All levels |
Name | Description | Level |
---|---|---|
Refactoring Guru | A free and comprehensive guide to design patterns, refactorings and code smells. | Intermediate - Advanced |
Game Programming Patterns | Robert Nystrom's guide to applying design patterns in games. Could also apply to a lot of systems programming. | Intermediate - Advanced |
Name | Author | Description | Level |
---|---|---|---|
Accelerate: The Science of Lean software and Devops | Nicole Forsgren (Phd), Jez Humble and Gene Kim | A research-based book describing the application of technology and Devops principles to building an organisation. | Intermediate+ |
Test Driven Development By Example | Kent Beck | A straight-forward introduction to Test Driven Development (TDD) using various examples in both Java and Python. Discusses best practices and the 'greatest hits' of TDD. | All levels |
Clean Architecture | Robert C. Martin (Uncle Bob) | A primer on the SOLID software engineering principles, software structure, discussions on cohesion and coupling in software components. Java examples, mainly focusses on the object-oriented paradigm but very easily translatable into others. | All levels |
If Hemingway Wrote Javascript | Angus Croll | Very tongue-in-cheek recommendation, but a great read for those interested in the art of reading code as prose. Quite funny too. | Intermediate+ |
The Art of Leadership: Small things done well | Michael Lopp | Lots of great lessons to be learnt on leadership from all levels, from manager to director to executive, all told through the lense of a Silicon Valley veteran | All levels |
The Design of Everyday Things | Don Norman | A great introduction into good design principles and usability. It's an entertaining read and a must-have for anyone producing anything which is used by people | All levels |
Designing Data-Intensive Applications | Martin Kleppmann | A good high-level overview of data-centric application design and the benefits, pitfalls of various technologies | All levels |
The DevOps Handbook | Kim, Humble, Debois & Willis | A thorough introduction into the principles of DevOps and how and organisation can use them to increase competitiveness, quality and reliability of software. Loads of examples from Etsy, Google, Facebook etc. | All levels |
The Phoenix Project | Gene Kim | A novel about a company with a failing Enterprise IT division and how the ideas of DevOps, Agility / Lean are applied gradually to bring the company back into profitability. Humourous and at times feels very real! | All levels |
The Pragmatic Programmer | David Thomas & Andrew Hunt | Illustrates the best approaches and major pitfalls of many different aspects of software development. | All levels |
Refactoring: Improving the Design of Existing Code | Martin Fowler | Explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use. | All levels |
Working Effectively with Legacy Code | Michael C. Feathers | This book provides programmers with the ability to cost effectively handle common legacy code problems without having to go through the hugely expensive task of rewriting all existing code | All levels |
The (Delicate) Art of Bureaucracy | Mark Schwartz | Discusses bureaucratic process within technology firms and divisions with respect to changing it to match DevOps and Agile principles. Discusses 'Digital Transformation' within bureaucratic systems. | All levels |
Release it! | Michael T. Nygard | A very in-depth technical book on how to write the most robust production-hardy systems. Goes in depth for all levels of the stack (from networking to containers to exception-handling). Contains many great anecdotes as well. | Intermediate |
Fundamentals of Software Architecture | Mark Richards & Neal Ford | A good primer into the different kinds of software architecture (e.g. Monoliths, microservices, service-oriented) which touches on the pro's and con's of each. Discusses not only the technical aspects but how an "architect" communicates and leads to express these concepts. | Intermediate+ |