Having a hard time choosing major... CS vs Civil

<p>I have been accepting as a transfer student to SJSU in Silicon Valley as a Computer Science major, so I thought hey what's a better time to re-think my life than now? Months before I move and start my new path.</p>

<p>First off let me say Computer Science was always a passion of mine and programming is something that I have enjoyed and get really "nerded" out on. I like the students and professors that I have had for my programming classes, I've taken 3 now. But it almost feels like I might be growing out of the passion for Computer Science. Maybe it's just a quarter-life crises but I've been thinking a lot of life and the legacy I want to leave behind. And to be frank, I feel as though Computer Science has done a lot for the world but it still doesn't help with the basic needs of most of the world. I think some people get tunnel vision when thinking about what they can do with or through a computer and forget that there is a giant world out there that doesn't even have electricity let alone the access to a computer.</p>

<p>That's where Civil Engineering comes in. I've had this serious desire lately to do something with Engineers Without Borders(EWB), by going to another country and providing water to a village, city, tribe, anything. After all, I feel it is a basic human right to be able to have clean water no matter where you are from. I really want to do something for the people and it almost brings me to tears when I think about the larger perspective and how many people need help. It feels like Civil Engineers have real world knowledge and are capable of applying this knowledge anywhere.</p>

<p>I guess really I just don't want to be on my death-bed and ask myself "what have I really done for the world?" and the only answer being "well I built programs that teenagers in the suburbs of California and other busy cities enjoyed..."</p>

<p>I don't know if this is just a phase, if this will blow over. I don't know if I will even really enjoy the Civil Engineering coursework. Is the course work tougher than Computer Science? Should I major in something I already feel I'm okay at and am able to get into the "zone" with such as Computer Science or should I follow my heart and desire to help human-beings and go with Civil Engineering? Should the final factor be if I enjoy my physics class enough, if I do then Civil might be the way to go? Is there a real way that Computer Science can lead to helping poverty in other nations? I need some serious help guys and girls, thanks a bunch.</p>

<p>Furthermore, is there an online course I can go through or a book I can read to see if I will like Civil Engineering? Any suggestions help.</p>

<p>Why is it that every time someone asks “I want to study either Civil Engineering or Theology” I look at my degree wall and realize I have done both :)</p>

<p>OK, not Theology, but I’ve done both Civil and CS. In my view CE was considerably harder than CS. Math plays a much more prominent role into CE in terms of physics, mechanics, and such, and even CE classes (plates and shells, the horrors). If you’re concerned about physics, your concerns are well founded. On the other hand CE is a lot more ‘fun’ than CS in terms of labs, having several labs where you definitely get your money’s worth doing fun stuff (Concrete lab, Soil Mechanics lab…). You also do learn a lot more ‘real’ skills versus the ‘skill of the day’ in CS. And CE is a critical knowledge to have to work overseas in needy areas, EWB or otherwise. Housing is a critical human need, much more so than cool apps.</p>

<p>I can relate to this all. I shelved my CE degree upon graduation, built a couple houses, and switched to CS. 30 years later my daughter is an architecture student and I am astonished to see how much of CE and architecture I remember (nearly all) versus stuff that comes and goes in CS.</p>

<p>I would say stick to CE and keep re-evaluating. Physics is a needed component in CE so you better be good at it. But the real reason you like CE is the people component. I often think about the same thing you did as I develop consumer electronics apps for teenagers myself… </p>

<p>And pat yourself in the back a few times. Most kids your age would go for the App Store career or Investment Banking…</p>

<p>Thank you so much @turbo93 , your advice and help is much appreciated. I am now leaning more towards the CE degree but I will see for sure after I finish my Physics series, it’s the last series I need to finish for my lower division coursework. Hopefully I will enjoy it and realize that CE is definitely for me.
May I ask, why the change to CS?
Most of the schools I am looking at make it pretty hard for one to go back and get their second bachelor’s degree (California), so what I choose now I’ll have to stick to. Though I could probably learn most of programming on my own, but I won’t be able to stick that degree on my wall like you.
Thank you, again.</p>

