College: Are They Training Engineers Or Coders? 51
Durrik asks: "Recently I've had to go to the local university and interview a lot of students for job openings for next term. I've also had to go through a lot of resumes for more senior positions. I must say I wasn't too happy with the results of the recent graduates, or the current students. Most of the resumes that have crossed my desk are from people who would make good coders and implementers. In my opinion that's not what engineering is about. Engineering is about problem solving, and coming up with solutions, but most universities are now graduating people who know C, C++ and a whole mess of languages, but don't teach how to solve a problem. They can code an application but can they really come up with something new? One of the problems I've noticed is they teach a problem, and a solution but not how one works from the problem to the solution, and most of the problems are 15 to 20 years old! So are the universities turning out people who'd be better off with a diploma or certificate instead of a degree?"
Charter schools are helping out (Score:1)
I graduated in '96 with a BSECE ... my perspective (Score:3)
I don't know about your local university, but my 5-year computer engineer degree was of the traditional engineering type. Math, mechanics, traditional EE core, only 4 courses different that specialized in software, computer architecture and algorithms. I know people complained that we weren't learning much that was applicable, that we shouldn't have to take materials, dynamics, analysis, etc..., especially combined all the intros we took into other engineering disciplines (like environmental, etc...), but I felt it really taught us to problem solve, even if we were in unfamiliar territory (like another discipline).
In all my engineering courses, especially in my EE/ECE discipline, we were pretty much given a problem and told to figure out how to solve it. They didn't baby us by teaching programming languages, they didn't tell us what language you had to use. In fact, when I reached my EE/ECE courses and I had to code -- they expected you to have already learned a programming language somewhere (or take a 3 hour survey course if you didn't, and it didn't count as a valid option towards your graduation requirements either). Whether it was some piece of software, required an embedded circuit design, etc... You had to look at it, try something, get frustrated, try something else, at one point you always hit the professors office hours to ask a question or two, then finally solve it. I remember spending a lot of time in the labs looking at spec sheets, playing with analog/digital ICs and drawing on the knowledge of others, especially technicians who worked in the industry (or our large research park, #2 in size in the nation), to come up with solutions.
I also received a computer science minor from the same university. It was less math, less physics, and numerous, what could be considered, "remedial" programming courses -- requiring you to use a specific language (Modula-2). If CS was my major, the other courses would go on to 8-bit microcontrollers, 32-bit microprocessors, several surveys of programming languages and the standard survey and choice of other topics. In the end, a 120 semmester hour CS degree comprised to about 3/4ths (~90 hours) of just software implementation and IC technology.
Again, in comparison, the engineering discipline at my univeristy shouved a total of 135 semmester hours of largely traditional engineering down my throat (~80 hours), then only a year (~24-30 hours) of one of the "big-three" disciplines (civil/electrical/mechanical, electrical in my case) and only half a year (~15 hours) of the further specialty (computer in my case). A lot of people complained about the lack of specialty, but I personally like it -- felt like it taught me to think.
I felt CS (among other 4-year degrees like engineering technology and 2-year tech degrees) are more "practical" whereas traditional engineering doesn't teach you anything "useable" except for the ability to think and problem solve. It'd rather have the intuition in the later than the knowledge in the former, because I can always compile the former with experience -- and I worked 30+ hours while in college in IS/IT departments at various engineering firms, which gave me the former at the same time. I guess the type of graduate produced at institutions depends on the institution one attends. The EE department at the institution where I attended ranks in the top 25 on the College Board rankings for EE departments. [ I personally think my institution sux, big time, from the administration to most of the departments. But the engineering college is a complete 180 from the rest of the college. I wouldn't have gone anywhere else. ]
-- Bryan "TheBS" Smith
Sad but true (Score:3)
Furthermore, the decreasing price of hardware and proliferation of squishy languages has enabled a depressing decline in the analysis of problems and elegance of solutions. For example, the java generation seems to use hash tables for everything, even when simple arrays would be ideal. These are not the same software engineers who launched Voyager into interstellar space.
"Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based FORTRAN programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation -- hitting ten-kilometer wide windows at Saturn after six years in space, repairing or bypassing damaged sensor platforms, radios, and batteries. Allegedly, one Real Programmer managed to tuck a pattern-matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter."
From "Real Programmers Don't Use PASCAL" by Ed Post
Re:I graduated in '96 with a BSECE ... my perspect (Score:1)
My Experience (Score:1)
MIT does rigorously teach the alogorithms, mathematics and problem solving techniques. One of the larger CS requirements (6.170, or software engineering lab) is actually about managing large projects among groups, rather than coding. There are also a lot of classes that include graph theory, data structures and alogoritms (both using classic examples and designing your own), as well as many other techniques to understand how to approach problems. The MIT CS deptartment actually prides itself on the LACK of actual "practical" classes.
True..According to most college worker... (Score:1)
Re:Not at my school (Score:1)
My Perspective (Score:4)
More specifically, as to your remarks: Yes, we are taught solutions to old problems. Why? Because they are FUNDAMENTAL problems, things that people struggled with mightily. It's no different than teaching Physics students about Newton and Einstein: they, too, are old news, but they are also the solid base for everything else. Now, you may have one of the universities of the first type near you, which could help explain your frustration. But at the same time, the resume is not everything. The principal purpose of a comp. sci. degree is to give a student some base to work from, to THINK from. They can't teach us to think, although they do try.
Before placing the blame solely on the backs of the education system, you should remember stuff like the above. Maybe you should widen your search to include other schools?
Universities shouldn't be training coders (Score:1)
GER's (Score:1)
Not Here (Score:1)
Hire a math major (Score:2)
If I wanted to hire a coder, I'd get a CS grad. If I want to hire someone who can think about a problem and work out how to solve it, I'll get a math grad.
Blame the tech employers (Score:1)
I knew the CS department at my school was heading this way when they added a VB course, and it was required. Even worse I recall many other students complaining that it was about time that the school have a course that teaches VB.
In the rush to generate graduates to fill all the tech jobs many students and schools are leaving the science out of a BSCS.
Another AC
What an interesting question. (Score:1)
Around here, engineers are the implementers. A computer engineer is a person that can solve a problem, to be sure, but a computer engineer is a decidely practical person.
Here, Computing Science is more along the lines of what you're talking about. We're supposed to take classes on theory, algorithmics and implementation. The goal is supposed to be to train a scientist that happens to work with computers to discover new things about computers, and to be proficient when working with them.
I'm at the end of my BSc, and I see the problems that you're talking about all around me. I see students that take the theory classes, learn nothing, but manage to regurgitate enough of the book to get a good mark, and end up with a degree that is no indication of their actual talent with computers.
The problem is that computers can make you a good living. A BSc is a good place to start. Most people are undecided coming into University as it is. The problem is that they have no love for computing science as a science. Heck, some of them have no love of computers.
Here's some things that you should check for when hiring:
1) What games do they play? I'm serious. Someone that loves computers and wants to be around them will be a gamer. There are some non-gaming scientists out there, but this is a good first gauge.
2) Ask them algorithmic questions. If they can't at least come up with some sort of halfway reasonable answer, ditch them. Any computing scientist worth their salt should at least be able to tell you the difference between a P and an NP problem, even if they can't do anything with the NP problem.
Oh, you could also start asking for only Master's degree or better applicants. That guarantees at least some level of desire to discover things.
Computer Science or Engineering? (Score:2)
At my Uni, University of Technology Sydney (UTS), we have two seperate degrees. A computer science degree run from the mathematical and computing sciences faculty, and a computer systems engineering degree (also currently on the works is a software engineering degree) running from the engineering faculty.
The comp sci degree, as you expect, puts out coders, the engineering degree really does put out engineers. We were taught the fundamentals of all engineering degrees during the first 2 years (but were still given 1 or 2 specialty subjects along the way to wet our appetites). And then left up to the last two years to really specialise.
I can still remember, having to back over my math (complex numbers) texts in order to be able to applly that kowledge to problems involving frequency domain analysis of an analogue signal which was being digtised on an embeded chip using C. Try and get a coder to figure that one out.
We were taught to TEACH OUR SELVES the specifics of a particular language, so long as we knew how to approach the problem at hand. Whether it be programming in C, Java, assembler, VHDL (digtal design), or even html and XML (towards the latter part of the degree).
We were taught to use the various computer languages as a tool (like you would a calculator) and not neccessarily as a skill.
The engineering approach to problem solving and algorithmic analysis were the fundmental aspects of the degree to be learnt. The programming language was a secondary task to be learnt as required.
Re:Sad but true (Score:1)
Actually, they do still teach math to CS students in their first two years. But not too many of them will do advance math like Graph Theory or Algorithm Analysis. And not too many of them will take Set Theory which I found it's close related to computer science.
Tell you the truth, a lot of people in computer science program don't like to code. A lot of them admitted that they study this because of money, not because of their interest. A lot of them don't like to hack codes. All they want is getting a good job at IT field, not as programmers. So if employers are looking for good coders and problem solvers, I would suggest you test their skills instead of hiring people depends on their resumes.
============
i. There is no spoon.
Re:What they want to teach. (Score:1)
Re:My Perspective (Score:1)
Let me use something from the movie Matrix: There are difference between knowing the path and walking the path. - Comp Sci and Engineering students need to walk through the path to learn programming. But most professors at school don't even know how to show the door of the path. (At the same time, not all computer science or engineering students are the chosen ones who can code!)
============
i. There is no spoon.
My 2¢ (Score:2)
Sadly, I had to agree.
And as I've seen recently, the recent crop of freshmen at my old place have the odd idea that they're doing coding and that's it. The department also had the bright idea to cut out a ton of the necessary math & physics from CS (1 term of Discrete Math instead of 2, 1 term of Physics instead of 2) and putting less emphasis on analysis.
Don't even get me started on the CIS major -- programming + accounting + bizadmin + economics.
Thus sprach DrQu+xum, SID=218745.
A favorite interview tactic... (Score:2)
"Says here you know objected oriented programming?"
'Yes, that's right, I know C++ and some Java.'
"Do you know Smalltalk?"
'No.'
"Good, let's talk about solving this problem using Smalltalk."
'No, I said I don't know Smalltalk.'
"Yes, but you know OO, right? So the language shouldn't matter. If I tell you that Smalltalk is an OO language you should be able to dive right in."
Gets them most of the time.
Students don't know what employers are looking for (Score:2)
Being a student at a Uni with a co-op job has taught me a lot about what employers are looking for, and I have always been successful in finding jobs that I enjoyed. However, I think that the reason that most of your resumes might be disappointing is that students don't know what you are looking for. Most think that programming skills are what employers want, and aren't really sure what the difference between design and implementation is.
As for problems taught we do things such as an OS course, a compiler course, an Algo's and DataStructures course, a SW Eng Course (where we design a PBX), and optional 4th year courses include Distributed and Network Centric Computing, Applied AI, and Database Systems. I agree that a lot of the things that we are taught are old, and I think it is only through experience that you learn some of the modern problems.
That is what I appreciate the most about a co-op program. We spend five years in school, but 2 of it is spent in industry. (Check out Our Department Homepage [uwaterloo.ca].
>~~~~~~~~~~~~~~~~
Re:I graduated in '96 with a BSECE ... my perspect (Score:2)
Dude, if you don't use Linux, don't comment about Linux. If you don't use BSD, don't comment about BSD. If you don't use Solaris, don't comment about Solaris. Etc ... That's all I meant!
-- Bryan "TheBS" Smith
Re:I graduated in '96 with a BSECE ... my perspect (Score:2)
So you're in a technology program. There is nothing wrong with that. I was reponding to the original post on why there *IS* a lack of good problem solvers and designers out there. US colleges are only graduating less than 20,000 traditional engineering types a year. That's not good.
BTW, read Asimov's Foundation Trilogy. Excellent theme in there -- if a portion of the population does not continue to "learn the basics" our whole technology infrastructure will die. Knowing how to use technology and knowing the concepts and designs behind them are two different things. You cannot have people doing the former if you do not have people doing the later.
-- Bryan "TheBS" Smith
Re:The fault lies within the corporations. (Score:2)
That's because companies like Novell and Microsoft don't make the proper distinction between engineers and [engineering] technologists. They get caught up in "we _are_ engineers, really." Hence, the lack of differentiation.
Most people just lump the guy who can repair PCs and network computers and the guy who can design integrated circuits (i.e. computer chips) into the same group, engineers. It's one thing to have an informal title of "engineer", which is tolerable, but it is another to be representing yourself in a consulting capacity as an engineer. There is a whole slew of liability and licensing issues that goes along with that title which most people do not have (unless they are traditional engineers).
And unlike the electrical/computer engineering fields, both corporations and regulatory bodies of other engineering disciplines (like civil) don't stand for this. The IS/IT professional or system administrator is to electrical/computer engineering field as the land surveyor or draftsman is to the civil/environmental field. In each case, the former is 10x more numerous and pratical than the later. But you cannot have the former if you don't have later, otherwise there would be no products to use, install or fix.
[ Note: This is not an "anal" stance, but a stance of trying to "reduce confusion" so don't all you IS/IT professionals get all pissy on me. I already said you are more "practical" and _are_ in more demand than us traditional types. ]
-- Bryan "TheBS" Smith
Re:Students don't know what employers are looking (Score:2)
Yes, I agree, co-op programs are excellent! If your university does not off one, suggest it, and plan to work during college in a technical capacity on your own anyway.
Traditional universities are NOT institutions for technology application. They are for research and new ideas. They cannot possibly keep up with the industry, nor should they -- technology changes so much. They are designed to teach you how to learn and how to keep yourself learning throughout your life, giving you the basic tools to be able to learn anything.
Technology and engineering technology is where you learn practical knowledge. But since technology changes so much, technical degrees are really no better than real-world experience. Hence, I'm back to my original argument. The only thing that you can get from college that you cannot from real-world experience are those non-practical concepts that are applicable in some positions (like traditional engineering and design).
Most people do not need any formal training for technical positions, although you can always tell who has them. Because either they are inexperienced and know nothing, or they are experienced and, combined with their intuition, seem to know or can tackle anything. It all comes down to the ability of the individual to take that formal education and use it in the real-world. Again, I always look for engineers who held a technical job for 20-30+ hours/week while in college.
The former Soviet Union is the epitome of a _failed_ engineering programs. You could get a engineering degree in ball bearings at the Soviet Union. Such a specialization is useless except for in a narrow field. In contrast, I have done software development for ballisitic missiles at an aerospace firm and now I work in the IC design industry.
-- Bryan "TheBS" Smith
Re:Not at my school - ABET classifies programs (Score:2)
When looking for graduates, you need to find how their program is classified. The American Accreditation Board of Engineering and Technology [abet.org] classifies various programs of various disciplines:
Again, if you are looking for traditional engineering types, you want the first. If you are looking for formally trained technicians, then you want the later. Beyond that, you do not need formally educated personnel IMHO. Either that or the personnel you are looking for are part of the math/science disciplines (like CS).
-- Bryan "TheBS" Smith
Re:Students don't know what employers are looking (Score:1)
The reality is that most employees are hired to do a specific job, and most employers don't have the time/interviewing skill to sift through the applicants to find the really talented engineer. It is much easier for them to look for the right collection of TLAs (Three Letter Acronyms) that indicate experience applicable to the job at hand.
Students and grads find this out quick once they start looking for real industry jobs. So naturally their resume's stress their coding abilities over the general abilities at finding solutions to problems.
Re:A favorite interview tactic... (Score:1)
Have you ever gotten a response written in Smalltalk (ie: they're lying), or has it usually been a C++/Java program "crapified" into pseudo code?
Just curious...
I am a CS major. (Score:1)
Re:The fault lies within the corporations. (Score:1)
It is in fact illegal to do so, but many companies (led by microsoft) refuse to cooperate. And it's difficult to sue microsoft. Even if they are blatantly violating the law.
So maybe an engineer (a P.Eng in Ontario) is what you're looking for.
Computer Science vs. Engineering (Score:2)
Neither discipline is intended to turn out "coders", which I assume means "people who can write programs to solve problems". The purpose of college/university is higher education, not job training. If you just need "coders", hire a few bright high school kids and give them copies of "Learn Visual Basic In Two Days" or whatever.
ROFLMAO (Score:1)
You get that from a resume? Anyways, 95% of the seniors in my computer engineering program make me laugh, they're so inept at everything. Coding? Who are you kidding? They know just enough Java to change variable names to avoid being caught for cheating. Engineering? Problem solving? Most of them just barely cheated their way to a 'D' in Statics and Data Structures. Those same 95% will be hired for $50k+ a year by various consulting firms and made into MCSEs.
What does this mean to me? Free ride, baby. I rarely go to class and I easily do better than those lamers without even trying. Why am I in college? Free ride. I am a professional slacker. I get enough much money from scholarships and my 2-hours-every-other-day job that I don't gotta do shit and I'm in the black. I'm looking forward to grad school. :)
And it's funny cause it's true.
---
Re:My Experience (Score:1)
For example, CS 5, the intro course, is taught in Java. CS 18, the follow-up, is taught in Dylan, a horrible, horrible language that is really obscure and, in my opinion, worthless. All courses after are taught in C++, but that's only because Java's really darn SLOW. This combination of languages teaches students not to rely on one language, but on the program and its effective creation. I don't know how it is at other institutions, but I think they got it right here.
XTAZ
Sweatshop Training (Score:2)
Re:My Experience (Score:1)
My time at good ol' RPI left me with enough credits for a computer systems engineering minor, but the school doesn't allow CS major with CSE minor because of, "too much overlap".
The MIT CS deptartment actually prides itself on the LACK of actual "practical" classes.
I can't claim any departmental pride in our lack of "practicality". I can claim, however, along with MIT, that we produce good scientists and engineers.
Re:What an interesting question. (Score:1)
I think the best answer would be that of one of the ID developers "The computer is the game." With such a deep understanding of the game, I still wonder why they were shocked when the wolf3d maps were hacked.
I have found that asking for a MS is a great way to screen out good talent. If you can't get into a decent school (MIT, UCB, etc) a Masters program could simply be more useless crud on piled on top of the other junk.
I can say that I did not learn one useful thing about coding in any programming class I ever took. I did learn a few lessions. Like the "impossable" assignment in Systems class it to teach you to work with others. I messed that up by building a tool to batch the Ada compiler so it would complete its task more than 10% of time, and by completeing the assignment which was to write an "windowing os" in Ada that would run 4 processes in different windows in vt100ish terminal. The first thing the class was tring to teach was cooperation on your team. The vax could deal with 2 compiles at once. The second one would die after about 10 minutes. If you fired up a 3rd, all three died but one would work fine. I wrote a program that watched the virutal memory and would allocate and deallocate a block of ram based on the runnign state. Simple solution and about 1/2 the class started using my batching program -- the other 1/2 complained I was cheating. A lession leaarend but it wasn't about coding. The other part of the class was that one person would write the "os" and one person would write the "windowing" and since 4 different programs had to be running, the other team members would work on thouse. That was fine except that the os loader (which is the hard part) has to be done before those people at do their jobs so you end up with all the pressure on the OS guy till they are done with their job and then the few days before the project is due, everyone else starts to do real coding.
A masters from the wrong school is worthless. For example I took Dr Lan's (at the Univ Missouri's CS department) C and Unix class. While appealing the grade, I had answered the question with exactly what was in the K&R book. Dr Lan said he didn't recoginse the book. One test question was "what is the unix shell", His only correct answer was "c shell" (which wasn't on 1/2 the machines used in the class) and he didn't even know what the Borne shell was. After posting some of his test questions to Usenet, I was shocked that someone with the uid of dmr at some place called bell labs couldn't even answer the questions correctly.
Re:What they want to teach. (Score:1)
I know all the languages, even uninvented ones (Score:3)
I know all comptuers programing languages. Every single one. I know perl 7.0, the next successer to c (not C++ or c#, but the one that will come next) I know all dialects of LISP.
Church wrote a therom proving it. All turing compatable languages are equivelent, and non turing compatable lanugages are very limited.
Ask me on an interview if I know smalltalk and I'll respond "Yes, but I'll need a week of review before you can quiz me on my knowlege." Then after the interview I head to the local book strore and buy some small talk books, or head to the net and look up smalltalk. No big deal, I've learned programing languages before, and will learn more in the future. Learning the first language is hard, but once you know a Lisp, a Procedural language, and a machine language (assembly counts), you know all the variations, and it is just a matter of syntax which is easy.
Of course mastering a progrmaing language takes time, but to learn it is easy. One of my professors claimed to have learned basic in a morning, and I have no problem beliving him. Trivial to do, if I didn't know basic I could learn it in a few hours too. I could also spend several years learning the tricks to make basic work best, but to make it work good enough is a trivial task.
Designing Curricula - a Tightrope (Score:2)
Most members of the department were in favor of the science-oriented approach (algorithms, language doesn't matter, etc.). However, the founder of the department (and the "power behind the chair"), despite being in favor of the science, pointed out that the department survived on enrollments. More enrollments == more money from the university. So the students have to want to take the early courses. And the most frequently cited motivation?
So you have to teach coding, or your enrollments go down, and the department withers. Hopefully, you can throw in enough of the science to keep the people that want the science, and enough entertainment to keep any of the coders scared away by the science (the founder, Andy van Dam, always taught the first semester programming course, and the class ran pretty much like a circus - Halloween saw Andy dressed up as a witch).
So it's a delicate balance.
Programming courses does not teach you to program (Score:1)
You can't learn to program from a course. You can only learn to programming by solving practical problems using a computer and a programming language. Of course, you need to learn the fundementals of programming but that doesn't not make a programmer.
At my university [or what corresponds to college in USA], CS student are taught programming fundementals in Pascal (for the imperical part) and Java (for the OO stuff), but all also confronted with real problems for which they have to make a program in order to solve. This is by taking out nearly half the time of a term using on a dedicated project in which the students themselves have to find the problem and the theory needed to implement the solution. (Example projects range from `administrative computer system' and `expert systems' to `database query optimization').
Students that are not confronted with such practical implementation problem will have a hard task cathing up because they will need to use their spare time learning to program real and practical programs!
Re:The fault lies within the corporations. (Score:1)
_____________
Focus of Program (Score:2)
I go to a fairly well known computing school (U of Waterloo) and this is something that always rears it's head during interviews. Our CS program is considered top-notch in the country (Canada) and as such we have quite a co-operative program that draws employers from all over N.A.
One of the things I find is that people in the CS program are generally taught the 'problem solving method' and these people are grabbed up by the handfulls. The department also has 'coding' classes for the general university public, and it is these people doing the CS minors that end up going into the interviews figuring if they can cram as many languages on their resume that they will get the job. One thing that I've found however is that while showing a knowledge of various languages helps in showing employers how flexible you are, they are much more likely to appreciate previous work and concrete examples of being able to apply problem solving to different tasks. I figure if you can get the person you are interviewing to give you a concrete example of how they used some sort of innovation to solve a problem then you might have someone worth persuing.
As other people have mentioned, it might help to ask an algorithmic question - it doesn't have to be that hard, and just leave the language up to the person being interviewed. It's pretty surprising what kind of responses you'll get. For my current co-op job my employer simply asked each person to write down a quick 10 liner that would write out the fibonacci sequence. Of course I just wrote it out in good ol' fortran - no questions asked. I got the job and after talking with many of the other people that had the interview they said that that question really threw them off - not that they didn't think it was a monumental task, just that they were not expecting to have to actually think about something instead of regurgitating their qualifications.
I guess in the end though it really depends on where you go to look for employees. As many other people have said the quality of the graduates is highly dependant on the program that they have been through - and I would have to agree.
Re:My 2¢ (Score:1)
Remember, not all helpdesks are equal. There's a big range.
I worked at an institution where in order to maintain your position at the HD you were expected to carry out projects for the benefit of the computer lab, which sometimes involved programming, but which always involved solving some problem or meeting some need of our customers^H^H^H^H^H^H^H^H students.
You know, the kind of stuff that many of us do for a living now. Helpdesk people who failed to branch out from basic user-assistance mode didn't last very long around that place. Its still the most enoyable job I ever had.
OTOH, I am aware of many other places where the student HD staff is basically expected to keep the printers unjammed and occasionally re-image a Windows box, and that's about it.
Re:Students don't know what employers are looking (Score:1)
I agree whole-heartedly, but I think the truth is even more general than that.
If I could go back to college (and I don't mean if I went back now... I mean if I was 18 again and had those years of my life to re-live) I would taken more of those "non-practical" courses like philosophy, psych, linguistics, literature, history, etc...
Unless you plan to become a professor in one of those subjects, college is the only time in your life when you can be totally free to devote yourself to learning such things. And most certainly, it is the only time in your life when you will have true experts (which might even include your friends as well as your professors) in these fields at your disposal. No one should waste such an opportunity.
Learn how to code? Of course! Learn something about current technologoy? Certainly! But that's not all there is to an education.
If they are teaching coders, nobody's learning (Score:1)
Re:I am a CS major. (Score:1)
Well, that's enough for me, I wouldn't hire you. Fleeing before knowledge is never a good sign.
Knowing foreign languages helps you look at things from new angles, think clearly and objectively about what you're dealing with, etc. Far more than any Comp Sci class I've ever taken. I'd say the uni is doing you a big favour with those four languages. Assuming you don't just do the minimum of work to get a pass, but if you do that, you're shooting yourself in the foot, there's nothing the uni can do about it.
The thing is... (Score:2)
Designs are, of course, Good Things. They do help create better software. But they must be considered a tool, not a crutch. I know coders who are utterly paralyzed if they don't have a design in front of them, and panic if they have a design but it ever changes. This is as bad as (if not worse than) not having a design at all. You've got to be able to design, yes, but you've also got to be able to think on your feet, because no design will ever solve all problems, just as coding blindly will never solve them.
Bottom line: shy away from programs that teach coding but no design, but also avoid places that overemphasize the engineering aspect. You'll get good coders from the former, and good designers from the latter, but you won't get good programmers from either of them, because true programming has aspects of both.
----------
Re:I am a CS major. (Score:1)
Re:I know all the languages, even uninvented ones (Score:1)
...comptuers..programing...successer...theorom.. .compatable...equivelent...lanuga ges... knowlege...strore...progrmaing...beliving...
What's up with that?
Re:Sweatshop Training (Score:1)
Figure out what you want to do, and then figure out how to make money at it. Don't worry about whether your starting salary will be $40,000 or $50,000 (or $25,000); focus on choosing a career path that will keep you happy.
Re:I am a CS major. (Score:1)
I suspect it has more to do with the books I read as a kid, which were largely European.