loading...

Discussion

markdown guide
 

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:

  • An interest in software development and technology.
  • A willingness to learn.
  • Attention to detail.
 

...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:

  • "I know what I'm doing, let me work my magic."
  • "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".

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)

 

Can't echo this sentiment enough. You're looking to hire a person, not a computer.

 
 

Why attention to detail is like a computer?

It isn't. I was agreeing with you.

 

I wish I could like this more than once.

 
  • A general hunger to learn
  • Lack of ego as mentioned by others
  • 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.

 

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?

 
  • 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.
 
  • Git and Git and Git (essential tool for any junior developer)
  • Design patterns
  • Front-end framework (Angular, Vue or Reactjs )
  • Java or Nodejs
  • SQL and some knowledge about NoSQL
  • Participating in Hackathons, challenges
  • StackOverflow profile
 

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.

 

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.)

 

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.

 
 

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

 

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.

 

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 have some problems with rebase, that's something that I must put effort to learn!

 

As much you learn, us is good for you, there is basic commands you should learn and master

 

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.

 
  • Enough understanding of data structures and algorithms
  • Willingness to learn and to be coached
  • Attention to details
 
 
I would expect them to
  • Know HTML, CSS, JS
  • Know Github
  • Have one or more side projects
  • Speak about their future goals
 
 

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.

 

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...

 

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.

 

I recommend this article towardsdatascience.com/soft-skills... about soft skills for developer

 

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