Engineering School Grads - Tradesmen or Thinkers?
El Cubano asks: "ITworld is carrying a story (sorry, no printable version) saying that John Seely Brown (former chief scientist at Xerox and director of PARC, currently teaching at the University of Southern California) is encouraging engineering schools to change the way they educate. The article, quotes Mr. Brown saying the following: 'Training someone for a career makes no sense. At best, you can train someone for a career trajectory...'. What do you think? Should engineering schools be producing tradesmen (like an apprenticeship program) or should they be producing 'thinkers' (people who can cope with a wide variety of problem inside and outside their area of expertise)?"
It takes both. Producing "thinkers" gives us people who understand what is going on, and can analyze situations.
Problem is, they tend to over complicate somethings.
For example. Who would you hire to do the wiring in your house, and electrician or an electrical engineer?
Granted this is an extreme situation, but in theory, shouldn't both be able to do the task? Yes. However, an electrician has done it many times before and has the benefit of experience.
Now, who do you wanted designing a NASA space vehicle?
As a grad student at USC and someone who has studied under Mr. Brown, I'll say that I have to agree. Atleast as far I am concerned, I wouldn't want my professors to be teaching me a specific technology or system. I want them to teach me to think at a higher level. I mean if you really want to learn a technology well, do you really need a classroom and a professor? Can't you just pick up a few books, download some tools/compilers/etc. and learn it yourself?
On the other hand, what professor's teach you isn't so much how to code in Java or write PHP. What a professor teaches you (atleast the ones I've studied under here at USC) is how they (or other experts) tackled/approached engineering problems in the past, which IMO is more valuable.. in other words.. they impart more wisdom than knowledge. I think most good engineering schools would follow a similar pattern of teaching.
- Tempestdata
I think in Australia traditionally you had technical colleges (such as TAFE) and Universities providing a clear difference in the direction of things being taught. Technical colleges producing "tradesmen" and Universities producing "thinkers".
The problem has been that increasingly universities have been seen by consumers as a way of getting a job rather than as a pathway to higher learning as academia and thus there is expection by them, to be taught "practical" skills. I think a reason for this is there is a small stigma attached to technical and trade colleges as being "dumber" than their uni counterparts. I think in this way, the problem is that consumers do not really understand what the function of universities are.
The market forces of supply and demand will control which universities succeed and which fail.
The ones that keep teaching useless crap, will fail.
That's a very short-sighted perspective.
The Fourier series was discovered in the 1700s, and calculus before that, by people who thought they were doing pure sciences. Any applied value then? Nope, none whatsoever.
Ditto for boolean algebra, which came about long before we had computers.
The ones that teach in a modern way will succeed.
Care to define what "modern" is?
Why do we still teach CS and engineering majors tons of higher math? It's a vestigial remnant of what computers and engineering used to be about.
Oh, I do not know, maybe because most of _actual_ engineering is applied math? You should probably read up some papers on graphics, AI, game theory or theoretical CS -- it's almost entirely all math.
Today we have computers to do the math for us.
No, today we have computers to repeat and apply existing solutions to problems we have already solved. New problems? The human mind still kicks ass at pattern recognition and problem solving.
Universities will adapt or die. The ones that insist on teaching CS or engineering like it's just some subset of a math major will go away.
Most areas of CS and engineering are subsets of math and physics. Computer Science is more than writing some code, it's about mathematics, formal logic and other applied areas.
In fact, in the days to come, I'd imagine that CS itself is likely to breakup into smaller areas of focus.
Goodluck, though. Methinks you flunked math in school?
C+ average at Princeton = daddy was an alum and donated a lot of money while his son/daughter partied/sat around all through college.
Top engineering schools in the US (in '05 cuz it was the first I found): #5 University of Illinois at Urbana Champaign (public state school), #18 Princeton. If an A average at UIUC is worth a C+ average at Princeton, why is the ranking higher? Actually, don't answer that because I know about all the complications with school rankings.
I went to Pomona College and took computer science classes at Harvey Mudd, which is consistently ranked as one of the top non-graduate engineering programs. I didn't like the atmosphere out there and transferred to UIUC which is near my home. I have gotten good grades at both schools and can honestly say that it is more difficult to get an A at UIUC compared to the smaller private Harvey Mudd. The main reason for this is that the teachers are much more available and willing to help at smaller schools, while you generally have to figure everything out on your own at large schools. Larger schools are also much more likely to have classes that are intended to kill off the weaker students, usually by making the class very difficult, which again makes it hard to get an A.
That really doesn't matter that much though. The point is that you sounded like a jack ass. Troll me if you want, I just have a problem with people who think they are better because they go to a private school.
God I'd love to be able to hire people with an ability to finish projects. That's why I refuse to hire CS grads. They're useless. The best programmers I hired had degrees in things like Russian Literature and Psychology (no shit). Theory isn't useless, but theory for the sake of theory is fucking useless. Same thing with the engineers. I've never gone wrong hiring an engineer who's a ham radio nut. However, most new engineers are useless. They're absoblutely incapable of building something. They're incapapble of picking standard designs and putting them together into something that will work without a ton of lab equpiment. Ham's however, have that part of engineering down.
END RANT
But thinkers is not what most employers want in the freshly graduated engineers they hire. They want someone they can put onto project x using software y or tool z on day one, no matter how much their CEOs might talk about how they want "thinker" and "pioneers". There are some exceptions, but "I can layout amplifier circuits in ORCAD, program in Matlab and have never looked at anything except radar" will get you into the door at, say, Raytheon much faster than "I learned that I am good at problem solving". Now, it's a different story for engineering masters or PhD grads, but still most HR people prefer the skills match, be it Matlab or AutoCad, over the intangible qualities. This is at least partly due to the fact that you can't easily judge them in a resume and a short interview, but also because the engineering manager tells them "I need someone who can fill the place of the AutoCAD monkey who quit last week.
Creativity and "thinking" probably makes you advance faster once you have a job, or when you apply for your second job, but out of college, it's not the most looked for quality.
Disclaimer: I got a software job immediately after graduating in nuclear physics.
Then, once you get into upper level classes, you use those tools that you've acquired -- from classes or from elsewhere -- to accomplish tasks.
At least, from what I've seen. Who's taken a design class and been told what language they must write in? Unless you're forced to use an existing tool (ie, you MUST do your Computer Architecture work by extending simplescalar) or limited by the architecture (you can only choose between C and Assembly on most microcontrollers).
When I took my computer architecture class, we did trace-driven pipeline and cache models. I did mine in python; I was familiar with it from friends and I enjoyed using it. (I still do.) Other people used languages like Perl and Java, because that is what they were familiar with.
When I took video game design & programming, my group used Java for the client and C for the server. Other groups used tools like Visual Somethingorother or the Unreal engine (which was state of the art at the time). They chose tools that got them the product they wanted in the time they had. The team that wanted to do a "FPS Ultimate Frisbee" had great success with the Unreal engine. We had great success doing a multiplayer 2D board game using Java for the clients and C for the server. Partly because we were familiar with the tools and didn't have to fight them. Similarly, the person using Visual Studio wanted to make a DirectX game... and that was the right tool for the job. Writing a FPS from scratch in Java was clearly not the right option, nor was writing a 2D board game in the unreal engine. But the point was classical engineering of the kind that is most useful: given a set of resources (10 weeks in the quarter, a few University students with other classes, and only so many tools in the bucket), come up with a feasible idea and implement it.
Other schools have "computer science" programs where you learn linked lists and C++ pretty far along in your schooling (Junior year?), and you rarely (if ever) get free enough to design projects from the start. The difference is one of philosophy: using whatever tools available to accomplish the task you want to do, versus knowing tools to make things that someone else has mostly planned out.
It takes some of both kinds of people to make the world go around.
Most skilled trades (law, medicine) have secondary post-college programs entirely on top of arbitrary undergraduate degrees. It's a shame in a way that engineering gets crammed in with everything else; I think the secondary programs confer more respect on the people that go through them -- and a higher salary. If you had to get a Degree of Engineering on top of your undergraduate degree of choice, maybe engineers would have the respect they (IMNSHO) deserve.
-- Erich
Slashdot reader since 1997
You are fixating on one example and missing the point.
Pythagoras, Euclid, etc were largely theoretical, despite that their later application. While newton's work was done hand-in-hand with physics, that wasn't necessarily true of Leibniz. Euler's work gets used everywhere, but a lot of it had no practical application at the time. Fourier's transform only became truly useful after the advent of the FFT. Riemann's work has ramifications in crypto.
Integrate Keynote and LaTeX
Couldn't disagree with you more.
Schools have tremendous resources available for those that want to put down the beer and get hands-on experience. The next 40 yrs of engineering will be hands-on experience.
What matters most for the 4 yrs is the density of education. And that comes from learning how to think, analyze, learn new methods, etc. Hands-on apprenticeships are typically little more than pattern-matching. A good education builds mental capability for a wide variety of pursuits.
A decade later, that apprentice is worthless when the market changes and he no longer has a job. With a good education, one can easily come up to speed on a completely new style of engineering because he has the mental tools to be effective.
In their efforts to woo corporations and become more competitive as corporations themselves, higher education has become a whore to the corporate agenda and that has (and will continue to) damage the future preparedness of our students.