PDA

View Full Version : The Complete Idiots Guide to Brain Surgery



abachler
05-23-2008, 12:29 PM
At what point do we stop dumbing down the languages and accept that if an individual isnt smart enough to learn C/C++ that they migth lack the problem solving abilities needed to be a programmer in the first place? This stems from an interviewee I had today, the guy knows LabView and Java, but he coudlnt explain to me what a linked list is, or the difference between stream and block transfers. The guy actually has a higher degree than I do, was I just being too hard on him?

laserlight
05-23-2008, 12:35 PM
Maybe he just has problems communicating the concepts in words, but can do so in code? Though I find that rather strange since any thesis that he wrote would require more than just code.

indigo0086
05-23-2008, 12:38 PM
That's pretty sad. everyone knows

Stream Transfer = http://images.sscentral.org/feature/0001.jpg

Block Transfer = http://home.cmit.net/rwolbeck/programmingtutorial/code/fullscreen%20tetris.png

Mario F.
05-23-2008, 12:56 PM
Well, if you are half intimidating in real life as you are in here, I'd say he was doing it in his pants and I would forgive him for stammering (even more so if he learned his interview would spawn such a colorful title for a thread).

A better approach perhaps is to either not interview anyone and let someone else do it ;), or better yet, ask him to code a simple linked list in a piece of paper. It always surprised me how many people can't code on paper.

Prelude
05-23-2008, 01:40 PM
>The guy actually has a higher degree than I do, was I just being too hard on him?
You're lucky. I interviewed a college graduate just last week. I called the interview short because it was obvious the guy knew only the most rudimentary of basics about programming (he was applying for a job on a compiler dev team :rolleyes:). I keep wondering how a guy can graduate college with a bachelor's degree in computer science and the best example of his work is a command line Fahrenheit to Celsius converter.

indigo0086
05-23-2008, 05:14 PM
*adds gui to Celcius to Fahrenheit converter*

whiteflags
05-23-2008, 05:24 PM
Yeah, you think you could gimme a job?

Oldman47
05-23-2008, 05:41 PM
At what point do we stop dumbing down the languages and accept that if an individual isnt smart enough to learn C/C++ that they migth lack the problem solving abilities needed to be a programmer in the first place?

Are you suggesting that these dumb folk should become brain surgeons instead? Everyone has different skills. An old friend of mine tracks across the country inspecting nuclear power plants, yet he can't figure out how to use the car jack in his trunk. As far as programming itself, you're going to find both good and bad. That's true in any profession.

mike_g
05-23-2008, 05:49 PM
In my C module i got marked down for not commenting this program:

include <stdio.h>

int main()
{
int i;
for(i=1; i<=10; i++)
printf("&#37;i", i);
return 0;
}
Unfortunately I could not think of anything to write about when it came to describing what I had learnt from the module (10% of the mark). For the last part a friend of mine did very well because he was able to describe how he was unable to write a for loop, so had to use a switch instead. He got a better result than me. Seriously, degrees are for retards. Its more about how much crap you can bang on about than anything else.

This is how my teacher described a linked list:

"A list is like an array but its faster because its not sorted."
The only reason I actually know what a list is is beacuase I bothered to find out about it for myself; its beyond degree level.

So, dont go giving the dude a hard time; he cant help it.

For my project there are no teachers in my college that can help me. Its not that I'm doing anything mega high brow intellectual, just that none of them really know anything about programming. When these sort of people end up marking your work they go by the documentation more than an understanding of what is going on and the reasons for it.

Mario F.
05-23-2008, 07:32 PM
Err... ok, that's quiet an extreme situation. I would complain to the board (it's how you call it over there?) or request a transfer to another university. I agree the situation is bad with only a handful of universities in each country offering high quality teaching in this area, but... wow. There is a line somewhere, and your university crossed it at full speed.

vart
05-23-2008, 10:56 PM
There is a line somewhere, and your university crossed it at full speed.
I see TC3.0 existing somewhere deep under the line... And seeing number of students forced to use it in their studies today (what? we are still in 1990?) - I say a lot of Universities are living somewhere deep in this s...t

h3ro
05-24-2008, 03:15 AM
After one year at university, a few people in my class could still not figure out when to use int/float/char/string....

