Hacker News new | ask | show | jobs
by trcollinson 4035 days ago
Disclaimer: I am "self-taught". I have a degree in logic and rational reasoning (a philosophy at most universities) and I went to (and drop out of) law school. A bit of background for you.

Is it necessary to be a CS major to be successful? Simply, no. Does it help? Yes. You see many people ask this question because they want to know if they can start working right now and make money and skip all of the hassle, time, and expense of going to a school and majoring in CS. In order to be competitive and get the positions you want and make the money you'd like, you are going to have to learn CS. One of the better ways to start (more on the start in a moment) is to go to a University with a good CS program and learn. You'll also get a number of other soft skills that will stick with you for the rest of your life.

If you aren't going to get a CS degree you will still have to study all of those aspects to CS in order to be competitive at an advanced level. I have met other "self-taught engineers" who can handle CRUD operations pretty well and who can make a pretty front end with a little bit of framework help, but when it comes to things like traversing a simple binary tree structure or explaining memory management techniques or even just explaining a simple FILO stack, they can't handle it let alone make one work for a specific scenario. You're going to have to learn those eventually, a CS program will give you a lot of that knowledge and it is useful!

Early I mentioned it's a good start. I have been working professionally since the mid-90's as an engineer. A lot has changed in 20 years. Now, a number of the concepts that I mention before have not (FILO stack's are FILO stack's, after all). But CS and engineering is a constant learning experience. New techniques and technologies come out every single day. I would argue that a CS degree teaches you how to learn as well. And you are going to be learning for a long time to keep up and keep your competitive advantage.

Final thoughts: College is fun! Sure it is stressful at times and somewhat expensive. But it's a good time! You can keep those relationships for a lifetime and they will also give you a competitive advantage.

A CS degree is not enough! Work on real projects while you are learning. Get internships or junior spots and work. Those are fun too! They will help you. Enjoy this time in life.

If you like the idea of going to school but you aren't sure about CS, think about what you really want to do and do that! I thought I wanted to be a lawyer (in hind sight, this was an absolutely horrible thought, but I digress). I still had fun in school. I took a long, winding road to get to my successful development career, and I don't regret it at all. But don't believe CS is the only way. But you do have to pick a way. There are no short cuts to success.

1 comments

Thanks for sharing your great advice! I truly appreciate it. I'm currently in an intern position with a software company. Working here opened this whole topic for me.

I was contemplating whether or not I was making the right choices for my education. Sure, everyone's different when it comes to learning and choosing their paths. I just want to make sure I won't regret my decisions. Again, that being said, there are pros and cons for these types of situations, but that's besides the point.

I originally plan on majoring in the businesses field, while minoring in something to do with computers(CS, Eng, etc.) Ultimately, I want to create tools for people to use, make them pleasant to look at, all while contributing to something I could be proud of. Luckily, I have a little bit of time ahead of me to really think about my options to send me into my future.