A couple months ago, I started taking classes at Chabot College. One reason is to get the degree that shows what I’m talking about. But there’s another reason, even more fundamental: filling in the gaps in my own knowledge.
(The first dimension would be a set of object keys – the DOM nodes. Another dimension represents undo history, like a timeline. A third dimension could be the shadow content. I could define other dimensions might exist for building an individual transaction until it is completed, or otherwise creating a “workspace” for experimenting.)
About 24 hours ago, I had an idea, related to my multi-part keys for hashtables implementation. Typically, in designing a data structure class, I think about how to give each piece of data an address first, then I implement ways to store data by that address. The idea is to flip that approach around: to define an API that lets the user place an object with an address, and then add new dimensions to the address space as the user needs them.
This underlines why I’m going to college after at least six years as a professional software developer. It’s a gap in my knowledge.
Some people, like me, enter this field with a talent built upon years and years of tinkering, of experimenting and of thinking. The software industry can really take a person like that quite a ways. Others enter the industry having taken computer programming courses – and that’s really hit or miss for an inexperienced person. (No offense intended to the software engineers who started through college!)
I wonder if taking up college classes after you’ve been in the industry a while is actually the best approach of all: continuing the education, helping clarify what you’re working on and expanding the imagination with new possibilities.
I wonder how many current software engineers have decided to go back to college after being in the field a while, to push themselves and their capabilities even further.
3 thoughts on “Why I’m attending college: trying to explain my thinking”
I had the same thought when I started implementing a class to add multimap support to a DSL I often use that currently lacks such a feature. I had the clearest vision in my head of what I wanted to create, but no idea what to call it when discussing it with others.
A 3 year-old, a sick wife, and a full-time job have delayed me, but I’m still hoping to start taking classes and finish the degree I started in 1996 (or possibly start over from scratch) soon.
The feature your data structure need is called versioning. See for example http://www.acunu.com/blogs/andy-twigg/stratified-btrees/
Apologies for commenting late, but wanted to add my encouragement to that of others. I actually learned linear algebra, etc., in college but then forgot it over the years, and then recently decided to re-learn it. I didn’t have time to actually take courses, so I just bought a cheap used textbook and am working through the book one chapter at a time. I found it very helpful to work through all the exercises and blog my work as I go; I understand of the material much better if I have to write as if I’m explaining it to someone else. if you’re interested check out http://math.hecker.org/ (and feel free to make a comment if you see any errors).
Comments are closed.