
Ask HN: From zero to IT career, what is the fastest path? - antirez
Dear HNers, I&#x27;ve two friends of mine that are not happy with the economic issues here in Europe and struggle to find a decent source of income. Both are very smart, and I suggested them to turn into programmers, which is one of the jobs that still is able to make you pay your bills easily.<p>However they are one ~30, with previous experiences of coding only at hobby level (C course, but he has the ability to translate ideas into C easily) and one ~40 years old (which used to be a PHP programmer, but is not doing serious&#x2F;complex stuff for years at this point).<p>What is the simplest way for them to learn something that will bring a job ASAP? For example Android development? Node.js? Ideally this should combine a reasonable learning curve, the ability to work without knowing the whole computer science stuff, but just specializing into something, and should be a currently very requested technology.<p>Thank you a lot for any reply!<p>EDIT: I forgot to say that one has knowledges about Digital Signal Processing (in the field of music), and one is fluent with HTML&#x2F;CSS (but not Javascript).<p>EDIT2: Thanks a lot for all the replies! This is very helpful.
======
mping
I'd say to them: learn Java.

Java is in high demand, and if you know either C and/or PHP I'm sure your
friends will pick it up. Although there's some competition, you don't have to
worry with competing with the 20s kids _as long as you are an OK programmer_.
I believe there's enough demand for your friends to get hired, and theres a
ton of resources on java stuff. Better yet, if you can manage to get Oracle
certified, I'm sure that no recruiter will put you aside.

Consulting is rather easy to join (comparing with the other IT stuff, such as
startups or reputed companies, consulting, etc), provided you can cause good
impression with the recruiters. Technical interviews are normally easy, and
there is scarcity on the supply side. The hard part is really getting the
interview.

I helped a friend of mine who didn' finish his degree and was working in a
music shop to enter the consulting industry. The plan was basically a) get
some skills and b) bombard alot of recruiters to try and get interviews. We
rehearsed some interviews so that he could feel the stress, and I pushed him
to study some github projects. He got hired within a month or so, and he's on
his second gig.

If you (or anyone) want my .2c, let me know.

~~~
psenior
I'm currently taking a Java class at a non-profit org and they suggest the
same strategy. Can you please point me to the Java Github projects that you
suggested to your friend? Any other tips or advice would be appreciated.

------
draugadrotten
I would say the answer depends on Where in Europe your friends are seeking
employment. The job market - and the job requirements - are significantly
different between Rural Romania, Berlin or an oil field in Norway.

They are 30+. General advice there is to stay away from competing with the 20+
crowd. Compete where age is on your side, which means go into business where
you have 10 years experience over the young ones. If you were a carpenter and
want to be a programmer, build solutions for the construction industry. If you
were a car mechanic, build solutions for the car salesman. You get the idea.

For starters, your friends can choose between getting an education , or trying
their luck at "skill". If they want to work for big corporations, education is
mandatory. If they want to work for small companies, education isn't going to
be as important, but reputation is key. Be sure to never leave a job
unfinished, and always ensure your customer is happy. Your happy customers are
your salespeople.

If one of your friends are already fluent in HTML/CSS, it's natural to go into
the custom wordpress theme coding, etc. This is not really an IT job anymore,
but a part of the advertising industry. Pays poorly, and will continue
downwards.

Your DSP friend is in better luck. This is a hard, difficult-to-learn skill.
Especially if he also understands the advanced math behind it. Good DSP jobs
are found in larger industries, so if he doesn't have a math degree, that
would be advised. Having a Master's degree and being good at DSP programming
will secure a very good future with few competitors.

As for "programming", that's not really one job but a wide field of jobs.
Marketing style jobs are plenty and small, and available for both web and
mobile. They pay poorly though. Corporate 10000+ hour projects or salaried
positions are out there, but almost always require a M Sc. There are always
going to be plenty of 100 hour projects at smaller companies, but it's poor
job security.

"Programming" in general is also under very heavy fire from outsourcing to
lowest bidder, so I would not advise anyone to start it as a career.

YMMV.

~~~
akbar501
Genuine question.

> General advice there is to stay away from competing with the 20+ crowd.

What do you see as the relative strengths of the 20-30 developer vs. the 30+
or 40+ developer?

~~~
draugadrotten
The relative strengths is ability to change vs stability.

