- Programming paradigms: Functional, OOP.
- Databases: Relational (PostgreSQL) and Non-Relational (MongoDB, Redis).
- Git.
- Git Flow.
- Agile (Scrum).
- Lean (Kanban).
- Testing (Unit testing, Integration testing). TDD vs BDD.
- REST.
- Basic theory:
- https://en.wikipedia.org/wiki/Functional_programming. Pay special attention to the following concepts: High-order functions, Pure functions.
- Basic theory:
- SOLID principles:
- Duck typing:
- Dependency Inversion:
- Basic theory:
- https://en.wikipedia.org/wiki/Relational_database. Pay special attention to the following concepts: Relationships, ACID transactions, Views, Constraints, Normalization.
- PostgreSQL:
- Philosophy: https://www.postgresql.org/about.
- Basic theory:
- MongoDB:
If you want to play with PostgreSQL and/or MongoDB, you can generate a fake set of data using the scripts from this repo https://github.com/WeDevelop-ARG/generate-test-data and import it into your schema.
- Git tutorial by Git: https://git-scm.com/docs/gittutorial.
- Git flow:
- https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
- https://www.youtube.com/watch?v=1SXpE08hvGs (mute it, the music is super annoying).
- Basic theory:
- Basic theory: https://www.scrum.org/resources/what-is-scrum.
- Basic theory and principles: https://kanbanize.com/lean-management/what-is-lean-management.
- Excellent video explanation: https://www.youtube.com/watch?v=wfsRAZUnonI.
- Basic theory: https://kanbanize.com/kanban-resources/getting-started/what-is-kanban.
- Excellent explanation by Eric Brechner: https://www.youtube.com/watch?v=CD0y-aU1sXo.
- Basic theory:
- TDD (Test-Driven Development) / BDD (Behavior-Driven Development):
- Testing, TDD, BDD, Checking: https://www.youtube.com/watch?v=zatcvoNqSaI&list=PLrhzvIcii6GPvcDWwQ4aeFn8qWESTEbTX.
- Integrated tests are a scam: https://vimeo.com/80533536.
- Testing + Agile = Refactoring:
Don't forget to ask any question you have. Also, contact your Leader to get in touch with team members and learn how we use the things you just learned.
- Design patterns: https://www.youtube.com/watch?v=v9ejT8FO-7I&list=PLrhzvIcii6GNjpARdnO4ueTUAVR9eMBpc. I'd suggest watching only 1 video a day and dig deeper about each pattern.
- Clean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin. ISBN-10: 0132350882, ISBN-13: 978-0132350884. This is one of the books you must read. Get it as soon as you can. You will love it.
- Clean Architecture : A Craftsman's Guide to Software Structure and Design, by Robert C. Martin. ISBN-10: 0134494164, ISBN-13: 978-0134494166.
- The mythical 10x programmer: http://antirez.com/news/112.
- Refactoring: Ruby Edition, by Jay Fields, Shane Harvie, Martin Fowler and Kent Beck. ISBN-10: 0321984137, ISBN-13: 978-0321984135. There are other editions of this book using different languages. Even though refactoring applies for every language, I'd suggest getting the Ruby edition since it uses features from a dynamic, intepreted, and object oriented language, as is Ruby. This book also belongs to the list books you must read.
- Getting Work Done, by Harvard Business Review. ISBN-10: 1625275439, ISBN-13: 978-1625275431. This book has really helped me to achieve more things in less time. Self organization is key.
- Agile Project Management with Kanban, by Eric Brechner. ISBN-13: 978-0735698956, ISBN-10: 0735698953.
- Agile Software Development, Principles, Patterns, and Practices, by Robert C. Martin. ISBN-10: 0135974445, ISBN-13: 978-0135974445. Next block