Why am I writing a blog? Well, last year I changed jobs for the first time in my career, and in so doing I learned a lot about what I haven't been doing to develop professionally. I had learned many new skills and advanced quite well in IC design and test, but at a fundamental level, I was becoming complacent in my job and letting my professional development languish.
When I moved to Hi-Techniques, I made a conscious decision to step out of hardware design and into software design, as I believe that more and more, software is where the edge of innovation is happening. Hardware is turning into software, so to speak, and software is growing and morphing at an increasingly rapid pace.
So I took a big step into software engineering. That is almost exclusively what I am doing at work now, but that is not all I am doing. If it were, it wouldn't be much in the way of professional development; it would just be learning new skills in another job setting. No, what I've really been doing over the past year to improve as a software engineer is reading an incredible amount of material about the world of software design and development, both offline, through books, and online, mostly through blogs.
What I've discovered is an incredibly rich and diverse software culture that has seemingly sprung up out of nowhere since I was studying electrical and computer engineering and computer science in college. That was in the first part of the last decade, and yes, I know the software culture didn't start then. It's much older than that, but I was in college...in a fraternity...and nobody told me that big things were happening outside my little world.
I knew technology was advancing at an ever faster pace, and I chose the degrees I did because I was fascinated by technology and wanted to engineer my own small piece of it. It never occurred to me that there was so much more to design than learning the principles and concepts from college courses. Working in a niche hardware market designing sensor interface chips didn't really encourage me to look around much, either.
Well, I was young and dumb. Now I know and I'm working on it. But at the same time, as I read those blogs, I can't help but think that the software industry has been coming of age since the dot-com crash. If you weren't paying attention, as I wasn't, it was probably easy to miss. I have a lot of catching up to do.
So why am I writing a blog?!
1. I've Always Hated Writing
Yes, that's right. Ever since high school...middle school, really...I just couldn't stand writing my thoughts down. I stopped taking notes and I always saved writing assignments for last. I could always write a decent paper, and I never had much trouble completing one once I got started. It was just so incredibly boring! Now I know why. It was hardly ever an option to write about anything that interested me, the style was normally dictated by the teacher, and I was never moved to write. It was either assigned to me, or expected of me, and I never looked at my notes again anyway, so why write them?
Suddenly, I find myself quite driven to write. I'm reading a lot of great writing by other programmers, and it is making me want to improve my own writing. The only way to do that is to write. The best way to do it is to write publicly. So here we are.
2. I've Got Ideas Coming Out of My Ears
And they're making a mess on the floor. All of this reading and studying is generating so many ideas, and they are becoming a massive jumbled mesh in my head. I need a way to organize them and understand my thoughts better, and I've read quite a few blogs that recommend writing as a great way to do it. Making it public is even better since it's much more difficult to be lazy about completing thoughts and drawing conclusions when other people are reading what you write.
3. I Might Have Something to Contribute
At this point, I feel like I probably don't have anything to say that hasn't already been said. Even that sounds eerily familiar, like I've read it before. But maybe some of you won't have heard some of these things before. And just maybe, I might say something new or connect ideas that lead to novel insights. You never know, unless you try.
Now that that's settled, what exactly am I going to write about? The major focus will be grappling with my thoughts on software design and development, where the industry is headed, and how to improve as a software engineer. I'll also occasionally digress into economics, education, energy, and the environment mostly because I am intensely interested in these topics, but also because there are so many dependencies between them and the software industry. Of course, I reserve the right to talk about anything that strikes me since, you know, it's my blog.
Finally, we come to the question of how often you can expect these ravings from me. Writing a blog is like anything else that requires practice to get better. Discipline is important, otherwise life has a way of creeping in and stealing your time for other things. Besides, an untended blog isn't going to benefit anyone. I'm going to commit to posting once a week. I don't think I can do more because I have a wonderful wife and two young kids that take priority. I hope anyone reading this blog will hold me to that schedule, and I definitely welcome comments. I'll read every one and respond when I can. I'm excited to see what will become of this venture, and what we'll learn along the way.