Generally here, the development skills vary more between individuhals than
between age groups. Straight out of university, young developers tends to have
done smaller projects (1-4 team members, 100 man hours each) and have
excellent technical knowledge about latest toolkits. They will be able to
solve very difficult technical issues and have an agile mind. They do not have
experience from issues arising in larger projects (10-100 developers) due to
legacy code, support agreements, management issues, project methodology, and
they haven't even tought of corporate culture and office politics yet
(sometimes for the better). The love for "my new stuff is better than the old
code" can lead to design decisions which causes untested technologies to be
used in the wrong places. Young developers often have no kids and sometimes no
spouse, which makes them work long hours,and be very flexible in crunch times.

Older developers tends to have spouses and kids and responsibilities. This
sometimes is a problem, but it can also force them to release the code as soon
as possible, instead of doing a third or fifth round of optimisations and
improvements. Older developers have seen the office politics and shenanigans
several times and try to avoid them or even handle them. The older developer
may sometimes be lazy and stick with older tools instead of new technologies,
which can make products look and feel like they were designed last decade. But
in large corporations, it's better with a released working code that looks old
but is stable, than code which isn't stable.

Money-wise it's a toss-up. The extra experience from older programmers comes
at a premium cost, which most of the time makes me assign junior programmers
for the bulk of the work and senior ones for architecture etc.

------
peterwwillis
Software development is a hell of a lot more difficult to do right than all
the other non-programming IT jobs.

If you want a job ASAP, learn desktop support, be a network analyst/systems
analyst, systems administrator, database admin, quality assurance
analyst/engineer/tester, etc.

A lot of jobs out there are just "we needed someone to set up this software
for us and push a button once in a while", and they pay well. One guy I worked
with had a job similar to mine, and he was supposed to be some kind of
engineer, but he kept coming to me asking things like 'how do I sort the lines
in a file?' Speaking of which, you should look for contract jobs or government
jobs, or government contracting jobs. They require the least expertise and pay
the most.

~~~
sreenadh
I second it. I am personally disturbed by the trend of people like Bill Gates
& Will.i.am (I do not recalll both having programmed something) claiming that
programming is easy and everyone should do it. I have faced alot of issue
where idiot managers think that mastering right-click and double-click is
close to mastering programming. I was told in 1999 that MS Frontpage will make
web developers & designers obsolete. The last thing we need is people claiming
that you can become a software developer in couple of weeks. Software
Development(Programming & Testing) is a science that needs a understanding of
systems. Coding is a BIT simpler process. I have experience teaching my friend
programming in school and collage. May be I am a bad teacher, but I feel its a
complex process and couple or weeks is too less of a time. Learning syntax
will take just hours but writing readable and extendable code in the most
efficient manager is what ensures a steady paycheck. DBA admin is also a
rather under-rated job. I too suggest Level 1 & 2 IT support for starters.
Testing & QA also seems like a easy to learn process.

------
Ryan_LOL
My #1 advice is to start by making your own job. This can mean bootstrapping a
simple app, grinding away at building wordpress themes, or making paid
programming tutorials.

This might not be the popular advice, but it's coming from a self-taught
developer that now has > 10 years professional experience.

~~~
AndrewKemendo
I agree with this for several reasons:

1\. You learn how to be efficient (if not necessarily clean) with your code

2\. You will network by default in order to solve the problems you encounter -
and set yourself up with the network you need to find a job

3\. You prove that you have the range of skills needed for a good developer
(requirements management, holistic understanding, deployment environment,
technical depth)

~~~
boredprogrammer
Could you elaborate on the "network by default" point? I've been programming
for 18 years and my professional network is pathetic. Any problems I have I
research online - my network is google search. Unfortunately decent jobs are
much harder find through google search.

~~~
AndrewKemendo
I'm sure you weren't googling answers when you first started and were probably
asking your questions on bbs. I would also imagine you are using SO and other
"forums" like that which are a form of networking (look as the profiles of
some of the top people answering questions). I consider having a public GitHub
repo networking because you can invite and share your projects so people can
evaluate your work and collab. To me these are the default things that good
devs are already doing.

Beyond that though I would suggest attending meetups in your area for all
kinds of different things - for example there is a Ruby meetup in our area,
there are node meetups, meetups for ML and NLP etc... These are cool places to
show off your work, get help on projects and meet other people who would have
links into jobs.

