The world of software development is large. There are plenty of concepts to discover, tools to learn and methodologies to master and it can be difficult to know how to get started.
This is a list of free resources that you may find helpful in learning about various concepts, tools and methodologies related to software development.
Every link has its place in this list if it can help a developer discover the topic in question.
?> You can find resources in your language by using the top right menu. If your language is not there, you can help us by adding your language with a Pull Request.
Tags
Each link is suffixed with one of the following 4 tags in order to give more information about its content:
What
: the link presents the concept, tool or methodology and explains its foundationsWhy
: the link explains in which cases a developer may need to use this concept, tool or methodologyHow
: the link explains the basics necessary to set up this concept, this tool or this methodologyResources
: the link groups together resources to learn about this concept, tool or methodology
Of course a link can cover several tags at the same time, in that case each tag is added in the order from the most represented to the least represented.
You can contribute to this list by creating a Pull Request in which you can propose a new link or a new category.
Take a look at the Contributing guide for more details.
- Hexagonal Architecture: three principles and an implementation example [blog.octo.com] →
What
Why
How
- Redux docs [redux.js.org] →
How
- NgRx docs [ngrx.io] →
How
- Vuex docs [vuejs.org] →
How
What
Why
- 12 factor app [12factor.net] →
What
Why
- Awesome CI and CD [github.com] →
Resources
- What is CI/CD? [redhat.com] →
Resources
What
Why
- Continuous delivery vs. continuous deployment [azure.microsoft.com] →
What
Why
- What is accessibility? [developer.mozilla.org] →
What
Why
How
- An Introduction to Domain Driven Design and Its Benefits [dzone.com] →
What
Why
- Domain Driven Design Quickly [infoQ] →
What
Why
How
- Domain Driven Design website →
What
Why
How
- Professor Frisby Introduces Composable Functional JavaScript[egghead.io] →
What
Why
How
- What is Extreme Programming (XP)? [agilealliance.org] →
What
Why
How
- Extreme Programming for Beginners made Easy – Roles & Practices [pm-training.net] →
Why
How
- What is a Sprint Retrospective? [scrum.org] →
What
Why
Resources
- Heartbeat Retrospective [agilealliance.org] →
What
Why
- Retrospective Playbook [atlassian.com] →
How
- Code Review Developer Guide [google.github.io] →
What
How
Resources
- Code Review — The Ultimate Guide [freecodecamp.org] →
Why
How
- Introduction to Test Driven Development [hackernoon.com] →
What
Why
How
- An Introduction to Test Driven Development [accu.org] →
What
Why
How
- Introduction to Test Driven Development [youtube.com] →
How
What
- What is Test Driven Development (TDD)? Tutorial with Example [guru99.com] →
What
Why
How
- Pair Programming Guide [medium.com] →
What
Why
How
- The Benefits of Pair Programming [medium.com] →
What
Why
- Beginner's Series to: JavaScript [youtube.com] →
How
,What
,Why
- Beginner's Series to: Node.js [youtube.com] →
How
,What
,Why
- Python for Beginners [youtube.com] →
How
,What
,Why
- The Art of Command Line [github.com] →
How
,Why