Fog Creek Software
Discussion Board




"Top grades and a track record of success"

Reading from the Fog Creek summer internship page:

http://www.fogcreek.com/Jobs/SummerIntern.html

One of the requirements for an applicant are:

<<<
Top grades and a track record of success
>>>

Now, what does it mean? I am studying in the Technion where the tests are very hard and many times unfair. The global test average is 70%, and the average of the students is between 70% and 80%. (taking into account taking the second chance exam, or taking a course again). I have an average of 82%. However, cum laude students are considered those with an average of 85 and above and summa cum laude those with an average of 90 and above. While I was a cum laude students in several semesters, I will not graduate with a cum laude degree.

Some of my grades are high or very high. I also have some other less flattering grades, some of which were received due to the unfairness of the test. I also have a policy of not taking a test again if I suceeded to get a passing grade. (it's simply not worth the aggravation)

On the other hand:

* I have several years of proven experience at workplaces and many more of just experiencing on my own.
* I wrote or contributed to several open-source projects (Freecell Solver, MikMod for Java, Quad-Pres, and contributions to Perl, Subversion and the GIMP)
* I am one of the administrators of one of the servers of the local Linux user groups.
* I wrote many presentations about technical topics to various local clubs, including a four part series of "Perl for Perl Newbies" with very verbose explanations.
* I maintain a personal web-site and many other web-sites.

For everybody's information, even someone who is smart enough to get a %70 average in the Technion's Electrical Engineering department, is well above the average intelligence.

So, would I or would I not be a very good candidate for this job? What do "top grades" have to do with it? The Technion is a very hard place to get good grades in. I'm not ashamed of my grades, but they are not super-spectacular. It's just that I have better things to do in my team than study non-stop.

(Note that this entire message was hypothetical. I do not wish to apply to the summer internship position.)

Shlomi Fish
Saturday, January 31, 2004

There is a direct relationship between the grade you recieve for the class and the amount of work or effort you put into it.

A = A lot of work and studying
F = No work - goof off

This is the way school works.  You should have put more effort into studying, more effort into your assignments and generally more effort all around.

I hate it when students complain about "tough tests."  There is no such thing.  If you know your stuff you'll do fine.  If not you won't.  If you want to challenge that a question is wrong or worded poorly, I will hear you out.  Other than that there are no excuses.

Whining about, "I went to a tough school... etc etc" doesn't cut it either.

A Teacher
Saturday, January 31, 2004

Grading standards differ in different countries.

An 'A' classification in the US is awarded for a
more than 90% normalized grade, whereas an 'A'
classification in the UK is awarded for a more than
70% normalized grade.

Note that these 2 examples are the same grade,
calculated exactly the same way, but the numbers
are different.

Someone who naively looks at a UK student's
grade, not realizing that he has to scale up,
will say: "70? That Sucks! I'm looking for 90%
people around here!" - and miss a student of
exactly the 'A' grade caliber he was looking for.

I think this plays a big role in the effect the OP
was describing.

Ali
Saturday, January 31, 2004

Shlomi Fish said:

... cum laude students are considered those with an average of 85 and above and summa cum laude those with an average of 90 and above. While I was a cum laude students in several semesters, I will not graduate with a cum laude degree.

... I also have some other less flattering grades, some of which were received due to the unfairness of the test.


Hmm,

"unfairness of the test ... "

So, did no one in your class graduate summa cum laude or even cum laude?

Mongo
Saturday, January 31, 2004

Not only do standards differ, but they differ in the way they work. The US and Japan love multiple-choice questions, while other countries don't and present student with open questions, with pratically no chance of ever getting a 100% grade since professors always come up with an excuse not to give your a full grade :-)

That's something to take into account when hiring students/workers from overseas...

FredF
Saturday, January 31, 2004

I read an account of a MIT professor who didn't automatically hire 'straight-A' students, he preferred to see a couple of F's in their grades.

Why?  The idea was that these students had priorities, they passed what mattered to them, and ignored the rest.

That explains my low marks for accounting!  Bleh.

The 'straight-A' students, on the other hand, simply do what is necessary to pass the course.

AJS
Saturday, January 31, 2004

A Teacher:

<<<
There is a direct relationship between the grade you recieve for the class and the amount of work or effort you put into it.
>>>

I wish this was true for the Technion. I can testify that there were many courses I knew the material perfectly for (did all the assignments, solved past tests, and in general mastered the material), and then they were followed by tests that were either too long or had no connection with the material at hand, or whatever. Sometimes, I failed to receive the grade, because I could not recall a certain technique or whatever. (at this case I was actually OK with it, and accepted my grade).

But the Technion gives tests that can widely diverge from what students are expected to know or master.

<<<
This is the way school works.  You should have put more effort into studying, more effort into your assignments and generally more effort all around.
>>>

I've placed a lot of effort into studying, a lot of efforts into assignments. There were several courses for which my partners and I spent days on ends working on the assignments. In other courses, I just solved all the assignments, usually successfully.

<<<
I hate it when students complain about "tough tests."  There is no such thing.  If you know your stuff you'll do fine.  If not you won't.  If you want to challenge that a question is wrong or worded poorly, I will hear you out.  Other than that there are no excuses.
>>>

There is too, at least in the Technion. Some tests are too long. Some tests test on techniques with no similarity to such that the students have ever encountered. Some tests test on material that wasn't studied in class.

I'll give you an example: in EE we have a course titled "Introduction to Data Structures and Algorithms". It is a basic course, with no correction proofs or whatever, just to give the basic taste of basic data structures and algorithms. (The more advanced course is called "Design and Analysis of Algorithms"). My friend's test was littered with assignments to give correction proofs! They weren't shown in class, or assigned in assignments, and were never given in a past test. How can you explain that?

<<<
Whining about, "I went to a tough school... etc etc" doesn't cut it either.
>>>

I'm not whining about it. I'm stating it as a fact. I'm just saying that if I:

1. Went to an easier university.

And/or

2. Took Computer Science instead of Electrical Engineering.

I would have fared better. And my GPA is _not_ so bad. Maybe you haven't been to the Technion, but that's the way it is. People who are super-smart and study hard can get awful grades there. Seriously.

Shlomi Fish
Saturday, January 31, 2004

>People who are super-smart and study hard can get awful grades there. Seriously

But then, any knowledgeable HR person knows the Technion is a very good school, so would keep this in mind when reviewing your grades before hiring you.

FredF
Saturday, January 31, 2004

I've never found grades to be terribly useful, because most classes fall into one of two camps. You have "fact" classes, where parroting what the teacher tells you is all you need to do. And then you have "opinion" classes, where you need to AGREE with the teacher. Parroting what the teacher tells you will still work, usually, but the teacher doesn't always tell you.

What was the turning point of the Hundred Years War? Well, define "turning point". It started on the basis of trade, was joined in earnest with the defeat of the French fleet at Sluys, the English longbow made its famous stand at Crecy, the French king was captured at Poiters, and a treaty was signed in 1360. Most people would say that Crecy was the turning point, but the key problem here is that you need to agree with the teacher.

Agreeing with your superiors is certainly a valuable skill, but I don't know that I would consider it *useful* in most jobs. Good grades, to me, means that you're good at playing certain real-world games. These games are very useful in politics and large corporate structures, but realistically they don't serve much useful purpose anywhere else.

I think if we really think about it, we probably all want to hire people who got the same sort of grades we wanted. If we wanted to get straight A's, we'll hire people who got straight A's. If we wanted to get A's in science and math, we'll hire people who got A's in science and math. If we didn't care what we got, we don't care what our applicants got.

Caliban Tiresias Darklock
Saturday, January 31, 2004

>> "My friend's test was littered with assignments to give correction proofs! They weren't shown in class, or assigned in assignments, and were never given in a past test. How can you explain that?"

What about your test?  I don't care about your friend's test.

I find it hard to believe that an instructor would test you on material that he did not cover in class.  If it was in the syllabus and he still did not cover it then it is your responsibility to learn it.

If it is a fact that it is not in your textbook and it is not in the syllabus then it would behoove you to speak with this professor.

I personally don't like or trust third person accounts.  My friend said this or that... My friend's test had this or that...

A Teacher
Saturday, January 31, 2004

Mongo: many people (some of which I know) graduate as cum laude or summa cum laude in the Technion. However, they are not the majority. I heard that about a quarter are cum laude or summa cum laude students.

The reasons I'm not a cum laude student is because I'm:

1. I'm studying Electrical Engineering, which I am less fluent at than Computer Science.

2. I don't try to correct the low grades I received by going to the second chance exams, or taking the course again. (I know someone who never settles on grades below 80% and someone who always wants to get grades higher than 94%).

3. I don't invest a very large amount of my time in studying. I have other priorities as well.

4. I couldn't care less what my GPA is. Really, I know that it doesn't say squat about how good an engineer I am, which is what matters to me. Other people do more than I do.

Generally, I many time prefer to hack on open source software, maintain web-sites, read my mail and surf the web, knowing that these activities contribute more to my quality as an engineer, than studying.

Shlomi Fish
Saturday, January 31, 2004

An unqualified "I want to see high grades" generally means either the author isn't writing what they really mean, or else they haven't put a lot of though into what they're writing.

I find it hard to believe that Joel would prefer a 4.0 from Podunk U to a 3.0 from MIT.

However, let me also point out that when you're interviewing college students, all you pretty much have to go on are grades.

But that prompts the question - would you prefer a 4.0 with no outside activities to a 3.0 who's running their own website at a profit?

Is the real answer "if you don't have anything else to show us, you'd better have damn good grades"? ;-)