------
vassilevsky
I have worked as a tech support guy for PHP-based apps for ~6 years. Pretty
shitty schedule and pay.

Then I finished all Ruby and Rails courses on CodeSchool. Then practiced
myself, using mostly Google for info. This allowed me to apply to a Rails
company as a junior developer. I got hired and trained. I love it.

------
redmattred
QA is probably your quickest path towards a job IMO. If you're willing to do
manual testing but has some capability to do automated testing you can bring
some real value.

~~~
pbhjpbhj
Can anyone that agrees about QA be more specific - like practical courses,
companies that would be likely to be hiring, ...

~~~
peterwwillis
I can't recommend anything specifically... practically any book that describes
black box testing will tell you everything you need to know. You learn 99% of
it on the job. The only prerequisites are basically word processing and
internet skills.

Anyone who charges money for a product or service, produces a physical or
software product, or supports different use cases will have some kind of QA.
Often medium-to-large web companies have QA departments to make sure design
changes don't blow up the site for different users. Different industries do QA
differently (for example, medical device QA or anyone supporting ISO 900X is
more rigidly structured and policy-driven than web dev QA).

------
daxfohl
Search for, and go hang out at meetups that cater to programmers and
independents. Socialize. Find good people that have some boring, mundane work
that they don't want to do, like converting photoshop to HTML or just rote
testing, and offload it from them for cheap. Learn more about programming
while you're on the job.

It'll be hard to find a "real" job for a while until you prove your mettle
this way a bit, even at a small company. I speak as a small business owner; we
don't really have time to hand-hold unless you've really proven your ability
to learn quickly already.

------
edelweiss22
I know you're a proficient developer (to say the least) so maybe a clear
perspective is a benefit: programming for a living is damn hard :) especially
if you're almost starting from scratch suggesting node.js as a career path
could be a sort of nightmare for a newcomer.

I'd suggest your friends to get their hands dirty with a popular open source
project and getting involved in a software company doing technical support.
E.g. apply at one of the many WordPress plugin/theme development companies (or
any other popular open source consumer platform out there)

I suggest this in particular because such PHP projects are usually well
manageable on the technical side once you get the grip. This does not involve
programming at the start, but could very well be a "first step" into the IT
world, and as paid by the hour could also be a side project.

Then, as time goes on, if the passion kicks in they can learn all the inside
out of the things they're doing support for, and start from there towards
working on development itself, or going solo and try building their own
software project on the side.

As a dev for various software projects I saw some other support staff members
grow their knowledge over time and in the end contribute to the project as
developers themselves, also as a consequence growing their income.

~~~
snowwrestler
This is great advice, I think. Wordpress and Drupal are both growing very
fast. They are easier for beginners to get involved with than a language like
node.js, because the beginner is not starting from a blank screen. The
software provides a structured and documented API for them to learn from.

And especially in Drupal, there is a lot that you can do without writing a
single line of code, just by installing and configuring modules. This is often
called "site building" expertise, or sometimes a junior "developer" (despite
the near-lack of actual development). And there is actually demand for it,
because real developers find that work tedious and boring; but it is a huge
part of building almost any Drupal website.

The way to get involved is to find local meetups and start chatting people up.
I know of at least a few people in the DC area who went from nontechnical jobs
to senior Drupal developers making 6 figures this way--just showing up every
time, working on volunteer stuff, and eventually getting some contract work or
an entry-level position. From that point it's all about hard work and
delivering.

------
jfmercer
My advice: buy a subscription to teamtreehouse.com. Take ALL of the courses on
HTML, CSS, Javascript, and PHP and/or Rails. They should then take what
they've learned and build one or more projects, preferably hosted in a public
GitHub repo, that act as a portfolio for potential employers. If they prove
that they've actually built a real project(s) that actually does _something_ ,
they'll be on a good track to find a job.

IMHO, they should avoid programming books. You don't learn how to play
baseball by reading a book about baseball; you learn baseball by playing
baseball. The same is true for programming: they'll learn more by building
something, anything than they would from a book. Books may help them later in
their career after they mastered basic programming subjects. For this piece of
advice, I'd add one caveat: I have met some programmers who have learned
immensely from books, so, if one of your friends falls into this category,
discard my anti-book advice. In any case, the focus must stay on project
building.