<p>The switch to CS from CE for me was a no brainer. My native country of Elbonia was basically built up and without a ‘hook’ like a family construction business a CE degree there was worth as much as a basket weaving degree here. I was already making decent money as a software developer (started my career in the 70’s writing apps for programmable calculators, then moved on to BASIC pocket computers) and as CS was the next best thing, the switch was obvious.</p>

<p>There is a lot of synergy between CE and CS, if you hit the sweet spot just so. We were just beginning to use computers in structural analysis and the like (ever calculated a 5 story poured concrete structure by hand with only a 4 function calculator and your DIN/ASTM/whatever tables?) and a week into the lectures I proclaimed the process to be useless, pulled out my pocket BASIC computer and started writing code to do the skull-numbing calculations needed. After I finished I decided that hey, these could actually be sold, and I did sell a number of copies of my apps…</p>

<p>There’s nothing to stop you from taking a few prerequisites (basic CS courses) and then going for an MSCS after BSCE. My last intern was a Purdue ME kid who decided that gear design is boring and became an ace coder on his own (did a minor in CS). He can code Android like you would not believe but he’s still a ME.</p>

<p>Find a decent in state grad school, spend a year and a half getting the MSCS (probably get decent funding in the process esp if you find connections to the CE dept for research that needs coding) and enjoy both hats. If you’re especially good in math companies like AutoDesk would probably like the combination of skills. </p>

<p>Even if you are into the plumbing part of CE (water and such) the computational needs of the stuff are immense (comp fluid dynamics, etc) so again with some grad school both hats are doable. </p>

<p>Look up “IBM Smart Buildings” to see how far this can go…</p>

<p>I can’t really comment as far as which one is better or give that good a reason for it. I just want to say that you have very noble goals, and I wish more people thought like that and wanted to help people the way you do.</p>

<p>I’m doing a CIS degree right now, and I think to myself occasionally whether I should have picked something more out there for the world, something for the greater good. Unfortunately, I hated the sciences, (much as I respected them too) so I decided not to. But hopefully, more skillful people like you will pick up the careers that will help build the world into a better tomorrow.</p>

<p>I would suggest going after the better paying field. How well you are paid roughly corresponds to your value to society, at the end of the day. Fulfill the market demand!</p>

<p>I know a young civil engineer who is in Ghana right now, working with EWB. He said he has to buy his plane ticket for this trip, but in the future EWB will pay for it. I’m looking forward to hearing about his experience when he returns.</p>

<p>CS is a lot more than just being a dumb code monkey. You can benefit society a lot with CS and it will open more doors than CE. You will need a PhD if you want to make research and create new technology though. Actually without the work of CS people, you wouldn’t be able to be posting here. </p>

<p>If you want to help people that don’t have electricity access major in CE but most of the things turbo said are completely wrong. CE is much easier than CS actually so you won’t have a problem doing it.</p>

<p>I know an engineer who went to Kenya to help a village get clean water. I must say, I admire her for taking all that time out of her life and career to help others get a basic necessity of life. It’s incredible what we take for granted here…</p>

<p>Have you considered helping others without doing it through your career? It’s an option if your professional/academic interests don’t let you help others. Perhaps join Habitat for Humanity? </p>

<p>

Do major league baseball players contribute much to society? They make millions and they provide entertainment value, but are almost of no use for those lacking the basic needs of life (food, shelter, water, etc).</p>

<p>

</p>

<p>In the left corner we have Plates & Shells, and the right corner we have Survey of Programming Languages… In round 2, we have Fluid Mechanics versus Web Programming…</p>

<p>I have degrees in both CS and CE, and unless something has changed drastically in the last 30 years, CS was more work, granted, writing code and typing design papers, but CE was considerably more brain-work. </p>

<p>In CS all you really need to worry about is abstract stuff, and you have Google and the backs of others to look if you’re stuck. If you don’t understand how to use Euler’s buckling formula, or how to do pretensioned concrete the right way, all the Googles of the world are not going to save you.</p>

<p>Ah, and make sure to pass the PE while we’re at it :)</p>

<p>@turbo,</p>

<p>I thought you mean CE was more work. The CE people I know seem to have more free time than me.</p>