Philo

Philo
Saturday, January 31, 2004

It seems completely plausible that a Prof., Teacher, Instructor could give unfair tests.  I have been subjected to several of them.

As a group, they are like every other sector of society.  Some good, some bad, some malicious, vindictive, sadistic pricks.

I took a Certification Prepatory course years ago, when I thought that they had some value.  I scored a 65% on the final.  I knew the subject completely based on the lecture notes and the text.  I pointed out to the instructor that there was a dramatic disparity between what was presented in class and the test questions.

I believe his exact response was:  "Waaah!"

So I dropped him in his shoes and proceeded with a pyrrhic dance... just kidding.

I went to write the Cert. with very little confidence, as you can imagine.

96%  So friggin' easy, I couldn't believe it.

Moral, pricks are everywhere.


Saturday, January 31, 2004

A Teacher: my test for this particular course was very much OK, and I received a 100% in it. (And no, correction proofs are not in the syllabus of the course. ) But I can tell you about some of the tests which I personally experienced.

One of them was too damn long. It was a multiple-choice test in "Linear Circuits". I knew the material perfectly, but it simply took me a long time to do all the calculations. The test did not test understanding or knowledge - just mere calculations. At the end, I ended up guessing all the stuff. I received 57% and the grade was factored. I was told the second chance test was even worse and that there was a 30% factor there.

Another test was one in "Processing and Analysis of Images". In this case, we were given two questions (that together had over 55% percent of the grades) which we never encountered. Not even something remotely similar. I ended up failing the test, despite the fact it had a huge factor. This is beause I simply freaked out and did not know what to do. My friend (same one) was more cool-minded and simply wrote junk there to confuse the teachers and as a result got an above 80% grade. But the test was still very unfair.

Shlomi Fish
Saturday, January 31, 2004

Caliban Teresias Darklock: I disagree here. When studying Electrical Engineering, there are many courses that test for the understanding and implementation of the material at hand. So I need to encounter problems which I did not ecnounter before in the test, and make sure I can solve them using the tools I learned throughout the course.

What you describe may be more the case for Humanistic studies, but I be damned if I know, because I only seriously studied it in High School.

Shlomi Fish
Saturday, January 31, 2004

Shlomi:

I understand, and respect, that you have made conscious choices to prioritize on other things you feel are more valuable to you than high grades.

However, the point I was driving at is that while some tests/courses you have taken feel arbitrary and unfair to you, it's clear that they are having, at least to some extent, the desired outcome for the institution: they are "grading" the students based on some formalized criteria, just as inspectors grade raw materials for industrial products. That's why the scores in classes are called grades. All else being equal, people choosing a product will prefer higher graded products than lower graded products.

Of course, the basis for grading is highly debatable, and "all else being equal" perhaps more so, as you point out. Still, to deliberately choose to market yourself as a lower grade product to a potential employer on the basis of challenging the grading process strikes me as a high risk strategy.

One interpretion of a potential employer hearing an explanation of lower grades of the form "I had higher priorities than studying, etc." is "I will have higher priorities than working for you". 

I'm not saying you're wrong, but you should not blame a potentialemployer for looking for a higher grade product for his or her business.

As Philo has pointed out, the quality of the institution will likely bear on theinterpreation of the GPA, as well.

Still, from Joel's personal resume:

Yale University, New Haven, CT
BS summa cum laude in Computer Science, with honors in major, May 1991. GPA 3.91. Elected to Phi Beta Kappa as a Junior

Mongo
Saturday, January 31, 2004

Shlomi Fish said:

3. I don't invest a very large amount of my time in studying. I have other priorities as well.

4. I couldn't care less what my GPA is. Really, I know that it doesn't say squat about how good an engineer I am, which is what matters to me. Other people do more than I do.

===============

You don't care and you don't study? 

When you are going to school, school is your priority and you had better care about it and you had better study. 

What makes you think you are a good engineer?  The fact that you present yourself as lazy is a big warning sign to me.

A Teacher
Saturday, January 31, 2004

"knowledgeable HR person"?  Isn't that an oxymoron?

NoName
Saturday, January 31, 2004

> When studying Electrical Engineering, there are
> many courses that test for the understanding
> and implementation of the material at hand.

But do they test *well*? I don't know. Your grade in a course is not entirely under your control. It's an agreement between you and your instructor. You do a job, and the instructor evaluates it, and then an essentially arbitrary letter gets written in a book. If you're lucky, your instructor will use fair and equitable grading policies that really do indicate your ability. On the other hand, maybe he's throwing dice and consulting astrological charts and marking your grade down because someone scratched his car in the parking lot and it sort of looked like your friend Bill.

