In the previous post, we discussed the natural viewpoints that should help you define what being a professional really means in your situation. The first perspective is your own technological path. In general, it all comes down to determining what you want to achieve in your career and conducting yourself properly to achieve those defined objectives.
This time we will discuss the first part of the question — the idea of defining your professional goals. This analysis is the crucial first step to fully capitalize on your potential as a programmer.
Your technology tree
How to be competent in your profession and how to remain as such in a world of ever-changing technology? First of all, you should adapt and learn. That may sound like an overused statement but hear me out.
To understand that better, we should ask the question why. Why should you learn in order to be and remain professional? Well, it is not necessarily related to implementing new things or recreating old ones in new ways, but instead, you should acquire new knowledge to be ready to evolve and expand in the case something exciting appears on the horizon. You do not need to use everything right off the bat, but stay well informed in your field to be sure you are using the right tools.
That is also the main reason why learning should be primarily focused on zones that are related to what you already know. Those pieces of information have a greater potential to become useful. The higher the possibility to utilize a theory, the better, even if you use it only as a comparison to confirm your decisions.
Learning associated things enables you to build a coherent mental model of the technology. This way, the progress is the most efficient, and you can quickly connect new knowledge to the existing base.
It all ends up with defining your own technology tree or technology path if you prefer. Technical topics are interconnected, and you can always find something valuable related to your current information base. Prepare your pathway through technologies, starting from the most connected to your recent experience, and then further down the list put the things you would like to understand in the future.
For instance, let’s say you have some experience in creating simple HTML/CSS websites, and you want to advance. Well, you may go into design, learn user-experience patterns, or approach good practices of visual techniques. Going a different way, you may learn a scripting language and implement business logic, then try frameworks and acquire knowledge about apps’ architecture. Eventually, you may even end up in server programming. Another path may also take you into the business end of your expertise. That may work well because there are fields where a programmer with good communication skills is very desirable.
Look around and think about your options!
Your strengths and weaknesses
When you define the technology tree for yourself, hopefully, you will end up with a sizeable list. The next aspect is to distinguish elements that are the best fit for you.
There is no silver bullet for finding the best way through the thick forest of technologies. However, as a rule of thumb, you should remember to validate and update your path according to your changing situation. Your technology tree should be unique, which does not mean good or bad, but different for every programmer.
You have to discover what you are good at, try it, practice, and then commit to that technology field. On the other hand, there are things that you won’t find yourself very good at. Maybe, it is too soon to adapt to such a thing, and you can get back to it later, or perhaps it won’t click at all. You have your own assets, and sometimes you have to try various opinions to recognize them. It is perfectly fine not to go deep into some things and move forward with others. Look for inspiration from everyone around, but decide for yourself!
As time goes by and your experience grows, you may find yourself in a situation where you do not need to learn similar technologies because that may be a waste of time. Instead, learning more specific topics may become the right path for you. This approach matches the education system we are very familiar with. First, you acquire broad common knowledge to decide what to do, and later study a specific field to become a valuable expert. The same approach plays incredibly well later in your career when being competent requires very detailed insights in explicit domains.
When you want to think about yourself as a professional, there is definitely more to it than just doing your job. Improving yourself is vital for every programmer, and defining your technological path is the first step to achieving excellence.
Spend some time on thinking about stuff you work with and things you would like to learn and improve. Many technologies are exciting and beneficial for you to know. Define your technology tree so you can easily navigate and test various paths of your development. Try different things to make the most out of your unique abilities and weaknesses.
Think about your evolution as a professional programmer. It will be a time well spent. Cheers!