I am a java developer with close to 7 years experience in application development. My main expertise is in Backend/ Server side programming. So far in my career I have learnt everything I know while doing projects on the job. Hence, I never came to a stage where I could plan and do some certifications to enhance my knowledge.
I wish to enhance my scope and become a better programmer. I know that I can develop any sort of application. But how do I grow as a developer? I do not wish management side of role in my career. I am more inclined to technical roles of any challenging level. Does doing certification in some technology have benefit?
I can only speak for the java environments, but the concepts apply potentially everywhere. Keep your knowledge fresh. I've seen lots of people still sticking to old technologies like EJB and JSP and having no clue on stuff like Spring Boot, REST API's, microservices etc. Learn concurrent programming, become a guru in performance, dig deep and understand concepts like aspects, proxies, go in depth of how ORM works, when it acquires and releases connections, the different transaction isolation levels. Go further and understand distributed systems, service oriented architectures, eventual consistency, messaging. Also, work on your skills: how quick are you able to work? Is your code easily readable and maintainable? Are you able to design tests that efficiently catch regressions? Are your integration tests reliable enough to go and push the code in production?
That, mixed with some talent, will make you a really hot senior dev. And, once you get proficient also on operations (aws, docker, kubernetes, nginx, security, linux...), you might even try and go for higher positions than developer.
And don't underestimate Ritchie's suggestion, it's a very powerful method
Thanks for your suggessions. I think I can contribute to this forum. Not sure how well. Mostly I can think of solutions to problems. I am not very good with giving useful tips, but will try it. If there is some sort of categorization to all questions here defining their complexity, maybe it will be easier to start off.
Coming back to technical growth and learning aspect, I will see what all I can start of now. I am familiar with messaging framework, I have just now started reading "Concurrency in Practise" to get in-depth knowledge of concurrent programs. Database is low priority for me.
As for certification, I do not know which one I should look for. After reaching my current level, not sure if associate certification will be a good option for me.
Learning new technologies/ frameworks is definitely a good option. I am also learning Scala a bit. There is no final objective with this step, just wanted to get hang of functional programming.
These are in my todo list:
1. Lock Free application design
2. Zero GC application design
3. Enterprise patterns 4. Scalable design achitecture
5. Understanding Spring framework and working.
Not remembering what else I should add in my list.