Back to the “Basics”
I find that there are many programmers (myself included) who use certain tools daily without really knowing how they work. In this specific case, I’m referring to linkers. As someone use uses C/C++ and several different compilers & linkers almost every day, I was recently struck with an error that was related to the way linkers function. Initially, I had somewhat of a hard time fixing the problem because I was never taught in my college classes about the way a linker performed its functions. I mean, we were told about the linker and understood its part in the overall build process, but we were never taught how they play that part.
I don’t blame my school necessarily. From talking with several coworkers who have been in the industry for several years now, I’ve come to learn that this is a trend in computer science education recently. It’s unfortunate, too… these basic priciples help provide a much deeper understanding and comprehension of lower-level computer functionality which, in my opinion, make a better developer.
In an effort to understand linkers better, I did some Googling (sp?) and found a string of several excellent blog entries by Ian Lance Taylor - a developer who wrote at least three linkers.
The entries start here. And continue through his entry archives to mid September 2007. I highly reccommend giving at least the first few entries a quick read-through if you are like me, and want a better understanding of the development tools we use every day.
One Response to “Back to the “Basics””
Leave a Reply
You must be logged in to post a comment.
RSS
March 6th, 2009 at 9:40 am
I appreciate the thoughtful post. I suspect that the schools are merely adjusting to the perceived needs of the students. Many who study computer science have no desire to be computer scientists; they merely want to gain the knowledge and skills needed to get a good job and/or build interesting stuff. That being the case, they probably don’t have much of a desire to understand how their tools work - they just want to know how to use the tools.