TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Is it necessary to be a CS major be successful in the tech sector?

17 pointsby eugenerossalmost 10 years ago
Tell me HN, what are your thoughts on this? Do you believe it&#x27;s absolutely necessary to be a CS major to be competitive in the technology world?<p>Can the same result happen for someone who isn&#x27;t a CS major but goes through all the hoops to teach themselves?

23 comments

brudgersalmost 10 years ago
I am not saying that a CS degree is necessary or necessarily better, but I believe it is a categorical mistake to treat the experience gained obtaining a formal CS education with the experience gained teaching oneself...if only for no other reason than that a student, by definition is less able to distinguish among the hoops and accurately separate them into useless, useful, important and critical.<p>The features of a formal education include guaranteed access to experts [for some definition of &#x27;expert&#x27;] and a proven set of priorities [for some definition of &#x27;proven&#x27;]. The downside is less potential breadth since standardized systems are standardized.<p>The real question is what does &#x27;make it&#x27; mean? For some people the piece of paper matters. It&#x27;s a goal with social and personal significance and there is nothing wrong with that. If &#x27;make it&#x27; is tied to wealth...well it&#x27;s easier if you were smart enough to pick rich parents.<p>In the end it depends on what you want. And in any event, while a CS degree won&#x27;t necessarily make anyone good [for some definition of &#x27;good&#x27;] it may open opportunities and if they are good a CS degree will probably make them better, and almost certainly not make them worse.<p>Good luck.
评论 #9618307 未加载
byoung2almost 10 years ago
I am a self taught programmer, and I am now director of engineering at a tech startup. I think CS has its place, but just like music, some of the best musicians and producers have not studied music theory formally. There is not a day that goes by that I am not learning something new about programming or technology (which should also be true of CS majors), so keep that in mind, learning doesn&#x27;t end at graduation.
lloyd-christmasalmost 10 years ago
The tech sector is a big place. There are countless people who haven&#x27;t programmed anything in their life and are successful. Assuming you mean in a programming role... I wasn&#x27;t a CS major and am successful. Continuing education is a necessity, and I&#x27;m always going back and learning things I may have missed not having been a CS major. That being said, &quot;CS&quot; aren&#x27;t magical letters that open doors to the golden kingdom. I know plenty of dumb-as-rocks CS majors. Most success tends to boil down to the human element.
Olognalmost 10 years ago
&gt; goes through all the hoops to teach themselves<p>The average course is 50 hours a week in class, plus 150 hours a week studying, meaning 200 hours total. So to repeat what I did, you would have to spend 200 hours studying graph theory, then 200 hours studying data structures such as trees and graphs, then 200 hours studying algorithms that operate on data structures as well as big O notation, then 400 hours studying calculus, then 200 hours studying discrete math, then 200 hours studying theory of computation, then 200 hours studying logic gates, ALUs and assembly language, then 200 hours studying mutual exclusion and critical sections, then 200 hours studying floating point numbers and data representation, and so on.<p>In my experience, it is quite rare to find a self-taught person who can explain what deterministic pushdown automata are, or what the elements of mu-recursive functions are, or how to find a function maxima with Lagrange multipliers, or how you can prove a problem is NP-complete through reductions. They might even have problems explaining exactly what the relation in a relational database is.<p>Usually self-taught people go straight to trying to learn Ruby or PHP or something. Their knowledge of CS is not very deep. There are exceptions, John Carmack has a better knowledge of C++, programming techniques, computer graphics and other areas then the average BSCS graduate. But he is very honest and open about what he knows and does not know, and what topics he is getting around to now.<p>One time I had lists of numbers (like &quot;1 7 3 0 2 4 6&quot; or &quot;8 3 5 2 0 1&quot;) and had to make a hash of them. I suddenly thought, why not just turn the lists into Goedel numbers? I then did a Google search and saw other people had used Goedel numbers for hashes in similar situations. How many of those people were self-taught? Probably very few.
评论 #9620493 未加载
nikdaheratikalmost 10 years ago
It depends on what you want to do. The &quot;technology world&quot; is a big place. If you&#x27;re going into biotech, for example, you can do just as well with a BS in Biology or Genetics and taking a few programming courses to give you an edge when it comes to areas that are using computers heavily (like Bioinformatics). The same goes for Physical Sciences, or Mathematics&#x2F;Econ or even Geography.<p>Most CS Degrees cover:<p>1. Basic and Advanced Programming 2. Design of Computer Systems (both hardware and software) 3. Design of Operating Systems 4. Theory of Computing (so Algorithms and Data Structures) 5. Other special topics like Networking, AI, Expert Systems, Bioinformatics, etc.<p>These topics are important for some jobs, and people who excel in some of the advanced areas (and often go on for an MS) can make mega bucks. However, a programmer designing a corporate website or other CRUD system probably won&#x27;t need&#x2F;use half of the stuff they learned in their degree, and would likely earn less than someone who excelled in another engineering&#x2F;science degree that also picked up some programming knowledge.
dllthomasalmost 10 years ago
&quot;Absolutely necessary&quot;? No, of course not.<p>I would say that, for most people, the best approach includes a degree. Probably a CS degree; mathematics or other engineering disciplines may work as well. That will change somewhat the kind of exploration you need to be doing outside of class. Any which way, you need to be doing quite a bit of exploration outside of class.
kasey_junkalmost 10 years ago
I personally have and greatly appreciate my CS degree. I don&#x27;t know if anyone else on my team has a CS degree and I largely don&#x27;t care. It is not a requirement to do the job of software developer and lots of great software developers do not have CS degrees.<p>That said, most of the really good software developers I know who do not have a CS degree, at some point in there career wished they did. Whether those wishes are worth the investment is hard to say.<p>My biggest question is why not get a CS degree? If it is a question of resource allocation, then I completely understand. If it is a question of lack of interest, that would be a red flag to me, either of the institution you are studying at or of your own motivations. But that could just be my bias because I found CS fascinating.
评论 #9617823 未加载
lgsilveralmost 10 years ago
You don&#x27;t need a CS degree to be successful but it&#x27;ll be a lot easier to get in the door.<p>Most top-tier tech companies (google, fb, twitter, etc.) won&#x27;t even interview a non-cs candidate for an engineering or product role unless they have incredible (like, you built instagram) evidence of their talent.<p>It&#x27;s also a lot harder to skip the degree and still learn what you need. I did, and it&#x27;s taken me 10+ years of constant curiosity (and tons of nights and weekends) to be on par with my peers who have degrees.<p>That all said. You gain other skills with a liberal arts or science degree that CS majors don&#x27;t get. I&#x27;m a much better communicator and manager than many of my engineering colleagues, and that has allowed me to outpace them in terms of career growth.
Bahamutalmost 10 years ago
I studied math &amp; physics - never took a CS class. I have made my way to a lead frontend engineer position in under 2 1&#x2F;2 years, and I am courted by many companies. For me, the ability to solve problems quickly without oversight has proven to be valuable. It took a lot of hard work to get to that point, but I am absolutely of the opinion that a CS degree is not necessary. In fact, I once roomed with one who apparently couldn&#x27;t find a job coding for a living &amp; was not particularly intelligent.
philjralmost 10 years ago
Just another data point, but you&#x27;ve already gotten your answer i think.<p>Some of the best guys I&#x27;ve seen have majors in fields similar to x&#x27;s - physics, ee, maths. I&#x27;ve hired and worked with people from majors in law, sociology and psychology, to name but a few. Some of the best (and most interesting) guys I&#x27;ve worked with.<p>The difficulty will be the &quot;first job&quot;, but if you&#x27;re skilled then you&#x27;ll be fine. Teaching oneself is no meagre feat however!
monroepealmost 10 years ago
Honestly it comes down to motivation. Whether or not you get a cs degree you have to super motivated and hard working to achieve greatness.
评论 #9618339 未加载
czbondalmost 10 years ago
I self taught myself before college and then used a CS degree to force me to study things I never would have. It tended to round me out better in areas where a self taught might avoid. For example, optimization, refactoring, underlying OS implementation, architectures, etc. No way on earth would I have diligently taught myself those for months on end.
评论 #9622578 未加载
mlitchardalmost 10 years ago
Eugene, I&#x27;m going to pass along advice that was given to me years ago. Do the hard thing.
评论 #9618327 未加载
jpindaralmost 10 years ago
The majority of people I know who have successful careers in technology couldn&#x27;t write fizzbuzz. (That&#x27;s why they pay people like me).<p>When did &quot;technology&quot; stop meaning machines, electronics, chemicals etc. and start meaning websites?
snap12789almost 10 years ago
No; you can learn anything on your own online, but it&#x27;s easier through the structure from school. If you&#x27;re paying for school yourself, however, you&#x27;ll be in a much better financial position learning cs on your own.
LukeFitzpatrickalmost 10 years ago
It helps, but not necessary. Most of the awesome coders I know, didn&#x27;t study CS - they learnt by themselves.
zeeedalmost 10 years ago
no, but it makes starting easier. you have no track record to prove yourself (unless, of course, you do) so having a good education is sort of your entry ticket.
_RPMalmost 10 years ago
If you don&#x27;t get a CS degree you&#x27;ll be at a disadvantage when you&#x27;re lined up adjacent to other potential hires that do have CS degrees.
Jemaclusalmost 10 years ago
Nope.<p>Source: theatre major, masters in education
trcollinsonalmost 10 years ago
Disclaimer: I am &quot;self-taught&quot;. 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.<p>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&#x27;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&#x27;ll also get a number of other soft skills that will stick with you for the rest of your life.<p>If you aren&#x27;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 &quot;self-taught engineers&quot; 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&#x27;t handle it let alone make one work for a specific scenario. You&#x27;re going to have to learn those eventually, a CS program will give you a lot of that knowledge and it is useful!<p>Early I mentioned it&#x27;s a good start. I have been working professionally since the mid-90&#x27;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&#x27;s are FILO stack&#x27;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.<p>Final thoughts: College is fun! Sure it is stressful at times and somewhat expensive. But it&#x27;s a good time! You can keep those relationships for a lifetime and they will also give you a competitive advantage.<p>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.<p>If you like the idea of going to school but you aren&#x27;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&#x27;t regret it at all. But don&#x27;t believe CS is the only way. But you do have to pick a way. There are no short cuts to success.
评论 #9618983 未加载
khyrykalmost 10 years ago
It&#x27;s the path of least resistance.
gumballheadalmost 10 years ago
No
sparrowmaxxalmost 10 years ago
er