So, you want to be a more productive coder?
Yeah, yeah, design patterns and data structures and all that are important. But the truth is when it comes to building systems those will only get you so far.
Look at it this way: a great artist knows how to use brushes and paints and tools (but typically only uses a handful in their day-to-day work), but knowing how to use brushes and paints and tools does not make you a great artist.
“Coding” is all people seem to think about these days, but creating non-trivial software in a reasonable amount of time without going insane requires four skills:
Fact: React and React-Native have popularized some radically productive changes to developing complex stateful UI-driven software.
Fact: Despite the hype/promise, React will not let you develop once and seamlessly deploy across iOS, Android and Web.
Fact: Dropbox, AirBnB and other companies have given up on React and gone back to pure native development.
Before you snicker, know that I’ve been programming for fun since 1981 and professionally since 1988. In that time the same story has played out time and time again: some “miracle” technology appears that promises to dramatically reduce developer costs, people get excited, massive investments are made, expected savings aren’t realized, disillusionment sets in and cynicism darkens the skies until another new technology promises salvation. Wash, rinse, repeat.
In the 90's Microsoft created a cross-platform library for Mac and Windows. Great effort, but poorly received. OOP...