Ask HN: What to learn to become employable, starting from zero?
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 ] threadI 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.
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.
That's a tall order to become barely employable. I'm guessing this is written from a Silicon Valley / SF market perspective?
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.
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.
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.
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.
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!