<p>My daughter (completing 2nd year architecture) has zero free time, all nighters, the whole nine yards. Yet the stuff is not difficult if you have the talent for it (she does). If you don’t you generally drop out after 1st year :slight_smile: At the same time, one could be studying EE or what not, which requires fewer hours, but is far more taxing on the body and brain. </p>

<p>In CS, if it does not work, you have tools to find out why. If you’re waist-deep trying to understand a comp fluid mechanics problem, there is no debugger :)</p>

<p>There’s a big difference between ‘a lot of work’ and ‘how hard is the work’. At the same time, I remember nearly everything I was taught in CE 35 years later, yet I could not recall a lot of what I learned a year or two later in CS. In CE we learned concepts, dynamics, statics, structures, concrete, etc. In CS a lot of what is being taught is not fundamentals, but recipes. </p>

<p>Tomorrow’s contest: Descriptive Geometry (*) vs Computer Graphics. </p>

<p>(*) the math/geometry behind 3D. Only passed the class thanks to a friend who took great notes… Meanwhile, using NVIDIA UI Composer, I can code up a 3D UI in less time than it took to do a simple axonometric projection of a dog house…</p>

<p>You can’t make a raw comparison (never mind the false equivalences being made by turbo93…e.g. try comparing OS or distributed systems instead of web programming). People are going to prefer one subject to another based on aptitude.</p>

<p>I don’t know much about Civil Engineering, so I can’t really speak to that. I just want to caution you from assuming that CS can’t be used to help the less fortunate in the world. Here’s some stuff involving CS that’s being worked on at my school: <a href=“http://change.washington.edu/projects[/url]”>http://change.washington.edu/projects&lt;/a&gt;&lt;/p&gt;

<p>Sure, the problems being solved here don’t involve building shelter or providing water, but they can be just as important (and often more impactful). My capstone project involved making the prototype for a tool to help governments/involved NGOs manage cold-chain inventory (think refrigerators/parts/energy) more effectively. This kind of tool can lead to better vaccine distribution, which saves lives.</p>

<p>Even tech companies can be really helpful. Facebook and Twitter, for instance, are often powerful communication tools, especially for those in more oppressed countries. Google has a crisis response team to help coordinate information during natural disasters (<a href=“Public Alerts Help”>Public Alerts Help) that makes use of some of Google’s data management and location technology. Jobs microfinancing empowers third-world entrepreneurs to improve their situation in life. watsi.org is a kind of like Kickstarter but for operations/healthcare in third-world countries.</p>

<p>The bottom-line is: there are plenty of opportunities for helping people in both Civil Engineering and Computer Science. So you should pick the field you are most interested in and think you can have the most impact with.</p>

<p>turbo93: I think it’s possible to come away from a CS program having learned only “recipes”, but if you actually take fundamental courses, you will learn how to build computing systems from first principles. You’ll learn how to design algorithms to efficiently accomplish a variety of important tasks (no debugger can help you here, either, if you don’t understand the underlying principles). Depending on your electives, you might even learn some of what goes into building artificial intelligence, or how to handle large amounts of data, or how to make fault-tolerant, scalable distributed systems. I could go on, but I trust that I’ve made my point. I don’t know where you’re getting the idea that this isn’t brainwork.</p>

<p>Other thing is that no decent MS CS requires you to take a web development class. That’s usually an elective to have on the BS level, because most of us end up doing web, mobile, embedded development doesn’t mean that’s the main thing in CS. The core CS classes are data structures, algorithms, operating systems, computer architecture, and a few others but you get the point. Web/mobile Dev is definitely enjoyable and very important to know but it is not a required CS class and I would be scared of an MS CS program that requires you to know web dev. Memorizing a bunch of programming languages is not what CS is about…</p>

<p>Where would I get the idea… Good question. Perhaps because I have an undergraduate degree in CE and undergraduate and graduate degrees in CS (and another grad degree in HFE, and halfway thru graduate EE. </p>

<p>CS was by far the easiest of the bunch, even taking into account the undergrad OS course, or the epic amount of work in the computer architecture course, or the mind boggling math of theory of computation. Maybe I’m a natural :), but in CS, you do the homeworks and projects, you’re golden. If something does not work, run VS2010 debugger and find out why. If you understand how to write software, whether it’s a web server, an analytics app, an AI program, or microcode, it all goes together pretty quickly.</p>

