| This is a complex question and not the one I can answer in five minutes. But I'll give you some pointers. 1) Focus on broadening your skill set, not deepening it. If you like some tool and wish to explore it to the depth, that's fine, but do not stay there for a decade. Learn a full stack. Get things done from start to finish single-handedly. Several times over. 2) Adopt a certain mental state and attitude. Consider your job just a temporary assignment, an instrument for you to acquire valuable skills and meet important people. Know it can end at at any time, so can the next job, such that you will just be buying your time until your ship comes. Don't become a slacker though, do your job well, just don't expect it to secure your future till the retirement. 3) Adopt a critical view of the things. Get to form your own opinion and view on a variety of matters. Don't take anything for granted, check and verify things, try to guess problems and prepare for them so that they don't catch you by surprise. Learn to be in control. The trick is not to overdo it and not to start doing it too soon before you have acquired sufficient experience, otherwise your run the risk of turning into an arrogant all-knowing jerk impossible to work with. Be careful here. 4) Actively look for opportunities to try things on your own, be it taking a charge of a small project, helping a customer or building your own thing. Learn to feel being "one against the entire world". Don't let it scare you but instead excite you. 5) Invest in social skills just as much as you invest in technical proficiency. From a certain point of your professional growth your work becomes more social than technical. Learn to communicate well with various people. There is more to it of course but this should get you started. I'll add to this post if anything else crosses my mind. |