As software engineers we tell each other to "pick the right tool for the job," but tbh,

The breadth and depth of knowledge to 1) know of all relevant alternatives, and 2) understand the meaningful differences between them, is nigh-impossible to build from on-the-job experience.

It takes an unreasonable level of interest and time to build that knowledge for a *subset* of the field.

Is there *any wonder* we collectively keep reaching for the wrong tools?

I'm thinking of infrastructure tooling, I'm thinking of frameworks, I'm thinking of libraries, I'm thinking of languages, I'm thinking of architectures,

None of the necessary knowlede is in any curriculum, nor in any of the SEO-stuffed articles you find when trying to search for answers.

It is nigh-impossible for most engineers, on most issues, to make informed decisions.

@cvennevik partially this is because we stopped building these tools in the early 00s/mid 90s.

I am not joking. Research kept going but we lost the industry knowledge of this domain. We are starting to rediscover some of it thanks to both typescript and rust community.

But it will take a long time, and there is nearly no funding. The industry forgot that we can have good tools and it actually impact output and outcomes.

@Di4na I wouldn't have thought of this angle, so thank you for bringing it up.

(Also really cool seeing you in the replies as I've really liked your writing on developer tooling and process engineering)

@cvennevik @Di4na To continue Thomas' insights, I don't think that we need to know all the tools, but we need work experience w/ one or more of each category.
- DBs: SQL/NoSQL DBs, maybe a column-based DB. Graph DB as a bonus
- IaC & cloud connectors, like Terraform
- object-oriented and functional languages, JS as something in-between.
You see what I mean? Patterns, solutions repeat themselves. Each new job will add more to the toolbox but only if we observe and not just consume.

@yellowbrickc Yeah, my thinking is that each job adds too little, too slow, to our toolbox. Without going out of our way and in-depth on particular topics, I think we're bound to have major blind spots.

Like, I've learned a ton about web dev as a field from engaging with people, doing side projects, and actively reading articles for months, and it has taught me lots that I would never have learned on the job.

And I am now conscious of *even more* things within it that I have blind spots on.

@cvennevik Yes, this is what I mean by observing and not just consuming. I fully agree that our job means a life-long learning but my experience is not learning not enough on the job. This depends on each person, for sure. I can't talk about others, but in any phase of my life, from school to studies to restarting my life as an engineer, I always learned something new, every day. The last 3 jobs I left because I realised that I have nothing new to learn = I got bored. /1
@cvennevik About side projects: I never did any of those, but I used to go for years to Open Spaces. I learned C# and MVC on my first open space 😆. I learned about Neo4J on another one, just like TensorFlow. In my whole life I choose very carefully what training to pay for and I did this only 3 times in the last 20 years. /2
@yellowbrickc I went to my first Open Space event last weekend!! I got to do a Capture the Flag for the first time, and touched React for the first time since uni 😃
@cvennevik Open Spaces and NON-recruiting-driven meetups are the best places to learn because you can discuss and not just listen. You can meet people, find out how they learn, and learn from their mistakes and advice. I always called them the best "free time for nerds" - spending time with other nerds without a strict agenda
@yellowbrickc Yessss, it's so good. I'm keeping my eye out for similar events.

@cvennevik @yellowbrickc
Do you know about the @SoCraTes_Conf ?
It's actually an whole series of #OpenSpace events in Europe and the whole world.

I can highly recommend it

See also the partner conferences at the bottom of https://www.socrates-conference.de/home

SoCraTes - The Conference for Software Craft and Testing

SoCraTes-IT

Software Craft and Testing Conference Italy