Live data from Hacker News

Ask HN: Getting Better

news.ycombinator.com

1–10 of 13 posts

Ask HN: Getting Better

#1
I am senior working to finish up my undergraduate degree in Information Sciences and Technology. As you might have guessed, IST is no CS degree. I came to school not knowing what I wanted to do. I was always kind of geeky growing up and I know a fair amount about tech so I decided to major in IST. My programming experience was very modest and I wasn't sure I even liked so I didn't think I would get through CS. Time went on and after having to work a internship at which I did PHP programming I found that I actually did enjoy the craft. I learned as much as I could at work and this got me more work at two different startup companies doing Rails development. I worked hard at each and I really fell in love with the hacker/startup lifestyle. Unfortunately I have only been at it for about a year and half.

As I mentioned earlier in this post, I am graduating this spring. I have not yet been able to find employment. I somehow managed to get a phone screen Google in Pittsburgh that is scheduled. I feel like I really lucked into it. Regardless, I have been trying my hardest over the past few weeks to learn some CS principles on my own. I ended up purchasing Introduction to Algorithms due to the recommendations from this site. I have excepted that I am not at the level I need to be at yet to get through the interview with Google. However, I am really motivated to get better. I was wondering what the best approach is to tackle the self education of CS? Should I read the book only when I need to reference it, or should I work through all the chapters doing all of the exercises?

I want to get better so that I don't have to take a job after school that is just a pay check. I want to be able to work in a place that I continue to get better and hone a craft that I just recently discovered a passion for. I just can't afford to get a CS degree at this point.

Re: Ask HN: Getting Better

#2
programming is not about being able to memorize language-specific syntax or function calls. If the book has good exercises, by all means do them - But rarely will you find yourself in a situation where you don't have a book, the internet, etc to reference specific functions.

Best approach to tackle self education is CS? Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see it. I know it goes against the programming mantra of "don't repeat yourself" but there are many times when a jquery plugin or open source piece of software existed to do something I wanted... yet I rolled my own simply for the joy of learning how to do it. Build yourself a blog from scratch, for example.

And if you plan on programing for the web, read this: http://stackoverflow.com/questions/72394/what-should-a-devel...

Re: Ask HN: Getting Better

#3
post #2

programming is not about being able to memorize language-specific syntax or function calls. If the book has good exercises, by all means do them - But rarely will you find yourself in a situation where you don't have a book, the internet, etc to reference specific functions. Best approach to tackle self education is CS? Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see…

I would like to emphasize ecaroth's point:

Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see it.

Getting over that, in the last couple of years, has been the single best thing I could do for myself -- personally, skill wise (programmatically), and professionally.

Nike is right: just do it.

Re: Ask HN: Getting Better

#4
post #2

programming is not about being able to memorize language-specific syntax or function calls. If the book has good exercises, by all means do them - But rarely will you find yourself in a situation where you don't have a book, the internet, etc to reference specific functions. Best approach to tackle self education is CS? Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see…

Thanks for the advice. I have been thinking about making my own blog from scratch for a while now. I am going to get on that asap.

Re: Ask HN: Getting Better

#5
post #3
post #2

programming is not about being able to memorize language-specific syntax or function calls. If the book has good exercises, by all means do them - But rarely will you find yourself in a situation where you don't have a book, the internet, etc to reference specific functions. Best approach to tackle self education is CS? Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see…

I would like to emphasize ecaroth's point: Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see it. Getting over that, in the last couple of years, has been the single best thing I could do for myself -- personally, skill wise (programmatically), and professionally. Nike is right: just do it.

I definitely have a hard time with this! I need to get over thinking everything I do has to be original. I think it definitely holds me back. I am also sick of the class grind at school. I feel like I am stuck doing pointless work that just takes up all my time.

Re: Ask HN: Getting Better

#6
post #3

Earlier quoted context omitted.

I would like to emphasize ecaroth's point: Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see it. Getting over that, in the last couple of years, has been the single best thing I could do for myself -- personally, skill wise (programmatically), and professionally. Nike is right: just do it.

