4 Things Developers Should Consider Before Accepting Their First Job
The first “real” job that a developer accepts will become the foundation upon which their whole career will be built.
Imagine this: After sending out her resume, Jill lands her first job at an in-house Java shop. The company gives her the tech stack she’ll be using: Java EE, Hibernate, and MySQL and with that, it’s time to get to work supporting their application.
Three years have gone by and Jill is still supporting the same application with the same tech stack. The work is getting monotonous. But where can she go from here? Jill has only worked on a single project with a few technologies. Do you see her problem? Jill can look for a new job at a higher position based on the skills she has acquired, but where’s the challenge? Where’s the growth? If she wants to work with a different tech stack, she’ll likely have to search for another entry-level position to continue to build her skill set.
But, what if that company who hired her had encouraged continuous learning? What if she had gotten to work with several different tech stacks over those same three years? Jill would have built a more solid and extensive foundation to her career.
One way to obtain diverse experience is to join an organization similar to a professional services company, and not necessarily the consulting kind. According to MindTools, a professional services company is “any organization or profession that offers customized, knowledge-based services to clients.” In the technology field specifically, a simple definition could break down to “a company that hires developers to do contract work for various clients.”
At a professional services company, continuous learning is highly encouraged. Developers with 20+ years of experience are willing to teach, and you’ll most likely be able to work with multiple clients which means learning both the programming languages and the business tools to support development.
So why is this so important, especially as a first job? There are several reasons.
1. It can offer twice the experience in half the time.
Think back to that earlier example. Three years spent learning the ins and outs of one company using specific technologies. Imagine if Jill had instead been hired by a professional services company. Her first year she would potentially be on a client project that uses those same technologies (Java EE, Hibernate, and MySQL), but that client contract only lasted for a year. Then what? She is then assigned to a different client that needs a REST-ful web service using the Spring framework. What just happened? Jill was given the opportunity to learn twice the amount of skills in less time than our previous example.
2. Employees are constantly encouraged to learn
These types of companies are constantly encouraging their employees to learn and grow and keep up with new technologies. It makes sense if you think about it. Professional service companies are only selling one thing: services. The more extensive knowledge that their employees have, the easier it is to sell their services.
3. Expert resources are only a desk away.
Developers who have been in the field for 20+ years are usually sitting nearby. Got a question about .Net? That developer two feet away, is an expert. Need some SQL help? That guy across the hall worked his last job as a DBA. And the best thing about it? Most experienced developers want to share their knowledge. At a professional services company, there needs to be a wide range of knowledge so there can be a wide range of clients. These companies thrive when their developers are highly trained on a variety of technologies.
4. Communication skills will expand.
It’s easy to see the benefit of working with different clients to learn new technologies, but what about the benefit of working with different clients to learn about different clients? Because many developers move from project to project, they have the opportunity to learn the business tools of a variety of clients. Maybe one client uses Slack to communicate and JIRA for task management and the next prefers Skype and Asana. Being a developer is two sided. Knowing how to program is just one part. Knowing how to communicate and how to work well with a team are equally if not more important than just being able to write code.
Starting your career at a company that encourages learning and the exploration into different technologies will put you on the fast track to success. For developers specifically, working at a professional services company is one of the next best steps to take.