Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: From zero to IT career, what is the fastest path?
65 points by antirez on Nov 26, 2014 | hide | past | favorite | 57 comments
Dear HNers, I'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.

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/complex stuff for years at this point).

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.

Thank you a lot for any reply!

EDIT: I forgot to say that one has knowledges about Digital Signal Processing (in the field of music), and one is fluent with HTML/CSS (but not Javascript).

EDIT2: Thanks a lot for all the replies! This is very helpful.




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.


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.


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.


> Be sure to never leave a job unfinished, and always ensure your customer is happy.

Can't agree more about that. Also great advice about the DSP friend. What makes me optimist is that they are based in Vienna / Barcelona, so big cities with some IT scene inside.

A 6 months study time is totally reasonable for them... so basically no "education" (but one is graduated in a different field), but self-education is totally possible to achieve. I guess that in order to buy a reputation they'll need to start with a job that looks serious but maybe without a stellar salary, and evolve from that. Thanks.


I kinda agree but at the same time I disagree with you. You make a fair point on saying few stuff.

I do agree that I wouldn't advise someone to start a career with programming if they were 30's and 40's. But yet again everything is doable.

But for a 15y/o learning some programming stuff... for him programming can be a career. Don't forget we have so many new stuff coming out everyday that older programmers if they exist and they haven't become project managers wouldn't really go into.

Also when you mentioned Wordpress because he has knowledge of HTML and CSS... well he had* prolly. Atm I would say that CSS is a very complicated and delicate thing that pays well to people that own that field. With mobile and tablets you need to know how to write responsive code. CSS has move from when it was just static text.

To the Original poster: I can't really think of anyone around my circle which includes most of the UK's leading Tech Companies and a lot in San Fran, that would go off and hire a 30-40 years old person that has some experience in programming but he is not actually a programmer. They can start as junior developers but again the salary will be low and the competition to get in that field... plus people that are hiring for junior developers would like to see a youngster that can learn and become a senior after few years, I don't think they will go with someone older than 25 unless they are looking for a frontend developer passing it as a junior developer role.

My advise to them is maybe to start off their own little thing maybe a webproject or a mobile app and try to find investors?

On one of the comments you replied that one of the guys is from Vienna(Austria) I thought that Austria has a very good economy atm. I get why the other guy from Spain has trouble but Switzerland and Austria are on top of EU atm.


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?


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.


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.


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.


Add to that list "Business Intelligence" developer/analyst, although that term is gradually changing into something about analytics and data science, which are demanding degrees in statistics.

The reality is that a lot of "Business Intelligence" work is writing SQL & reports for business types that don't know how to write SQL or don't want to learn.

It means writing a lot of reports, but its a good way to get exposed to a business and yet still be involved with light development. There's room to grow too if you want to learn more about data warehouse design, ETL processes, OLAP cubes, etc etc.


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.


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)


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.


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.


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.


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.


I agree that QA and support skills are in demand, geographically portable, and will help develop empathy and understanding for the perspectives of both software engineers and end users.


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


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


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.


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.


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.


I wholeheartedly agree with this sentiment, and while it's just one data point, building a career in software developing without formal training or education is what I have been doing for a few years now.

Anecdotally: I attempted to get into a degree program in CS from my local university after having taken the required prerequisites, and getting mediocre grades in those classes, and was rejected. So I resolved to keep studying on my own, get Tech Support jobs and learn on the job, and keep applying to programming positions.

I worked two fairly low-level tech support jobs before I applied (internally) and was hired on as a junior level programmer. It was only for about six months, until a new CTO canned me, after which I spent about a month getting hammered with job offers and recruiters' emails, then went with a great smaller company I'm currently working for.

Furthermore, I fully submit that those who have a real passion for the work of programming, who get a buzz from figuring out how the small problems they're tackling aggregate into the kinds of large, effective systems that make companies run these days, those people will do very well. If the original poster's friends are motivated mostly by getting a good-paying job with some job security, but don't derive much satisfaction from the work itself, it will likely burn them out in no time.


Thanks for your advice, I agree with you, it is super important to stay pragmatic. Maybe this can be just a starting point and it is possible to evolve and build their own stuff, learn new languages, but to start ASAP with something simple enough, and with something that have an economic model, is the key. Thanks!


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.


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


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.


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.


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.


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


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


I feel like this is bad advice. Zero experience + a 3 month course in JS does not get 100k job, certainly not at a 99% rate. Maybe it could lead to a 45k entry-level/internish job, then after a year or so coupled with SERIOUS chops and a few projects, maybe, maybe a 6 figure job, in SF. There are so many of these 'hacker schools' that are churning out grads, you'd better have a good degree or interesting experience to couple with it and be competitive(I had a TS security clearance and prior IT background). These courses are great to get people started but they generally make extremely good entry-level candidates, not seasoned devs out of the box.

Experience: I attended one of these 6month bootcamp courses and later went on to get a CS degree.


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.


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


You think you can go from almost zero to being good enough at JS for a 100k job in 12 weeks?


It all depends but a 12 week program doesn't make you a Senior Engineer over night. I think these bootcamps provide a nice structure for people who need help figuring out where to start.

A side note, I do know people that were hired right out of Hack Reactor that never programmed before attending.


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


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


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


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.


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.


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.


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.


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.


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.


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


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.


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


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.


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


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.


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


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.


Agreed with everything except the first sentence.

OP is the author of Redis, the cache everybody and their mother loves. I'm sure he knows quite a bit about programming!


>>Perhaps you don't know how time consuming getting decent at programming is

It sounds like your advice is "Becoming a programmer is too much work, go do something else". The definition of "decent" varies wildly depending on the company & job you're working for.


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.


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




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: