A curated list of awesome software engineering resources.
🔴 REST API | 🧩 GraphQL |
📓 Linux | ❔ Windows | ✨ Proxmox |
📊 SSH | 🔖 Git | 📠 Vim |
🎻 LibreOffice | 💎 Kdenlive | ✒️GIMP |
📚 ZFS | ⛳ LVM | 🎹 tmux |
🧮 Ansible | [ 🍃 Docker | 🌌 Kubernetes |
🔐 KeePassXC | 🗿 iptables |
- 🎞️ [rus] What is OOP by FoxMinded
- 🎞️ [rus] OOP: Incapsulation explained by FoxMinded
- 🎞️ [rus] OOP: Inheritance explained by FoxMinded
- 🎞️ [rus] OOP: Polymorphism by explained by FoxMinded
- 🎞️ [eng] OOP explained by Mosh
- 📜 [eng] Why OOP is not a silver bullet
- 📜 [eng] Inheritance vs Composition. Which should you use?
- 🎞️ [rus] 7 Common mistakes of Junior developers
- 🎞️ [eng] 5 Programming Anti-patterns for Beginners
- 📜 [eng] Anti-patterns and Code Smells
- 🎞️ [rus] Why it is bad to return NULL in Java
- 📜 [eng] The Anti Pattern of Getters And Setters by Ajeng Sugiarti
- 📜 [eng] Avoid getters and setters whenever possible by scottshipp
- 📜 [eng] Software Engineering Anti-patterns catalogue in Wikipedia
- 🎞️ [eng] How to Review Someone Else's Code by Codecademy
- 🎞️ [eng] Code Review Best Practices by JetBrains
- 🎞️ [rus] Problem Domain Decomposition by FoxMinded
- 🎞️ [rus] DRY principle
- 🎞️ [rus] DRY, KISS, YAGNI
- 🎞️ [rus] SOLID principles
- 🎞️ [rus] SOLID principles & Architecture: a lecture from FPMI
- 🎞️ [eng] Frameworks & Inversion of Control
- 🎞️ [eng] Dependency Injection & Inversion of Control
- 📜 [eng] Dependency Injection vs Inversion of Control
- 📜 [rus] Low Coupling & High Cohesion by German Gorelkin
- 📜 [eng] Low Coupling & High Cohesion by Ammar Verbi Merakli
- 📜 [eng] Demeter's Law: Don't talk to strangers by Carlos Caballero
- 📜 [eng] GRASP Design Principles by Krzysztof Kwieciński
- 📜 [eng] What are General Responsibility Assignment Software Patterns? by Jakub Kapuscik
- 📜 [eng] Object-oriented design: GRASP patterns by J.Serrat
- 📜 [eng] ADVANCED SOFTWARE DESIGN: GRASP, SOLID, YAGNI, DRY, KISS, OTHER PRINCIPLES BY Dave Clarke
- 🎞️ [eng] Design Patterns by Mosh
- 📖 Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- 🎞️ [rus] Design patterns (brief)
- 🎞️ [rus] Design patterns (full)
- 📜 [eng] Java Design Patterns - online catalog
- 📜 [eng] The Builder pattern vs Java syntax
- 📖 Clean Architecture, A Craftsman's Guide to Software Structure And Design, Robert C. Martin
- 🎞️ [rus] SOLID principles & Architecture: a lecture from FPMI
- 🎞️ [rus] Clean Code lecture by FoxMinded
- 📖 Clean Code: A Handbook of Agile Software Craftsmanship,Robert C. Martin
- 📖 Refactoring: Improving the Design of Existing Code, Martin Fowler, Kent Beck, 2st edition
- 🎞️ [rus] Refactoring lectures by FoxMinded
- 📜 [eng] The Art of Refactoring: 5 Tips to Write Better Code
- 📜 [eng] Code Refactoring Best Practices: When (and When Not) to Do It
- 🎞️ [eng] A brief UML tutorial by Lucidchart
- 🎞️ [eng] A detailed UML tutorial by Derek Banas
- 📜 [eng] noUML explained, UML criticism by Vladimir Frolov, part1
- 📜 [eng] noUML explained by Vladimir Frolov, part2
- 🎞️ [rus] Who is who in Software Development: Developer, QA, BA, PM - who are those people? by FoxMinded
- 🎞️ [rus] Phases
- 🎞️ [rus] Methodologies
- 🎞️ [rus] Debugging, lecture from FPMI, part1
- 🎞️ [rus] Debugging, lecture from FPMI, part2
- 📜 [eng] Debugging tips
- 📜 [eng] 10 Debugging Tips for Beginners: How to Troubleshoot and Fix Your Code Without Pulling Your Hair Out By Hartley Brody
- 🎞️ [rus] Unit Testing in Software Development
- 🎞️ [eng] TTD vs BDD 1
- 🎞️ [eng] TTD vs BDD 2
- 📜 [eng] Unit Tests vs Functional Tests
- 🎞️ [eng] TTD crash course
- 🎞️ [eng] BDD
- Go to "TestNG" and "Mockito" subsections below under "Java Frameworks" section.
- Go to "Serenity BDD" subsection below under "Java Frameworks" section.
- Go to "Jest" subsection below under "Java Script Frameworks" section.
- 🎞️ [eng] React Unit Testing
- 🎞️ [eng] 6 Things to Know When Switching to Linux from Windows by Chris Titus
- 🎞️ [eng] 6 Mistakes New Linux Users Make by Chris Titus
- 🎞️ [rus] Unix philosophy by unixway
- 🎞️ [eng] 5 Things I Hate About Linux by Chris Titus
- 🎞️ [eng] Which Linux Distribution? | Understanding Linux Distros by Chris Titus
- 🎞️ [eng] How to Choose a Linux Distribution by Chris Titus
- 🎞️ [eng] Debian vs Arch by Chris Titus
- 🎞️ [eng] Why Ubuntu is the Devil and Why So Many No Longer Use It by Chris Titus
- 🎞️ [eng] 15 Useful Linux Commands Every Linux User Needs | Learning Terminal Part 1
- 🎞️ [eng] 15 Useful Linux Commands Every Linux User Needs | Learning Terminal Part 2
- 🎞️ [eng] Bash tutorial
- 📜 [eng] zsh+OhMyZsh+fzf+powerlevel10k: Your terminal can be much, MUCH more productive by Ivan
- 📜 [eng] fzf: Why you should be using fzf, the command line fuzzy finder by Alexey Samoshkin
- 📜 [eng] Awesome Linux Configuration Scripts by Alliedium
- 🎞️ [eng] Git Bare Repository - A Better Way To Manage Dotfiles by DistroTube
- 🎞️ [rus] Arch Linux basics
- 🎞️ [rus] Arch Linux pacman
- 🎞️ [rus] Arch Linux AUR
- 🎞️ [rus] Arch Linux vs Manjaro
- 🎞️ [eng] Virtualize Everything! - Proxmox Install Tutorial by Craft Computing
- 🎞️ [eng] Proxmox VE 6.0 Beginner Tutorial - Installing Proxmox & Creating a virtual machine by Proxmox HHS
- 🎞️ [eng] Virtualize Windows 10 with Proxmox VE by Techno Tim
- 🎞️ [rus] Proxmox tutorial by realmanual
- 🎞️ [eng] How to Customize KDE | KDE Customization by Chris Titus
- 🎞️ [eng] KDE is Slow !?! | Disable Baloo File Indexer by Chris Titus
- 🎞️ [eng] Kdenlive Tutorial 2019 - Beginner Basics by Victoriano de Jesus
- 🎞️ [eng] 2020 Kdenlive Video Tutorials by Victoriano de Jesus
- 🎞️ [eng] Kdenlive Cinematic Title Animation by makinars
- 🎞️ [eng] 17 Reasons Why I Do Not Use Windows 10 by Chris Titus
- 🎞️ [eng] Speed Up Windows 10 in 2020 by Chris Titus
- 🎞️ [eng] Git Tutorial - Learn Git in 1 Hour by Mosh
- 🎞️ [rus] Git Basic Training
- 📜 [eng] Awesome Git Exerises by Alliedium
- 📜 [eng] Git exercies online by fracz
- 🎞️ [eng] [eng] Getting started with Apache Ignite part 1
- 🎞️ [eng] Getting started with Apache Ignite part 2
- 🎞️ [eng] Getting started with Apache Ignite part 3
- 🎞️ [eng] Getting started with Apache Ignite part 4
- 🎞️ [eng] Moving Apache Ignite into Production: Best Practices for Distributed Transactions
- 📜 [eng] Boosting Jira Cloud App Development with Apache Ignite and Spring Boot
- 📖 High Performance in-memory computing with Apache Ignite: Building low latency, near real time application, Shamim Ahmed Bhuiyan, Michael Zheludkov and Timur Isachenko
- 🎞️ [rus] Java Overview by FoxMinded
- 🎞️ [rus] Java Application Development: the first steps by FoxMinded
- 📜 [eng] AWESOME JAVA: A curated list of awesome frameworks, libraries and software for the Java programming language.
- 🎞️ [rus] What is a Java server, comparison of Java Servers: Tomcat, Jetty, Wildfly, Glassfish, IBM WebSphere, Oracle WebLogic
- 🎞️ [eng] Java Tutorial for Beginners by Mosh
- 🎞️ [rus] [rus] [rus] Java For Beginners by FoxMinded
- 🎞️ [rus] [rus] Why it is bad to return NULL in Java
- 🎞️ [rus] Never ever use Lombok! Why this library is bad by FoxMinded
- 📖 Thinking in Java, Bruce Eckel, 4th edition
- 📜 [eng] Java Tutorials by JournalDev
- 📜 [eng] Checkstyle is a tool for enforcing a Code Standard in Java
- 📜 [eng] Jenkins Warnings Next Generation Plugin
- 📜 [eng] How to Centralize your Checkstyle Configuration with Maven
- 🎞️ [eng] Simple Explanation of Maven and pom.xml
- 📜 [eng] Maven Tutorial
- 📜 [eng] Multi-Module Maven Project by Baeldung
- 📜 [eng] ExecutorService - 10 tips and tricks
- 📜 [eng] InterruptedException and interrupting threads explained
- 📜 [eng] Introduction to TestNG
- 📜 [eng] Why TestNG is better than JUnit
- 🎞️ [eng] Java Unit Testing with TestNG and Mockito
- 📖 Practical Unit Testing with TestNG and Mockito, Tomek Kaczanowski
- 📜 [eng] Unit Tests with Mockito: Tutorial
- 📜 [eng] Mockito in six easy examples
- 📜 [ru] A sip of Mockito
- 📜 [eng] Mockito - Quick Guide
- 📜 [eng] Mockito When/Then Cookbook
- 📜 [eng] Usage of Mockito
- 📜 [eng] Mocking with Mockito: advanced techniques
- 📖 Practical Unit Testing with JUnit and Mockito, Tomek Kaczanowski
- 📜 [eng] How to implement test automation using Serenity
- 📜 [eng] Serenity BDD official documentation
- 📜 [eng] JBehave vs Cucumber JVM comparison
- 🎞️ [rus] What is JDBC? What is ORM, Hibernate & JPA? by FoxMinded
- 🎞️ [eng] Getting started with Hibernate
- 🎞️ [rus] Spring Boot JPA(Hibernate): let's add a database to our Java-based website by letsCode
- 🎞️ [eng] Hibernate Tutorial, Full Course
- 🎞️ [eng] Spring Boot Tutorial for Beginners by freeCodeCamp.org
- 🎞️ [rus] Comparing Spring and JavaEE by FoxMinded
- 🎞️ [rus] Spring Boot 2: let us build a simple website together! by letsCode
- 📜 [eng] Boosting Jira Cloud App Development with Apache Ignite and Spring Boot
- 📜 [eng] Faster Development with Spring Boot DevTools
- 📜 [eng] Optimize Your Dev Loop with Spring Boot Dev Tools
- 🎞️ [eng] Java Script Tutorials by Mosh
- 📜 [eng] AWESOME JAVASCRIPT: A collection of awesome browser-side JavaScript libraries, resources and shiny things
- 🎞️ [eng] Node.js Tutorial for Beginners: Learn Node in 1 Hour by Mosh
- 📜 [eng] AWESOME NODEJS: Delightful Node.js packages and resources
- 🎞️ [eng] React Tutorial for Beginners [React js]
- 📜 [eng] AWESOME REACT: A collection of awesome things regarding React ecosystem
- 🎞️ [eng] React in 30 minutes
- 🎞️ [eng] Learn useState In 15 Minutes - React Hooks Explained
- 🎞️ [eng] Learn useEffect In 13 Minutes
- 🎞️ [eng] Redux Tutorial - Learn Redux from Scratch
- 🎞️ [eng] React Unit Testing
- 🎞️ [eng] Python Tutorial - Python for Beginners [2020]
- 📜 [eng] AWESOME PYTHON: A curated list of awesome Python frameworks, libraries, software and resources
- Considering Rust by Jon Gjengset
- Rust Crash Course by Traversy Media
- Rust Linz, August 2020 - Ryan Levick - Why should I care about Rust?
- Introduction to Rust Part 1 by Ryan Levick
- Introduction to Rust Part 2 by Ryan Levick
- Understanding Rust Lifetimes by Ryan Levick
- Crust of Rust by Jon Gjengset
- Julia: a post-mortem
- Julia: a post-mortem: discussion on Julia's discourse
- Julia: a post-mortem: discussion on ycombinator
- Julia from the perspective of a pythonista
- What's bad about Julia by Jeff Bezenson
- Julia motivation: why weren’t Numpy, Scipy, Numba, good enough?
- JuliaCon 2019 | The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski
- Julia Academy
- Getting started with Julia
- 9 Cool Julia tricks
- Julia blogs aggregator
- Julia 1.6 highlights
- Julia is production-ready
- JuliaCon 2020 | The ups and downs of convincing to switch to Julia in a company | Jorge Alberto
- JuliaCon 2020 | State of Julia | Jeff Bezanson & Stefan Karpinski
- Julia performance tips
- Julia performance: benchmarking via BenchmarkTools.jl
- How to benchmark like a pro in Julia | Tom Kwong
- JuliaCon 2020 | Adventures in Avoiding Allocations | Brian Jackson
- How hard would it be to implement Numpy.jl, i.e. Numpy in Julia? Point 1
- How hard would it be to implement Numpy.jl, i.e. Numpy in Julia? Point 2
- Working with and emulating references in Julia
- Is Julia Dynamically Typed?
- Julia type system
- Libraries & parameterized types | MIT Computational Thinking Spring 2021 | Lecture 18
- DataFrames.jl performance benchmark
- DataFrames minilanguage explained
- Welcome to DataFrames.jl with Bogumił Kamiński
- Release announcements for DataFrames.jl
- DataFrames.jl: comparison with Pandas
- DataFrames.jl cheatsheet
- JuliaCon 2020 | Doing Scientific Machine Learning (SciML) With Julia
- MIT Course 18.337 - Parallel Computing and Scientific Machine Learning GitHub Repo
- MIT Course 18.337 - Parallel Computing and Scientific Machine Learning YouTube Channel
- [https://julialang.org/blog/2019/07/multithreading/#task_scheduling_and_synchronization]
- MIT Course 18.337 - Parallel Computing and Scientific Machine Learning GitHub Repo
- MIT Course 18.337 - Parallel Computing and Scientific Machine Learning YouTube Channel
- JuliaCon 2020 | Interactive notebooks ~ Pluto.jl | Fons van der Plas
- Pluto.jl Notebooks and PlutoUI Tutorial (Julia Programming)
- How to disable authentication
- How to increase notebook width
- Table of contents
- Dark mode
- Goodbye OOP
- Type-Dispatch Design: Post Object-Oriented Programming for Julia
- WhereTraits.jl
- BinaryTraits.jl
- Julia: how multiple dispatch works
- JuliaCon 2020 | Lessons learned on trait-based descriptions of graphs | Mathieu Besancon
- 🎞️ [eng] DevOps explained by IBM
- 📜 [eng] What is DevOps, DevOps lifecycle
- 📜 [eng] Continuous Delivery vs Continuous Deployment
- 📜 [eng] DevOps exercies by Bregman Arie
- 🎞️ [rus] Docker basics
- 📜 [eng] Docker Interview Questions
- 📜 [eng] Docker Compose Tutorial
- 📜 [eng] Docker Exercises by Bregman Arie
- 🎞️ [eng] Portainer - Lightweight Management UI for Docker
- 🎞️ [eng] What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners by Simplilearn
- 🎞️ [eng] You need to learn Ansible RIGHT NOW!! (Linux Automation) by NetworkChuck
- 🎞️ [eng] Minikube Basics and How to Get Started with Kubernetes by Peter Jausovec
- 🎞️ [rus] Kubernetes video tutorial
- 📜 [eng] Setting up a Kubernetes cluster with Kubespray
- 📜 [eng] Kubernetes exercies by Bregman Arie
- 📜 [eng] Jenkins Pipeline Tutorial
- 📜 [eng] Continuous Integration with Jenkins
- 🎞️ [rus] Jenkins Video Course in Russian
- 📜 [eng] Jenkins CheatSheet
- 📜 [eng] Jenkins Interview Questions