Finally, I would add that if you, or someone else, or a number of experienced
programmers could mentor them through this process, that would probably help
more than any other resource.

~~~
aruggirello
> If they prove that they've actually built a real project(s) that actually
> does something, they'll be on a good track to find a job.

A very good project might even get you hired - to work on (or "around") it and
be paid.

------
johngalt
The quickest path to 'a job' is via operations. Sysadmin positions generally
dont require CS degrees. Hobbyists will have enough general knowledge to
useful with a fairly small amount of training.

------
agentultra
I would suggest for someone with previous exposure to web development and some
design flair: learn Javascript. There are great boot-camps available and if
front-end UX/design isn't in their interests they can fall back to Node.js

An alternative might be Python. It's an easier language to learn than
Javascript since there are fewer "features" one must learn to avoid. It's also
rather prevalent in the web development space. And the bonus is that if, later
on, they want to transition to another area of expertise there are fields such
as scientific and cloud computing that use Python rather extensively.

If the other friend is fluent in DSP and has some exposure to C I would
suggest staying on that tack... take a refresher course in C and possibly pick
up a scripting language like Python on the side. Check out Art & Logic: they
hire remote developers and work with many clients on DSP-related projects.

------
Joeboy
It depends a bit on whether they're prepared to move. If they are then it
makes sense to learn a niche thing where demand outstrips supply. If they
don't live in a big city and need to find work locally it probably makes more
sense to learn something popular, or where there is a known local demand.

~~~
antirez
One is in Vienna and one in Barcellona (both from Italy btw). I think this
should help in some way.

------
shaohua
Learn JavaScript. Go attending the 3month JavaScript bootcamp with
[http://www.hackreactor.com](http://www.hackreactor.com). You have 99% of
chance of landing a $100k+ job afterwards

~~~
RobertKerans
If I was paying someone $100k, I'd expect them to have just ever so slightly
more than a tiny amount of experience in a single language.

~~~
aruggirello
Yeah. Like, who needs full stack engineers nowadays anyway? :)

------
sarhus
I’d say a safe bet is Javascript, there are plenty of online resources, good
courses online and whatnots. Although it’s true that self learning is
possible, I guess the _fastest_ way would be to join few coding meet-ups
(there are many here in London and they are free) and learn together with
other people.

They should keep a blog/github with their progress too. They basically need to
prove they can “do”, having a CV saying “Javascript: 3 month online course”
won’t work.

Are they prepared to move away from Barcelona or Vienna? Cities like London
and Berlin are great place to look for a job in IT.

best of luck

------
amsheehan
My friend and colleague Alex3917 was a YC non-technical co-founder (not sure
which class) then decided he wanted to learn how to code. He's now really good
at it and you should read this blog post on how he did it:

[http://alexkrupp.typepad.com/sensemaking/2013/11/2012-my-
yea...](http://alexkrupp.typepad.com/sensemaking/2013/11/2012-my-year-of-
code.html)

------
j45
Your fastest path is to always be learning. I spent my 20's working to get 20
years of experience in 10.

Your best path is to pick something universally in demand and is largely in
one technology/stack/framework to learn to create value with.

For this reason, (even thought I do specialized work) you may want to look
into .NET or Java development for starters while rolling into learning other
technologies.

Another angle that I have found in universal demand is mobile app development.
Specifically creating only those types of mobile or web apps that can be
created by Javascript to build prototype/functioning mobile apps using tools
like appery/ionic while only learning one language, and at the same time you
can touch web apps through javascript applications, be it node, or not.

You will grow and become a polyglot in time when you are always learning.

This way there is one core technology to learn to start creating value. With a
lot of the other stacks you have to learn 5-10 different things and tie it
together. I'd focus on building results and using higher level tools in the
beginning while your talent depends.

And as always, ymmv

------
qeorge
Android is a great place to jump in. There's a lot of work for mobile
developers and Java is a very marketable skill even outside Android.

The tooling (Android Studio) is also relatively accessible, and you don't need
to know 4 different languages to finish a project (only Java, as compared to
web programming where you'll need a working knowledge of HTML, CSS, and JS as
well).

You can also ship _something_ to real people relatively quickly, and without a
gatekeeper. Shipping an app of any kind, even a free Android app, will force
issues like QA, version control, and customer support which are skills outside
of just coding that developers should have.

