Programming Tutorials
This repository is a collection of tutorials for software engineers focusing on architecture, principles, best practices, and approaches to problem solving. The tutorials mostly focus on JavaScript with some HTML and CSS for front-end and Python or NodeJS for back-end services.
Topics
These are high-level topics that group tutorials into modules. They are not meant to be consumed linearly, and are therefore numbered with alchemy symbols instead of numerals.
🜄 Algorithms
This section looks at the different algorithms used in everyday problem solving. An algorithm is a series of predefined steps that must be performed to achieve a specific task. Like pressing a specific button sequence or combination in a video game to perform a move or activate a power-up. Similarly an algorithm requires a series of steps to be executed to achieve the desired output. Algorithms provide a flow for solving a problem, and thus the symbol for Water (🜄).
Sorting
🜃 Software Design Patterns
This section looks at different design patterns used in modern software. Design patterns help us solve our challenges without reinventing the wheel, and while there are many different ways to solve a problem in programming, these patterns have been refined and improved upon by many developers. They offer a way for engineers to quickly produce solutions that are scalable and maintainable with better code quality and a common language for engineers to communicate the architecture of the software. Design patterns are intangible and ethereal, hence the symbol for Air (🜃).
🜂 Testing
This section looks at different ways of testing our software. From unit testing specific functions, to testing entire user flows through the system. Testing is crucial for software stability and reliability and provide us with confidence when publishing software to production. Before releasing anything to production, the software must undergo a trial, and hence the symbol for Fire (🜂).