I originally posted this post on my blog.
"Focus on learning one thing."
A coworker told me that every time he got to my desk. At that time, he was the IT/network guy. Years before that, he was a certified Java engineer or something.
I was new at this coding thing. I was trying to learn about everything at once. It was back in 2010ish. I was reading The Clean Code, learning Python, using C# at work (coming from Java), and watching PHP presentations in my lunch break.
Now you see why my coworker told me to focus.
Don't chase shiny objects, go deep into fewer things
Instead of chasing new and shiny objects (like tools, libraries, and frameworks), juniors (and we all) are better off going deep into fewer tools and concepts.
Me 10+ years ago? "Oh there's a new framework. A new C# version. A new CI/CD tool. Hey, what's that new Hangfire thing over there?" Arrggg!
Frameworks and libraries come and go.
Today it's React with Typescript.
Before that, it was Bootstrap with Knockout.js.
Before that, it was ASP.NET WebForms.
Before that, it was Perl scripts or something. I wasn't around coding at that time.
And who knows what AI will bring to the table.
But chances are we'll be working on a C-type language, still using text files, and writing SQL. That hasn't changed in ~50 years. And it will remain the same. I wouldn't bet all my money though.
If you're starting your coding journey, master the topics that have passed the test of time:
- SQL
- HTTP
- C/C++
- Data structures
- Design patterns
- Vanilla JavaScript
- Clean code principles
- Debugging and testing
- Linux and operating systems
(Not all of them at once, of course.)
I don't know what other subject to add to that list now. But you get the point.
And more importantly than spitting out code, master your soft skills: negotiation and persuasion. Coding is more about collaboration than cracking symbols on a file.
It took me quite a while to learn that lesson. And that's why I wrote Street-Smart Coding: 30 Ways to Get Better at Coding. It's the roadmap I wish I had to go from junior to senior.
Get your copy of Street-Smart Coding here. Because coding is more than chasing trends. It's about building skills that last.
Top comments (2)
I remember before landing my first job, I was mostly like that, chasing everything that to me seemed important at that time, cause it was shiny and interesting. At some point during that time, I started reading a book called "Essentialism" by Greg McKeown, and one chapter addressed the point that "Energy is Finite", and he used two circle drawings
At that point, it kinda dawned on me that I'm the one represented in the first circle, that's when I shifted my perspective and started focusing solely on the essentials, things that I needed to improve and the knowledge gaps I had with one tech stack.
The funny thing is, when I landed my software engineering role, the onboarding deck had a quote from the same book, about focusing on the essentials!
When I began in coding, it was always one thing. At first, it was Turbo Pascal. The Turbo Pascal family of compilers gave you the ability to create compiled apps for MS-DOS. Time passed, and the next big thing was dBASE III+, followed by Clipper. Compiled applications primarily focused on databases. Then, we all knew about Delphi and Borland C++.
Until then, it felt all incremental.
Suddenly, the possibilities grown exponentially. Web programming arrived, once JavaScript was JITted and programming on the browser became a thing. At first, you could create your own web apps with anything (even C++), but then Java became the king.
Python was the next big thing. and with the improvements in performance, it was feasible to do serious programming using it, even if it was not JITted. And you could use it for everything, from web apps to desktop.
Fortunately, I always had been conscious of my own limitations: never seriously followed the trail of web apps (fortunately). I very much like Python, but I also jumped from the C++ wagon when I saw where it was headed, and landed on C#.
So I know a little of web programming with Python, and desktop programming (that has always been my thing) with C# and Java (for Android).
While focusing is essential, I also feel that knowing a couple of programming languages is also good. I mean, just for the change of perspective.