Ask HN: What to learn to become employable, starting from zero?

23 points by testtestq ↗ HN
Hi. I intend to learn web developement, but I am not limiting myself to this and so I am open to other options.

While I would love to learn web development, I am afraid it will hinder me to do back-end work, if that is something I end up finding interesting in the future.

My question is basically, what exactly should I learn to become employable in Europe? Preferably England or Switzerland. I have no degree, and I would be creating a portfolio from scratch. Exactly how low are the requirements?

At the moment I intend to learn: Ruby, Ruby on Rails, HTML5 CSS3, Javascript, jQuery. Is that really enough?

13 comments

[ 3.5 ms ] story [ 30.2 ms ] thread
Do you have any programming background?

I don't have a degree either, but having dropped out from a computer engineering university department (where I did pass most of the programming courses) and having maintained my own free software project, gave me a head start when I decided to take the web-dev route as a career.

At that point, I studied php/mysql,js/jquery and html5/css.

These were enough to land a job as a frontend Dev, but the amount of studying that I did afterwards I began working, was orders of magnitude more than before.

So I think your list is very complete for a start but prepare for lots of reading related to the specifics of the jobs you land.

Also, why limit yourself to local gigs? Even if you don't like remote work from your home, you can't ignore that it opens a huge market to you.

"Back end" is typically used to refer to web development as well, so I'm not sure if I misunderstood you, or you misunderstood the term. Web has "back end" (ruby/rails) and "front end" (html/css/javascript). With a lot of the latest developments there's a lot of overlap in job descriptions.

That is really enough, yes. That's nearly "full stack." You're going to learn some sql while learning rails, and you're going to have to learn enough to deploy somewhere (I recommend heroku to start).

Basically you should teach yourself how to build essentialy any CRUD app (blogs, wikis, basic twitter, news site, hacker news, reddit, etc). When you can do that, you're employable--and probably well above average, honestly.

There will still be TONS of stuff to learn after that, but there won't be any reason for you to not get typical web-development jobs.

>>Basically you should teach yourself how to build essentialy any CRUD app (blogs, wikis, basic twitter, news site, hacker news, reddit, etc). When you can do that, you're employable--and probably well above average, honestly.

That's a tall order to become barely employable. I'm guessing this is written from a Silicon Valley / SF market perspective?

Barely employable? ...Ruby/Rails/Full Stack jobs are so hard to fill it's insane. Starting salaries are in the $130-150k range for mid-level $150k plus for senior and even junior level is a six figure gig. Sure it'll take time to get to a hirable state but it's perfectly doable.
I've added the full quote to my post.
It's not "barely employable," and that's not what I said it was. Rather, it's a solid entry-level position at most agencies.

Also I don't think it's that tall of an order. These "bootcamps" are (arguably) cranking out graduates that (supposedly) know how to do that.

I taught myself over something like a year of spare time (I was in high school), although this was pre-frameworks. Also pre-really-good-tutorials.

Last, I've never been west of Oklahoma. I don't know what your "perspective" comment is on about.

Those skills would get you callbacks. The killer in South Florida, at least, is the "3-5 years experience" requirement so often seen in job postings. A nice portfolio could overcome that hopefully.
...having been in several organizations in recent years which are challenged to find enough people, everyone says 3-5 years, but everyone will hire someone with obvious talent, a portfolio of stuff on Github and enthusiasm to learn, at much less than 3-5 years of experience.
So, a few years back, as a non-technical founder I lost my technical co-founder in back-to-back startups. This was not a great experience, and made me decide to never be dependent on someone else for getting initial product out the door. I spent every evening for several months learning Ruby, Rails and the periphery of front end stuff needed to get projects finished.

I also went to every hackathon I could - not to win, but to meet other programmers, to sharpen my skills, to learn how to finish something under pressure.