I prefer to look at things that *are* under your control. What classes you chose to take, for example. If you take a class in EE and fail, do you take it again? Do you take another EE class? Or do you run off and take "Japanese Interior Decorating"? That's really much more indicative of how I can expect you to behave in a business setting.

Caliban Tiresias Darklock
Saturday, January 31, 2004

So how come Joel doesn't just visit the campuses of the top five engineering schools and interview their BSCS cum laudes? Why even bother putting the ad on the website?

Surely a targeting mailing would save him a lot of time?

Philo

Philo
Saturday, January 31, 2004

"When you are going to school, school is your priority and you had better care about it and you had better study."

Spoken like somebody from a college educated family whose parents paid for their school.

I was the first person in my family to go to college and the only person from my high school class that went to college.  During that time, my mother developed cancer & emphysema. 

When you are poor and from a rural area (population 300), and your parents never went to college, you are playing in a totally different ballgame. 

Since most of my teachers had grown up in the same area, I was urged to go to Northwestern Podunk State University.  Didn't have a clue that I should try to get into the best college possible.  I was told that except for the Ivy league, pretty much all undergraduate colleges were the same.  I had heard of Harvard and Yale, of course, but I wouldn't have gone even if I had gotten in simply because it was so far away.  I didn't understand what a difference that could make in your life.  When you grow up in a place that only has farmers and teachers, you miss out on a lot (this was 1989 - about 6 years before I found the internet).  I also wouldn't have been able to afford plane tickets to go home to see my family.  Not only was my mother sick, but I had a girlfriend! 

So... I went, met kids from other little podunk towns, eventually graduated from Central State University. 

Note to any future kids I may have:

1.  Get study materials for the ACT/SAT.  I was able to jump from the top 10% to the top 3% on my GMAT simply by getting to know the makeup of the test. 

2.  Once in college, join as many organizations as you can.  Since I will be paying for your room & board, you won't have to worry about having a place to sleep or food to eat.  Use that time to establish a network.  This is how you will get a job when you graduate.  Join a fraternity/sorority.  Get internships instead of jobs.  Never do what I did and place your job ahead of your classes.  I had to pay my own way to survive, you don't. 

3.  Learn an actual skill.  Liberal arts classes are wonderful, but don't believe the brochures about being able to land jobs after graduation.  If you're going to major in English anyway, at least pick up a teacher certification. 

4.  If you're not going to professional school, good grades and good connections will help you land your first job.  Learn about the elite companies that conduct interviews on your campus and see what they are looking for.  Your first job will be a springboard for the rest of your career.  You can decide to leave McKinsey to work on main street, but rarely will you be able to do the opposite.  Pick a company that is known for training its employees, ala McKinsey.

5.  If you are going to professional school, go back to #1 and repeat.

The Ted
Saturday, January 31, 2004

A Teacher said:

<<<
You don't care and you don't study? 

When you are going to school, school is your priority and you had better care about it and you had better study. 

What makes you think you are a good engineer?  The fact that you present yourself as lazy is a big warning sign to me.
>>>>

School is a priority of mine not _the_ priority. My priority is to become the best Shlomi Fish I can become. As such investing 100% of my time in school will be a complete disaster as far as this goal is concerned. I know very well I am a good engineer, but I don't expect you to believe me. In any case, the following links all of which I maintain may prove my point:

http://t2.technion.ac.il/~shlomif/

http://fc-solve.berlios.de/

http://quad-pres.berlios.de/

http://better-scm.berlios.de/

http://perl-begin.berlios.de/

http://vipe.technion.ac.il/~shlomif/lecture/Perl/Newbies/

http://vipe.technion.ac.il/~shlomif/lm-solve/

and the list goes on.

The code or content is there and I'll let you be the judge.

As for lazy: I can testify that I'm not lazy. Even on my courses I invest a lot of effort (as much as it takes) in going over the material. I just don't invest an insane amount of effort, as I have other things to do. Please don't label people.

Shlomi Fish
Saturday, January 31, 2004

"The Ted":

I also grew up in a small town on a farm and went to a state university.  Every last penny paid for by myself, thank you very much.  My mom and dad both died when I was 12.  My dad died of colon cancer and my mom was hit by a drunk driver 5 weeks after my dad passed away.  Don't even think that I have had an easy life.

If you go to school and you want a job and you don't have connections, you had better give priority to the books even if you have to work.  If you go to school for fun on mommy and daddy's money then I suppose you don't know what it means to work for something.

A Teacher
Saturday, January 31, 2004

Mongo: I try to become the best engineer possible out of the time I invest to actually become a better engineer. One of the finest products on the market. If this means, I invest less time in studying - so be it. Some extra-corricular activities I did in the course of my studying were very time consuming, but taught me a lot about programming and made me a much better hacker.

Many workplaces I worked in were very happy with me when I worked there, even though I did many times diverged from work. My output is very good, and of good quality. It should satisfy any business who realizes that one's work is not one's life.

I believe the value of a worker is not entirely proportional to his grades' average. Like I said, there were several measures I could have taken to increase my grade, but I'd rather not taken.

I'd like to work in a workplace that accepts the fact that I am an 82% student, who has accomplished a lot outside of school, and preferred to do so. If they think that a summa cum laude student who has no experience in practical programming outside of school, is better than I am, then I would not want to work there in the first place. Other than that, I was able to find some job opportunities, and some of them did not even ask me for my grade.

As for Joel, that's impressive. I wonder if he would have got the same result if he studied in the Technion for Electrical Engineering. (or if I would have done better if I studied CS at Yale). Don't know and couldn't care less.

Shlomi Fish
Saturday, January 31, 2004

You labeled yourself Shlomi Fish.  Read what you wrote.

I did not saying invest 100% of your time in studying.  I said you better make it a priority.

A Teacher
Saturday, January 31, 2004

I hate to break it to you Shlomi Fish, but those links don't prove anything except maybe you know Perl and HTML and how to ftp files to a website. 

You're studying to be a what again?  Electrical Engineer?  If this is the case then you need to hit the books.

Maybe claiming you are good webmaster or that you are proficient in HTML and Perl would be a more accurate statement.


Saturday, January 31, 2004

"A teacher" wrote: "you had better give priority to the books even if you have to work"


You don't know sh*t what you're talking about.  I worked 40 hours a week at wal-mart while I went to school full-time.  However, the first year of school I was on scholarship. 

If you had a clue, and weren't just talking out of your a**, you would understand what a crock your statement is.
There's a big difference in what you're able to do with your studies when you're not working 40 hours per week. 

If I didn't work, I didn't eat and didn't have a place to live.  Where's the f*cking priority in that!????!

Lee
Saturday, January 31, 2004

I worked 40+ hrs per week when I was going to school also.  When I got off work I gave priority to school and school work.  I'm not talking out of my ass.  I'm speaking from experience.

A Teacher
Saturday, January 31, 2004

Dude,

Then you understand there's a big difference in the grades you will be able to make.  RIGHT?!

Lee
Saturday, January 31, 2004

It depends on the person.  I personally never made work an excuse for my grades.  I took the workload I could handle and I did well.  I don't believe there is a correlation between working and how well you do in school. 

