Life. Don’t Talk To Me About Life.
July 9th, 2008
Jeff Atwood recently wrote a post called “Don’t Go Dark” in which he discusses the problem of developers essentially disappearing from a project to work in isolation only to appear with massive, poorly understood (except by the developer) changes/updates.
Some of you have noticed that since my last post over a month ago, I’ve gone dark. I’d like to thank those of you who have messaged me on reddit or emailed me directly. It’s nice to know that my attempt to be held accountable to this project by making it public was successful.
Unfortunately, unlike the developers Jeff wrote about, I don’t have a large knowledge-bomb to explode on you. You see, the simple truth is that I’ve been too preoccupied with “real life” to really get any work done on the project, let alone blog about it.
It’s my own fault, really. I picked a bad time to start on this journey. I’ve been part of a project at work for the past year and a bit, and the project was deployed to production on Sunday afternoon. For the past month, I’ve been being completely wiped out by my last minute workload, as well as having been on call since deployment. The project was a “success” (i.e. it’s deployed and it works) but there was a minor problem with the transition to production that has cascaded into a major headache of support issues.
Beyond the tedium of everyday life, there has been movement on this pet project of mine. That movement has been largely related to planning and my inability to see the forest for the trees (more on that in my next post).
Regardless, for those of you concerned for the status of this project, let me assure you that I am alive, I’m getting back on track, and there will be more things to write about soon. Even if work swallows me whole, it’s only 16 days until I have a nice two week vacation. If I can’t find time for this project on vacation, then the project is likely doomed.
More soon!
Some Guy With A Blog
May 26th, 2008
I was surprised by the responses I received to my first post on this blog. By that, I mean I was surprised that I received any response at all. As I write this, there are four comments on that post: two were written by friends of mine from work, one by someone who took an interest in a question I asked of the programming subreddit, and one was from someone who stumbled upon my blog via technorati. This last one shocked me because I thought it would take a while to get random internet readers to notice me, and I certainly didn’t expect a response after just one post!
Jose, the commenter in question, suggested that I enroll in a university program in order to benefit from the structure (and accreditation) of a more formal learning environment. An added bonus of this being the network of friends, colleagues, and sources of information you can build in such an environment. I explained to him then, as I’ll explain to you now, why I’m not taking that path at this time.
First of all, I have nothing against universities. I don’t consider the ‘do it yourself’ method I’m undertaking to be in any way better than earning a formal degree, especially a more practical ’software engineering’ degree rather than a ‘computer science’ one . Quite the opposite, in fact. I believe that those that earn their degrees and have their own small portion of the alphabet to hang behind their name to be quite ahead of me. I simply don’t feel that a degree is a viable option to me right now.
In high school, I had a few issues. The 10th grade was an especially bad year for me personally, medically, and educationally. It was during this time that I started to fall behind in math, a subject for which I had been asked to join with the advanced with the previous year. Across the board, my grades were ’substandard.’ This, in my mind, is when the decision was made for me as to whether I would be going to college or university (a distinction which means much more to a Canadian than an American, due to how our system works – ‘college’ in Canada seems to be largely synonymous with ‘community college’ in the US) was made.
Ironically, it was during this time that the seeds of this project were first sown.
In grade 10 I took my first ‘computer class’ – an ‘Introduction to Technology’ course which somehow included food preparation and woodworking. I was only enrolled in this class because I had failed geography the previous year and the scheduling required for me to retake the course left a free period in the middle of my day. The best option to fill it, at least in my mind, was that fateful computer course. With all of my other grades plummeting, I somehow managed to achieve a respectable B grade in the class. I still believe it would have been higher had I not spent a not insubstantial amount of my time tutoring several other students, but at least it was good experience. Regardless, when all my other classes were falling to pieces, this was the first sign that maybe I might have a future in programming.
But I digress…
I spent three years in a college course which mostly seemed to teach syntax. We had many courses on learning specific languages: C++, VB, and even COBOL. Some of the classes were arguably useful; others simply weren’t. I feel that my time was productive mainly due to people I met there, and the things they exposed me to that I had no idea even existed. It’s also because of that college experience that I have my current job. These three years were expensive, even more than expected since I didn’t really work during that time. Even today, I’m still carrying a 5-figure debt as a result of my schooling.
Being employed full time and not wanting to throw myself horribly into debt again, I’ve decided that the best way for me to get the education I think I need is to just go ahead and teach it to myself. I have no idea how it will go but at least it’s a plan of action, something I haven’t had for quite some time now. When finances and other factors permit, I’ve toyed with the idea of doing an online course at the Athabasca University, which seems to be less questionable than some other online universities seem to be. My hope is that it will fill in a lot of the gaps my self-learning project will undoubtedly leave behind, while also giving me credibility with HR types.
The internet is a fantastic place to learn all sorts of things if you know where to look, and especially if you know where not to look. I’m looking to you, random internet blog reader, for your guidance and sage advice. Please help keep me from falling prey to fallacy, misinformation, and apocrypha, as it exists in far too great a volume online.
After all, I’m just some guy with a blog.
CS 101: Introduction to Computer Science
May 21st, 2008
This blog represents the public view of my latest personal endeavour: I’m going to create my own software engineering degree. To be a little more specific, I plan to try to learn as much about the field of software development, and a bit of proper computer science, as I can. Rather than spending a few more years, and a few more dollars, in a post-secondary educational institution, I aim to teach myself the topics of computer science I would learn in the classroom on my own.
To be completely honest, I’m not entirely sure from where the motivation for this project came. As near as I can tell, there were three fundamental sources:
- A video I found on reddit by a guy called Clay Shirky that talked about our collective ‘cognitive surplus’ and what we can accomplish if we start putting our ‘free time’ to better use.
- Joel Spolsky and/or Jeff Atwood. While I’m no longer sure exactly what was said, I know there was a point several weeks ago during a stackoverflow podcast where I more or less decided to start this project. One of the two made a distinction between career programmers, those who program as a job and only as a job, and ‘geek programmers’ (for lack of a better term), who program largely for the love of programming. The latter of these being notably better because they simply care more about their craft.
- Personal dissatisfaction with my career thus far, as well as an increasing fear of skill atrophy. With all due respect to my current employer, I don’t really have any sense of identity in the work I currently perform. I got into this particular job as a way to stop my bank account from hemorrhaging funds, and am now worried that I’ll never get back into newer technologies and that this in turn will cause me to regret entering the field entirely.
This will clearly be a monumental task, which is part of the reason this blog exists. My thinking is that if I have a public record of what I am doing, I’ll be more likely to continue to make an effort to accomplish my goals. If I were to put this project on the back burner, there would likely be people (admittedly, at this point it would mainly be some close friends and selected family members) who would ask about my lack of forward momentum. This would, I hope, give me the kick in the butt I need to get back into it. If nothing else, I’m trying to follow Jeff Atwood’s advice from a year ago: “When in doubt, make it public.”
I’m not expecting this blog to ever develop a major following, but I do hope that if others embark on the same journey that maybe they will find some motivation or guidance here. The hardest part I’ve found so far is learning what I never knew I needed to know, so I’m going to lay it all out here as I discover it so others don’t need to blaze this trail again.
Wish me luck.