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.
With IT unemployment at 2.6
percent, 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.
1. 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 behaviors. 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."
2. 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.
3. 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 coworker. 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, "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."
4. 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 reorgs, downsizings and outsourcings, 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."
5. Code Documentation and Neatness
Not
many developers enjoy going through poorly formatted, undocumented 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.
6. 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.
7. 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."
8. Get Familiar With a Native Mobile Platform
While
our experts point out that this isn't necessary to be a successful
developer, they also point out 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,
recognizing 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.
9. 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.
10. JavaScript, CSS and HTML5 Skills
In
smaller and medium-size companies a lot of dev pros pull double-duty
and 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.
No comments:
Post a Comment