How we learn to write code
Great post titled “Your code is my hell” describing some particular problems with Ruby and Rails projects.
One thing that is brought up in the comments that I wanted to expand the discussion on is how universities teach programming.
I blame the education system for developers. Shockingly few universities and colleges deal with the “why” of programming, only the “how”, and almost all seem more focused on the tuition money coming in rather than the quality of education going out. The only programmers worth a damn anymore are the ones who taught themselves from youth, and we’re outnumbered by the 9-to-5ers churned out by higher education.
I think the “why” of programming can’t really be taught, or at least it is miscommunicated. The “why” is often thought of in terms of features or user needs. These needs do have to be considered, and “git ‘er done” is valid thinking. But maybe it should be expanded to “git ‘er done right”.
The “why” of programming can also be thought of in terms of developers and maintainers needs. Why do we need unit tests? So people who come after us, including us a few years from now, who have to work on this code can tell if something breaks when they make a change without having to wait for QA or the users to tell them.
Mostly it seems like we learn to program by working on new, or greenfield, projects. All the classroom assignments start with creating a brand new project with well defined requirements. All the sample code put out by Microsoft, Apple, Google, and others assumes the same starting point. While it is important to start new projects, most of the code you will work on as a professional developer, in my experience, is NOT written by you from scratch.
Maybe young developers and university students would benefit more from joining an internship program? Or maybe university CS departments could function as consultants or “offshore” firms and provide low-cost temporary employees to firms, killing two birds with one stone.
-
http://blog.componentoriented.com D. Lambert
-
http://twitter.com/cammerman Chris Ammerman
-
http://www.abler.com/products/Ablerquant Horse Medications
-
http://www.trafalgargeothermal.com/ trafalgar geothermal
-
http://www.johnsoncomfort.com/plumbing-service-company-edinburgh-indiana/ plumber edinburgh
-
http://trainingcenter.com/vmware-training-course-online.htm vmware training courses
-
Tarah Adermann
-
Tarah Adermann


