We’ve all heard the joke, right? A developer is looking for a new place to work. They see an ad that looks promising. The job description asks for 5+ years of experience in a new technology that the developer knows has only been around for 2 years. The developers all laugh at this misguided attempt by a company to hire a new team member. 

You might have read that above, laughed a bit, understood the point, and moved on, you also might have not laughed but understood the meaning of the anecdote, and there might be some out there who have no idea at all where I’m going with this. Let me explain.

Companies who craft these types of job descriptions want a few things. They want an experienced developer, they want a developer who knows a specific language, and they also want something that is unrealistic. Sadly, the companies rarely know about that third thing. The humans who craft these job descriptions probably aren’t engineers. They probably didn’t spend hours and hours watching videos and reading blogs to develop the skills needed to learn a programming language. However, the people who craft these job descriptions know they want an experienced developer and a developer who knows a specific language. You can use those two metrics to your advantage and be a competitive engineer in a crowded market.

Let’s break the first one down. What does being “an experienced developer” actually mean? Does it mean that you had a job at a company for 10 years? Does it mean that you’ve been a part of 4 “start-up” companies in the past? It could mean that you have 42 repositories in your github that you constantly work on. 

Now, in my starting example, this situation does happen. You know you can not have 5+ years of experience in a language that is only 2 years old. However, you could go to the interview and tell them that you have 1-year experience with this 2-year-old technology, you have 4 projects on your github with this technology, one of those is on the Google Play Store, and you are really excited about this new thing the technology is about to do once it updates. I personally would want to hire that person. That person does not have the 5+ years experience with my obscure language but they have some experience, passion for the technology, drive to go through releasing an app, and if they use Github, you may peek into their organization and work ethic also. 

This won’t always work and it’s not always this easy to get a job that you are not technically qualified for. Most engineers will tell you that having years of experience is always best. That is because when you work for an actual business (and not just releasing fun apps because you got it working late at night) you learn how to do a wide variety of things. Working with a team, how to organize and be productive in meetings, how to ask others for help or guidance. You will even learn how to do those things that “someone did 7 years ago and that’s how we do it now” kinda thing. (those are my favorites)

In short, “an experienced developer” does not always mean you need a specific amount of time with a language or technology. You can prove experience by showing your determination, work ethic, skills, and knowledge in other ways. All engineers should have a decent website. If you can’t make your own website, why would I want you to work on mine? Start out by cleaning up your social media, then create a website that isn’t too flashy. Something that’s personal, simple, and easy to obtain information from. Make sure you have a picture of your face on your site or at least links to your social media that you want to promote. These are the basics. To go beyond that, you can start by finding a technology you are comfortable with and making an application with it and posting it to your Github or equivalent account. Showing employers a list of apps that you developed is impressive, it’s even more impressive if you can show steady work on your projects over time. Once a week find time to go into your code, make improvements, add to-do lists, refactor, or just play around with making it look prettier. Showing an employer that you have multiple projects that you work on 2-5 times a week, that’s getting into very impressive territory.

Now you might be saying to yourself, “I know how to do my one language and I don’t want to learn anymore”. For those people, I get it. If you are settled and like what you do, that is great; however, to stay competitive you will want to at least keep an ear out for new cool technologies. Listen to some technology podcasts, read developer blogs, or do a Google search for “compare {language 1} to {language 2}”. This has helped me a few times. I started my career as a C# .NET developer. So when I started looking into Flutter, I totally did a “compare C# to Flutter” Google search. I luckily found a few blogs that helped tell me the differences and similarities between the two. They had images to show how you would write a function in one language versus the other. There is nothing wrong with saying “I don’t know” when it comes to something new. Luckily we live in a time where many content creators are out there devoting time to creating amazing blogs, tutorials, deep dives, and videos on how to use some of these great technologies.

Now, the second thing that company from before really wants is “a specific language”. I think we’ve covered some of that recently, but the truth is, you can’t lie to the company. You can’t go in there saying you know a technology or are even familiar with a technology if you are not. Trust me, that’s a bad idea. However, there are lots of great ways to learn about new things to research, play with, hack on, or use. The aforementioned podcast and blogs are a great way to hear about any new technologies that you might find interest in. Although, the best way is just to go look at job descriptions. My motto is “always be looking”. Scope out job descriptions and see what technologies the companies in your area are interested in. If you don’t want that job, no worries, but maybe they mentioned they were looking for a LAMP stack developer and you had no idea what that was. Well, it could be in your wheelhouse or it could be a whole new adventure. 

Ultimately you want to strive for two things to stay competitive, a desire to learn, and a steady, consistent work ethic. With a desire to learn, you will get excited to try new technologies, to optimize your code, to venture out into new areas you have never tried. Maybe you are a front-end UI kinda person and you are going to learn how to create an API. Maybe you have designed SQL databases for years but you want to see people love CSS and UI design so much. Having a desire to learn will help you stay active in the community and the technologies surrounding our world. Also, it can’t be said enough, but a steady work ethic really helps. Don’t just code when you feel like it. Try to do it on a regular basis. Make every Monday night “engineering time”. Put on your engineer hat and your engineer overalls and Google search and Git commit till you’re spent. Having devoted time to doing and learning will bleed over into your personal life and your work life and will not go unnoticed by your employers.