lainchan / Ω
Should I go for a CS or a CE major?
Yet Another Lainon · 2020-08-24 02:59
I'm going to start college soon and I haven't decided which major I should go for. I'm mostly interested in programming, but I'm also interested in hardware! I was going to go for CS, but I've heard CE teaches you pretty much the same thing as CS but with the added parts about hardware, which I'm interested in. I've also heard a CE degree tends to look more attractive, and engineers in are general more respected and have more job opportunities. That being said, my main interest is still programming! That is why I'm having this bit of a crisis!
Koichiro · 2020-08-24 15:58
>>31496
If I'd have to choose a major, I'd go for CE nowdays. To my knowledge, alot more people study CS than CE, and thus have less of a focus on hardware, EE and physics. I wouldn't want to be a replaceable "coder" who programs CRUD web apps, a career alot of CS grads end up in. If you like programming (the lower level kind), hardware, and enjoyed physics in high school, I don't see how you could go wrong with CE.
Six · 2020-08-24 19:20
CE programs tend to drown you in homework, accuse me of being lazy or a baby fool if you want, but take it into consideration. Is it worth it to seriously sacrifice four or more years of your free time and enjoyment of life to get a CE degree?
Also CS programs often include programming concepts that aren't covered in the CE programs, and can get you ahead in programming compared to a CE degree.
That said, I'm finishing my CS program and wish I knew more about hardware!
Nemissa · 2020-08-25 02:19
>>31527
>>31532
After seriously thinking about it, I think I'm gonna go with CE. I've always loved learning how stuff works down to the core, and I feel like CS won't teach me everything I want to know about computers! I wanna learn both the inside and outside! Hardware, low level programming, ect.
>I wouldn't want to be a replaceable "coder" who programs CRUD web apps
Me neither! The thought of going through the trouble of learning computation just to be assigned to write some python scripting webapp bullshit disgusts me! I also hate the idea of being replaceable! Engineers can't ever truly be replaced since they build the actual damn hardware, but code monkeys and script kiddies can be replaced any day of the week.
Ivan Petrov · 2020-08-25 14:55
SC = more in depth outlook on applied math on computers than CE.
Homework wise? These univs I'm aware of are pretty much the same in amount of homework. Read - expect a fuarrrktone of it.
>>31540
>feel like CS won't teach me everything I want to know about computers! I wanna learn both the inside and outside! Hardware, low level programming, ect.
Low level programming is not a rocket science you think it is. I semi-finished CS (my master thesis is kinda delayed as I am working full time and also learning a lot of stuff on my own plus actually having some life like attending music festivals and gigs of fav bands).
I learned enough to get a job in embedded few years back. In low level programming area. I get that job based on knowledge of maybe first year and a half on Univ (CS) plus reading a lot of low level code. Was enough for internship and later junior position.
You basically need good knowledge of C and basics of Assembly plus read and understand around two thousand pages of tech documentation of platform you are working on (typical size of CPU/microcontroller manual plus maybe few supplementary papers on some additional components in case of System On A Chip). If you are good at algorithms you won't have too much problems with getting grasp how low level protocols, buses, coprocesors etc work.
To be honest I kinda regret I don't have education in a proper applied mathematics as that soykaf could have a lot of use on modern low level stuff both for network equipment as for industrial and other use.
Face it - in modern IT to get truly innovative you have to approach it from these vectors
- mathematical - new algorithms, optimizations of algorithms, quantum computing is included here - which is a domain of CS and even more a domain of Applied Mathematics
- physics/Material Engineering - better methods of production of circuit boards, construction of quantum computing cores , photonics
Electronics and software engineering are just implementing achievements of both groups. May be interesting but it may not be as satisfactionary after some time. Also it's getting harder and harder to find unexplored yet areas as we have so much stuff implemented nowadays that to even be aware of something missing you often have to be aware of stuff that is above master's degree in CS or more applied math knowledge than you get exposed to at CS.
Maybe only Big Data (really BIG one) related stuff is a relatively wild and not much inhabited area of exploration. Being a pioneer and creating stuff that would make it "industry standard for future generations" is much easier when you actually have a big unexplored area available mainly because a lot of stuff on that stage is pretty darn obvious. Later area gets explored and most obvious and some less obvious stuff is known to everybody and finding something useful and innovative requires a lot more digging, researching and having multidisciplinary knowledge to set yourself a goal or sometimes even notice usefulness of some stuff you encounter.
Unnamed · 2020-08-26 04:37
I am not OP. But I am in the same dilemma as OP. I recently thought about studying pure mathematics or applied mathematics.
Is majoring in mathematics with a minor in computer science a good route if you wish to end up working as a software engineer?
Lady 3Jane.. · 2020-08-26 10:55
>>31620
>Is majoring in mathematics with a minor in computer science a good route if you wish to end up working as a software engineer
Op of >>31563 here.
Depending on what you mean by SE and what type of CS - in most cases even minor is an overkill. CRUDe code monkies don't need it nowadays. I started minor in CS 10 years ago and went year longer than usual coz math in my highschool sucked and I needed more attention to math subjects to actually pass them.
Many of my collegues from UNIV work as corpo (IBM, Sabre, COMARCH) code monkies or webdevs. They don't make use of any knowledge beyond knowing more or less well the programming language and some generic knowledge of algorithms that you don't need to have degree of any sort to pick up. And to be honest many of them weren't that great at programming to begin with.
We had some classes dedicated to software engineering even supervised by people with some experience in the industry but a lot of that stuff went outdated like year or two after I graduated minor (for example processing XML). And most of that stuff could have been learned without too much problem just by reading some general literature on that topic and writing a project or two. I would say good portion of IT related knowledge I learned during that time get outdated. However I cannot say the same about math.
Taking applied math path if your math background is well founded and you have no problem with operating on that path of abstraction makes a lot more sense to me if you aspire to be something more (a lot more to be honest) than typical corpo code monkey or yet another fullstack webdeveloper.
Taking Computer Science from my perspective makes sense if you want to learn some limited set of knowledge and don't aspire to broad such knowledge too much later mathematics wise (but if you finish good CS at good Univ you would be able) or are interested in very very specialized things like operating systems design or aspire to be "a technical guy who understands some math" in teams of programmers supporting numerical calculations for scientific experiments. You may also be just fine if you only want to code 3D renderers. As for stuff like programming languages design and compilers - depends how much time is dedicated to it. But in many programs it's just a single subject during one semester. Outside these areas you would run sooner or later into need of learning more math than you could during CS major to be proficient.
So code monkey - you don't really need master in anything. But minor in CS may be a good option from a perspective of getting employment. But it would mostly be just more of "a currency" than a real necessity knowledge wise.
Specialist in something more ambitious and innovative - major in CS is a good start. But it's just a start. If you get that path - be sure you get good enough math knowledge during CS to later read math papers and learn more math by your own. Otherwise you will end with knowledge being overkill for most corpo/software house type jobs but from perspective of other paths you are too much of jack of all trades master of none and have to still learn a lot of stuff for a year or two during on post graduate or really intense research done by your own.
Donald Knuth like figure - applied math minor + minor in CS (you would probably be able to skip a lot of math related stuff) + major in one of these or applied math + postgrad CS or just straight CS PhD is a best way to go. But I would strongly opt for having at least postgrad applied math in your background.
John Carmack type - he had two semesters in his univ background which IMHO is not a bad thing as most univs have these months dedicated to building math and theoretical background for further studies and he droped. I personally learned most of my math during 1st and 2nd semesters. I think it would not be bad idea if there would be actually legally recognized form of education for IT people that consists of typical math and basic theory packed 2 semesters of Computer Science. As the following 4 next semesters are not that much of a breaktrough for many to actually be worth it.
Lunch · 2020-09-30 23:27
One thing to note, if you're not sure about what to major in, choose mathematics, because mathematics skills are by definition transferable to a crapton of other specializations---even in pure art. As for what to study in school, I'd go for the stuff you can't teach yourself. You can teach yourself most of computer science by reading Donald Knuth's The Art of Computer Programming, and you should be able to read research papers after that. It's much more difficult to get good hardware experience on your own, though.
Erik Johansson · 2020-10-01 05:59
>>31532
My CS program had basic processor design we used simpler tools than the graduate EE digital design certificate I took but I did build an entire cpu in CS. I know at least one of my co-workers did the same at his different school.
I learned and forgot a lot of algorithms and stuff in CS. I only need them to pass job interviews which are hard as fuarrrk under the misguided belief that rockstar programmers are 100x more productive than mediocre programmers. This is true but most of my productivity pits are not programming related they're documentation related, feedback related, bugs in codebases I don't have access to, etc.
I spend so little time actually writing and designing programs that I sometimes forget even basic things. There is a whole tedious process for testing and deploying every small snippet of code. That's the reality of software engineering.
Working has made me a worse programmer.
Apoc · 2020-10-01 06:04
>>33462
>. You can teach yourself most of computer science by reading Donald Knuth's The Art of Computer Programming,
Dude isn't that four massive volumes of data structures and algorithms? That's a huge part of CS but my text was 1/4th that size and honestly most fresh google hires only remember a fraction of that.
Arisu Mizuki · 2020-10-01 06:06
>>33462
>It's much more difficult to get good hardware experience on your own, though.
Buy yourself an FPGA and sign up for a class on edX or coursara or something.
Chan Siu Ming · 2020-10-01 19:54
>>33477
Is that really all you need to learn about hardware? I would have thought some heavy physics knowledge would be requisite, for doing stuff like designing small chips. As a tendency, learning purely intellectual stuff is as cheap as working through a good textbook, so I'm inclined to agree with >>33462.
>I spend so little time actually writing and designing programs that I sometimes forget even basic things. There is a whole tedious process for testing and deploying every small snippet of code. That's the reality of software engineering.
That's abhorrent! Are there really still persons who don't prove the programme as they make it? I can see why you'd forget most of what you learned..
>misguided belief that rockstar programmers are 100x more productive than mediocre programmers. This is true but most of my productivity pits are not programming related they're documentation related
I think that's the reason great informaticists are much better: they mastered all the basic algorithms, that they can whip up an alternative in a few weeks, which is a lot cheaper than meditating for hours over every small thing. (There are so many small things!)
Zero Cool · 2020-10-01 22:10
If you want to do anything with the actual chip-level, you'll want to read up on your physics. It gets pretty tricky below 100nm.
Debbie Charteris · 2020-10-02 00:25
the software industry is ruined with disjoint schools of thought neither of which is coherent or even promotes basic engineering principals. go for hardware instead, because you'll actually learn something. software is garbage and every single thing you can learn without school
t. graduated software engineering college 4 year program by doing absolutely nothing and attending no classes
MAS · 2020-11-01 05:03
>>31496
*If you really can*
PLEASE DON'T GO TO COLLEGE