Will it really **transform** the way you make software and solve customer problems?
Sad news: Nope. Not _that_ much.
(Keeping reading for 30+ things that do! 👇)
If your architecture is bad, you're solving the wrong problems, your client doesn't understand when you try to explain things... then shiny tools don't help.
And these are fundamental to your business' success!
Will it make them a professional? Nope.
OK... then, what will?
✔Learning how the pros. do it and applying those techniques
✔Practice a lot
✔Figure out what techniques you use that are actually hindering from getting to the "next level"
These are concepts and techniques that can be used in any programming language, regardless of tooling.
✔ SOLID
✔ Design patterns and what problems they solve
✔ Knowing how to refactoring
✔ Knowing how to debug
✔ Understanding inheritance and the benefits + pitfalls of it
✔ Encapsulation
✔ Message passing techniques
✔ Data structures (when/how to use)
✔ Architecture and systems design
✔ How to organize your code
✔ How to estimate well
✔ How to plan a software project well
✔ How to communicate well with co-workers
✔ How to communicate well with non-programmers
✔ How to deploy software
✔ How to use and configure automated builds
✔ How to make proper unit tests
✔ How to make proper integration tests
✔ Asynchronous code
✔ Discovering how business processes actually work for your business
✔ Relational database design
✔ Graph database design
✔ Document database design
✔ When to use relational vs. graph vs. document?
✔ How to modularize monoliths?
✔ How to know what product features are necessary
✔ Understanding the industry your business solves for
✔ How to write documentation well
✔ How to present well
✔ How to teach other developers
✔ How to "level-up" an entire team
✔ How to decipher whether a "new" concept in the industry is actually an old one with a different name
✔ Etc.