PING
05-24-2008, 03:52 AM
I keep wondering how a guy can graduate college with a bachelor's degree in computer science and the best example of his work is a command line Fahrenheit to Celsius converter.

Nice to know that such people exist all over the world and not just in my country..


I see TC3.0 existing somewhere deep under the line... And seeing number of students forced to use it in their studies today (what? we are still in 1990?) - I say a lot of Universities are living somewhere deep in this s...t

I still don't get the logic of using something like TC when better compilers are available. I am forced to use TC in my college for almost everything and i hate it. But things are changing and a lot of colleges are providing students with linux and gcc. I hope, in the next few years, some sense will prevail and other colleges will follow suit.

twomers
05-24-2008, 04:10 AM
From the other side of the interview room. I had an interview the other week for a hardware/IC wireless design thing and in the interview the interviewers were asking me relatively straightforward questions, to which I knew all the answers, academically. But they were coming at the problems from a completely different point of view. In college we learn to analyse circuits, give all the information and leave it at that. What's the current, frequency response, bandwidth, phase lag etc. But in this interview I was asked questions about the practical implications of the results, and not as straightforward as "what happens if the current gets too high". Real in deep-understand stuff. So, I reckon, and have been thinking for a while, that a degree (I can only speak about my own area; elec eng), is something which says "I'm at least somewhat competent at this", but it's exposure to industry that really makes you a daemon in the sack.

>> The guy actually has a higher degree than I do, was I just being too hard on him?
How much experience do you have? But I suppose you knew what a linked list was before you started work. Not too hard, in my opinion. What was his degree in? CS? If someone doesn't know what a linked list is after graduating (and perhaps after a post graduate), there's a serious problem somewhere. With him or with his college. I'd say make a note of that college and see if you interview others from there if they are of the same standard. If so... that's not good.

manav
05-24-2008, 04:29 AM
Nice to know that such people exist all over the world and not just in my country..
yeah, whatever that means :rolleyes:



I still don't get the logic of using something like TC when better compilers are available. I am forced to use TC in my college for almost everything and i hate it. But things are changing and a lot of colleges are providing students with linux and gcc. I hope, in the next few years, some sense will prevail and other colleges will follow suit.
As far as I know in the colleges/universities where they use TC or similar DOS based compilers. This is solely due to the reason that the students are Electrical/Mechanical major, and they need to write code for micro controllers etc. Which TC+DOS make very easy. So simple to kindle with serial/parallel ports. GCC will be a mess to use in this case. And where it really matters the students doing Computer Science major, they use MSVC. I used it. 4 years back.

twomers
05-24-2008, 04:36 AM
>> Which TC+DOS make very easy.
Please tell me how that would work? I wrote code for microcontrollers with a mix between MSVC and the microchip's software. I don't see the point in using command line compilers when it's so much easier to press a button to compile and build.

PING
05-24-2008, 04:42 AM
This is solely due to the reason that the students are Electrical/Mechanical major, and they need to write code for micro controllers etc.

Writing something for micro-controllers has nothing to do with TC. Turbo C is a so called C compiler, nothing more.


So simple to kindle with serial/parallel ports.

And also so buggy. If you really want to kindle with ports, use ASM. You need a simple assembler. The functions provided by TC namely outport, inport are nothing but non standard implementations over a platform which is no longer supported natively by the operating systems. Again, it has nothing to do with the C compiler that we are talking about. You can access ports with the same amount of simplicity on linux using gcc.


And where it really matters the students doing Computer Science major, they use MSVC.

That depends on what college you are in. We are provided with 'advanced' compilers only in our final year of graduation and I am assuming it was the same with you. If not, you were lucky :)

manav
05-24-2008, 04:56 AM
>> Which TC+DOS make very easy.
Please tell me how that would work? I wrote code for microcontrollers with a mix between MSVC and the microchip's software. I don't see the point in using command line compilers when it's so much easier to press a button to compile and build.
You wanna test a simple LED based electric circuit. Ok. Attach it to parallel port. Run in DOS. Use the simplicity of a DOS based compiler. And be done with it. All such type of simple electronics projects, cheaper also.


Writing something for micro-controllers has nothing to do with TC. Turbo C is a so called C compiler, nothing more.
The benefit is it runs under DOS. A bare bones OS. Very useful for your own kindling with hardware and all that. Especially with simple projects interfacing with PC.




