What do you do to stay up to date on technology?
The answer is simple – constant study. The important thing with studying is not just to study a lot, but to study the right topics and to use the right resources to study.
Theory and Practice: Software development and architecture is a hands-on profession. You need to be able to write code to perform a task rather than just read about it. This means that when you are studying, you should be writing some code as well. How much code you write when you are studying probably depends on how much code you write at work. If you are coding all day at work, then perhaps coding to learn would comprise about 25% of your learning time. If you don’t spend a lot of time writing code, then you should probably spend about 50% of your time writing code.
Pluralsight: I have to mention www.pluralsight.com simply because I believe in it a great deal. You can get a lot of free resources from the Internet, but as a professional, your time is important. A Pluralsight membership does not cost much – $35 monthly when this was written in 2018. While everyone learns differently, most people agree that well-presented online courses are a relatively easy way to learn.
I like to recommend Pluralsight because they simply have thousands of consistent, well-curated and well-coordinated course offerings across hundreds of different IT topics.
New Technologies: You don’t necessarily need to spend a lot of time studying the latest technologies. It is more important to master core technologies for your platform of choice. This helps you to establish a framework into which learning new technologies tends to be a natural thing to do because most of them are extensions of your core knowledge.
Pick a Platform: You can really only “master” one platform stack. The major stacks are the Microsoft stack and the Java stack, but there are other stacks as well. Mastering “core” skills means learning everything you. For instance, mastering the Microsoft stack would means you understand SQL Server, C#, ASP.NET, and .NET Core very well.
Specialization: If you are an architect, this generally implies that you are not a “specialist” in a particular technology such as SQL Server or Sharepoint, but rather more of a technical generalist. In some cases, it could be profitable to specialize in something, but it is generally better to spend your time to mastering the other skills mentioned here.
Business and Leadership: Business skills and leadership skills are often confused with one another, but are really separate and distinct. You will generally not need to know a lot about business topics like an MBA would. In all likelihood you will be surrounded by business professionals throughout your career. You will likely never have to master skills like, accounting, finance, sales, and marketing.
You should, of course, consider learning all you can about the domain you are working in. That is, if you work for a transportation firm, you should endeavor to learn a lot about transportation. Generally speaking, the best domain knowledge will be the domain knowledge that is specific to the job you are in. One of the key differences between architects and senior developers is that architects do understand the business of the company that they are working for.
Leadership, on the other hand, is the most valuable skill that anyone can have. It is true that some people are “natural leaders”. That is generally not true of developers who rise to architect level roles, as they are generally introverts. Whether you are good or bad at leadership, you can learn through training and experience. Take every opportunity you can to learn and exercise leadership skills.
Project Management and Process: You will want to learn a lot about project management and process. You can’t rely on project managers and product managers for the same reason that project managers cannot rely exclusively on architects for all technical assessment and planning. Even if you are working with the world’s best project manager, you still need to advise them, understand them, and devise actions based on their plans. In many cases, you have may have to manage the project or work with an inexperienced project manager. In either case, you will find project management and process skills to be very valuable to you.
Just In Time Learning: Sometimes the most effective learning you can do is “just in time” learning”. That is, as you start working with new technologies and methods, that is a good time to improve and maintain your skills with those technologies and methods.