DEV Community

loading...

Figure out: how 'junior' a junior developer is!!!

manish srivastava
Director & CEO, GDP CHURN (P) Ltd. Loves coding . Supports open source by funding.
・2 min read

0-->3 years developers are counted as junior developers.
You may ask a few questions or examine how they programme to distinguish good developers from this crowd of junior developers.

Back-end:
Ask junior developer to create a CRUD form with name, email and phone number.
Language: Any
Framework :Not allowed.

Once he create now check:
1- Did he used client side validation?
2- Did he also added server-side validation of form fields?
3- Did he used CSRF token ?
4- Did he expired CSRF token with session or before session or he is not expiring?
5- Did he used function and classes in crud?
6-Bot check with captcha before submission of form?
7- Did he made an approach with oop ?
8) Is the all values tabulated by developer is looped at once from database or every pagination is requesting fresh values.

Front-end:-
1) Ask to write media query for some standard devices.
2) Ask him to use calc to calculate padding value of div by device width.
3) Create a modal + multiple modal in a page.
4) create collapsable navbar.
5) Write manifest for pwa.
6) Write Service worker for pwa.
7) Do he know tools like lighthouse or gtmatrix?
8) Does he used meta tags?
9) Code quality as per seo.

Devops
1) Does he knows anything about load balancing? ( Hint him with HAPROXY)
2)Ask him to create a container with different resources.
3) Ask him to use iptables to listen a container / vm on any port.
4) Ask him about reserved ports like 80, 22,110 etc. Ask him is it possible to listen these ports of vm / container on any other port of host?
5) Ask him to write a shell script to download some softwares with shell scripts.
6) What are different popular Desktop Environments in linux.
7) Convert a server into desktop.
8) How to take server backup on any other remote drive / server.
9) What OCI means in container technology.
10) Update GitHub and server files get updated by itself. Does he know how to achieve it?

Let me know your views.

Discussion (19)

Collapse
_garybell profile image
Gary Bell

That's a lot to ask of a junior developer without giving more specific guidance. If expect that level of thought off the vague spec to be at a mid or senior level, where they have run into the issues before.

I wouldn't expect my junior developers to know about the devops process in the first couple of years. They should be learning about the application, tech stack, and how to think about the implications of their changes, and how to question a spec.