Each person knows there own limits and they know if they have exceeded that threshold.  Each individual knows their level of determination.  I was very determined to succeed and to do well in school.  That was just me.  Making my schoolwork a priority was one thing that I think helped me out.

A Teacher
Saturday, January 31, 2004

"A Teacher" is right.  You don't even have to be especially smart to receive good grades, it's 90% effort.

As for the whiners complaining about unfair tests, what would you consider a fair test?  I've noticed a lot of people consider anything short of being given the answers prior to the test "unfair".

It's your responsibility to educate yourself, the teacher is only a guide.  If you find something on a test the teacher hasn't covered then maybe you didn't apply yourself to learning the subject as much as you should have.  Besides, it rewards those students that DO make the effort.

stfu whiners
Saturday, January 31, 2004

"I don't believe there is a correlation between working and how well you do in school.  "


"A teacher" is officially labeled a 16 year old troll. 

Lee
Saturday, January 31, 2004

"Each person knows there own limits and they know if they have exceeded that threshold"

If you have someone that knows this at the age of 19, they are very mature, and definitely worth hiring if you can.

Philo

Philo
Saturday, January 31, 2004

Shlomi, just a bit of constructive criticism here... and this *is* supposed to be constructive...

You come across as childish, inexperienced, and belligerent. Nothing you have written interests me. What little sticks out in my mind is not positive. You sniff at the college for not having a standards-compliant web page, as if anyone really cares. You sneer at CVS for not having a few minor features, as if anyone really cares. You solve a few basic puzzles, and build a presentation generator that you use to create a bad Perl tutorial. Then you come in here and say you know you're a good engineer.

Unfortunately, you're not. You're just a competent Perl programmer. But engineers solve problems; if you expect to impress me with your work, do something that's relevant to someone other than yourself. Why in the world would I want to read your ramblings about SCHEME or run some program you wrote to solve mazes? I know why I would want to read *my* ramblings about SCHEME or run some program *I* wrote to solve mazes -- because I'm arrogant and self-involved. I love writing stupid little things for no good purpose, just because I can. Every engineer does.

But a *good* engineer knows that nobody else gives a flying leap about it. Maybe you might find some other engineer and say "hey, check this out -- it's a distributed dynamic top-down splay tree of self-sorting linked lists!" and the two of us... um, I mean, the two of *you* can sit around and giggle like schoolgirls and discuss its scalability. But engineers are WEIRD. Everybody else will look at you like a deer in headlights and have no freaking idea what you're saying.

Caliban Tiresias Darklock
Saturday, January 31, 2004

Like I said, I worked 40 hours per week and could handle my credit load.  Maybe you took too many credits or something else threw you off course.  I don't know, I am not you.  Granted I did "grow up fast" but this was out of necessity due to the death of my parents.  Maybe I was a little more mature than most of the people my age at school but I also shouldered the responsibility of running a dairy farm with my brothers throughout my teen years and even into my twenties.

I've got nothing against you Lee, but you do need to express your thoughts in a more coherent fashion.  Calling people names and throwing insults at them only indicates anger or frustration. 

If you can provide an argument against my statement instead of repsonding by calling me a "16 year old troll", I will gladly hear you out.

A Teacher
Saturday, January 31, 2004

Shlomi,

I graduated Summa Cum Laude with less than 90%. It was a tough school. I was worried about even graduating and turns out I graduated with top honors.

Anyway, intelligent employers like Joel understand that top grades differ by school.

A bit of advise. Where you said, "due to the unfairness of the test" - drop that routine AND the attitude behind it. That's life. Unfair. Unfair to you AND to the other students no doubt. Or what about the other students who cheated? Surely it is unfair that they got better grades than you right? Nope, it's life. Suck it up. Griping about stuff flags you as a whiner who is full of excuses.

There are people with excuses. And there are people who get things done. The two groups do NOT have a common subset.

Dennis Atkins
Saturday, January 31, 2004

"The US and Japan love multiple-choice questions"

I have no information on Japan but if you think that serious US engineering schools are full of tests with multiple choice questions, you are sadly mistaken.

Dennis Atkins
Saturday, January 31, 2004

"I don't invest a very large amount of my time in studying."

And thus it is likely you would not spend a lot of time studying after you graduated either. Keeping up with the trade is a prerequisite for being a good engineer.

"I couldn't care less what my GPA is."

And thus it is likely you couldn't care less what your bug count is or whether customers are able to use your software.

"Really, I know that it doesn't say squat about how good an engineer I am"

That is not true. Those things do say a great deal about how good a engineer you are - you are not very good.

"I many time prefer to hack... maintain web-sites, read my mail and surf the web"

Right.

The only way to become a good engineer is to do good engineering. Anyone who says otherwise is not a good engineer.

Dennis Atkins
Saturday, January 31, 2004

Caliban Tiresias Darklock:

<<<
You sniff at the college for not having a standards-compliant web page, as if anyone really cares.
>>>

This web-site (of my department, not the university) is not only non-standards compliant it also dysfunctional for Mozilla and Konqueror and anything else besides MSIE and Netscape 4.7 and Netscape 7.x. My sites, on the other hand are fully functional in all browsers (including lynx). What I did do on my site is create a script to extract the relevant HTML out of it and present it in a good, portable way. It's not the main thing of the site.

<<<
You solve a few basic puzzles
>>>

