|
|
|
Ask HN: Getting Better
|
|
5 points
by deffibaugh
5624 days ago
|
|
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. |
|
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.