3 ms·
Primarily, maintain your ability to learn new things, whether it be languages, tools, concepts, strategies, platforms. That's the abstract answer. The concrete
by ChicagoDave 10y ago
Primarily, maintain your ability to learn new things, whether it be languages, tools, concepts, strategies, platforms. That's the abstract answer.
The concrete answer is the cloud. Learn what serverless microservices are, how to build them, deploy them, and integrate them into a large system. Cloud devops is already growing leaps and bounds and just like we needed to know our OS in the past, we're going to need to know devops in whatever cloud we're using (AWS, Azure, Google, ???).
Learn Lambda's and functional microservices. Learn Paas and Saas, learn how to use a tool like DynamoDB even if it doesn't fit your prejudices for a data store.
Learn unit testing. You should be able to unit test and integration test using mocks in any platform you need to work in.
Agile project management. Sprint planning, planning poker, kanban boards, choosing tasks vs. being given tasks, retrospectives...these are all important to learn.
Keep some semblance of knowledge of metal. What I mean is, write some low-level code to understand how memory works, how things work internally within a platform. It's not important to be an expert, but understanding some of the nuts and bolts of software engineering will make you a better programmer.
Listen to everyone without prejudice. I can't say this enough. Everyone has ideas and even though new ideas may not make any sense to you, keep an open mind.
Be inclusive. Always try to make people around you better at their jobs.
Manage your emotions. You can be passionate and sometimes even obstinate about solutions, but manage how you interact with people. The greatest success comes from moderate temperament.