I am a developer with a passion for testing. I've been coding for 14 years and I want to share my experience and learnings with other developers to help them write better software.
"I'm the most talented developer you'll ever meet. Let me teach you a think or two."
"What could a(n) person ever teach me?"
"You'd be fools not to hire me."
"I'm already so proficient, you're just a way to get 'experience' to prove what I already know."
The two most absurd candidates in this way we've encountered were:
(a) A 19-yr-old who had built "half an app in C#" (and nothing else), but was determined to school everyone in the company at how we should be building software, and
(b) A candidate in his late 30s who showed up to the interview wearing dirty, torn clothes, and whom hadn't showered or brushed his teeth (I could smell him when he shook my hand), and proceeded to tell us what a brilliant coder he was...when his code was actually sub-par by even our forgiving standards. And then he tells us he had already taken another job, but "he could fit us in maybe".
I guess a lot about being a junior developer is tied to the trait of BEING HUMBLE (especially since transitioning is dependent on how well Juniors act upon feedback. No one will want to give feedback to a proud folk)
Senior devs should not instantly disregard junior devs input as they often are very keen to follow best practices and have great knowledge about up and coming technology. But like Jason suggested there can also be a lot of unfounded ego, or at least a lack of understanding of the bigger picture.
I'd agree with Prosper in the being "humble" is the most important trait for junior and also senior devs. There always someone else, regardless of experience, who knows way more than you about something!
I am a hard-working frontend(React) developer with extensive experience building scalable and maintainable applications. Good working experience with Nodejs/Express, MongoDb, PostgreSQL
for a junior I dont think all of the above is necessary. Knowledge and the basic practicals are indeed a necessity.
Lets be real here. you dont NEED a stack overflow profile as a junior.
No. Absolutely, no. I have eight years experience hiring and training junior developers, as I mentioned elsewhere, and I have never needed them to know any of this (or the equivalents from our stack)! And yes, before long, they were proficient.
All I ask of them in the technical skills is:
Working proficiency in some programming language. Any programming language. It really doesn't matter which one.
Familiarity with essential programming concepts: variables, functions, loops, etc.
Familiarity with at least one paradigm: OOP, functional, generic, etc.
The rest can be picked up on the job. You should be expecting that with a junior.
And yes, most of the juniors I've hired have had little to no experience with the languages we use at MousePaw Media, but that has not been much of an obstacle at all. They're intelligent! Their first assignment is usually to code review a more experienced developer's Differential (think Pull Request), referencing the language documentation and asking questions to understand what all is happening. The first month is a little rough for them, but before long, they're quite proficient.
I am looking for internship positions and I am facing this issue right now. All of the organizations are expecting me to already know every language and framework, I am baffled.
Yah this seems like a lot. What’s the depth of knowledge that you require for these subjects? I mean SQL and NoSQL alone. Data modeling doesn’t seem to be a junior level skill.
Ability to take a problem as a client would describe it and then translate that to problems that can be coded
some degree of comfort with any programming language (not html or css)
ability to communicate especially code design ideas, problems you're stuck on, and why you did what you did.
A lot boils down to not necessarily having the right answer but communicating how you get to SOME answer and being willing to have constructive conversations about your design and code.
Ability to take a problem as a client would describe it and then translate that to problems that can be coded
This! Also, the inverse of this which is the ability to explain technical concepts to non-technical clients, like informing stakeholders why feature x would take x amount of time.
If I asked a lateral thinking question (how many ping pong balls can fit on a school bus), complaining that it's a waste of time or pointless question.
refusal to listen to help (though I acknowledge this is easily misconstrued during interviews with not wanting to look ignorant)
I think there was one or 2 other examples I had in mind when I posted but they aren't coming to me. I've interviewed a few people who thought their school, internship, or 1 other brief job made them way better than they were. They ended up being close minded, hard to work with in a team, and poor at communicating their ideas.
As a point of reference: I'm considered an expert in the Python language, extremely proficient with C++, and skilled with algorithms, efficiency, memory management, and data structures. I've written libraries, applications, and games. I've trained a dozen young developers and counting, helping them launch successful careers. I'm a technical author and a speaker. Based on interactions, I am at least as proficient a developer as your average Javascript programmer, and more-so when we're talking about someone with less than about five or six years experience. And I am not proficient in Javascript.
(This isn't to inflate my image, but rather to point to the fact I'm no greenhorn.)
I've made a careful technically-driven decision never to waste my time on Javascript. My work with HTML and CSS, while there, is fairly sparse. I do almost nothing in web development.
Don't inflate your favorite languages to be "essentials". No language is an essential to the whole of the industry, especially not one as highly abstracted as Javascript.
Zero. They can read, and any good organization should have a workflow document somewhere. Heaven knows, there are only about a hundred possible "standard" workflows possible with Git.
it depends on your position and the project that you will be affected, a junior is a grade to make a difference in the salary, you should have passionate about coding, having the habits to ask in StackOverflow, GitHub issues
Basic mastery of your tech stack (If the job is for embedded systems, maybe don't walk in and say you only know HTML lol)
Basic GIT
Basic algorithms (if you can do fizzbuzz you're gold)
Enthusiasm
A willingness to learn.
It might take 3 months of training to get someone from a hobbyist to professional junior level but they'll also probably spend much more time with the company to learn. If I had a company I would want someone who has attachment to the company, not someone who shows up for a check.
It's a priority , because you can be a guru in any technology but as a junior developer, while joining a company you will work with the team , if you didn't' matter how to write a good commit message, create a new branch for each task how to make a rebase a pull, git checkout, you need them as skills into the programming war
Hi! I'm an aspiring computer scientist with interests in quantum computing and distributed systems. In this blog, I write about the useful things I've learned during my programming journey.
If you're hiring a 'Junior Developer' you're not looking for a list of technical skills / experience.
Instead you're looking for traits such as:
Can't echo this sentiment enough. You're looking to hire a person, not a computer.
i agree
Why attention to detail is like a computer?
It isn't. I was agreeing with you.
...a lack of an ego.
Eight years experience hiring junior developers, and I'm still shocked at the egos I see sometimes.
"Junior developer ego"
is that a pointer to overly being defensive? or being proud generally?
It has many flavors, including:
The two most absurd candidates in this way we've encountered were:
(a) A 19-yr-old who had built "half an app in C#" (and nothing else), but was determined to school everyone in the company at how we should be building software, and
(b) A candidate in his late 30s who showed up to the interview wearing dirty, torn clothes, and whom hadn't showered or brushed his teeth (I could smell him when he shook my hand), and proceeded to tell us what a brilliant coder he was...when his code was actually sub-par by even our forgiving standards. And then he tells us he had already taken another job, but "he could fit us in maybe".
Wow! 😂
I guess a lot about being a junior developer is tied to the trait of BEING HUMBLE (especially since transitioning is dependent on how well Juniors act upon feedback. No one will want to give feedback to a proud folk)
I'd attribute this to the Dunning-Kruger effect (A term I've very recently learnt about).
Senior devs should not instantly disregard junior devs input as they often are very keen to follow best practices and have great knowledge about up and coming technology. But like Jason suggested there can also be a lot of unfounded ego, or at least a lack of understanding of the bigger picture.
I'd agree with Prosper in the being "humble" is the most important trait for junior and also senior devs. There always someone else, regardless of experience, who knows way more than you about something!
I agree.
Also, for a split second, I thought "Dunning-Kruger" was also the name of the company in The Office (it's actually Dunder Mifflin). 😂
I wish I could like this more than once.
Hello Rob;
I am a junior front end developer, I would like to connect to your network to learn and grow
for a junior I dont think all of the above is necessary. Knowledge and the basic practicals are indeed a necessity.
Lets be real here. you dont NEED a stack overflow profile as a junior.
No. Absolutely, no. I have eight years experience hiring and training junior developers, as I mentioned elsewhere, and I have never needed them to know any of this (or the equivalents from our stack)! And yes, before long, they were proficient.
All I ask of them in the technical skills is:
The rest can be picked up on the job. You should be expecting that with a junior.
And yes, most of the juniors I've hired have had little to no experience with the languages we use at MousePaw Media, but that has not been much of an obstacle at all. They're intelligent! Their first assignment is usually to code review a more experienced developer's Differential (think Pull Request), referencing the language documentation and asking questions to understand what all is happening. The first month is a little rough for them, but before long, they're quite proficient.
This really looks reasonable!
I am looking for internship positions and I am facing this issue right now. All of the organizations are expecting me to already know every language and framework, I am baffled.
If you're still looking come August 15, check out MousePaw Media's internship program. (That's when hiring for the next cohort opens.)
Yah this seems like a lot. What’s the depth of knowledge that you require for these subjects? I mean SQL and NoSQL alone. Data modeling doesn’t seem to be a junior level skill.
Best list I've seen yet!
A lot boils down to not necessarily having the right answer but communicating how you get to SOME answer and being willing to have constructive conversations about your design and code.
This! Also, the inverse of this which is the ability to explain technical concepts to non-technical clients, like informing stakeholders why feature x would take x amount of time.
Fair call out, I typically see this as senior or above expectation but that could depend on the team and the company.
In what ways can a Junior show Ego?
I would expect them to
now this is acceptable..
Do you mean HTML, CSS, and JS as a requirement for a web dev role or just any software role in general?
I feel it is a must for all software roles. It speaks a lot about the basics of programming.
Blinks
Yeah, sorry, no.
As a point of reference: I'm considered an expert in the Python language, extremely proficient with C++, and skilled with algorithms, efficiency, memory management, and data structures. I've written libraries, applications, and games. I've trained a dozen young developers and counting, helping them launch successful careers. I'm a technical author and a speaker. Based on interactions, I am at least as proficient a developer as your average Javascript programmer, and more-so when we're talking about someone with less than about five or six years experience. And I am not proficient in Javascript.
(This isn't to inflate my image, but rather to point to the fact I'm no greenhorn.)
I've made a careful technically-driven decision never to waste my time on Javascript. My work with HTML and CSS, while there, is fairly sparse. I do almost nothing in web development.
Don't inflate your favorite languages to be "essentials". No language is an essential to the whole of the industry, especially not one as highly abstracted as Javascript.
This is soo Apt!
Thanks
Zero. They can read, and any good organization should have a workflow document somewhere. Heaven knows, there are only about a hundred possible "standard" workflows possible with Git.
Is being comfortable with the general GitHub workflow a good start and then adjusting to meet organization workflow?
guides.github.com/introduction/flow/
Honestly? Being comfortable with any VCS workflow is a good start.
as a junior developer, it pisses me off to see all "junior developer" or "intership" job postings that require 3+ years of experience
I'm not sure if there is a standard but from searching I think the maximum is 1 year?
But then I think different companies always have an interpretation for what experience really is...
Enough to commit, push, pull, and merge.
it depends on your position and the project that you will be affected, a junior is a grade to make a difference in the salary, you should have passionate about coding, having the habits to ask in StackOverflow, GitHub issues
I guess good Git skills are eventually needed for team collaboration. As most companies depend heavily on the tool
Basic mastery of your tech stack (If the job is for embedded systems, maybe don't walk in and say you only know HTML lol)
Basic GIT
Basic algorithms (if you can do fizzbuzz you're gold)
Enthusiasm
A willingness to learn.
It might take 3 months of training to get someone from a hobbyist to professional junior level but they'll also probably spend much more time with the company to learn. If I had a company I would want someone who has attachment to the company, not someone who shows up for a check.
If you're not willing to invest in people I don't see how you can ever expect them to invest in your vision.
It's a priority , because you can be a guru in any technology but as a junior developer, while joining a company you will work with the team , if you didn't' matter how to write a good commit message, create a new branch for each task how to make a rebase a pull, git checkout, you need them as skills into the programming war
I recommend this article towardsdatascience.com/soft-skills... about soft skills for developer
Thanks for that! I'm working on marketing myself as a junior dev, and those are the sort of things I had forgotten to emphasise.
As much you learn, us is good for you, there is basic commands you should learn and master
Wonderful lists so far, awesome comments everywhere...I just came to read and I'm pleased i did...Thanks all!
I went through the comments and learned a lot, these tips will help when I'm hunting for a junior role as I'm currently interning. Thank you.
I need a job as a front end developer. There are many founders here, you can hire me Emergency