Agile and Learning, Hand in Hand: A great programmer is always learning something new. But the path to knowledge is often paved with distractions. Take an Agile approach to your personal development. List the skills and topics you’d like to master in order of importance. Re-evaluate your list periodically and adjust your priorities.
Narrow Your Focus: There are too many platforms and languages to become an expert in everything. Focus on a particular language or in a specific industry to set yourself apart from all of the “generalists” out there.
Study Source Code: Programming enthusiasts everywhere are sharing their projects and source code. Looking at how others have solved problems can give you a new perspective on an issue or obstacle.
Know the Why: You have an extraordinary amount of resources like books, communities, blogs, forums, websites, webinars, and colleagues from which you can always determine the “How”. But clearly understanding the core of the problem – the “Why” – is what shapes the best solution.
Keep Your Fundamentals Sharp: While new languages and platforms pop up all the time, the fundamentals have been shaped through years of experience and research. A strong comprehension of the patterns and theories programming is built on will help you lay the best foundation and create the optimal design.
Debug: Writing code is one thing, but diagnosing and fixing issues within your code helps to sharpen your problem-solving skills and learn from your mistakes. You’ll be an even greater asset to your team since they don’t have to clean up after sloppy work.
Simplify: The simplest solution is always the best. Attempt to accomplish your objective with the least amount of code possible.
Teamwork: While coding is often seen as an individual task, no one works in a silo. Communicating your ideas, taking direction from leadership, and handling constructive criticism set great developers apart. Do your part to ensure successful project implementation.
Determine Architecture: Writing better code requires a strong understanding of the overall design of the project, from user interaction, to hierarchy, to data backup and storage.
What tips would you give to someone wanting to reach the top of their IT career?
image from here.