B

H

0'

S

B

L

O

G

Return home

When You're Ready

When You Are Ready To Start Applying To Junior Roles

This blog post will allow me to discuss when I think someone is at the point to where they should feel comfortable applying for junior/entry-level software development roles.

I will be looking at this from a web developer perspective, but I suspect the same advice applies to a broad set of software development careers, perhaps even careers less relevant and even unrelated to software development.

Disclaimer

I do not hold the secret key to acing the hiring process every time so please interpret this information with as much salt as you choose.

1. They have the self-awareness to know when, how, why to ask questions [and what questions to ask]

You Have The Self-Awareness Regarding Questions

Asking questions is essential for a software developer, asking questions feeds curiosity, and helps you get a quicker understanding of the puzzle. This point requires practice, some candidates may ask questions galore. While asking too many questions is better than not asking any questions, chances are likely that the candidate is just memorizing instead of having a deep understanding of the situation.

An Example

At Codebar, I was working with someone who was making a project involving Selenium web-driver, PyQt, Python3, and Pip. These are all technologies I had little to no experience in, but I accepted the challenge as I knew the "gist" of each tool based on previous personal research [curiosity], and overall think I handled the situation pretty well.

The main issue seemed to be their version of Python. But to rule out other trouble causes, I had to understand how things fit together. I could off asked them every single question under the sun regarding the project, but I opted not to - because that would require the assumption that they knew what they're talking about, and had I assumed that I risked allowing the lion to be lead by a donkey.

Instead, I only asked questions to speed up the process as well as make sure what I understood about the project was correct - and that would give me an understanding of how well the student understood the project.

Why Am I Saying This

I say this because learning to program requires you to understand when you do not know something enough to carry on, and this requires self-awareness. Personally, I find this comes with a combination of "meditation", and practice (practicing software development).

In the real world, you might only have the opportunity to ask such questions once a week or so, thus it is important to know what questions can be answered alone by yourself, and what questions you truly need to ask.

You Have The Basics (Preferably Intermediates)

When I ask professional developers, what skills are required to start applying for entry level developer roles, their response is typically soft skills, and the correct "attitude".

This is true, but if you are a web developer, you should at least have a project built using HTML, CSS, potentially JavaScript, and potentially a server-side language. How in depth you know such technology is just advantageous, but not always a necessity. But without a basic understanding, and an ability to apply computational thinking, your growth rate as a developer will be seriously hindered - and junior roles are about growth, investment then delivery.

If you are exceptionally good at one thing, in particular, this is also good, as it implies that with the right effort, motivation and time, you can excel in other areas and "level out" your competencies.

Sometimes a company will deliberately hire a candidate with less practical experience as this allows said company to mold the candidate into the employee that the company needs - which is easier to do with someone who has developed a low number of bad habits.

3 You Have The Right Attitude

All of these points are closely intertwined. When it comes to asking questions, you should have the confidence to admit when you do not know something - but try not to do this too often as it implies a lack of competency (and lead someone to feel the need to jump ship), but when you say "I am not too sure about X, but based on Y I am willing to give it a try", say it with the eagerness of improving your understanding about X in your voice.

Have the courage to admit that you do not know something, and do not shy away from asking something due to a fear of being "outed" by your peers. I watch a lot of Funfunfunction (Youtuber), and one of the points MPJ makes about good software development teams, is research done by Google which noted that good teams are teams that do not try to impose a feeling of guilt/shame onto a fellow team member when they admit they made a mistake and could have done better. And if your team does do this - then your team will need to change because worrying is a hindrance to productivity.

Long story short, have the willingness to learn. Have energy, ambition, and reason, be committed to improving yourself, become autonomous, remain resilient. And be mature - no pointlessly blaming others, no saying "I am not good enough to do X, therefore, I will not do X". Try hard not to fail, but do not crumble if you do. Know your strengths, and weaknesses, and pick your battles.

I hope it goes without saying that confidence is good, arrogance (and over-confidence) is bad. I assume you have a genuine interest in what you aspire to do.

4. Soft Skills

If you resonate with the previous points of this blog post, and your soft skills are at a suitable level, then as long as you apply the tried and tested formula [netwroking, applying, improving], then it is only a matter of time until you are hired, so do not give up.