<p>In CE, it ain’t remotely as simple. The theory based classes (fluid mechanics, heat transfer if required) are nightmares in most colleges, and even classes like statics, strength of materials, and the like can make the smartest kid on the block look like a moron in no time flat. And that’s before you hit classes that will really pull your brain apart, like pretensioned concrete, plates & shells, advanced structures, and the like. </p>

<p>EE was harder than CE by quite a bit, btw. The above are child’s play compared to statistical communication theory or signals and systems… And HFE was fairly easy assuming, once again, one is a visual person.</p>

<p>But the real reason I feel CE is harder is simple. CS has few dependencies between classes. Once you pass the first 2 or 3 basic coding classes, the rest is pretty straightforward. You do not need a heavy duty understanding of computer architecture to write a compiler (well, you do, but not at the college level, been there, etc etc). You don’t need a heavy duty understanding of five other classes before you do network programming. In CE - as in much of engineering - there’s a lot of dependencies. To design a concrete footing you must understand statics, mechanics of materials, concrete, and my favorite, soil mechanics. To calculate a pretensioned concrete bridge under moving load and vibration (i.e. a train) you better have good notes from Dynamics saved somewhere. And so it goes.</p>

<p>CS depends more on domain knowledge, but at the college level, esp. undergraduate, things are generally kept simple. Solutions can be completely off-the-wall and still work, or they can be straightforward, and the difference between a good and a bad solution is not something that you generally get graded on (I’ve had exceptions but in general I’ve done some pretty horrible coding projects and still passed). In CE, there’s real life cost constraints, building code constraints, material constraints, and a myriad of other things to worry about before the plans get stamped. Then in the real world, the CS guy has the benefit of patching/release 2.0, which obviously the CE does not have.</p>

<p>CS, for many serious projects you mentioned (i.e. fault tolerance, big data) one usually borrows existing solutions or open source stuff (I’m working on SOLR and the like lately, cool stuff, but…). In CE we did not have the benefit of open source. Want to design the foundation for a 3 story concrete building where half the footings sit on rock and had to be blasted and the other half were on Play-Doh level mud 50 feet away. I don’t think there’s a GNU package that designs foundations :)</p>

<p>When I was in grad school there was no web… But having taken a ton of undergrad and grad CS classes , probably around 35 total, few were as challenging as what I did in CE or EE. Perhaps you can enlighten us with your academic experience in both CS and CE and we can compare notes.</p>

<p>Sorry for not getting back sooner I’ve been busy studying but I have been reading all of this and there are some interesting insights into both fields so I thank you all.</p>

<p>@Ken285 Yes I have thought about things such as the Peace Corps. But I figure why not kill two birds with one stone and major in something that can help the world, give myself experience in the field, and provide myself with an education such as engineering.</p>

<p>@lightnin I understand you believe CE is easier than CS but you can’t really tell someone their wrong because their opinion is that CS is easier. It’s all subjective man.</p>

<p>@sumzup Those links you sent me are pretty fascinating and I will looker further into those programs. I’ve been trying to ponder over ways I can help the world through CS skills but nothing really came to my mind. Now after seeing these programs I will have to give it a second thought. Something like Khanacademy is quite inspiring and I admire a person like Salman Khan, but even that can only reach as far as there are schools and internet connection. Beyond that, people are kind of screwed. But something like this “iSante EMR: An electronic medical record that supports both individual and population health care of patients in Haiti.” can be powerful. And so I thank you kind person.</p>

<p>@turbo93 Wow you have a broad education in many areas, you’re a very lucky and intelligent person to pursue so many different options and I hope that one day I too can have a wall of different hats to try on. For now I just got to get through my physics series which will hopefully determine how well I can understand CE topics and how much I will enjoy the field of CE.</p>

<p>Again thank you very much everyone. Anyone know the involvement of Chemistry in Civil Engineering? Must there be a deep understanding? The work in Chemistry is doable for me but I just find it awfully uninteresting and don’t care to do any more than I already have like “Organic Chemistry”.</p>