Google has released its annual Year in Search results, revealing the top searches for users around the world and in South Africa. The search…
Career advice usually comes packaged in experience, but to be frank, my experience as a young software developer was vastly different from the world that faces the ranks of young software developers today. Software development, as an industry, is uniquely fast-paced. What was true five years or even one year ago may no longer be true now. Instead, my advice comes packaged from the other side: these skills are what I look for in young developers.
Even more, workers in software development, tech in general, and the workforce at large have become increasingly mobile, and young developers need to cultivate skills that they can take with them no matter where they are or where they want to be. These are three skills that every developer will benefit from having for their entire careers, and they are important to take stock of early on.
1. Understand — and use — distributed source control systems
Being able to understand distributed source control systems like Git and Mercurial is not a new skill, but as an old skill, it has become more and more relevant to enterprise software development. Not only can distributed source control systems expose inexperienced developers to the array of projects in development, but not being familiar with these systems may also be a major limitation for a developer. It is easy to become disconnected from the current trends in software development in a closed development house, and being disconnected is one step away from being out-of-date. So every young developer should make the effort to expose themselves to these systems early on. Services like Bitbucket, GitHub, Google Code, Sourceforge are accessible and handy tools for developers even if their jobs don’t explicitly require it: at the very least, they provide a great way to build a repository of your own personal projects. Even more, many potential employers will ask to see your profiles on these accounts, and an active profile is a great indicator of a connected and enterprising developer.
2. Participate in the open-source community
It used to be that participating in the open source community required a lot of individual legwork. You would add yourself to a mailing list, hoping to get your foot in the door, and maybe then get an invitation to participate. That’s no longer the case, but not because participating in the source community has become passive. Rather, it’s just that much easier. Projects abound, and source codes are readily available. The community is truly open now, and everyone is automatically part of it. It’s all a matter of finding a project, getting started, and actively contributing.
Another advantage of using a tool like GitHub is that it gives you access to the community even beyond access to projects. Being a part of the open source community is not just a matter of collecting a list of projects to work on. It’s also a way to socialize, to connect with other developers, to understand current trends, and ultimately, to influence the direction of the industry. The goal, here, is not just to learn, but to participate in the evolution of software development. Even developers just coming out of college (or even earlier — it’s never too early to begin) will benefit from getting involved in open source right away. In our industry, employers would rather see what you can do than be told, and a resume will often play second fiddle to your GitHub or StackOverflow profiles. Spend the time contributing, earning badges, and otherwise showcasing your skills in these collaborative environments.
3. Collaborate across space and time
In a world where people (and talent) is widely distributed geographically, the ability to work remotely and asynchronously is a hot commodity. This last tip may seem more obvious, but working and collaborating with people in remote locations and with differential time schedules is one of those things that’s easier said than done – and one that can be especially challenging for young devs. Evolving and remaining relevant in this industry requires us to break down our dependency on being in the same room with all our collaborators. If you look at prominent development houses like Google and Oracle, you’ll see a global distribution of developers. They’re looking for the best talent, and if they can’t find the perfect people locally, they go abroad. Since the huge bonuses and stock incentives went away in the ‘90s, developers have become less and less interested in staying somewhere they aren’t happy. As a result, we rely more and more on our ability to work in ways that span distances and time zones.
At the end of the day, the person who knows best what specific skills they need to cultivate to accomplish their goals is the young developer themselves, but the above skills are things that can benefit any developer and will only supplement great talent. The face of software development is changing, and the challenge to young developers is not just how well they can adapt to these changes but how they can drive these changes.