{"id":666,"date":"2009-09-01T21:12:02","date_gmt":"2009-09-02T02:12:02","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=666"},"modified":"2023-12-20T16:25:19","modified_gmt":"2023-12-20T21:25:19","slug":"the-shoulders-of-tall-smart-people","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2009\/09\/01\/the-shoulders-of-tall-smart-people\/","title":{"rendered":"The Shoulders of Tall, Smart People"},"content":{"rendered":"<p>Recently, I came to the realization that I&#8217;ve been writing computer programs in one form or another since I was about 6 or 7 years old.<\/p>\n<p>Along the way, I&#8217;ve had plenty of people to influence the way I think about code, and how I write it.\u00a0 Sure, there have been plenty of textbooks along the way too, but I want to give some thanks to the <em>people <\/em>who have directly affected my abilities to do what I do.<\/p>\n<p>And what better way of doing that then by listing them?<\/p>\n<h2>A Chronological List of People Who Have Influenced My Coding<\/h2>\n<ol>\n<li>My parents, for bringing home our first family computer.\u00a0 It was an <a href=\"http:\/\/en.wikipedia.org\/wiki\/IBM_Personal_Computer_XT\">8088XT IBM Clone<\/a> &#8211; no hard drive, 640K of RAM, dual 5 1\/4 floppies&#8230;it was awesome.\u00a0 This is the computer I started coding on &#8211; but I couldn&#8217;t have started without&#8230;<\/li>\n<li>My Uncle Mark and my Aunt Soo.\u00a0 Both have degrees in Computer Science from the University of Waterloo (that&#8217;s where they met).\u00a0 My recollection is pretty vague, but I&#8217;m pretty sure that a lot of the programming texts in my house (a big blue QuickBasic manual comes to mind) surely didn&#8217;t come from my parents &#8211; must have been those two.\u00a0 With the book in one hand, and the 8088 in the other, I cranked out stupid little programs, little text adventure games, quizzes, etc.<\/li>\n<li>The online QB community from the late 1990&#8217;s to the early 2000&#8217;s.\u00a0 When my family got online, I soon found myself hanging out at <a href=\"http:\/\/web.archive.org\/web\/20000407190211\/http:\/\/www.neozones.com\/\">NeoZones<\/a>, in the #quickbasic IRC channel on EFNet&#8230; actually, a lot of crazy stuff was being done with QuickBasic back then &#8211; I remember when <a href=\"http:\/\/www.phatcode.net\/downloads.php?id=202\">DirectQB<\/a> came out, and somebody was able to code a raytracer&#8230;in BASIC.\u00a0 It was awesome.\u00a0 I&#8217;d say these were my foundation years, when I learned all of my programming fundamentals.<\/li>\n<li>My friends Nick Braun, Joel Beck, and Doug McQuiggan &#8211; these three guys and I used to come up with crazy ideas for games, and I&#8217;d try to program them.\u00a0 I&#8217;d come home from school, and pound out code for a computer game for a few hours in the basement.\u00a0 More often then not, these projects would simply be abandoned, but still, a lot was learned here.<br \/>\nJoel, Doug, our friend Julian and myself were also members of a band in highschool.\u00a0 It was my job to build and maintain the band website, and this is when I learned to write HTML, basic Perl, and simple JavaScript.<\/li>\n<li>After highschool, I went into Electrical and Computer Engineering at the University of Toronto.\u00a0 I didn&#8217;t do too well at the Electrical bits, but I could handle myself at the Computer bits.\u00a0 I learned OOP, Java, and basic design patterns from <a href=\"http:\/\/www.wjamesmaclean.net\/\">Prof. James McLean<\/a>.<\/li>\n<li>I also learned a great deal from Prof. McLean&#8217;s course text &#8211; Introduction to Computer Science Using Java by <a href=\"http:\/\/www.ecf.utoronto.ca\/~jcarter\/\">Prof. John Carter<\/a>.\u00a0 I know I said I wasn&#8217;t going to mention textbooks, but I also got taught Discrete Mathematics from Prof. Carter, so I thought I&#8217;d toss him in too.<\/li>\n<li>My second (and last) semester in ECE had me taking Programming Fundamentals with <a href=\"http:\/\/www.eecg.toronto.edu\/~tsa\/\">Prof. Tarak Abdelrahman<\/a>.\u00a0 I learned basic C++ from Prof. Abdelrahman, and how to deal with large systems of code.<\/li>\n<li>After my move to the Arts &amp; Science Faculty, I took my first Computer Science course with <a href=\"http:\/\/www.cs.utoronto.ca\/~clarke\/\">Dr. Jim Clarke.<\/a> I learned about Unit Testing, and more design patterns.\u00a0 I also eventually learned some basic Python from him, but I think it was in another course.<\/li>\n<li>I took CSC258 with <a href=\"http:\/\/www.cs.toronto.edu\/~hehner\/\">Prof. Eric Hehner<\/a>, and learned about the structure of computer processors.\u00a0 Physically, this was a low-level as I&#8217;d ever gotten to computers.\u00a0 I was familiar with writing Assembly from my QB days, but Prof. Hehner&#8217;s Opcode exercises were really quite challenging &#8211; in a pleasant way.\u00a0 Also, check out his concept of <a href=\"http:\/\/en.wikipedia.org\/wiki\/Quote_notation\">Quote Notation<\/a>&#8230;<\/li>\n<li>After that year, I spent the first of three summers working for the <a href=\"http:\/\/www.dsbn.edu.on.ca\">District School Board of Niagara<\/a>.\u00a0 Ken Pidgen was my manager, Mila Shostak was my supervisor.\u00a0 Ken gave me incredible freedom to work, and soon I was developing web applications, as opposed to just fixing up department websites (as I originally thought I would be doing).\u00a0 Mila gave me guidance, and showed me how to use CSS to style a website.\u00a0 She also got me started using PHP and MySQL to create basic web applications.<\/li>\n<li>While working at the Board, I had the pleasure of sitting across from Jong Lee.\u00a0 Jong and I would bounce ideas off of one another when we&#8217;d get stuck on a programming problem.\u00a0 He was very experienced, and I learned lots of practical programming techniques from him.<\/li>\n<li>Michael Langlois and Ken Redekop acted as my clients at the Board, and always gave me interesting jobs and challenges to perform.Everyone at the Board was always very positive with me, and I&#8217;ll always be grateful that they took a newbie undergrad under their wing!\u00a0 I was given a ridiculous amount of freedom at the Board, and was allowed to experiment with various technologies to get the job done.\u00a0 Through my three summers there, I learned bits about Rails, CakePHP, MVC, network security, how to deploy an application remotely, how to run a local server, how to develop locally and post to remote, ORM, Flash, web security&#8230;so many things.\u00a0 The list is huge.<\/li>\n<li><a href=\"http:\/\/www.cs.toronto.edu\/~reid\/\">Karen Reid<\/a> and <a href=\"http:\/\/www.cs.toronto.edu\/~gvwilson\/\">Greg Wilson<\/a> have been the latest influences on me.\u00a0 The MarkUs Project was the first project I&#8217;ve ever worked on with a team.\u00a0 It was my first time seriously using version control, my first time using a project management portal (Dr. Project), my first time learning Ruby, and my first time working on an open source project.\u00a0 I&#8217;ve also learned plenty about time management, people, the business of software, and how to get things done.\u00a0 Again, I&#8217;ve been given lots of freedom to learn, experiment, and hone my craft.<\/li>\n<\/ol>\n<p>Anyhow, these are the people who come to mind.\u00a0 I might add to this list if I remember anyone else.<\/p>\n<p>But in the mean time, for the people listed above:\u00a0 thank you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I came to the realization that I&#8217;ve been writing computer programs in one form or another since I was about 6 or 7 years old. Along the way, I&#8217;ve had plenty of people to influence the way I think about code, and how I write it.\u00a0 Sure, there have been plenty of textbooks along [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5,44,68,110,6,10,162,79],"tags":[395,405,404,394,1205,393,419,409,416,184,411,426,408,392,406,237,420,239,425,421,422,407,401,427,424,423,402,399,410,417,413,414,415,132,397,398,396,418,157,403,400,412,67],"class_list":["post-666","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-internet","category-javascript","category-musings","category-personal","category-php","category-ruby-on-rails-technology","category-technology","tag-8088xt-ibm-clone","tag-angelo-mottola","tag-asvisn","tag-coding","tag-computer-science","tag-computers","tag-district-school-board-of-niagara","tag-doug-mcquiggan","tag-dr-jim-clarke","tag-dsbn","tag-ece","tag-greg-wilson","tag-groovy-concepts","tag-influences","tag-irc","tag-joel-beck","tag-jong-lee","tag-julian-rabideau","tag-karen-reid","tag-ken-pidgen","tag-ken-redekop","tag-lost","tag-marcade","tag-markus-project","tag-michael-langlois","tag-mila-shostak","tag-necrolyte","tag-neozones","tag-nick-braun","tag-prof-eric-hehner","tag-prof-james-mclean","tag-prof-john-carter","tag-prof-tarak-abdelrahman","tag-programming","tag-qb","tag-qb4-5","tag-quickbasic","tag-quote-notation","tag-rails","tag-t_s","tag-tek","tag-university-of-toronto","tag-uoft"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-aK","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/comments?post=666"}],"version-history":[{"count":8,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/666\/revisions"}],"predecessor-version":[{"id":3230,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/666\/revisions\/3230"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}