Still the best job I’ve ever had and I’ve given up hoping there’ll ever be a better one. My first year at TIC was my first time in the US. Karen picked me up at the airport. On the drive to her house I mentioned Visual Basic, and there and then she decided. We would be teaching Visual Basic. That’s how things worked at TIC. During my second year I suggested we split computing and multi-media.
Here’s a really great post by Tom Moertel on squeezing every last ounce of performance out of machines back in the day. It was a time when unrolling a loop to save the few clock cycles or seeing a unique way to use the registers of a chip could take a game from clunky to classic. Stories of making machines do the impossible are the stuff of legend. The closest we mere mortals came was rejigging our config.
You can’t work in this business for very long before the hope, idealism and intellectual curiosity is beaten out of you and replaced with TPS Sheets, and 15 different tools for telling your colleagues how to configure IIS so that your app will actually run on their machine. If you’re new to this business there may still be time to save yourself. Go drive a truck, or learn a bit about your city and become a tour guide.
Constant Learning Being a software developer means constant learning. The technical landscape is always shifting. We have to run to stand still. We know this. We accept it. For some it’s the very thing that attracts them to the profession. I’ve learned lots about software development in the last few years. How to automate builds How to automate tests Object Oriented Programming/Design Functional Programming/Design Operating Systems Programming Languages Frameworks Version Contol Systems I’ve tried to embrace Agile, hell I’m even a certified Scrum Master.
Every movement needs an enemy, it galvanises followers, gives a community a sense of some shared identity. Even if Group A aspire to nothing more than to not be like Group B that is at least something to rally around. “The Waterfall” is increasingly becoming an Alamo for those who aren’t or don’t want to be convinced by talk of “Agile”. For the Agile community the designated enemy seems to be “The Waterfall Model” and the command and control project management techniques that usually go hand in hand with it.
Ladies and Gentlemen of the class of ‘14 If I could offer you only one tip for the future, simplicity would be it. The long term benefits of simplicity have been proven by Rich Hickey whereas the rest of my advice has no basis more reliable than my own meandering experience. I will dispense this advice now. Beware the over engineered complexity of your code; oh nevermind; you will not understand the over engineered complexity of your code until it bites you in the ass.
He sat in the large bay window observing the potential candidates as they approached the house. His mind was made up about each of them before they rang the bell. “I’m here about the gardener job” “Sorry, the position is filled.” “Already? OK, thanks, bye” Again and again all the same. No good. Then…aha! this one. “I’m here about the gardener job” “When can you start?” “You don’t want to ask me any questions?
I am growing increasingly frustrated with C#. I think the reason for that may be my exposure to languages like F#. In many ways my feelings for C# are quite similar to feelings I had about VB.Net when I was first exposed to C#. It’s taken me a while to figure out what it is that I find irritating about C# and I think I’m ready to call it. The problem with C# is exactly the same problem I had with VB.
Why do cars have brakes? I noticed this question on Jon Jagger’s blog and I was delighted with myself that I managed to get the “right” answer without peeking. Stop reading right now, have a think about it, then head on over to Jon’s blog to see what he has to say on the topic. Then, if you want, read on… How would you drive if your car didn’t have brakes?
I like Kata’s, I’ve get a lot out of them, but if I’m truly honest, they don’t really address one area of programming where I think I need practice, and that is in working with Legacy Code. In pondering this problem I came to the conclusion that I need a way of doing deliberate practice for legacy code work, and some variation of the Kata idea seems like it might work.