I definitely have a hard time with this! I need to get over thinking everything I do has to be original. I think it definitely holds me back. I am also sick of the class grind at school. I feel like I am stuck doing pointless work that just takes up all my time.

Take it from me -- you'll feel like you're doing pointless grind work in the "real world" as well. Except in a job, you'll feel the oppression even more.

My problem has always been the curse of originality, or analysis paralysis. I think many people on HN share those traits -- what's the point of copying someone else, and what is the most optimal way of doing something.

It turns out, for me, that my parents were right when I was little. Don't overthink, just do. For my personality, there is very little danger that just doing things won't also have some pretty serious thought along with it (I'm very much not impulsive by nature).

Re: Ask HN: Getting Better

#7
post #6

Earlier quoted context omitted.

I definitely have a hard time with this! I need to get over thinking everything I do has to be original. I think it definitely holds me back. I am also sick of the class grind at school. I feel like I am stuck doing pointless work that just takes up all my time.

Take it from me -- you'll feel like you're doing pointless grind work in the "real world" as well. Except in a job, you'll feel the oppression even more. My problem has always been the curse of originality, or analysis paralysis. I think many people on HN share those traits -- what's the point of copying someone else, and what is the most optimal way of doing something. It turns out, for me, that my parents were righ…

You sound like me so much. I over think everything. I have actually considered becoming a Buddhist to try and shut my mind off for a little while through meditation. I tend to have a very hard time doing things unless I spend a ton of time reasoning through whether or not I should do it. Most of the time when I decide I missed the boat.

Re: Ask HN: Getting Better

#8
post #6

Earlier quoted context omitted.

Take it from me -- you'll feel like you're doing pointless grind work in the "real world" as well. Except in a job, you'll feel the oppression even more. My problem has always been the curse of originality, or analysis paralysis. I think many people on HN share those traits -- what's the point of copying someone else, and what is the most optimal way of doing something. It turns out, for me, that my parents were righ…

You sound like me so much. I over think everything. I have actually considered becoming a Buddhist to try and shut my mind off for a little while through meditation. I tend to have a very hard time doing things unless I spend a ton of time reasoning through whether or not I should do it. Most of the time when I decide I missed the boat.

You don't need to "become a Buddhist". Just expose yourself to some of their ways of thinking. Also, practice (= meditation).

You'll pick a lot of this up as you get older, as well. It's a natural maturation process. I've been out of college for 7 years now, and am just starting to feel like I'm understanding mindfulness. Granted, I've wasted many of those years...

Re: Ask HN: Getting Better

#9
If you are interested in learning CS stuff you should find an interesting domain outside the web. Traditional web development is too simple (all based around CRUD operations) until you run into problems of scale.

My favorite CS courses and the ones I learned the most in were:

* graphics (algorithms, data structures, and OpenGL)

* compilers (wrote a parser and compiler for a subset of Java)

* lisp (blazed through the SICP)

* operating systems (wrote a tiny linux-esque kernel)

I would suggest scratching a few itches and see where it leads. Pick up an introductory book on the topic and your choice programming language. Read through these cover to cover to get your fundamentals, but simultaneously start a project incorporating new skills as you learn them.

Re: Ask HN: Getting Better

#10
post #2

programming is not about being able to memorize language-specific syntax or function calls. If the book has good exercises, by all means do them - But rarely will you find yourself in a situation where you don't have a book, the internet, etc to reference specific functions. Best approach to tackle self education is CS? Just start making stuff. Who cares if somebody already made it. Who cares if nobody will ever see…

As mentioned in previous discussions on HN, software development is not the same as computer science. Just building stuff will probably make you a better software developer, but won't necessarily teach you theoretical topics such as algorithms. I think it really depends on what you build and what you are interested in. For example, writing a jquery plugin might teach you about frameworks and certain design patterns; building something like a recommendation engine for Netflix might expose you to some more theoretical concepts.

With that said, I think the best way to self study theory is to pick a university course that has posted materials online (MIT OpenCourseWare comes to mind) and try to finish it. To do something like that takes a lot of determination, but I think it could be well worth the effort in the end. Good luck!

Post reply on HN