Programmer is a busy species, trying to keep up with the trends, buzzwords, and anything that mainstream medias are trying to sell as new shiny things.
Being a programmer is not cool. At least not as cool as what Hollywood made it looks like. Our works are invisible. When everything’s fine, no one notice it, but when something goes wrong, that’s when people see our work :). We spent hours just staring at the screen flipping bits zero and one to make something works. We browse documentation after documentation, tutorial after tutorial, about new shiny JS (ugh!) frameworks that’s been released a day ago and the news about it are all over your youtube timeline already.
Joke aside, no, I mean programming is a cool job, to say the least. They enabled computer, they created internet, they built your favorite softwares and mobile apps, programmed robots, etc. But that comes at a cost, this profession, in my opinion, is the most demanded and changes rapidly in a consistent rate on earth since being invented. To stay relevant in this field, one should actively learn and re-learn new things, new techniques, new method, library, etc. But on the other side, I strongly believe the fundamental knowledge should always be mastered as it becomes more and more important than ever since everything is just built on top of it.
1. Learn (and Keep) the Fundamental.
Fun thing about studying the fundamental is that we know the big picture of everything, the network, OS, Cryptograph, protocols, anything. And all new softwares, tools, libraries, platforms and frameworks that people are buzzing about are just layers of abstraction on top of it. It’s hardly touched and changed. Knowing the basics teaches us to be more pragmatic, like how real engineer should be, focusing about solving the problem, not the tools. For the next decades, TCP/IP will always be there with its 4 layers, OSI with 7 layers, array will always be there, and also hash table, linked list, stack, graph, quick sort, binary search, etc. And the cool thing about basic knowledge is, it’s transferable across tools, libraries, frameworks and any other things that come next in the future.
2. Keep up with
Needless to say that knowing the basic is surely not enough. That’s only the first step, albeit it’s foundational and most important. However, people who identified themself as programmer must be aware of new trends. There must be new improvements come with new stack, tools, frameworks or technology that solve previously hard challenge in engineering. People care about it, they become enthusiast, they spread the word, the industry feel the benefit, then it becomes new industry standard, replacing the old one. Everyone then jump the ship, ride the next wave. Jquery expert then became Angular expert, before jumping into React, etc. Similar things happened in other areas like backend, devops, and basically all others. All that are just different abstraction to solve slightly different problem from its previous solution by doing slightly or sometimes fundamentally different method from different point of view. That’s why, while keeping up with the trends is absolutely needed, having solid fundamental knowledge is still definitely utmost important of all, as a programmer.