After a few months I started getting contract gigs - nothing fancy but paid work. And a funny thing happened. I loved it. Loved programming. Wished I'd been doing it for the last decade in go-to-market roles. Key was I never let up learning. I read everything. Watched every video I could. Tried katas, built any app I could think of to build. Shortly after that I was able to get full-time gigs.

Nowadays I'm in a great company, doing awesome work and loving every minute of it. Your instincts are right. If you're genuinely dedicated to it you can get your head down and learn the stuff you mentioned. Plenty of folks hiring in the UK for ruby/rails. While it's lost its luster for much of the HN crowd, it's only increased in its broader adoption, and the number of jobs hiring for those skills have multiplied far beyond the available talent.

Go for it. Good luck.

I was laid off from my job a few years ago (network monitoring) and decided I would use the unemployment to change careers. Been a rails dev for 3+ years now, so I will convey what worked for me.

The requirements for a full stack rails developer are not what i would consider low. I don't think they're unreasonable, but there's a lot involved.

Sorry, this devolved into general "new dev" advice / what you need to learn; hope its helpful.

1. Watch railscasts - try to watch all of them. Make it your new TV show. You don't need to "get" everything, you just need exposure/familiarity.

2. Have ideas and ideas of how to build them.

3. Build things full stack - such as one of your ideas. be someone that gets things done. this also means that you'll face problems (like search, caching, uptime) that you'll have to solve in your side projects, that will give you experience to use professionally.

4. Deploy to a server via capistrano. You should also know how how to do heroku, but you'll be more useful if you can setup and deploy to a live server.

5. Understand testing; either test_unit or rspec - it depends on you which you prefer. familiarity with both isnt a bad idea either. You should develop a sense of testing philosophy - not everything has the same testing priority. But you absolutely should know how to test in unit and functional full-stack - testing is a big deal in ruby/rails.

6. watch the "is TDD dead?" talks with DHH, martin fowler, and kent beck.

7. learn git & github. I recommend "git essentials training" on lynda.com

8. dig into ruby - after you know the basics, "the well grounded rubyist" by david black is a great read, and gives you insight into the nuances of ruby.

9. "design patterns in ruby" by obie fernandez is good - i'd save for after #8 at the least, it's fairly high level and you certainly won't need it in the beginning - more a mid-level book.

10. ruby tapas is great for little nuggets of ruby that can be insightful to know.

10. Sandi metz is wicked smart - any of her talks online or books are worth checking out.

11. checkout jobs on sites like weworkremotely.com and see what kinda stack people roll with to gauge what you need to know.

12. learn an editor, like sublime or rubymine or whatever floats your boat. For sublime, i recommend "perfect workflow in sublime text 2" on tuts+. you don't need to be a master, but there are little tricks you'll learn that can help you be more efficient.

13. stay humble and curious. It is far too easy for a developer to think they are smart and write amazing code and that they don't need to do or use X because they know better. I speak both of my own experiences, and what I witness from others.

14. Embrace change. How we build web apps is evolving and you should try to stay with the times. How rails 2.x got things done is different from how rails 4 does things.

15. Be conservative. This is somewhat contrary to #14, but that's because there is a balance to be struck. Neither as an extreme is healthy. You should be reaching for pre-existing design patterns or whats built into rails, before reinventing the wheel, or pulling in a gem. If you do, have a good reason.

Linux. Whatever you choose in web development, unless you're focusing on the MS stack, will run in Linux. Not sysadmin level, but try to use the CLI as much as possible when interacting with your other tools and get some understanding of how it all works. If you can also give some time to tools like Docker you'll be much more productive.

Also, today web development isn't as much about backend as it's frontend, and there aren't many frontend (all JS) developers out there as much as PHP or RoR. So, I would give more effort to SPA Frameworks than to RoR.

I think you have a good start.

Don't forget to use lots of resources already mentioned: -StackOverflow -Codeacademy -Udemy -Khan Academy

To really ramp up your skills. Build small projects and go from there. This is coming from someone who barely has a coding background but is currently dabbling in Control Overflow in Python. Good luck with everything!