Breaking through the glass ceiling as a developer requires more than great programming skills
Rich Hein, CIO
Breaking through the glass ceiling as a developer requires more than great programming skills. It requires a commitment to self-improvement and lots of work in other work key areas. To help straighten the learning curve CIO.com asked long-time developers and hiring managers where you should focus your professional development resources.
1. Professional development tips for developers
Great developers are the rock stars of the tech world. They are always in demand, they get the best perks and they work with innovative companies of all sizes. However, achieving this rock star status is a long journey. Along the way there are skills you need to add to your toolbox and habits you need to develop if you plan on moving into that corner office.
Competition for development talent is fierce and opportunities abound. However, you still have to work to land top spots. Like most IT professionals, programmers have several areas they should focus on in order to keep their careers on track and their skills sharp. To identify the key areas, we asked developers and hiring experts for advice on professional development and the skills necessary to keep moving up the corporate ladder.
2. Staying current requires continuous learning
Technology is ever-changing and staying relevant means you must change and evolve with it. Self-learning through books or media, boot camps, meet-ups, conferences, internal training offered by your employer or volunteering are all viable ways to grow your skill set.
"The state of software development changes so rapidly that regardless of what technology you work with today, aspects of that technology will be different in five years, and maybe be completely gone in 10 years," says Robert Treat, a developer for more than 15 years and CEO of OmniTI. "Even if you keep your focus on a narrow tool set, there will always be new versions of software that add features and change behaviours. Because of this, you need to find a mechanism for continuously learning new technologies that may not be in use at your current day job. Side projects, open source community involvement or working in companies that work with a wide mix of technologies are good ways to overcome this."
3. Problem-solving skills
"Some companies put a great premium on problem-solving skills and give logic exercises or puzzles instead of a coding quiz. Their feeling is that it's not so much your ability to code in a particular language, but your ability to creatively solve problems that demonstrates whether you will be a high performer.
"Since many companies use a variety of languages depending on the application, they want people who can easily transition between various languages and tools," says Tracy Cashman, senior vice president and partner of Information Technology Search at WinterWyman.
4. Communication and people skills
The days of the introverted, hidden-away IT people are gone. Make way for the IT pros who understand that different groups of people need things communicated differently. "Many [in] development roles found it perfectly acceptable to work only by yourself and grunt occasionally at a passing co-worker. While those roles may still exist in certain situations, most dev roles today require a certain level of interpersonal skills, especially due to the increase in agile, team-oriented development. The most extreme form of this would be paired programming where two developers are actively working together and reviewing each other's work," says Cashman.
From inside the trenches of development, web architect Brian Dunavant shares his perspective on communication.
He says: "As a senior developer, it's easy to become jaded and dismissive of user bug reports or junior developer issues. Force yourself to recognize this impatience and avoid it. Yes, they will probably be wrong most of the time, but this is a teaching moment, or opportunity to help your customer. And for the time they aren't wrong, you potentially solved the problem and learned something new."
5. Networking and personal branding
Most people find their next job opportunity via networking. That's even more so in the technology field. Branding is all about showcasing what separates you from the rest of the pack. This two-punch combination is an effective defense against reorganisation, downsizing and outsourcing, but it's more than just adding connections on LinkedIn. It's about forging relationships.
"The good news is that as a developer, your skills are probably highly sought after. The bad news is that if you aren't out there actively networking, you may not even know what great opportunities are available to you. Often I find developers have the least developed LinkedIn profiles. They may be afraid of being called by recruiters, but they are also making themselves invisible to hiring managers who often do their own hunting on LinkedIn. At a minimum, any good developer should be attending meet-ups and expanding their circle. Most hires are made by referral or prior knowledge of someone's skills," says Cashman.
Treat offers this tip for developers looking to raise their visibility in their area of expertise: "When it comes to branding, nothing works better than a technical blog where you showcase things you have learned and projects you have been involved with. When potential employers go looking for experts on a topic or technology, this personal branding can help lead them to you."
6. Code documentation and neatness
Not many developers enjoy going through poorly formatted, un-documented code to troubleshoot, but it happens all the time. While you can't control everyone else's coding standards you can make sure your output is tidy and understandable. "The key things to focus on in these areas are the ability for people new to a project to be able to come up to speed quickly, and automating significant portions of your development process, such as syntax checking, code formatting and other similar grunt work. Clean code and clean documentation do help with these goals, but remember that they are paths to the goals, not the goals themselves," says Treat.
"My philosophy - as is the philosophy of most professional software engineers - is that you are putting your name on this work. Well-designed and well-written code shows respect for your profession as well as your clients," says George Liu, owner of Tellahilim LLC, an app development company.
7. Master naming functions
Developers have different opinions on naming conventions, but you probably should have a strategy to ensure your code is easy to read, follow and understand. "The key to naming conventions is consistency. As long as developers choose a linguistically meaningful pattern that would be readable by his or her successors, the actual pattern can vary. One stipulation for enforcing a particular naming convention is when the code is added to the project with a previously defined standard," says Leon Fayer, software developer, solutions architect, and vice president of OmniTI.
8. Get familiar with Agile
"This is almost a given for most development positions these days. Even if a team uses a combination of Waterfall and Agile, there are usually continuous development and releases in some form. Companies want people who can be adaptable and effective at iterative development," says Cashman.
Treat agrees, but offers this warning: "The days of months and months of heads-down software development are dying, as people move to more iterative processes. It is worth every developer's time to read the Agile manifesto, but beware that like all religious texts, it is often interpreted in different ways when it comes to practice. Similar techniques to be familiar with would also include reading about continuous delivery, and continuous deployment. Flexibility and regular communication are a part of all of the best software development shops now, so developers should prepare for that."
9. Get familiar with a native mobile platform
While our experts point out that this isn't necessary to be a successful developer, they also say that this is an area with huge demand and continues to build momentum as the world becomes more mobile-driven. "Software development is a large enough field that as a developer, you can actually ignore mobile development and still have a fruitful career. That said, mobile platforms are quickly replacing desktop platforms, so it is in a developer's best interest to be familiar with the technologies involved. At a minimum, if you are doing any kind of web development, it's important to read up on responsive design and mobile first methodologies," says Treat.
"As the world becomes more mobile-device driven, so too does the development world. Companies are actively developing their products for mobile platforms, recognising that is the way many customers want to do business, whether it's on their Android or iPad. Those who haven't worked with mobile technology may find themselves dated when it comes time to find a new position," says Cashman.
10. Project management skills
If you plan on moving up in your career, project management skills are a smart place to invest your time and resources. "I always encourage developers to become familiar with secondary skills and roles that have a heavy impact on the work they do, and project management is no different. Developers who can't participate in managing projects will have a diminished level of influence over the projects they work on. Even if only for personal reasons, it's a good idea to have some methodology for ensuring the process you are using for development makes sense," says Treat.
In smaller and medium-size companies a lot of developer professionals are asked to handle these types of jobs. This is another area that isn't a necessity, but when it comes to job searching it's something that could sway a potential hiring manager.
"Having web/UI skills makes you that much more of a well-rounded candidate. Developers are often asked to wear multiple hats. While bigger teams may have the luxury of having a strong front-end developer who can focus more on the look and feel of the application, there are many times when hard-core developers are asked to handle this work as well," says Cashman.