Fundamentals vs. Knowing your Tools

TheĀ fundamentĀ upon which all our knowledge and learning rests is the inexplicable.Arthur Schopenhauer

There have been some recent discussions on my radar around knowing your fundamentals versus knowing how to operate certain tools/software/etc. like an expert.
This drove me back to my experiences with programming in high school and what I later found out about networking/technology in general.

When I first learned a programming language (BASIC and later on PASCAL/Delphi) I had sometimes problems to grasp what certain things I typed into the source code file really meant. And to be honest – I still have my problems when it comes to object-oriented programming and concepts related to this.
But then I started working on a private project with PHP and thought it would be fun to learn some C++ – and suddenly I realized:
In some way this is all the same!”
Well – I later learned, that it is all rooted in the same concepts and methodologies and only the implementation in a certain language differs (but even those lines are blurry for a majority of programming languages) – So I had this moment, where it made “click” and from that day, I really don’t had any problems with programming anymore.

Of course I’m not a programmer nowadays and I don’t want to become one either – it is simply not for me – but fairly recently I had a similar experience to what I just described above:

When I had my first sysadmin/network admin job I was all about getting into the CLI and the nerd knobs – there was nothing else and I pictured myself as the guy who would become an expert in the tools I had at my disposal. But the more I learned about the standards and protocols – the fundamentals – behind all this, the more I realized:
This is somehow the same as the programming thing
– and this drove me into the direction of getting more into the fundamentals and ultimately into design/architecture and how it all relates to business.

So the question that remains is: What is more important? Fundamentals or knowing how specific tools work?

My answer is: Both.

For some people it can be the same as for me:
From specific to more general (and in that way being able to apply something you learned in the past to the new shiny toy). Learning how to operate a specific product/technology can help understand how the underlying concept was meant to work, after all.

For others it will be sticking with the tools and relearning them again and again in a way, when there are updates and replacements – which is OK, too. Because those people know the tiny bits and problems you could have with this device/tool/software/etc – and this knowledge is needed to in todays complex technology landscape, too.

In the end, everyone has to find out, what’s most interesting for his/her own development and as a daily (work) driver.

If you are more interested in the topic and what other, more smart people than myself think about this, I recommend you check out these two podcast episodes:

Heavy Networking Episode 502 from the PacketPushers:

and

The Hedge Episode 30:

And feel free to hit me up in the comments or on Twitter / LinkedIn if you want to share your own thoughts on this with me.

Generation Technologist – or – What is a Technologist?

Any sufficiently advanced technology is equivalent to magic. – Arthur C. Clarke 

So every person that can handle todays complex technology or IT systems is some kind of magician – right? Maybe – but to me the golden answer related to everything IT is always:

It depends.

This is of course not a good answer – it is maybe the worst answer one can give to any question. But it shows the complexity and always-changing nature of our modern, technology-driven world.
And I find all of this intimidating – It opens up seemingly infinite possibilities for any individual that wants to work in a technology or IT-related field and therefore adds a lot of complex questions:

What do I focus on?

What specialization should I focus upon to secure a good or even high paying job for the next couple of years?

How do I stay ahead of the developments in my industry that seem to change how everything works by the minute?

There are a lot more questions like these that come to my mind, but I think they reflect some of the fears many people that start a career in technology/IT have today.

So how does somebody tackle all this? – I dare not say I have the ultimate solution but I can say, what worked for me so far and has kept me on the ground throughout my personal career.

  1. You can’t know everything – don’t let your mindset go into the direction, many people now call “imposter syndrome” – you are not an imposter. Nobody knows everything – everyone just knows things to a certain point and has to figure out the rest along the way. That is the fun in complex engineered systems – at least to me.
  2. Specialize in what interests you, but don’t let it be everything you know. In a constant changing field you always need to be open to learn new things – but you also can’t forget the fundamentals. So I think a good mix in specializing in what interests you and keeping an open mind to other or adjacent fields in general is what makes a good technologist. And don’t be afraid at some point to drop the specialization in favor of a new focus area – it only adds to you personal toolkit and knowledge.
  3. Never stop asking questions – Questions can be quite powerful..
    How does this work? Why does it need to work this way? (Maybe there is a better or more efficient way) Why do I want to learn this new skill?
    You don’t always need to know the answers – but finding them is what drives me always forward.

So what is a Technologist? To me, simply put, a Technologist is a person, that always wants to figure out how things work and how to improve them, never stops learning (to a certain degree) and never stops asking questions.
And the results that other see from this mindset sometimes maybe seem like a magic trick.