If you are a software engineer, you’ve probably been in a job interview where you were asked, “Have you ever used [Insert some awesome technology you may have heard of but certainly never used professionally here]?”
You hear the question, and inside you’re basically like “Uh ohhh.” Your mind races for a reasonable response that won’t kill your chances. The best you can come up with is some sheepish variation on these:
- “No, but I am a fast learner!”
- “Not for my job, but I have played with it at home.”
Your interviewer will consider both a “No.” But what else can you say? You could lie and say you have used that technology—then pray they don’t ask you follow-up questions that will expose you at best as an incompetent and at worst as a liar.
Don’t do that.
A No to any single one of these questions probably won’t matter, especially if you do really well in the rest of the interview. But too many No’s will doom your chances. It’s pretty unfair too. It’s not your fault that you got stuck on a project maintaining a legacy Java application built with an Apache Struts front end, EJB 2.x middleware, and an Oracle PL/SQL back end while all the cool new stuff passed you by. Still, your interviewer’s own job depends on making the best choice on an expensive decision where the fate of the project hangs in the balance—rather than gambling you will somehow get up to speed quickly just because you know in your heart you can do it.
So how can you still get that awesome job with new, exciting technologies when you don’t have any professional experience with them?
The first thing you need to do is to identify what the new, exciting technologies are.
- Look for technologies with the most Meetup groups with the most members.
- Look for technologies fetching the most questions on Stack Overflow.
- Look for technologies trending on Twitter.
- Look for technologies that have a lot of conferences devoted to them.
- Look for technologies generating interest on job sites like Dice, etc.
Perhaps most compelling of all, you need to interact with people on all these platforms. Attend Meetups. Engage on Twitter. Have dinner with fellow conference attendees.
Also keep in mind that broad methodologies and platforms matter just as much as specific technologies. For example, it is just as valuable when you come across something like agile software development or NoSQL databases in your research as it is to find specific examples like Scrum or MongoDB respectively.
There is something else to keep in mind. As critical as it is to learn modern technologies, it is just as critical to look for modern tools and techniques that distinguish expert software engineers.
- Version control
- Test-Driven Development and all the different kinds of testing
- Build automation and dependency management
- Continuous integration
Once you know which modern technologies and tools and techniques you are passionate about, you need to establish credible, tangible expertise in them so you don’t feel embarrassed when you get that question in the interview.
Contribute to an open-source project on GitHub relevant to the technology—perhaps the technology itself.
Don’t just attend Meetups. Speak at Meetups.
Build a reputation on Stack Overflow as we have by answering developers’ questions and even asking your own.
Create video tutorials as we do.
Become known as a Top Contributor to a relevant group on LinkedIn.
Make no mistake. None of this is easy. Gaining new skills and building a portfolio take time and effort on top of your real job. These activities will take away from your personal life and responsibilities, but you will be able to prove your skills despite lacking hardcore professional experience. Not only that, you will impress your interviewer with your passion for technology and software engineering. That is far more valuable to talent evaluators than specific technical knowledge.
So you absolutely can get the job you want no matter how much professional experience you have. You just have to want it bad enough.