Search This Blog

Friday, August 22, 2014

Jetsoneers are growing in numbers

     I always laughed when I watched "The Jetsons" and saw George Jetson go off to work where he did nothing but push buttons all day.  His actions were almost mechanical in nature in that they seemed to require no real thinking on his part, yet he considered it to be "work".   He would just sit at is desk pushing the same damn button over and over again until it was time to go home and then complain how worn out his button pushing finger was at the end of the day.


   Now as an engineer I think we are starting to see the beginning stages of George Jetson coming into real life.   I am amazed how little engineers these days come out of school knowing.  I have interviewed countless candidates and all to often I see a real lack of knowledge and logical reasoning.  I often want to ask these candidates "What are they teaching you these days in school?".   Not only do so many come out not knowing basic engineering principles but also lack any ability to "think outside the box".    It's like as if they have gone through college filling out "multiple-choice" type tests (you know the type where you darken in the little oval and a computer grades it) and never really having to think.  That is the problem with these computer-graded tests is that it GIVES the student the answer and all they have to do is deduce the BEST possible answer from the 4 given.   Life is not like that.  It does not always give you the answers.  Most of the time you must think through the problem at hand and determine the answer for yourself without any help.

   It frustrates me to have people ask me what I perceive as the most basic of questions when they have a problem.   Take for example compiling a C program.   I have had countless encounters with engineers who have come out of college who seemingly have forgotten their C/C++ training in school (it's a required language to learn in all engineering colleges).   They will compile some C code and get an error like:

     error:  undeclared variable: count

     Now for those who don't know C, you have to declare any variable you use in C and tell it what type it is.  Is it an integer, a floating-point-number, or even a string of characters.   This is the MOST basic of error messages and it practically tells you what is wrong.  Yet I get countless calls from engineers (I now like to call  Jetson-eers), who need help understanding these basic problems.  (note: I have NEVER taken a C class in my life and have become proficient in it by learning it on my own)

     Another example just happened as I was writing this blog.  A Jetson-eer instant-messaged (IM) me to help with a problem.  A program was aborting (exiting from an error) and giving a error message



#0  0x00002aaaab4ddd90 in strlen () from /lib64/libc.so.6
#1  0x00002aaaab4afdb0 in vfprintf () from /lib64/libc.so.6
#2  0x00002aaaab4b5458 in fprintf () from /lib64/libc.so.6
#3  0x00000000006dbd6e in dpi_IdiPcuRegisterAccess (rxwb=1 '\001', 
    address=0x7ffffffdd4a0, beb=0x7ffffffdd490, wdata=0x7ffffffdd480, 
    rdata=0x153f008, rdecode=0x7ffffffdd470)
    at /nfs/fm/disks/fm_cnlgt_00431/sle.gen10/pipegt.DISK6/src/units/pcu_bfm/pcu_bfm.cpp:3112
#4  0x000000000095d09e in bhv__CheckCallerFunctions ()
    at tbx.dir/c_files/tbxbindings_cview.cxx:68557

this is the path to the model
 
Looking at the file it references (it even tells you what line to look at. line# 3112)

if (fp != NULL) {
      fprintf(fp,"TIME=%12llu ns: %s addr=0x%08x rdecode=%d, beb=%x wdata=%08x  rdata=%08x_%08x\n",
                  GetTime(),         address[0], rdecode[0], beb[0], wdata[0],  rdata[1], rdata[0]);

      fflush(fp);

      }


     The problem area I have highlighted and put in bold font.  The fprintf function wants a "string" argument printed, but none of the arguments given is a string variable (granted the C compiler should have thrown a flag but it didn't).    This problem took me under 20 seconds to figure out and yet it seems I am the only one who can do this.

     I think we are training engineers to just do repetitive tasks and not to think anymore.   When I first started at this company I was:
  • building models
  • synthesizing designs
  • fixing design problems
  • writing programs and scripts
  • designing test boards (designed 3 in 1 year)
  • developing bus functional models
  • finding ways to run hardware at slow speeds (I do hardware emulation)
  • finding ways to interface TTL logic to non-TTL logic devices
  • modifying BIOS assembly language code
  • helping debug problems
  • plan new projects
And that was just in 1 year.

But today, most engineers I see would only have 1 or 2 things to list for their years accomplishments and that seems fine to many managers.  They are happy I guess that all they have are well trained monkeys to press their computer buttons (hopefully in the right order) to get their jobs done rather than forward thinking engineers developing new innovations to advance the field.

    It is this reason that I agree with most educators that our current system of computerized testing is negatively influencing our next generation of thinkers.  We need our schools to get back to teaching our kids HOW to think and not WHAT to think.  Common-Core only takes our current system and puts it on steroids with even more testing and even less thinking involved which if it does unchecked will only result in more ....

Jetson-eers






No comments:

Post a Comment

Note: Only a member of this blog may post a comment.