Do you refer to LM-Solve? Well, that is rather a hack. Whatever, forget it. But how about Freecell Solver ( http://fc-solve.berlios.de/ )? I challenge you to learn the rules of Freecell and to write a program to solve it within one week. (without looking at what I or anyone else did) Then I want you to compare which program (mine or yours) has more features, is faster, is better documented, has an equally comprehensive web-site, and so forth.

(and, BTW, Freecell Solver is written in ANSI C. I know many other languages besides Perl and HTML:

http://t2.technion.ac.il/~shlomif/SFresume.html

)

<<<
and build a presentation generator that you use to create a bad Perl tutorial.
>>>

I don't think my Perl tutorial is bad. It's your flamatory opinion. I know of two people who learned Perl out of it, and was told it was used by Intel Israel to teach engineers Perl there.

<<<
But engineers solve problems; if you expect to impress me with your work, do something that's relevant to someone other than yourself.
>>>

Freecell Solver is such a case. Many people actively used it and contacted me about it. It was integrated into kpat, the KDE solitaire suite. It is also an essential component of Freecell 3D, which is a shareware Freecell program for Windows.

And my Perl tutorial proved of use to other people. And my other lectures may also be of use. Moreover, my gradient-fu patch (google for it) for the GIMP enables scripting the gradients, and will be integrated until GIMP 2.2, and I also contributed patches to Perl, GIMP and Subversion.

You may do well to take a better look at what I have in these resources, and take a thorough look, because there's a lot of material there. And you may also wish to think again before calling what you wrote "constructive".

Shlomi Fish
Saturday, January 31, 2004

Dennis Atkins:

<<<
"I don't invest a very large amount of my time in studying."

And thus it is likely you would not spend a lot of time studying after you graduated either. Keeping up with the trade is a prerequisite for being a good engineer.
>>>

When I said studying, I meant studying for my university requirements. Of course I learn new things all the time. In the duration of my studies alone, I tought myself (with the help of my peers and web resources) LaTeX, XML, DocBook/XML, CVS, Subversion, Python (which I don't like), a much greater sub-set of Perl (which I like a lot), lots of interesting C techniques, a greater subset of UNIX, Haskell, O'Caml, Scheme, Web Meta Language, and the list goes on. Recently, I started borrowing books out of the Israeli Perl Mongers Library and am reading them for fun and for learning. So, I "study" quite a bit, thank you.

<<<
"I couldn't care less what my GPA is."

And thus it is likely you couldn't care less what your bug count is or whether customers are able to use your software.
>>>

That's not true. If we take my programs as examples (Freecell Solver, Quad Pres, LM-Solve), then I do care about such things. In Freecell Solver, I fixed a lot of bugs and released new version as I found them. I also kindly answered the questions of people who contacted me about it, and even engineered it to be more user friendly.

<<<
"Really, I know that it doesn't say squat about how good an engineer I am"

That is not true. Those things do say a great deal about how good a engineer you are - you are not very good.
>>>

Why?

Some very good programmers out there graduated with low grade averages. Some straight-A students write horrible code. So how can this say a great deal about how good an engineer I am?

<<<
"I many time prefer to hack... maintain web-sites, read my mail and surf the web"

Right.

The only way to become a good engineer is to do good engineering. Anyone who says otherwise is not a good engineer.
>>>

Please refer to the definition of "hack" next time. It means to program, make a useful composition, or to tweak existing programs. I do that a lot and so can be considered an engineer. Whether good or not that is something only others can judge, but I received my share of compliments.

Shlomi Fish
Saturday, January 31, 2004

Shlomi,

I've looked through your FreeCell Solver code. It's Ok but it's not very good. Your code is well formatted but that's all I can really say about it. Documentation is poor, variable names are cryptic, your code doesn't show a very deep awareness of C, and you use extremely poor coding practices like massive uses of goto, an assembly programming spaghetti style, and functions made up as defines.

It's Ok for a sophomore undergraduate but it's not what I would be expecting from someone calling themselves a top engineer. You have a long way to go before you can call yourself that.

Dennis Atkins
Saturday, January 31, 2004

Re "unfair" tests. I do not claim all my tests were unfair. Very much the contrary. And I do not whine about them, either. However, it is a fact that there were tests which I prepared for them throughout the semester and beforehand as much as I could and yet did not do well in, and felt they were unfair. And other students agreed with me. If many students who studied hard for the test and are very intelligent and knowledgable consider it unfair, don't you think it is safe to say it is?

Shlomi Fish
Saturday, January 31, 2004

I understand that. I really do. I had many unfair tests as well. Well all did.  But don't you see that the tests were just as unfair to the other students as well? So, compared across the entire grading population, and eliminating stuff like cheaters (who actually always end up doing poorly despite their best offorts so nevermind them), the grading was fair. Are you following this? Surely you are not saying that the professor specifically targetted you in creating an unfair test?

Dennis Atkins
Saturday, January 31, 2004

Dennis Atkins:

<<<
Shlomi,

I've looked through your FreeCell Solver code. It's Ok but it's not very good. Your code is well formatted but that's all I can really say about it. Documentation is poor,
>>>

There's an architecture document available for it here:

http://fc-solve.berlios.de/arch_doc/

but you are right that the code is not very legible.

<<<
variable names are cryptic,
>>>

Maybe, I can understand them, though, and I have a good naming scheme most of the time.

<<<
your code doesn't show a very deep awareness of C,
>>>

Please contact me by E-mail if you want to explain to me why this is the case. I think my coding style is as deeply aware of C as humanly possible. Sometimes even overly aware.

<<<
and you use extremely poor coding practices like massive uses of goto,
>>>

For the last time: gotos are not considered harmful! As Don Knuth noted in his article "Strucutred Programming Using Goto Statements" - they are fully legitimate in many programs. I used them where I found appropriate but don't think I over did them. My code has many loops and conditionals where appropriate.

They are many times a necessity with C's extremely poor looping and branching constructs.

<<<
an assembly programming spaghetti style,
>>>

My code is not spaghetti.

<<<
and functions made up as defines.
>>>

Welcome to the world of Freecell solvers where every microsecond counts! My code is heavily optimized for speed, and I guess it shows. Do you think I would use defines instead of functions if I did not have a very good reason to? ;-) This was a micro-optimization I did at a time to reduce the running time.

<<<
It's Ok for a sophomore undergraduate but it's not what I would be expecting from someone calling themselves a top engineer. You have a long way to go before you can call yourself that.
>>>

What I think may mislead you is the fact that Freecell Solver is heavily optimized for speed and memory consumption, even where modularity and legibility are sacrificed. I suggest you take a second look after perhaps reading the architecture document.

Version 2.4.x was less heavily optimized than the subsequent versions, so you may be less flavourgusted.

Shlomi Fish
Saturday, January 31, 2004

Dennis: yes I realize the tests were unfair to almost everybody, and everybody suffered from it. The bad thing about them, though, is that when you come to the test you don't know what to expect. Even if you know the material perfectly, it is possible that you may not succeed. So, in a way it can reduce your morale, which is especially harmful for someone like me who tend to get into Anxieties and Euphorias.

I heard of a university in the States (UNC of Chappel Hill, IIRC), in which students study only about four subjects each semester with a lot of challenging homework. Then, the tests are easy in comparison to the homework. That way, people who prepared the homework can score high on the test, while people who slacked off will fail anyway.

Sadly enough, this is not the case for the Technion. (at least not in Electrical Engineering). In order to finish the degree in 4 years, you have to study 6 or 7 courses every semester, some of them have a lot of work involved (and others don't prepare you for the test enough) and then the tests can bite you at unexpected places. The level of studies is high, but the testing and heavy factoring system is very problematic.

Shlomi Fish
Saturday, January 31, 2004

It's not my job to teach you how to write legible maintainable code. That's what you paid your professors for.

As one small example,

cl_chop.c:freecell_solver_args_man_chop()

Spaghetti. Pure and simple. Total spaghetti. And uncommented to boot. Sigh.

As far as optimization goes, you would have gotten much better optimization by skipping the defines and using other techniques like look up tables, assuming that profiling had identified teh appropriate hot spots.

As far as other parts of the code, why always an if-then-else tree on constants? Why not at least switch which is so much more legible? The compiled code will be the same. Or if you want to optimize, use a lookup table or a dispatch table. The code you have there could be made ten times faster with just a few changes if the purpose was not thoroughly obfuscated by the lack of comments and the spaghetti style.

Now don't think I am getting on your case to be mean. I am not. Instead I am offering you a reality check. Maybe some day you will be a top engineer but not today. If your goal is to find employment, I think you should follow my advise about whining. But you're not getting it. You have a bit of an attitude problem. You can get by fine for most things probably with your ok coding skills, but it's the attitude problem where you need to focus your attention.

When you say you spent your time on things you found more important than studying, it would have been better for you if those hobbies were going out to bars and meeting people, or joining a motorcycling club, or becoming a social activist, rather than staying home reading email and surfing the web. THen you would have rounded out your skill set a bit on the ability to understand how you come across to others. The stuff about how its not your fault you got bad grades because the tests were unfair is consistent with the rest of your attitude. You HAVE to lose this attitude if you want to do well in life.

Dennis Atkins
Saturday, January 31, 2004

Shlomi, you seem to have missed the point.

Good engineers solve interesting problems.

None of the problems you have solved are interesting.

I find it terribly sad that the best thing you've ever done is write a program to solve a solitaire game.

I find it terribly amusing that you say "I'll let you be the judge", and then argue with the verdict.

Caliban Tiresias Darklock
Saturday, January 31, 2004

Also just so it's clear, I don't think your C code is bad. It's just not particularly good. It's about average for what I expect to see from someone with a couple years coding experience. I would expect that your code will get better as time goes by.

Dennis Atkins
Saturday, January 31, 2004

Shlomi, give it up.  I knew you were in for a roasting when you posted this.  I believe some people can only make themselves feel good by denigrating other people.  Don't waste your time here, these people are not worth it.

those who know me have no need of my name
Saturday, January 31, 2004

Dennis Atkins:

<<<
It's not my job to teach you how to write legible maintainable code. That's what you paid your professors for.
>>>

The code is maintainable, it's not very legible. And besides, no where was I taught how to write legible, maintainable code. It's something I learned on my own. I'm not sure if you can really teach that.

<<<
As one small example,

cl_chop.c:freecell_solver_args_man_chop()

Spaghetti. Pure and simple. Total spaghetti. And uncommented to boot. Sigh.
>>>

Heh heh. I don't know if it's spaghetti or not, but it's pretty ugly indeed. This is a parser of a subset of the Bourne shell syntax. I wrote it very recently, and it came out ugly, and it just works so I didn't find a need to refactor it, as I don't see it getting changed soon.

<<<
As far as optimization goes, you would have gotten much better optimization by skipping the defines and using other techniques like look up tables, assuming that profiling had identified teh appropriate hot spots.
>>>

look up tables would not have been appropriate here, because I have to execute code for its side-effects. (I did use a couple of lookup tables for the presets and stuff). Defines on the other hand, do save time because they elminate the function call overhead.

<<<
As far as other parts of the code, why always an if-then-else tree on constants? Why not at least switch which is so much more legible?
>>

I disagree here. If-then-else is my style, and I only used it for small ifs, or where I could not use switch (like trying to see if a string compares to one of a list of other strings).

<<<
Or if you want to optimize, use a lookup table or a dispatch table. The code you have there could be made ten times faster with just a few changes if the purpose was not thoroughly obfuscated by the lack of comments and the spaghetti style.
>>>

How do you know? As far as I know, the code is as optimized as it can. And lookup tables or dispatch tables would not have made it more optimized in the critical places.

I think you overestimate your code evaluation skills. Maybe it would be good for evaluating homework assignmets which are supposed to be clean, modular, well-commented and easy to understand. But it is not applicable for a program like Freecell Solver which is optimized to death.

Just for your information some of the techniques you can find there include:

1. States - either debug (large memory consumption, easy to understand class members), compact (one byte per card), or indirect (each stack has its own pointers and stacks are stored separately) - option at compile time.

2. Autoconfisiciation and RPM building.

3. Copy-on-write for indirect stacks when duplicating a state.

4. A parser for a subset of the Bourne shell.

5. Accessors to access the values and references to struct elements, so they'll be used faster.

6. Code is fully instantizable - no global variables (except constants) and no static variables.

7. A 1-to-many solver instance to scans architecture, allowig several scans to operate on the same states collection.

8. Very fast - can solve the Microsoft 32,000 boards in about 70 minutes on a Pentium III 600 MHz.

9. A meta-scan construction script that uses the statistics collected from the individual scans and constructs a close-to-optimal meta-scan using a greedy algorithm.

10. Ability to use configuration presets and read configuration options out of file.

11. An implementation of common meta-moves - special moves that are made of several smaller moves, that aim to accomplish a certain task. Most other solvers just move one card at a time (which Freecell Solver also supports).

12. Ability to solve games of many other variants of Solitaire similar to Freecell as well as games of Simple Simon which is very different. (many parameters can be given to the solver).

13. A highly optimized hash implementation with rehashing, secondary hash values, and other techniques.

14. A well-defined API that is used by the programs that ship with the solver and by external developers.

15. Globals occupy only the freecell_solver_ namespace.

17. Compact allocation (using memory pools and allocators) of run-time resources, as malloc can be very memory hungry. (and every saved byte count).

18. Order of the stacks and Freecells is kept track of throughout play, but yet the program avoids permutations of the same board only with different orders of the stacks or freecells.

19. Ability to recycle instances to preserve their existing configration and only accept a new board.

And the list goes on. It's all there in the code for you to look at. Please note that code that is hard to understand is not necessarily bad. The Freecell Solver code is funky for a very good reason.

Shlomi Fish
Sunday, February 01, 2004

"The only way to become a good engineer is to do good engineering. Anyone who says otherwise is not a good engineer."

What a bunch of macho chest beating bullshit.

That statement totally fails to recognise that different people have different modes of learning. Some people learn best by doing. Some learn best by reading. Some learn best by listening. Some learn best by teaching. Some learn best by contemplation.

Most people are best able to learn by employing a range of strategies, not just by doing. The old "practice, practice, practice" mantra is hogwash. Practice only does you any good if you're practicing the right things - otherwise it can actually make you worse by making any bad habits ingrained.

My theory is that the idea that the only way to get good at something was by doing it repeatedly was invented by untalented individuals, jealous of those who seamingly didn't "work as hard" at their craft, yet consistently outshone them. Therefore, their only way of salvaging pride was to say that they can't be any good, because they don't have the experience behind them to be any good.

Sum Dum Gai
Sunday, February 01, 2004

Sum Dum Gai: you are right in a way in your analysis of how to become better. I think there are three levels of learning:

1. (Passive) learning - this is by reading, listening to presentations, etc.

2. Experimenting and Doing.

3. Teaching - this is the highest level which brings in the greatest understanding of the material at hand, as you need to present it and integrate it in a way that other people will understand.

So, I try to do as much as possible of #2 and #3.

Shlomi Fish
Sunday, February 01, 2004

I'd like to write a bit about my own experience.

I live in a non-english speaking country. The universities here are not as good as those in the US.

I have a BS degree in CS. I had very bad grades at university.

Why?

Because I didn't go to the courses - I stayed home, programming all the time.

I used to buy lots of programming books on algorithms, data structures, C, C++, Windows API, and other subjects.

Then, I read those and experimented about 10 hours a day, every day.

My parents didn't have any idea I was skipping a lot of classes. I fought with them a lot - every time they discovered I was at home, instead of at the university.

I attended from time to time, went to the exams, etc.

Many times my knowledge was way beyond what they were teaching, but in order to get high grades, I was required to attend the labs and the courses.. so I was getting bad grades.

After school, I tried to get employed, and guess what...

One of the companies I applied at organized a test for more than 30 programmers selected by their resumes. The test was very hard, and contained a lot of material.

A week later, they called me. I was the #1 applicant - I have gotten the highest score among all the selected applicants, and one of the highest scores ever in their test.

So, they hired me immediately.

After working for them for a few years, I worked at another company, and after that I created my own company.

Now I do the hiring. And I don't give a sh#t about grades.

Do you know what is required for somebody to be a good engineer?

In order to become a great engineer, a person has to study very hard and work a lot (and to have a high IQ).

But - university is not the only way somebody can study!

If I have to choose between somebody who went to the uni, learned algorithms (for example) and got a good grade in that class, and somebody who bought a book on algorithms and studied it at home, and then got a bad grade in that class because he didn't attend labs, I would choose the latter person.

Why?

Because he or she had initiative - he or she didn't behave like a sheep.

I like people with initiative, people who don't blindly follow others.

Flash
Sunday, February 01, 2004

That was pathetic Flash.  Not even mildly amusing. 

The endless proclamation of self-made geniuses in the programming field.

Hey MA!! Look at me!  I'm a frickin genius, I just go buy books and sit in my bedroom and learn all day!  I'm so proud of myself.  Wowowowow!!!!  One word.  Dumbass.


Sunday, February 01, 2004

If I have to choose between somebody who went to their job, learned algorithms (for example) and got good evaluations in that job, and somebody who bought a book on algorithms and studied it at home, and then got fired from his job because he didn't show up for work, I would choose the latter person.

Why?

Because he or she had initiative - he or she didn't behave like a sheep.

Yes friends, I too agree that you don't have to do good engineering to be a good engineer. Most of the best engineers in the world either do no engineering or only do poor engineering. Ability to do good engineering has nothing to do with being a good engineer.

Or so it would be if I am to believe you guys.

Ha ha ha!
Please my friends, buy yourself a clue at the next station.

Dennis Atkins
Sunday, February 01, 2004

You know why I don't care about grades?

Geography.

I am STUNNINGLY bad at geography. Take Massachusetts, for example. I have no clue where it is. It's somewhere in the northeastern US. That's about it. It's not so far north as Maine, and not so far south as Maryland, and not so far west as Pennsylvania. I have trouble straightening out which roads lead where. When I need to go north on a Washington state highway, I actually have to *think* for a minute about whether Everett or Olympia is farther north. (For our non-northwest people, trust me, this is an incredible example of locational stupidity.) Don't even try international geography, it's hopeless. I'm not even sure where Belgium *might* be.

But I got good grades in my geography classes, because I'm good at taking tests. So if you look at my grades, you would think I know geography. If you gave me a test, you would think I know geography. But if you asked me to solve some real-world geographical problem, I would fail so miserably that you would be *convinced* I had to have cheated on the tests.

Grades don't matter. Tests don't matter. What matters is whether you can get the job done. And in the case of geography, grades and tests say I can get the job done when I really can't. So I don't trust any grades on any tests in any subject, full-stop.

Caliban Tiresias Darklock
Sunday, February 01, 2004

i'm still in school and my gpa plain and simple sucks (2.5).  I'm also the project leader for an ongoing internship team project type thing for a non profit, and just about everyone in my team has a better gpa.  Here is the crackdown of how i would rate them.  One girl has a 3.5/4, but she needs someone to hold her hand for every little thing she does (literally one of the worst i've had the pleasure to work with).  Another takes 2 weeks to get in something that should take 2 hours, again a 3.0/4.  Another, same gpa as mine, and actually is pretty good....he has good initiative and can make decisions without having to consult on every little detail.  I consider him an ok coder..not bad, not reall good either though.  Then there are 2 more guys who have around 3.0/4, and one is awesome, the other is not bad.  My opinion is that grades really don't mean much.  I'd take my roommate with a class x felony and a 2.5 gpa over half the people i know who have good gpas on a project.

On a side note..what grading scales did you guys all have?  My school is on a 8 pt, which means a 75 is a D (might as well be an F). 

grover cleveland the 7th
Sunday, February 01, 2004

This discussion is not about whether good grades correlate to being a "good coder."  Rather, it's about how to achieve good grades.  Good grades are achieved through prioritizing, studying and applying one self.

As stated earlier, A = Effort, F = No Effort.

As for the argument of better grades = worse programmer;  there is no correlation there and it mostly depends on personality and other character traits. 

I have seen A students who took charge and did things and I have seen A students who were lazy and did nothing.  I have seen C students (who could be A students) do the same.  It depends on the person. 

"A" students are normally more withdrawn and are not very outspoken, whereas students with lower grades tend to be outspoken and "loud" as if they have nothing to lose.  There are exceptions of course.  This is why you can't make such a generalization about people and their grades.


Sunday, February 01, 2004

Tell me again, Shlomi Fish:

Who the hell are you, and why should we care about you?

one meeeellion dollars!
Sunday, February 01, 2004

A Teacher - if your parents died, you would have received a pretty good inheritance. Their house if nothing else. No money worries there my friend. Your claims of needing to work 40 hours per week are not consistent with this.


Sunday, February 01, 2004

I also came from a poor rural background. While other students discussed which new car they were buying, I was struggling to buy groceries and eat.

It wasn't until much later I understood the different lives some people lead, and how much impact that has on grades.

Later still, years after university, I realised I was much more better than most of the guys and girls in my course, but my marks at the time did not show that. I eventually returned to uni and did a PhD.


Sunday, February 01, 2004

Back to the subject of the topic. Sometimes (well, often) you have to choose between the top grades and track record of success. This is very parallel to the careerist/enterpreneur dilemma. Looking at my former mates at uni, I see exactly a proof of this point.  People who run their own businesses didn't care about grades much, but they had jobs (or some public projects), getting real things done early. Those who did care and had high grades are doing well in some large companies now.

Egor Shipovalov
Sunday, February 01, 2004

>> "A Teacher - if your parents died, you would have received a pretty good inheritance. Their house if nothing else. No money worries there my friend. Your claims of needing to work 40 hours per week are not consistent with this."

That is a naive statement you have made.

As previously stated, we inherit the family farm.  Since my brothers and I chose to take over the farm instead of selling it, we really did not gain or lose anything financially.  You probably know that a farm doesn't run itself and is not expense free.  There is massive overhead and tons of work in running a farm.  What little cash we did receive from my parents life insurance policies helped us fix up the tractors and buy a new bulk-milk tank for the barn.

So yes, I did need to work 40 hrs per week at the very least, even while attending univeristy.

I am not rich.  Never was and probably never will be.  I never inherited large sums of money.  I did inherit a farm, which is obviously something of value, but we chose not to realize it's cash value.  Instead we chose to use it to generate cash flow so that we could support ourselves.


Sunday, February 01, 2004

"If I have to choose between somebody who went to their job, learned algorithms (for example) and got good evaluations in that job, and somebody who bought a book on algorithms and studied it at home, and then got fired from his job because he didn't show up for work, I would choose the latter person."

I'm really getting tired of people using this technique of rephrasing the orginal example with an obvious bias; you might as well not even bother stating your opinion when you use it to form your hypothetical.

Now, if I had to choose to between an EE student who doesn't acknowledge his own faults, or someone arrogant enough to say something like "Please my friends, buy yourself a clue at the next station", my choice would be simple...

No hire

Jason Kozak
Sunday, February 01, 2004

Speaking of admitting faults, I misread Dennis's statement. It's still a pet peave of mine, but I just can't bug Dennis about it.

The rest of my post still stands though...

Jason Kozak
Sunday, February 01, 2004

"Yes friends, I too agree that you don't have to do good engineering to be a good engineer. Most of the best engineers in the world either do no engineering or only do poor engineering. Ability to do good engineering has nothing to do with being a good engineer."

That's a total strawman argument, and you know it. Nobody has said that ability has nothing to do with results!

You contradict yourself anyway. You said the only way to be a good engineer is through doing good engineering. Yet you also support the idea that getting A grades is important.

How can that be? The skills to do well in school have nothing to do with doing good engineering. You can get good grades at school simply through being good at rote memorisation. That isn't going to cut it in the real world, when you're faced with problems you can't memorise the answers to beforehand.

I know some brilliant people who do very poorly on tests. The smartest guy I know does poorly on tests, and even worse in job interviews, because he gets extreamely nervous in such situations. He has to take medication beforehand to prevent panic attacks. He's a university dropout, yet he's ten times smarter than most people who finish with straight As.

Meanwhile, I happen to have a gift for test taking, and I managed to get through uni with what, in American terms, is an A grade average, by not turning up to most classes and just reading the material the night before. This is why I think that grades are a useless measure of depth of knowledge, work ethic, or anything else. Some people just happen to be good at taking tests, and others are crap at them. I don't believe this strongly correlates to job performance. It's an indicator, but not a really good one.

Luckily, I'm one of the people who displays strong correlation - I'm generally considered by my peers to be a good programmer. However, I know plenty of others who have finished university with good grades and are complete ratshit programmers. Some of them have been practicing for decades and show no signs of ever becomming good engineers. Meanwhile, I was the best programmer on the team in the very first job I took (despite aforementioned bludging through uni).

There's more than one way to skin a cat, as the saying goes. Don't assume that everyone displays the same characteristics as you do. Just because the only way you improve your skills is by practice, doesn't mean it's the same for everyone. Likewise, just because you found you worked hard to get the grades you did in university, doesn't mean that everyone who worked hard got As, and everyone who didn't work hard got Fs.

Sum Dum Gai
Sunday, February 01, 2004

It's a good thing we all understand sarcasm here.

Caliban Tiresias Darklock
Sunday, February 01, 2004

> You said the only way to be a good engineer is through doing good engineering.

Yes.

> Yet you also support the idea that getting A grades is important.

Did I say that?

>The skills to do well in school have nothing to do with doing good engineering.

Your assertion that there is zero correlation is false.

> You can get good grades at school simply through being good at rote memorisation.

May I assume by schol you mean an engineering degree at an accredited university? If so and it is your experience that such a degree may be obtained with honors through rote memorization, please state the schools where this is so. I am not contesting that there may be such schools, I just want to know which ones they are for my own personal records. Thank you.

> That isn't going to cut it in the real world, when you're faced with problems you can't memorise the answers to beforehand.

I completely agree that any one whose engineering training consisted soley of rote memorization did not recieve training in engineering. Again, please state the schools where this form of training takes place. I am sincerely interested.

Thank you.

Dennis Atkins
Sunday, February 01, 2004

good grades are a good indicator that someone will be a good EMPLOYEE. there is always the straw man of the person with bad grades who successfully delivered 3 products, yadda yadda yadda. While it is true that these people exist, it isn't the case that they are applying for many jobs - they are already doing their own thing. I'm sure any number of software companies would love it if justin frankel or john carmack responded to their job posting, but it doesn't happen too often. if you are a hotshot dropout developer, you are too busy with your own projects to be applying for a summer internship at joelonsoftware.com.

the problem with good grades these days is that grade inflation is so rampant that it is hard to determine what is or is not a good grade. At many universities people get As almost by default. At harvard (where I went to grad school (not in CS)), it seems like an "A" is the average grade. If you made the mistake of choosing say, University of Chicago, it is almost impossible to get an A.  Whether this means the students at harvard are better, I don't know. I certainly think the students at harvard are smarter in the social climbing sense, because why kill yourself trying to get a B at U of C, when you can easily get As at harvard, and more people have heard of Harvard, anyway.


Sunday, February 01, 2004

That depends heavily on what your employees need. If you are hiring grunts, yes, good grades are a nice indicator of their ability to sit down and shut up and do what you tell them. If you're hiring field service personnel... well, the useful skills there simply don't come out of a classroom.

Caliban Tiresias Darklock
Sunday, February 01, 2004

People with very poor IQs are usually not able to get high grades.

People with medium and high IQs are able to get high grades if they work hard.

But, among this group, there may be some people who simply don't like university. These people may study on their own, and not care about grades.

These are the people who show initiative and don't blindly follow others, like sheeps in the flock.

Usually they become entrepreneurs.

Flash
Monday, February 02, 2004

If you liked university, or if at some point you decided that you want to get good grades, well, don't assume that everybody is like you.

There are people who don't like university, and who don't want to come in and pay attention.

Yet, from this group of people, there are people who consider learning to be priority #1 - they just do it outside the system.

Somebody who has a lot of passion for their field, and studies a lot at home may be a lot better than somebody who doesn't have passion but just wants to "get good grades" because the people around him told him that it's good to have good grades.

Flash
Monday, February 02, 2004

I wanted to second the comment that some people are just good at doing exams.

My husband and I attended the same university and took the same classes.  Some of the math courses were completely beyond me.  He spent hours explaining the problems and teaching me the material.

I ended up with A's.  He ended up with C's and D's.  I know for a fact that he had a better handle on the material than I did.  Furthermore, he uses this stuff all the time "in real life" without needing any reference.  When a related problem comes up for me, on the other hand, I have to spend hours relearning the theory. 

My circle of friends tend towards the above-average intellects.  Many graduated with A+ averages from good schools.  We all took the same math courses.  My husband is the only one that is capable of applying the concepts learned in the math courses to the real world. Or, as we usually put it: he's the only real engineer among us, even though the rest of us have the "qualifications".

Incidentally, his father is a university professor, and the stories the professor tells about students looking to improve their grades would make your hair curl. It's a fact of life that many average students play the system to get top grades by expending effort into challenging every grade and getting to know the prof.

And that's taking aside the current epidemic of cheating.

Also a teacher
Monday, February 02, 2004

Well,  to try and pull the discussion back on track.

You're all beating each other up over the correlation between good grades and competent engineers.  Think about it for a second:

* It's obviously not 1,  everyone knows at least one incompetent person with fantastic grades.

* It's obviously not 0,  everyone knows at least one brilliant engineer with fantastic grades.


The fact of the matter is that some people are good at exams, and some aren't.  If you're looking solely at grades when choosing your staff you're missing out on some great employees.

Similarly if you're ignoring grades then you'll be interviewing for a long, long, long time.

Koz
Tuesday, February 03, 2004

*  Recent Topics

*  Fog Creek Home