<p>In general, I would say that most people have no real concept of CS. That includes most CS Freshman and a lot of CS Sophomores. I see lots of kids go into CS that don’t realize the amount of math involved in the degree. They often switch to CIS or something else.</p>
<p>“In general, I would say that most people have no real concept of CS.”
Seconded.</p>
<p>“That includes most CS Freshman and a lot of CS Sophomores.”
Sad but probably true. But then again how much does a freshman Physics major understand physics… I guess maybe I’m being too harsh on people.</p>
<p>"I see lots of kids go into CS that don’t realize the amount of math involved in the degree. They often switch to CIS or something else. "
I know what you mean. When people say “I went into CS because I like computers” I just about gag.</p>
<p>
</p>
<p>But I’m sure that you do realize that CS is an academic discipline with many different branches or specilizations. Using a programming language to solve problems you can learn about a wide range of CS topics.</p>
<p>I have noticed that you go through these boards with a fine tooth comb. Perhaps it would do you some good to stop and consider the possibility that people usually talk in very general terms when they post a few lines anonymoulsy on the internet. A good example would be that people often use the word “math” to describe arithmetic, which in fact is a branch of mathematics.</p>
<p>“But I’m sure that you do realize that CS is an academic discipline with many different branches or specilizations.”
Sure.</p>
<p>“Using a programming language to solve problems you can learn about a wide range of CS topics.”
Granted, in the same way that you can learn about astronomy with a telescope and physics with a well-stocked laboratory.</p>
<p>“I have noticed that you go through these boards with a fine tooth comb.”
I do my best.</p>
<p>“Perhaps it would do you some good to stop and consider the possibility that people usually talk in very general terms when they post a few lines anonymoulsy on the internet.”
There is a difference between using general terms in order to avoid excessive verbosity and using general terms in a way that stereotypes, overgeneralizes, and misrepresents things.</p>
<p>“A good example would be that people often use the word “math” to describe arithmetic, which in fact is a branch of mathematics.”
Depending on the context, this is fine. However, it can also be misused in such a way as to make it unacceptable. For instance, “Math is stupid, because you can do it on a calculator.” Etc.</p>
<p>I try to only take issue with things that seem to be clearly tending in a direction that I don’t agree with. Consider the following statements, which taken literally most people wouldn’t have trouble with, but when read between the lines betray something else:</p>
<p>Computer programming? Even women can do that.
I know that, technically speaking, black people are just as smart as white people.
Maybe Jews and Muslims are misled, but it’s none of my business how they behave.</p>
<p>etc.</p>
<p>When people say things like “Either way, CS is an integral part of engineering. Most engineering majors these days learn some sort of programming, even if it is just MATLAB.” it tends to trivialize the field of CS. There’s an implicit CS => programming transition. Consider some similar statements:</p>
<p>“Mechanical engineering’s pretty interesting… I took a physics lab my freshman year and we did all kinds of cool experiments with springs.”</p>
<p>“Electrical engineering is teh bomb dot com. In my Honors freshman physics seminar, we did a term project where we built an RLC circuit and did all kinds of cool analyses.”</p>
<p>“Chemical engineering would be fun, since my Chemistry sequence wasn’t much work but was really interesting.”</p>
<p>“Math would be such an easy major! It’s all about solving equations and memorizing rules, like in calculus, and I’m great at that.”</p>
<p>etc.</p>
<p>
</p>
<p>I don’t see how what I said is not true. What I said is that a company who is hiring a programmer would rather one who is skilled in CS principles and has knowledge of SE. Rather than a SE who very well could have never programmed in their lives. </p>
<p>I think some are confusing what a SE really is. A SE doesn’t program, while some companies may term programmers software engineers, that is not what a SE does. A SE is somebody who is deciding on how and why to make the software. What methodology is best, Agile, XP, waterfall, etc. How many people are needed, how to draft business documents, etc,</p>
<p>So a company really doesnt want a pure SE to be a programmer, but they love CS people who know SE principles.</p>
<p>“I think some are confusing what a SE really is. A SE doesn’t program, while some companies may term programmers software engineers, that is not what a SE does. A SE is somebody who is deciding on how and why to make the software. What methodology is best, Agile, XP, waterfall, etc. How many people are needed, how to draft business documents, etc,”</p>
<p>I’ve been a software engineer since the mid-1980s.</p>
<p>Your description is that of a high-level architect or manager - not of a software engineer. And even the high-level architects that I know like to get their hands dirty from time to time.</p>
<p>I would imagine that a software engineer would still aid in the implementation effort.</p>
<p>The difference between a software engineer and a programmer being that the software engineer is working on the software BEFORE implementation. That is, in the analysis and design phase, software engineers decide what to make and how to make it, and then they get the programmers to help out with the implementation.</p>
<p>Even computer scientists routinely write code, I would imagine. Obviously, to test out certain theories, there’s usually not many better alternatives than writing code, but I’d wager that they may even write production code if they’re working for a company and implementing some highly technical functionality in a system.</p>
<p>I think it would be well to remember that while neither CSs or SEs <em>must</em> program to be such, they probably all do to some extent.</p>
<p>New college grads are part of the analysis and design process where I work. They may only be part of the design review process where everyone reads the functional and design specs and provides comments but they are part of the process.</p>
<p>Most of the first-line managers also do coding work; the next level up usually doesn’t have time. I work with one consulting engineer that has a lot of patents and he does analysis, design, coding and testing. I work with another guy that was previously a computer scientist that also does analysis, design, coding and testing. And I work with managers that also do analysis, design, coding and testing. In general, we expect employees to be self-managing for the most part which leaves at least first-line managers some time to do technical work (they don’t have to but a lot of them like to).</p>
<p>I’ve seen high-level software engineers organize parties, sing at parties, order pizza, manage aspects of the fitness center, direct in fire drills, deal with the city on building and traffic issues, fix PCs and servers, install software and a variety of other tasks not on their job descriptions. Sometimes you have to fly half-way around the world to diagnose a customer’s problem or install a software patch on a tank in the battlefield.</p>
<p>Depends upon the curriculum. @ Tufts students can study CS in the school of arts and sciences or in the school of engineering. Studying CS in arts and sciences does not require all the engineering foundation courses while obviously the engineering does. Son just graduated from there with a CS in engineering and his degree has done him well.</p>