Finally, Android development has a vibrant community that's learning together,
and the landscape is rapidly changing. Your friends could jump in now, and
wouldn't be starting from too far behind.

------
nrshrivatsan
Hi,

I would love to teach both of them Python/NodeJS/Java.

NO FEES! I believe in sharing knowledge for free.

@nrshrivatsan is my twitter handle.

Rest I will tell to them in person.

\- Shrivats.

------
V-2
Don't learn to program, program to learn. Of course this is just an adage. You
won't learn good practice only by trial and error; that's reinventing the
wheel. Still, writing (and rewriting) a non-trivial project in one's spare
time is the best way to learn. It's comparable to learning a foreign language
- you need to have live conversations, not just study grammar and memorize
vocabulary.

Create some app of your own - or several - and opensource it once it is of
fairly solid quality. That's a ticket to getting a proper programming job,
even if you're in your 30s or 40s.

Do not overestimate the role of a technology stack that you happen to choose.

------
SethMurphy
UI UX Design (User Interface/Experience Design) probably has the lowest
barrier to entry at the moment. This is a very different skill than programing
but learning to program greatly enhances your value at the job and can lead to
much better/faster results. I only say it has a low barrier to entry because
it involves many soft skills (in addition to strong analytic skills), is one
of the newer must have positions, and the position is still changing. However,
don't underestimate how hard it is to excel at the position. Oh yeah, and
learn Javascript no matter what.

------
hessenwolf
Getting the skills and getting the job are not necessarily totally
overlapping.

Certificates in Javascript or whichever will look good on a CV, show
willingness to learn, and open doors for you.

Then of course it needs to be backed up with demonstrable programming skills.
Coding dojos, meetup.com events, hobby projects are all good for this, and can
be discussed in the cover letter when applying for a job.

The age can be an advantage. I mean, I adore my younger colleagues, but they
are politically retarded.

------
zeddotes
I'm a university drop-out because I had trouble paying attention in a
classroom. My hobby/interest was development and design since I was 12 years
old (am now 25) and created stuff just for curiousity and fun. What I was
doing, unknowingly, was creating my portfolio which I would use to land many
different jobs and establish a career for myself. The web is booming and we
need more masons in the field.

------
FloNeu
[http://www.theodinproject.com/](http://www.theodinproject.com/) I am a web-
developer since 15 years and i found this excellent! Also gave it to a friend
who wanted to see if working in this field would work for him and he loved it.
I find it really gives you great insights in the broad knowleadge required.
all the best, florian

------
brandonhsiao
I'd suggest web development. The barrier to entry is extremely low, it's such
a big deal that there are a bunch of libraries and communities ready to be
taken advantage of, and it pays so well that sometimes you feel like a scam
artist charging as much as you do.

------
antirez
Thank you to everybody is replying here. I and my friends really appreciate
that. Thanks!

------
mmanfrin
QA, follow online tutorials while you work, ask to help write unit tests, then
ask to write code.

My job title went from 'QA' to 'Engineer' in 3 months doing this.

------
fillskills
If you need help figuring out which languages to learn to make the most money,
or to get access to the most number of jobs, contact me at: abhi at hadipa dot
com

------
blahblahOOO
IT is such a broad area. Getting in to Development, is pretty hard without any
experience.

My suggestion, get on a technical help desk, and work your way up.

------
NicoJuicy
Perhaps you don't know how time consuming getting decent at programming is...
I know people who just started a business (not in IT), who make way more money
everyday then programmers.

Programmers get their source for income from online discussion (mostly) ,
while some people you know find local niches, not involved into programming.
Eg. a take-away bar that earns 1.000$ / day from day 1 (we do their cash-
register)... I don't see many programmers do that :)

~~~
smeyer
I think this is poor advice. "Just starting a business" is not a low-risk
path. Yes, there are lots of businessmen making more than programmers, but
it's also true that a massive fraction of businesses fail within a few years.
It's not fair to just compare the successes there to the entirety of another
field.

------
timwaagh
the php/html/css guy should learn javascript and node. plenty of projects that
use both and quite a few moving to node. the DSP guy should apply for jobs in
the telecom industry. they need to apply to a lot of jobs until they get one.
Also, spain seems to be a particularly bad place to be right now.

------
nickthemagicman
IT also encompasses Systems Administration. They could work on a CCNA/ CCNP
/MCSE/ Red Hat certs.

