Youthful Arrogance

In 2000 when I had just started my master’s degree I had already been programming in C/C++ and VB for some years prior, mostly simple LoB apps for my dad’s business and some other telecom programs that I had written while working as an intern during my undergrad years studying mathematics. I thought of myself as being above the rest of the class in terms of programming skills and knowledge of how software worked and was written. Funnily enough I even thought of myself as being better than my professors, who I thought were just stuck in academia and didn’t know how real programming was done. Now 10 years later after being a professional programmer for 8 years I feel disappointed by my attitude towards my professors and regret not having made better use of my time doing academic work rather than focusing on more practical programming tasks.

Here are some of the incidents that I recollect,

Freshman year, my professor for "Programming Languages" was teaching about how different languages implement, static vs dynamic, lexical scoping, setup of call frames, how call frames are linked to the global environment etc. At this point the only language I knew well was VB and was comfortable coding in C++ and Java. Based on my miniscule knowledge of these imperative languages I started questioning all that she was teaching in a very negative tone, my prof did answer all my questions correctly but since I didn’t know anything beyond what I knew I couldn’t believe she was teaching all this bullshit to us. I don’t quite remember what I was arguing about (closures maybe?) but since the rest of my class were even more clueless than me they thought I was cool to stand up to the prof and question her the way I did. Now after all these years and having read and used a much larger set of languages I feel stupid for thinking that my prof didn’t know what she was saying. FAIL!

Freshman year, my professor for data structures and algorithms was teaching us some introductory C, he showed us the canonical C expression for copying strings *dest++ = *src++; When I saw this on the board, I started shaking my head and telling my classmates that the prof was teaching incorrect code. So right after the class I went up to him and told him that I felt that the code he had written was wrong and that it would not work, he looked at me, smiled and said "You’ve just seen this today, take some time to absorb it and let me know if you still think it is wrong". I thought he was just avoiding me and never really bothered to look it up. Years later when I first read K&R C (One of the best books on C IMO) I was enlightened. How arrogant of me to think that this professor from Stanford University didn’t know how to write C code, I suck.

Another incident with the same professor that I remember is when we were asked to write a solution for the 8 queens problem, rather than focus on writing a good algorithm I wanted to showcase my programming skills and wrote a program that given any set of chess-pieces would tell you if there was a way to place them on the board so that they didn’t threaten each other, the code was probably 10 times longer than a solution to the simple 8-queens problem and when I saw the solution that my prof. presented using arrays and 3-4 lines of backtracking code, I thought that my code was definitely better. Now that I look back, I realize that the focus was more on the algorithm and that the efficiencies achieved by the code written by my prof would have blown my code out of the water. This prof had taught at Stanford University, If I had the chance to go back, I’d definitely get on his good side and maybe get a recommendation to study at Stanford. What a wasted opportunity!

Sophomore year I had a course in Artificial Intelligence, for some reason I don’t think I ever attended enough classes for that course and did any of the coursework, if only I had known that doing anything with AI the rest of my professional life would be a pipe dream, I’d have soaked up AI and actually written some AI programs that year, maybe learnt LISP/Scheme, read Paradigms of Artificial Intelligence, learnt statistical methods for expert systems, instead of goofing around and trying to study the night before just to pass the exam. :(

Another professor in sophomore year was a visiting professor who a retired army man, he wanted to teach us this new language called Python. He said that he’s used a lot of languages and Python was going to rule them all, another thing he wanted us to learn was SIP because he thought that SIP was the future. Silly me and my naive belief in C++ being the greatest language ever, I used to hang out at codeproject.com a lot back then and I posted something about how idiotic this professor was trying to teach us a "typeless" bastard language…ROTFL…how much more arrogant could I get…looking back now at the widespread use of Python and SIP I only wish I had stayed in touch with the professor and made better contacts with him and actually gotten into Python and SIP way back then. I’d actually have some pretty cool stuff on my resume instead of the usual run of the mill app programming experience.

In my senior year, we were supposed to submit a thesis. Most of the other professors allowed you to do an internship at a software company and use the work there as your thesis instead of actually doing research and submitting a thesis. I just assumed that my professor would be the same and spent the whole semester working at an outside software company, when I met my professor for the first time was on the day we were supposed to submit the thesis. He was shocked that I wanted him to sign on something he was seeing for the first time. So he had me come back the next day, looked at what I had done and tried to morph that into a thesis on text mining. He had me read up papers, look up research journals online and basically write a proper thesis instead of a project report which I had submitted earlier. During my interactions with this professor I realized how academically good he was in terms of his connections with other professors around the world, the papers that he had published and the research that he was doing at the university. Looking back now, I wish so much that I had gone to him right when the year started and spent the year actually doing research and writing a thesis instead of writing software.

I know hindsight is 20/20 but it just seems like I could have made a lot better use of my time during those years instead of spending my professional years wanting time to do the same.

Posted via email from Sijin Joseph

7 Comments

 Add your comment
  1. Hello Sijin, came to your blog through the Programmer Competency Matrix that has been doing the rounds in HN. This article seemed very similar to my experience – I also had a little programming experience doing accounting/inventory apps for my dad before I started college.

    My attitude too was similar to yours, but unfortunately my teachers were as bad as I initially assumed. The competency of teachers do depend a lot on the college you learn. You studied at a good college which made all the difference. A lot of engineering colleges in India have a very poor standard, and often students are better than teachers.

  2. Hi, i just want to thank you to share this part of your life, the experience and problems you had, i think this is one of the most valuable that people could share.

    i also came to your blog throug the programmer competency matrix, it’s a good tool to see some things that one self most of time cannot see.

  3. I also came here due to the competency matrix, I’ve had similar experiences and I’ve seen friends with the same issue not only studying computer science but also in mathematics.

  4. Thanks for sharing this. I’ve run a medium sized in home computer repair and consulting biz since I turned 18, (24 now) but lately I’ve been deeply pondering whether I should go to school and specialize in SOMETHING. Sadly I think I’m about 20x more arrogant than you, in fact that’s probably what keeps me from studying the most. I’m genuinely worried that I’m going to run into these “out of touch” professors who know nothing about how computers are used in the REAL world and do nothing but argue with them. Haha actually, I regularly have dreams about that. I’m back in school and I’m arguing with someone the whole time. Your post sounds exactly like something I would write 10 years from now after graduating when I finally realized that I wasn’t god’s gift to the computer world and that I squandered all that time. If/when I finally decide to go to school, I’m going to go about a whole different way now. My future self thanks you a lot.

  5. Nice one mate…as far as i remember you had an Uncle who taught you billiards and he asked you for some questions for his website, which you haven’t sent till date and he is still waiting for those…FAIL

  6. Just to let you know, you aren’t the only one. I did similar arguments due to arrogance during my graduation (specially in graphics as I thought I am the coolest kid who knows coordinates better than anyone). Wish I would have focused more on the “unknown” than wasting everyone’s time. Oh well, lesson learnt! Thanks for the post though. Good one.

Leave a Reply