nick peelman

Month

July 2011

1 post

Square Signals: The Illiterate Programmer and Our Flawed Software Engineering Courses → blog.andymatuschak.org

I agree with many of Andy’s points, but there’s one glaring flaw here: You would have a hard time getting rookie programmers to distinguish between good code and bad (the difference is never as obvious as one thinks, “clean” code isn’t necessarily “good” code, regardless of what anybody who writes Ruby for a living wants you to think) in an open source project, or you’d have to spend a significant time vetting said projects.

Once somebody has the grasp of the fundamentals, something more akin to an apprenticeship is what would be more beneficial to just about any developer.  Stick a novice with an advanced programmer and make them work together on a small project, or wing of a project. One of the biggest influences on my programming abilities and style was when I joined the CoRD project soon after making a concerted effort to learn Obj-C; I would write a huge chunk of code to do some new, cool thing, only to have Dorian, our project lead, chop it up and boil it down to 3 lines of code.  His focus and drive for efficiency and stability produced solid, tight code, that as is evidenced by CoRD’s performance and success, even as it ages.  But going through that process, me writing bubble gum code, him making changes and corrections, and me reviewing those and sometimes having to figure out how his code accomplished the same thing as mine, was great experience.  As Andy points out, nothing trumps experience.  But education, particularly education around the engineering fields, is supposed to be about relaying the experiences in such a way that the pupil can comprehend them fully, and recognize similar situations with familiar solutions, and be able to adapt as the parameters change.

The biggest failure I usually saw in education was a huge disconnection between what was being taught, and the impact it would have on anything in the future. Professors always made it difficult to see the forest for the trees, as it were.  This made what I described above, comprehending what was being taught enough so that similar, but not identical, situations could be recognized in the future, that much more difficult.  That ability I didn’t even start to develop until very late in my college career, which is a shame, because I realize now how much more rewarding, productive, and even fun several of my classes would have been, had I not been looking at it from the wrong perspective.

andymatuschak:

I have never seen a software engineering course with a syllabus that makes any sense.

“Software engineering” means many things, but let’s consider approaches for building projects large enough that a single person could not keep one in his head. At this size, the structure of the software…

Jul 27, 201111 notes
#programming #code #software
Next page →
2012 2013
  • January 58
  • February 65
  • March 85
  • April 37
  • May 74
  • June 32
  • July
  • August
  • September
  • October
  • November
  • December
2011 2012 2013
  • January 70
  • February 47
  • March 55
  • April 17
  • May 44
  • June 46
  • July 37
  • August 18
  • September 51
  • October 40
  • November 24
  • December 35
2010 2011 2012
  • January
  • February
  • March
  • April
  • May
  • June
  • July 1
  • August 1
  • September 1
  • October 23
  • November 13
  • December 22
2010 2011
  • January
  • February
  • March
  • April
  • May
  • June 1
  • July
  • August
  • September
  • October
  • November
  • December