10 ways to show you're a programming rockstar
How many programmers do you know who are rock stars? What characteristics do they have?
It seems nowadays that programmers are a dime a dozen, but how do you pick the best programmers from the rest of the crowd.
It's not just about coding (although that is a big factor). It's about building your skill set over the years and nurturing them so you can stand out from the programming "collective."
What characteristics makes them stand out? Are they easy to get along with? How long have they been programming? Are they teaching you things you never knew were possible? Here's how to find out if you are a programming rock stars!
- Master your language and tools. Whether it's Visual Studio, Eclipse, or even Aptana, your programming tools should be second nature to you when developing that next web application. Just like a plumber or carpenter, if you don't have the proper tools, you won't get the job done right.
- Enhance your tools and environment. With that said, even though you've mastered your tools, always strive to find ways to enhance your environment. This may include plug-ins to Visual Studio or Eclipse or a code generation tool that works along side your environment. If you're not looking for better ways to enhance your productivity, you may be working yourself into an early grave.
- Research new technologies. While your primary language may do everything you need, make time to research your craft and experiment with new frameworks that wrap around your existing technologies. For example, while programming in web forms with C#, I heard about a new framework from Microsoft called MVC. Since I've started working with MVC, I've been programming in MVC for more than 2 years now and I haven't looked back or regretted my decision since.
- Leverage your existing code you wrote. Programmers who write code and then immediately disregard it are missing out on the most exceptional tip on this list: start building your library of routines and techniques. If you are in a corporate environment, yes, you will have a corporate library to pull from for your projects. If you are an individual programmer, yes, you will have your own collection of routines or libraries that you can use in your "outside" projects. As the object-oriented saying goes, the routines are reusable.
- Automate like crazy. If you've been around the programming block for a while, you know that there are always quicker ways to accomplish certain tasks. It's now getting to the point in this industry where if someone asks you for a web site, you can build one relatively quick. Then they start asking for features. It's the features part that makes the difference and slows you down.
- Perform proper analysis. New developers always shoot first (start coding) and ask questions later. Take the time to analyze the project and ask as many questions as you can. The more questions you ask upfront, the better your ability to complete a more thorough and clear design of your application.
- Perform Unit Testing. Along with preceding your coding with proper analysis, always finish your coding by performing unit tests. This not only tests the quality of your code but will also let you know when your system fails on regression testing. Unit Testing should be the "checks and balances" of your programming.
- Extend your reach. Most developers keep to their code and that's all they do. Break out of your comfort zone and read up on usability studies, how to document your code better, and/or using better design techniques. Expanding your skills into other areas will do three things: 1. Make you more visible to other people; 2. Make you more valuable to others because of your thirst for knowledge; and 3. Provide you with more opportunities than just programming.
- Communicate effectively. This is in regards to project management, coding, documentation, and impromptu meetings. If you can't explain an extremely awesome cool coding technique to your peers or communicate why a particular feature shouldn't be in the project to a project manager because of a time constraint, you may need to work on your verbal skills instead of your coding skills.
- Make time to assist others. You will seem as a definite team player by taking the time to help a fellow programmer in need. Help them understand a new concept or technique that is unclear to them and they will be grateful for the help and see you as a definite resource and go to guy.
As you can see, there are a lot of factors to take into account when deciding who is a programming rock star and how they will be perceived by other team members or by clients.
Come to think of it, you could even use some of these factors for general interview questions.
Did I miss any factors? What skills or characteristics do you think makes a programming rock star?