And also so buggy. If you really want to kindle with ports, use ASM. You need a simple assembler. The functions provided by TC namely outport, inport are nothing but non standard implementations over a platform which is no longer supported natively by the operating systems. Again, it has nothing to do with the C compiler that we are talking about. You can access ports with the same amount of simplicity on linux using gcc.
Assembly is harder to use. Plus all the stuff can be done using some functions in TC
that directly change registers, make int requests, write to ports and to memory also. Plus you can very easily draw a nice interface using graphics lib available from TC.


That depends on what college you are in. We are provided with 'advanced' compilers only in our final year of graduation and I am assuming it was the same with you. If not, you were lucky :)
Ist year - C/C++
IInd year - VB, Java, Perl
IIIrd year - Net working, DB and such stuff

Mario F.
05-24-2008, 05:55 AM
The benefit is it runs under DOS.

So does DJGPP and it is at least more compliant.

The issue of DOS is not simplicity. The issue of DOS is lack of investment by the university on new equipments and software. And this alone derives mostly from the fact many universities don't recycle their teachers, being traditionally a stale environment drawn by antiquity, long time friendships, favors and everything else that a university shouldn't be. I know... I worked in one.

The reason TC and Visual C++ 6.0 are so widely spread in universities is because your teachers where using it in their days and they didn't kept on pace with the developments. They aren't particularly good compilers, they aren't particularly useful or offer special features that help teaching. There's no educational value to them. But if you were to have MSVC, GCC, Watcom or Digital Mars, you would probably be out of teachers.

twomers
05-24-2008, 06:00 AM
>> You wanna test a simple LED based electric circuit. Ok. Attach it to parallel port. Run in DOS. Use the simplicity of a DOS based compiler. And be done with it. All such type of simple electronics projects, cheaper also.
I know flashing LEDs are important parts of electronics and all, but you'll want a lot more than a parallel port if you're going to be doing anything interesting. And where does a uC come into your LEDs? Easiest thing to do when debugging something even slightly awkward is program the controller, with pre-processor debugging stuff* and have it send (via parallel/serial/usb), messages with flags in certain places in the code and read them on the PC as they come. Diagnose the problems, and fix 'em. Hardware debugging is much more difficult (I've found), than software debugging. But much more rewarding once the thing is finished - you've got something that physically operates by itself.

* By which I mean:
//#define DEBUGGING_PROJECT

//...

// Somewhere in a function or something
#ifdef DEBUGGING_PROJECT
rs232_send( "something" );
#endif

abachler
05-24-2008, 08:51 AM
I really don't see the point of using TC 3.0 unless you are writing code for an 80x88 uC. Most common microcontrollers have GUI based compilers. I think the reason they use it is because its free, although with VS express out now thats a dubious reason.

abachler
05-24-2008, 09:07 AM
The reason TC and Visual C++ 6.0 are so widely spread in universities is because your teachers where using it in their days and they didn't kept on pace with the developments.

I can agree with this as being a problem, not having worked in a university yet I can't say oen way or the other if this happens, but i suspect it does at least to some extent. Universities should use the model that West Point uses. Only use your most successful commanders to teach, and do not have them teach for more than 2 years without rotating them back into the field. This keeps them from getting out of touch with new developments. This woudl be a bit of a problem with industry, because universities cant order the best and the brightest to come teach. Businesses however could require teaching experience for advancement. This woudl benefit them on several levels. One, it would reduce entrenchment, where a guy who is good enough to do his job, but not to advance blocks lower level workers from getting the experience they need to move past him. By requireing him to go teach, they would open the position for at least 2 years. Two, it would serve as a vetting tool, if the guy can't teach, then he isnt teaching his subordinates and isnt being an effective manager even if he is holding the ship together. Three, it woudl make sure that the new recruitsd are beign taught the latest methods. As is they learn outdated techniques, and the company ends up retraining them anyway. How effective they do this falls back on number 2, how well their superior can teach.

medievalelks
05-24-2008, 09:19 AM
Seriously, degrees are for retards.

Generalize much?

robwhit
05-24-2008, 05:57 PM
I don't see what's wrong with using TC to learn with. Unless you're learning C++. :p