Not everyone has worked somewhere with devops in place. To say that someone who doesn't know it isn't a good developer is narrow minded and is a fallacy. I didn't cover any proper level of devops until about 8 years into my career. It simply wasn't done where I worked (and wasn't common parlance back then).

I've been in the development game a good amount of time. Outside og Gnome, KDE, Unity, and Cinnamon I don't know other Linux desktops. Xfce might be one but I never remember the right letters. I spend my day in a Ubuntu VM. Not knowing different ones doesn't make me a bad developer.

You don't specify a time limit on them producing the form. Do you expect all this to be done in an hour? A day? A week? Different time limits will change what should be provided, or at least researched and added to a road map document as part of the submission.

Finally, if you are expecting a junior to know all this, are you paying for them to learn it on the job? Or do you expect them to spend all their free time researching and learning? When I was a junior I had other hobbies outside work. Now I'm older I have a family. I can't spend most of my time outside of work learning new technology or trying to refine infrastructure setup. I need down time.

I think your expectations are unrealistic.

Collapse
manishfoodtechs profile image
manish srivastava Author • Edited

Hey Gary thanks for commenting. Agreed with you if you ask everything to a jr dev from list. Actually, article has three sections and intent to examine jr dev role : back-end , front end or Devops . Naturally, a jr dev will be assuming one of the role.

Not everyone has worked somewhere with devops in place. To say that someone who doesn't know it isn't a good developer is narrow minded and is a fallacy
+1 to your thought and I agree with you. But these questions only check the basic normals now. For example, a crud program without validation or secure is no use at commercial level. If Devops is not a role ... Why to put question?

You don't specify a time limit on them producing the form. Do you expect all this to be done in an hour? A day? A week?

All questions are for interviews (1-2 hrs).

I've been in the development game a good amount of time. Outside og Gnome, KDE, Unity, and Cinnamon I don't know other Linux desktops. Xfce might be one but I never remember the right letters. I spend my day in a Ubuntu VM. Not knowing different ones doesn't make me a bad developer.

Instead of asking about server types, we are asking about desktop environments. This is just to understand how he /she knows about linux world.

*
I think your expectations are unrealistic.*

Agreed, if you start asking Devops questions to frontend guy.

Collapse
manishfoodtechs profile image
manish srivastava Author
Collapse
cairnswm profile image
William Cairns

I'm a senior dev with 28 years of coding experience. I'm also a good coder. I'm also a good mentor of junior devs. More than half of the tasks above I could not do without research. About half of the tasks I see no reason my junior devs would need to know.

I strongly disagree with the list

Collapse
manishfoodtechs profile image
manish srivastava Author
Collapse
jkhaui profile image
Jordan Lee • Edited

Geez. I mean, I could probably do most of it (besides the devops stuff), but I wouldn't because... Why? Is this for a job interview? Also, who gets to be the judge on whether approaches like OOP are considered "better". What if this developer is young and brought up with a cloud native philosophy, functional programming paradigms, etc. Does that make them worse than an old school dev?

I like building things, but I also value my free time and mental health more than proving I'm not a terrible programmer

Collapse
manishfoodtechs profile image
manish srivastava Author
Collapse
codefinity profile image
Manav Misra

Different needs for different work cultures. This is a tall task, and 0-3 years is not the 'magical number' to label 'junior' or not.
This might be a small nitpick, but consider using 'she' instead of 'he' all of the time. 👩🏽‍💻

Collapse
manishfoodtechs profile image
manish srivastava Author • Edited
Collapse
zoedreams profile image
☮️✝️☪️🕉☸️✡️☯️ • Edited

sounds about right with current day standards.

The hardest programming tests i was given was to create a recursive algorithm to solve N* row sudoku. Which is actually super NP because you need to use multiple types of complex analytical functions at different N* row sizes.. In under 48 hours showing work.. ugh. that was uber hard.

I might suggest that most often the social technical aspect is almost more important than if they know how to google to figure out how to install some software or code a for loop. IE, pretty much anyone these days with basic math skills can learn to pass; where as determining if this person can understand agile or scrum is important. are they creative, how is their critical thinking. Again its all fun until you start running into issues.

Thank you for sharing.

Collapse
manishfoodtechs profile image
manish srivastava Author

yes , Again its all fun until you start running into issues.

Collapse
zoedreams profile image
☮️✝️☪️🕉☸️✡️☯️

issues, thats for the birds ;)

Collapse
nielsbom profile image
Niels Bom

I’d just like to add that there are very talented non-male tech people out there. (Your article only uses he/him).

Collapse
jkhaui profile image
Jordan Lee

Talent is talent, regardless of age, gender, etc. Though to be fair I don't think the OP was intentionally compartmentalising based on gender.

IMO, the misguided point of view in the article is the notion that there is some magic threshold or time-period where one suddenly loses one's classification as a "junior" dev

Collapse
manishfoodtechs profile image
manish srivastava Author • Edited
Collapse
nielsbom profile image
Niels Bom

I didn't think it was done on purpose 🙏 Just something to be aware of.

I often catch myself thinking, talking or writing about "a male developer" because I'm a male developer.

Thread Thread
manishfoodtechs profile image
manish srivastava Author

No Niel this was not the case as I said earlier. But I have noted a valid point from you. Thanks

Collapse
lunfel profile image
Mathieu Tanguay • Edited

I think it's kinda unfair to to expect the developer implemented a bot checker on the crud form. As this is a requirement that would determined on a project base. What if in a real context the form is not exposed to the whole Internet, maybe it's unnecessary.

Actually, if I would ask a dev to code a simple CRUD and he/she goes on implementing extra features that were not in the original requirements, I would make him/her loose points because they might have spent precious time on some unnecessary features. That inflate the cost of projects.

I think it would only be fair if it was explicitly stated in the task to prevent form submission from bots.

I also strongly disagree with backend #5 and #7. This is not any indicator of a good dev. And I do not understand what #8 mean.

Collapse
manishfoodtechs profile image
manish srivastava Author • Edited

Hey Mathieu thanks for your views. Agreed with you. But in recruitment process:
it's not about academic fit but industrial fit. An Industrial fit developer will always take care of new norms.
Here is more in second part: