If you’re just starting out in the field of software engineering and have begun applying for junior engineering jobs, you might have run into a brick wall. Every company seems to have loosely defined responsibilities for the job, and no clear expectations have been made.
This is especially tricky since every company has its own set of rules and standards for software engineers.
Chances are high that you might have read a long list of demands, and you may have begun wondering when exactly is the right time to start applying for jobs as a junior engineer?
This article will open Pandora’s box and explain the what, when, and how. Here’s what a Software-as-a-Service (SaaS) company might expect from you when you’re starting out on your first job as a junior developer.
Note: I wrote about how you can become a web developer within 180 days without a computer science degree. It’s not easy, but definitely doable if you’re willing to put in the work.
What Does It Mean to Have a Decent Grasp of a Programming Language?
Every company expects you to have a decent grasp of a programming language. But what exactly does a “decent grasp” mean?
Since I’m primarily a JavaScript engineer, let’s think about it in JavaScript terms. If you have a good understanding of JavaScript, then you can easily pick up new frameworks. Or, at the very least, you won’t be lost learning them.
If you have a good grasp of a language, then you should be able to learn new concepts specific to the company or use specific technologies designed to work with that language.
Most places won’t expect you to be an expert on the language itself unless you market yourself that way. Some interviewers might probe your knowledge pretty intensely, but this is usually just to see what you know.
There’s always room to grow, and the interviewer will push the boundaries to see where you come up short. Don’t be afraid to tell someone you don’t know the answer. This is a technique to see how people handle not knowing. I’d much rather hire someone who responds with something like, “I don’t know, but here’s what I’d do to figure it out” over someone who tries to cover up their lack of knowledge. Honesty goes a long way.
You Need to Be Able to Build Something and Demonstrate Your Potential
When it comes to becoming employable in the programming field, the most important skill to have is the ability to build something. Programmers are makers, and they produce code and build products. It takes a specific mindset to be able to constantly produce. You need to be OK with being out of your comfort zone, and you have to be ready to learn and eager to push things forward, even when going against the tides of bureaucracy and sometimes incompetent management.
Start building today and don’t waste time — after all, it’s the most precious resource we have. We can always acquire more money and stuff, but we can’t acquire time. It’s a limited resource for everyone.
You can build anything, as long as you’re building. Spin up a PostgreSQL database, fill it with animals, fetch the data, and display it in the browser.
I’ve always said the secret to being a really good developer is building things. Compare it to bodybuilding or jogging; you have to actually go to the gym and lift weights every day to achieve results. The same goes for coding. You have to open your code editor and start building things to acquire the knowledge. Don’t spend too much time only reading books. Spend 80% of your time in the code editor.
Consider Most Job ‘Requirements’ as ‘Nice-to-Haves’
Don’t be alarmed when you see a long list of demands on a job post. These are all “nice-to-haves” since the ideal candidate doesn’t exist. Usually, the hiring person has little-to-no clue about technical matters and will regurgitate a bunch of words on a piece of paper. My advice is to research the background and mission of the company. If you believe in what the company is doing and its mission, it’s worth applying to.
For entry-level programmers, there are two types of employers: the problem-solvers and the soon-to-be experts.
-
The problem-solvers (e.g., Google, Apple, Microsoft) want to hire problem-solvers. These are the math folks or the algorithm wizards; people who can invent solutions to new problems. They also expect you to ramp up quickly on new technologies. There’s little hand-holding, and you’ll be expected to be an efficient problem-solver by the second or third month already. People with a solid education in algorithms and exceptional problem-solving intelligence will thrive in these companies.
-
The expert types (e.g., government, app factories, most banks, internal IT departments) want engineers with a depth of experience in specific frameworks or technologies. They operate in a well-understood or highly specialized technical domain. Technological innovation doesn’t interest them — they’re looking for rapid execution of well-understood techniques. These jobs often involve “maintenance” work, keeping the wheels running and the system going. These roles are more relaxed with fewer demands, usually offering lower pay, and are less challenging.
Figure out which employment type you’re suited for. If you don’t think you can (or don’t want to) be an exceptional problem-solver, then focus on expert roles. In which case, I would start a spreadsheet with their requirements; count up the most common ones and spend three to six months building and publishing an end-to-end project. Make sure to make it publicly available for everyone to see.
When Should I Start Applying for Junior Engineering Jobs?
There’s a proverb that goes like this: “The best time to plant a tree was 20 years ago. The second best time is now.” In the context of applying for jobs, the best time to start applying was already yesterday. You learn the most when you’re working since you’re constantly being barraged with real-world problems.
Spend an hour a day just scanning for jobs, and see what interests you. If you see an interesting job post, research the company, see what they do, who works there, and what kind of technology they use. If you’re really keen on becoming a Googler, learn Go or C++. If you want to work for startups, learn Node and React. Figure out what kind of a job you want and start preparing for the requirements. Nothing good falls into your lap. You have to put in the effort and fight for it.
Conclusion
You should have a clear picture of what a company might expect from you from the day you step into the room.
Nothing good worth doing comes easy — if it was easy, everyone would be doing it. It’s challenging when you’re just starting out, but I guarantee it’s a fun and exciting path to take.