What Does an Entry-Level Programmer Need to Know Exactly?
Here’s what is expected of entry-level programmers on their first job
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 the responsibilities of the job and no clear expectations have been made.
This is especially tricky since every corporation 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 the 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?
If you have a good grasp of a language, then you should be able to learn new concepts specific to the corporation 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 to be able 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. If you’re out of ideas on what to build, here are six front end challenges you can start working on today.
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. 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 like these types of 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. They’re either happy with the status quo or may drive their business with product-focused innovations. These are also considered a “maintenance” job as you need to keep the wheels running and the system going. These types of jobs are more relaxed jobs with fewer demands, and they usually pay less and are less interesting and 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 publically 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.
You should have a clear picture of what a company might expect from you from the day you step into the room. If you get lucky and get invited to an interview, here are eight questions you should ask the employer before taking the job.
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.
Thanks for reading, stay curious, and keep your head up high as you move forward. Good luck on your adventure!