Live data from Hacker News

Ask HN: Where to start?

news.ycombinator.com

11–16 of 16 posts

Re: Ask HN: Where to start?

#11
I was in your exact position a few years ago.

The problem here seems to be that you're relatively new to Unix. The trick is to be humble. Don't work with Boxen, ZSH, vagrant, or any of those exotic tools. They won't make sense until you roughly understand the *nix model.

Instead, start with the basics. As in start from scratch. Teach yourself to use OSX the same way you might teach your mother to use a PC. You absolutely need to grasp the basics before you can progress.

After that, work on your command-line fu. Force yourself to use the terminal for all the simple stuff. Learn to write simple Bash scripts.

Then, pick a language and try developing scripts with it. Use your new-found command-line skills to set up your development environment. I personally chose Python - it's really newbie-friendly.

After that, it's just a matter of practice. Trust me, you will get there eventually :)

Re: Ask HN: Where to start?

#12
A few years back, I jumped into what I thought was a design position at a local web company. I was wrong.

I was then forced to learn JavaScript. I watched Douglass Crockford's Good Parts, and also listened to quite a bit of a Python podcast called Python Osmosis. I went from very basic/naive JavaScript on my own to a world where using VMs, SSH, Git, JavaScript, hand-rolled CMS's, and fast turnarounds were an everyday thing.

What did I learn? Forced immersion is the best way to learn. Don't allow yourself an "out", but allow yourself space.

There's a lot of ways to manage this path. I'll outline a few.

- Find a mentor - while this seems daunting, there are a lot of people who are itching to teach. It works best if there is a formal agreement (and even a pay-based relationship) for an allotted amount of time with some concrete goals.

- Start a project - Doesn't matter really what it is, because when you are making something, it is allowed to evolve. Decide a problem you want to tackle, and tackle it. Doesn't matter if this is reinventing the wheel, because you are learning how people built wheels; however, it always helps to try to solve things that haven't been solved before, so that you do it "the hard way" - this helps with retention and future problem solving abilities.

- Get an internship - build a relationship with an agency that is willing to pay you something to hack on stuff, and let you make mistakes. There are a lot of agencies with space on their teams that will be open to this.

Overall, the most important thing is to be diligent and remember that everyone else is learning constantly, too. Just because someone you know writes great tests doesn't mean they know testing. They learn every day. Jump into the fast moving river, and you'll quickly learn to swim, or get out of the river.

Re: Ask HN: Where to start?

#13

A few years back, I jumped into what I thought was a design position at a local web company. I was wrong. I was then forced to learn JavaScript. I watched Douglass Crockford's Good Parts, and also listened to quite a bit of a Python podcast called Python Osmosis. I went from very basic/naive JavaScript on my own to a world where using VMs, SSH, Git, JavaScript, hand-rolled CMS's, and fast turnarounds were an everyday…

I realize this is a very common set of answers, so here are a few more concrete things you could do.

- Go through http://railstutorial.org/

- Learn Git (this taught me all of the more important unix commands for my everyday work)

- Check out Coursera courses, like this one: https://www.coursera.org/course/digitalmedia or this one: https://www.coursera.org/course/posa (two very different courses, both very informative)

- If you aren't keen on Coursera, check out Udacity

- Get a VM running so you don't have to worry about the damage you might cause running sudo stuff. This is very big; if you are intimidated because you don't want to cause damage to your machine, build a sandbox first. (Assuming you can set up a VM. If not, check something like this out: http://www.linuxtoday.com/infrastructure/2011010701239RVLFSW)

Re: Ask HN: Where to start?

#14
You sound like you're trying to learn several things at once. How do you e.g. expect to successfully learn a technique like TDD, if you constantly have peculiarities of a new OS getting in the way?

Try to absorb new things one at a time, and then expand onward.

Re: Ask HN: Where to start?

#15
post #7
post #5

You might benefit a lot from just watching how Unix-based developers work. Screencasts are a really good way to do that. You can learn a lot from just watching and following a long. Just re-type things verbatim at first - while you're getting comfortable. Do not copy/paste at all. If you're doing web projects then don't even think about anything other than Ruby or Python. Try them both out, pick whichever one seems m…

This is a really good idea. I think it would help a lot. Do you know of any good screencasts? As an avid collector of links, I know of these paid sites: [1] https://www.destroyallsoftware.com/screencasts - Seems more advanced than an intro course. [2] http://www.letscodejavascript.com/ - Looks good, but for javascript. It does look like it's better geared toward beginners. [3] https://peepcode.com/ - Has play-by-play…

> [2] http://www.letscodejavascript.com/ - Looks good, but for javascript. It does look like it's better geared toward beginners.

Author of letscodejavascript.com here. The series is intended for professional developers, so I don't spend any time on "this is the command line, this is a variable," but we do build an application from scratch. It's very much the immersion approach, and we cover a lot of things OP is wondering about (command line, Node, npm, Git, TDD). It could well be a good fit.

Re: Ask HN: Where to start?

#16
I think you should find a resource that will guide you step-by-step along the way and teach you modern software engineering concepts, not just language syntax. A lot of tutorials out there today simply focus on syntax and eschew the bigger picture, which is critical for fully understanding what your doing.

If your at least somewhat familiar with object-oriented programming concepts already, I would highly recommend the following course: https://courses.edx.org/courses/BerkeleyX/CS169.1x/2013_Spri...

It deals with modern programming practices in the ruby/rails environment. I'm working through it myself and it's already answered a lot of questions that I've had about most of the tools you mention and how they work. It has specific sections on BDD and TDD also, among other relevant topics.

If you need some more general background first, take an introductory computer science course. I would recommend CS106A Programming Methodology from Stanford, which is a good pre-requisite course for the one listed above.

All of these courses are free.

Post reply on HN