Editor’s note: Brian Kelly is the chief technology officer of Golgi, a mobile cloud service for app connectivity and intelligent data transport that helps developers eliminate long loading times for connected devices and mobile apps.
Developing software today can feel like running a race. In both cases, you run into obstacles and have fierce competition charging up fast behind. Developers are faced with a living, breathing, system of technology that is constantly changing and hard to control. This is why developers need to create a system of professional retraining.
Similarly to how decathletes are constantly retraining to stay in shape for their next competition in the hopes of being named the “world’s greatest athlete,” developers must constantly retrain themselves or risk becoming a dinosaur in an era of constant disruption.
There are scores of programming languages out there, and it’s not uncommon to find different development teams working on different operating systems within the same company. Developers can no longer just write programs that someone will install, sit down at a computer, and use. Americans own, on average, four digital devices. Not only do they constantly switch back and forth between them, but they also expect high-quality, consistent experiences across them. High demand for social features and integrations throws additional wrinkles into the process, as well.
At the same time, development has never played a more critical role in driving an organization’s progress. Success requires developers and their teams to adapt fast. Below are strategies for navigating this complicated, sink-or-swim world of development
Invest in Retraining Yourself
Many professions, like teaching, medicine and law, require practitioners to take annual classes that keep their skills sharp and introduce them to new thinking or advancements in the field. Few professions change as rapidly as software development, which makes a continual commitment to learning critical for success. Within five years (or fewer), the landscape completely changes, and any developer that doesn’t take the time to retrain themselves with new skills will soon become obsolete.
A good strategy for avoiding technical obsolescence is to create a syllabus for your own personal development and stick to it throughout your working career. The syllabus can include big chunks of learning, such as Apple’s new Swift language, as well as small ones, such as sharpening up your bash scripting skills. Fortunately, the Internet holds a wealth of resources that makes continued education accessible and convenient. Lynda.com, Function Space, Udemy, Codeacademy, Code School are all good options. A little bit of training and practice a few times a week will go a long way.
We’ve all heard the admonition about reinventing the wheel. Why waste time doing something from scratch when it’s already been figured out? However, this happens far too often with developers who don’t write things down. Developers are notorious for their reluctance to write documentation, but the audience here is yourself.
When you figure out something difficult, write down your results and keep them in a notes folder. Then, when you need to do something similar many months later, your recorded notes will give you a head start. You won’t have to reinvent the wheel. There are a number of online services or you can use good-old-fashioned pen and paper. In either case, remember to write down the project and date (and even color coding if you want to get really fancy) to keep all those thoughts organized. The best developers make their notes folder public and share it with their colleagues.
StackOverflow is the only game in town for asking development-related questions, and it contains a gold mine of information for developers. The site was co-founded by Joel Spolsky after he made a bundle as a developer with Microsoft. Those days of Microsoft making millionaires out of developers are over, but Joel and co-founder Jeff Atwood have put something really important back into the industry. StackOverflow is an invaluable resource for learning, thinking about what you learn, and connecting with other members of the developer community.
Granted, not everyone loves StackOverflow. A developer named Michael Richter wrote a blog post last year discussing why he no longer contributes to the site. Richter had been a member for four years, scored over 14,000 points in the gaming system, and was in the top 3 percent of overall contributors. However, he came to feel that StackOverflow had problems with its pedagogy and scoring system.
I disagree. StackOverflow’s format and rewards system may not appeal to all, but I’ve found it useful more times than I can count. It’s one of the only places to gather information about niche, deeply technical issues, and get specific, case-by-case help.
Put Your Hobby Code on GitHub
Developers grow by reading the source code of others and building on it. This is how progress and innovation have happened since the dawn of time. Receiving constructive feedback for your work and drawing inspiration from the work of others is the best way to get better, whether you are talking about writing a novel, designing a building or building an app. When it comes to code, GitHub is the best place to learn, share and improve.
Truth be told, GitHub still hasn’t hit on the right way to build a social presence, as opposed to LinkedIn, which is doing it right in small increments. You can publish blog posts on LinkedIn now and they become a lasting part of your profile. I predict that GitHub will end up supporting something like that, too. In the meantime, it’s a great free resource for collaborating on code and learning from the best.
Create Positive and Productive Work Environments
Startups often expect their employees to work for a lower salary in anticipation of larger equity rewards down the line, but this limits the available hiring pool. Many developers, such as those with kids, may not want to take on that financial risk. Weeby, in an effort to attract the best-and-the-brightest away from competitors, is offering “epic salaries.”
Software development is an individual and creative endeavor. It has more in common with sculpting than with, say, accounting or HR. Employers have been slow to recognize this, but if Weeby’s experiment is successful, we may see more employers appreciating just how integral developers are to an organization’s success. This isn’t about high salaries, but about creating positive and productive work environments where developers can thrive.