New tools/technologies/languages/libraries come out every day. This is great because it means that the software world is growing and developing. But the abundance of software options is also cluttering the sphere.
I'm not a software developer nor by profession or training. Yet I write a lot of code on daily basis. Coding is my go to tool.
In the past several years I've been trying to learn all sorts of software aspects.
My learning path consisted of a lot of research and I want to share my insights and save other fellow developers some time.
I'll admit most of the research took weeks or even months sometimes to complete. I'll try to provide some those insights on a silver platter. Some insights will be server on the golden patter, if you pay for them 🤑
Modern software development equips developers with an endless stream of tools, programming languages and libraries. As a novice that starts out you are bound to get lost.
Sure if you are a front-end specialist, a react specialist or a docker specialist your world is manageable. But if you try to build end to end prototypes you are exposed to:
MISSING PICTURE of CONCEPTS
There are so many coders out there complicating the software world.
Linux/unix philosophy is extremely simple yet really powerful. It allows us to do enormous amount of things with really basic commands.
Just the full stack from UI to number crunching involves five different languages and bash.
Not to mention that each of those filed requires mastering of completely different concepts and principles.
Then to learn a new library for each of those concepts every few months no thanks.
I would argue that the majority of software developers fall into one of the two camps:
Mindlessly using libraries left and right can have serious side effects. Sure if you need to hack together a quick solution in matter of minutes, libraries are great.
Yet at some point you realise that your quick and dirty hack won't be robust enough in the long term.
Tool you used fits your needs partially. So instead of writing the solution you are fighting the tools and paradigms that they impose.
I'm not saying no to tools/libs/frameworks I'm just saying that you should be cautious how much tools you use and when.Can we simplify the software to the base essentials by focusing on: protocols, core concepts and basic principles.
Few blog posts:
There are several attempts out there to simplify the software world:
But in my opinion we need to go even further.
Get the newsletter: