
Ask HN: What is the skillset required to be employable as jr dev? - lostPoncho
When hiring someone as a junior developer, what do you look for if they don&#x27;t have a college degree?
======
malux85
\- a good working knowledge of the command line (up to say piping, xargs)

\- basic networking

\- show me a hobby or project you have worked on, I'll ask you questions

\- I'll likely try to teach you a command or small factoid to see how
receptive you are to learning

\- I'll likely query you on this factoid at the end of the interview to test
your memory and comprehension

\- if you haven't said "I don't know" in the interview I'll ask you a very
hard question to see how you react to not knowing something (hint: getting
angry or defensive is not good)

\- I will try and get you to teach me something, so I can make sure you know
that senior members are life learners too. This is to identify if you're one
of those people who lose respect for someone not knowing something you know,
as I think this is a strong negative sign

Bonus points if you have competed an end-to-end project, it doesn't have to be
deployed online, but being about to talk full stack is great!

------
megaman22
A brain, and the ability and willingness to learn. None of us really know what
we're doing in this industry anyway, and you're constantly on the treadmill of
learning new things to keep up.

Being able to effectively use the internet to search for information is a big
deal.

Honestly, it doesn't make a huge difference if they have a degree or not. Most
universities don't teach much of anything that is particularly relevant to
actual software development in their curricula. If the practices and
technologies that are taught are only ten years out of date, that's cutting
edge.

You're going to be spending 3-6 months training up a junior developer before
they are at all useful anyway. You just want to find the ones that will be
continue to progress at the twelve month mark.

------
ChrisBland
Someone who can talk through a problem, ask questions and think critically. I
know HN hates the "consulting" type interview questions; but I find for jr
devs its a great barometer of how they would react in the real world to a
problem they were unfamiliar with. Ie: how much would you charge me to wash
every window in the city? I don't care about the total price, I care they ask
and answer the questions, well how many buildings, how long would it take to
do one window, how many different building types are there. I want to see them
take what looks to be an insurmountable problem, and break it down in to small
manageable problems. If they can do that, they can reason about any bug or
feature on a system they are not familiar with. The only "wrong" answers are
if someone blurts out a number without thinking, or someone who just shrugs
and goes, I have no idea how to do that.

------
sodafountan
I was hired as a junior developer, without a degree, with the following
things:

\- A personal blog

\- roughly 20 personal projects that I've worked on throughout my lifetime as
a hobbyist, most of which weren't very complete but demonstrated my passion

\- A willingness to learn

\- A good attitude

~~~
hluska
That's very impressive. You should be proud of yourself for putting so much
work in!

~~~
sodafountan
Thank you! I did most of those project during my high school and college
years. I've found that there's no substitute for hard work in life, you can
either go to school and work hard to get a degree or you can work hard on
entrepreneurial endeavors but you have to work hard. How you choose to gain
experience isn't that important, especially as a software developer.

------
locococo
I am a developer without a degree and transitioned from IT into development. I
am in my last year of my Undergrad in CS now.

What you need more than anything are skills. Ranging from networking knowledge
to having a good command on linux. In addition you have to be able to program
in Python, Java, JavaScript, C. You also have to understand data structures
like linked lists, queues, b-trees..., and to top it all of understand
algorithm analysis to judge the efficiency of the code you write or look at.

My recommendation is to get the degree, medium to long term you will need it,
and it will benefit you greatly. It seems to be popular to claim a degree is
not needed for CS but if you want to do anything besides simple web apps then
you will need the knowledge.

~~~
saiprashanth93
Lets go through this one by one:

 _In addition you have to be able to program in Python, Java, JavaScript, C._

This is objectively false. To expect a junior developer to know all these is
unrealistic, plain and simple. If you have working knowledge of one or two
programming languages and have an appetite to learn you are good to go.

 _You also have to understand data structures like linked lists, queues,
b-trees..., and to top it all of understand algorithm analysis to judge the
efficiency of the code you write or look at._

For 99% of the work out there, this is also not true. This is the horse crap
that is fed to everyone so that folks can ask questions that have little to no
relation to day to day development. If you are doing web development, then
some knowledge of database query optimization will come in handy. But I don't
remember the last time I had to figure out how a linked list worked whenever I
was doing any server side or front-end optimization.

~~~
earenndil
> > In addition you have to be able to program in Python, Java, JavaScript, C.

> This is objectively false. To expect a junior developer to know all these is
> unrealistic, plain and simple. If you have working knowledge of one or two
> programming languages and have an appetite to learn you are good to go.

Still in school, so haven't had even begun to look at jobs yet, but I know
python, java, and c (and a few others), and have a basic knowledge of js. Does
that give me an edge, then?

~~~
probinso
nope; its actually not that uncommon for a college graduate; An edge may be
gained if you vary paradigms for some companies (Procedural, Functional, OOP,
Logical, Interesting Type System)

------
Multicomp
(Optional: Where do I ask:) Who's hiring Jr. Devs? Because as far as being
passionate to learn (and knowing some of the basics of .NET flavored
development), I'd like to grow my skillset beyond that of IT Generalist.

~~~
thomastjeffery
As someone who doesn't have much of a resume, but has a lot of knowledge and
passion, I have no idea where to present myself.

Every "job listing" I find for programming asks for a 4 year degree and years
experience. Since I don't have either (on paper), I have no idea where to show
myself.

Who is hiring Jr. Devs? Where?

~~~
hluska
I don't think that the traditional "find a job post - click apply - send
resume off into the void - wait" model will work very well for you. So
instead, I would focus on researching companies and then reaching out directly
to founders/very senior engineers. If you work hard to demonstrate passion for
both their product and learning how to help build it, you will get some
opportunities.

------
slysf
There's a lot of great advice here which can be broken down into two
categories: specialist vs generalist. A really important thing to figure out
is what kind of developer you are. Which sounds better: a. Constantly being
challenged to learn new things, a rapid paced environment where lots of change
and challenge are introduced b. Organized environment where work is split up
by expertise, groups have a narrow focus where they become experts in their
domain and iterate to perfection

Obviously you should have a nice balance of both, but I've found many company
cultures to lean more one way or another, and the advice on this post seems to
divide similarly. If you like option A I'd recommend getting a good overview
of a variety of languages, data stores, and tools/frameworks so you can at
least have an idea of which one you'd learn more of for a given problem. If
you like option B I'd do a deep dive into algorithms and CS fundamentals with
one language (C, Java, etc) and target companies that work with that language.
They're also more likely to have a well defined intern/junior dev role than
the fast paced shops, but a slower pace of learning/advancement.

------
jerven
Working in semi academia I do see these kind of applications. The following
are personal opinions that work for convincing me when I am in an hiring
committee.

* A good cover letter * Having worked with a version control system * Shown initiative

For me a good cover letter makes a world of a difference. Anything at all that
shows you have thought about the problems that the organization you are
applying to is gold and basically an guaranteed phone call.

I still see CV's and get people at phone stage that never used a version
control system e.g. git. I don't care which one you used. Its just that it is
my baseline for competence.

For a junior position our main aim is to have someone who is willing to grow
to a senior and that requires initiative i.e. doing more than what they are
told to do but seeing what needs to be done and starting on it. Being in semi-
academia I also know that we can rarely keep people once they become senior
level due to wage differences. Initiative can be shown in many ways, from the
way you reach out to us in the pre-interview stage, to highlighting things you
have started in your social live e.g. club activities etc...

------
AnimalMuppet
I got hired as a junior developer (a _long_ time ago) with a math and physics
degree, _one_ computer class on my transcript, no experience, and "mostly
self-taught with respect to computers". I got hired by a manager who had a
master's degree in math and was mostly self-taught with respect to computers.

So the skill set required to be employable as a junior dev is to be able to
convince one hiring manager that you can do it. Then, after that, you have to
learn enough to be able to actually do the work, so that you can _remain_
employable. That's different, though. Learn what you need for the job you
have. Don't worry about learning other things; learn what you need as fast as
you can. You'll pick up other stuff around the edges, and that's good, but
they're paying you to learn (and then do) what you need for _this_ job.

------
nxsynonym
I have a question for interviewers:

how much, if any, white boarding do you have the interviewee do for a front
end junior position? And what are you looking for - memorization of common
problems/solutions? ability to think through problem? something else?

As someone who has pretty poor memorization and does poor on tests in general
- this portion of interviewing gives me the most anxiety.

~~~
thomascgalvin
We don't use any whiteboarding questions. There is a coding component of our
interview process, but it's all done on a laptop.

Our goal is to test like you work, so you have an IDE, access to Google and
StackOverflow, and when we ask you to implement an algorithm (like QuickSort)
we link to the Wikipedia page in the instructions.

We've found that the ability to memorize is basically useless is identifying
good candidates, but the ability to implement when given proper instructions
is really valuable.

~~~
nxsynonym
This is what I was hoping to hear! Thanks for replying.

~~~
slysf
At many bay area startups I've worked for we would do whiteboarding sessions
but I would stress that the candidate "treat me like google". I would actively
encourage them to ask questions of the type they'd look up, to be comfortable
being collaborative. This to me showed much more about a candidate's ability
to work on a team, learn quickly, and apply what they've learned than any
whiteboard session entirely from memory could prove. This becomes even more
important the further out of school a candidate is; some of us took algorithm
classes decades ago.

------
raquo
Having a good understanding of things you claim to know (even if that is not a
huge set), and ability to effectively convey that understanding to someone
else.

Personal or commercial projects that demonstrate relevant skills. Bonus points
if I can see the source.

Having a mentor really helps to prioritize your learning efforts in the right
spots, both before and after getting the job.

------
probinso
Without a degree you need a ledger of work, and preferably references by
people you have collaborated on something on.

\- You must have projects in at least two programming languages with at least
one programming language listed in the job posting

\- at least one project to 'completion' that uses a database (sqlite counts)
(MVP of MVC with DB) (preferably something remote so you have do deal with
networks and latency)

\- Either know how to navigate Linux command line Environment xor a
Microsoft/Netbeans Style IDE

\- Use of a version control system (preferably in collaborative environment)

\- Depending on company culture you may also need to have reviewed algorithms
and abstract data types. (you can usually skip this requirement by being hired
as an intern first, and bootstrapping your employment)

\- willingness to document and report work completed during a time period (as
a ledger of progress)

------
carlmungz
Background: Recently started my second job (mid-level) after leaving my
previous job (junior, first programming job). Switched to programming from
journalism

How: Wanted to create a news aggregator, so I teamed up with a friend (backend
guy) and learnt how to do frontend. 14-months later I got hired after creating
some side-projects and learning enough to convince my first employer to take a
chance on me.

What worked for me: Learning JavaScript, the language, instead of trying to
learn shiny, new frameworks. Learning how to read source code (a more recent
habit but it helped me get my second job). Showing a genuine passion for
coding through getting involved in open-source communities and learning
outside of work

------
bdcravens
Know SQL. Not because you'll be needing it, but because of the bias among
older developers that junior developers just glue together frameworks and
libraries, and lack real problem solving knowledge. Learning SQL is probably
the quickest way to diffuse that.

------
tgamba
I have hired junior web developers, both those right out of school and those
without CS degrees. I look for:

\- a portfolio website that deploys a range of recent web technologies. This
demonstrates initiative, and also the fact that you can set up a web site
somehow.

\- some freelance work on your resume, even if it's as simple as setting up a
WordPress site.

\- a code sample, so have something decent ready, again showing an interest in
more than basic web development. Deploying a framework other than jQuery is a
plus, as long as you show some sufficient hand-coding skills.

\- interest in back-end technologies is a plus even of the job doesn't require
it

\- in the interview, openness, honesty and drive

\- and finally the coding test I give you will show if you know what you are
talking about

------
gvajravelu
We look for junior developers who are "coachable": we can teach them the
skills they lack and they will learn quickly.

As a junior developer where I work, we aren't expecting you to know a lot
coming in. But we do expect you to have a good attitude and to want to learn.
We can teach you how to write software, but we can't teach you about work
ethic.

We have one developer who started 10 years ago without a college degree. He's
a team lead now.

In summary: \- You should want to learn from the senior developers \- You
should have a positive attitude \- You should have a good work ethic (show up
on time, help your coworkers, shouldn't act like any task is beneath your
skill level)

------
segmondy
Resourcefulness. Being able to get things done.

Curiosity. Always wanting to learn more.

Growth Oriented. Constantly learning.

Humility. Knowing when to say, I don't know and ask for help.

Pride. Having a decent ego, wanting to be the best and showing it by putting
in the work.

------
muzani
Smart and gets things done.

Every other thing is related to that. Are you a freelancer asked to build a
website? Who cares whether it's PHP or JS, it just has to be done. Are you
maintaining a PHP website? Then you need PHP to get things done.

The rest of the interview process is to filter out the smart part.

------
johnmariogz
First, look for companies that you'd like to work. See if the technologies
that they work with are the ones you know, and start developing more skills on
them. That will increase your chances of getting hired.

