The developers of today live in a Golden Age… That is to say an Age of Google, where developers joke (not so jokingly) about Google being the only reason they still have a job. Think about it; an entire generation of developers who rely so much on ‘The Google (TM)’, that any time we get any sort of error or issue we don’t expect BAM straight onto Google (or StackOverflow). What would happen if tomorrow, both StackOverflow and Google both died instantaneously, never to be revived (ignoring the fact that someone else would most likely knock up a replacement pretty quick)?
The shit would hit the fan, hard and that safety net for developers everywhere would be gone.
Over the past year or so I’ve tried not using Google and StackOverflow for my troubleshooting issues (see here), and its been an interesting experience. I’ve delved into areas I otherwise wouldn’t go into (because once we see that magical fix on Google or SO, we don’t look into any further because we need the problem fixed NOWNOWNOW), and while it has been more difficult and frustrating it’s helped me actually understand the problem at hand. And to be honest while it does take me a bit longer to get things done, I like it because I actually learn something, and better yet – and this is the part most people will struggle with – retain something. In the Google Age of ‘Search and Forget’ (ie. Search for a problem, fix it and then forget it) information retention is sorely lacking. We (and I’m guilty of this myself) Google the same things over and over our mind filters out the ‘quick-fix’ of information we sift through on a daily basis.
Originally this post was going to be about what you, as a developer, use as your most valuable resource/s and how much we love them, but once I started typing I kind of went off track a bit. But you know what, I think I’m going to keep it like this, and leave you with a thought experiment…
The next time you have an error or problem you need resolved, ask yourself what would you do if your MVR wasn’t around to help you out? How would you go about troubleshooting or fixing the problem? Instead of jumping onto your MVR site, actually take a step back and try to look at the problem at hand. Research the concepts around whats going wrong (you can use Google for this!), or what you’re attempting to do and compare it to what you’ve done. Who knows, you might just learn something you didn’t expect 🙂
One thing Ive come to notice since I started this blog, is that writing is bloody hard…
See, now I really enjoy writing. I find myself able to express myself quite clearly through the written word and since starting this blog I feel my writing (both technical and non-technical writing) has improved and I (like to) think some people even enjoy reading it. Writing is fun, because alot like other art forms (of which I consider software development one) you start with a blank canvas/page/screen and you create something.
But, again, writing is hard.
Ive had quite a few posts where inspiration hits and Im madly typing out about 1000 words of writing in 45 mins and at the end I feel pretty darn good about it. I come back to the post a week or so later, look at the post and just think ‘um… this is kind of crap’. I find grammatical errors, the odd spelling error and (to me, this is the worst) Ive expressed myself poorly.
It seems that, alot like code actually, the first cut is always pretty crap.
I suppose thats why writers/authors/poets go through several drafts of their work before they consider it submittable. Ive recently being doing a bit of reading on a site called Joel on Software. I find myself inspired by some of his posts… the quality of his writing is a cut above what Ive read so far on the internet and I honestly believe its something we should (bloggers or not) aspire to. This is how I want to be writing.
Im going to be dedicating a bit more time to my blog from now on… The aim is to set a certain amount of time aside per week and actually plan out my posts. Throw ideas around as to what Im going to write, and most importantly do a few drafts before I hit that shiny magical ‘Publish’ button.
If you feel so inclined, share your writing experiences below and any sites you consider the author to be a darn fine writer.
Ive been thinking alot lately about work, and how much it can take over your life unexpectedly. One moment youre enjoying your days (weekends, even!) and the next you are neck deep in support tickets, code changes and project work. While this certainly doesnt make for a boring work life, once things really get intense you start to forget how much you actually enjoy programming! It becomes a chore, a case of ‘sigh, another day *grumble grumble*’. Ive realised this over the past few months that I have been completely consumed with work, and in doing so stopped enjoying the very reason I got into programming in the first place…
That urge to discover, create and mold what you see.
Damn, its been that long since Ive actually programmed for the pure joy of it its given me a yearning (oh yes, I just used the word yearning) to work on some personal projects of my own… Nothing too big, more ‘for the fun of it’ type stuff than any serious applications. And as a result of this I have chosen to join the open source community, in this particular case GitHub. GitHub is a site which encourages the collaboration, creativity and passion for programming (all shapes and forms) and enables anyone to contribute to any project that catches their eye. These are people who, apart from their daily grind, choose to spend their spare time creating something wonderful, with people who share their passion for development. This sounds like a mighty fine place to be.
The smallest ideas often cause the greatest change, and I find the best example of this with the guys over at Code52, and they have a very simple goal; ‘A new coding project every week’. While they havent quite met this goal, some of the applications theyve created are amazing, with the base code created within an entire week. I find this sort of thing staggering in the most wonderful way… Most people I know (even people in IT) consider their job as ‘just a job’. While theres nothing wrong with this, for me personally I have a passion for this sort of thing. Not just the technical side of it either but the reasons why we develop (to me, this is almost more important than what we do but thats a post for another day). They are trying to introduce the open source mindset in small, easy to manage projects. This gives exposure to those too intimidated (ie. me) to contribute to the random projects you can see on GitHub and the like. This is passion.
So Ive decided to take the plunge. Once things quieten down a bit of work and I have some spare time again Ill look into contributing into some of the Code52 projects, for no other reason than to learn how other developers work, and see some slightly more varied codebases as Ive been with my current employer for almost 5 years now, with the same codebase (plus a few bits and pieces) so it will be very interesting to see other perspectives and other thought processes in action.
Night all 🙂
I was in a discussion on twitter last night about the ‘joys’ of visual studio, and how frustrating it was with (what should be) basic functions crashing in a great big ball of fire. This guy responded with a comment in a similar format to a commandment:
Properties are set in stone. Thou Shal not rename, nor shall thou covet the name of another property
This cracked me up laughing, so I challenged him to come up with a complete set. And here they are for all your April Fools pleasure!
1 – I am Struct, the class and the instance. I have freed you from the bondage of x86 assembler. You shall have no other assemblers b4 me.
2 – You shall not write your own compiler, or disassembler, or interpreter. For the CLR is all you need, If you try 2 map it you will go mad
3 – Thou shall not blame me for your errors of logic. Nor will you blame the build system. M$ Hath given you all that you need to deliver.
4 – Remember the Beer O’Clock. For labouring over code forth to long will cause you to overlook your own stupidity.
5 – Honor your team lead. For it is his ass that will beith on the line when your “I had a bad day” code gets into the release.
6 – You shall not murder. Except where a person usith an abbreviated type in the nameth of a variable. ie bIsItNew. Or usith an empty catch
7 – Thou shall not combine multiple frameworks that perform the same function. Nor multiple versions of the same framework.
8 – Tho shall steal, lots, where tho can. If one didn’t want there code stolen they wouldn’t have blogged it.
9 – Tho shall not use Exceptions as program flow control. Nor shall tho assume success unless it has been proven. For these are false.
10 – Properties are set in stone. Thou shall not rename, nor shall thou covet the name of another property.
These are straight from the tweets themselves, and I hope they give you many LOLs, as they certainly did for me 🙂 Happy April Fools everyone!
God I hate moving.
Seriously, nothing bugs me more than having to pick up all my crap and move it somewhere else… It just feels like time wasted.
In any case, my Net will be offline pretty soon so there will be a hiatus of posts for the time being until I can upgrade my in-laws (which is where Im moving!) internet to something respectable.
See you on the other side!
Im truly, truly looking forward to proper multi monitor support in the next version of Visual Studio. Quite a few developers these days are usually developing in multi screen environment, so its really nice to see MS take notice and actually implement another feature that is just so darn useful!
I love having more than one monitor, not just because Im a greedy so-and-so, but because I truly use the two screens in the best possible way. People that say ‘jeez, why do you need more than one monitor?’ obviously arent developers (or similar)… Even some non-devs are jumping on this bandwagon, with dedicating (for instance) one monitor to a movie/tv show, and the other to browsing the net. Its this beautifully simple example that highlights the benefits of a multi screen environment…
You can do and see more stuff..
Such a simple statement doesn’t quite capture the elegance of a multi-screen environment… its something you just have to use to understand. Once I started doing my dev work with one window dedicated to VS.NET 2008, and the other to SQL Management Studio, I felt like I was in some sort of nirvana where productivity increases and things are just plain fun. That’s right people, I have fun developing in a multi-screen environment. Am I weird for loving this so much? Maybe. But Im ok with that 🙂
I love seeing a product evolve. I remember the days of VS.NET 2001(?)… Horrible light browns and crappy pixellated icons. Seeing it evolve into the 05 version, and more recently the 08 version is a wonderful thing, and I cant wait to see what else MS has in store for Visual Studio.
In fact, what would be really nice, would be just to take a break from the .NET Framework and just focus on the IDE.
Ah, to dream 🙂
I think one of the hardest things in a support project is both ensuring consistency with your collegues when coding anything, not to mention consistency within an existing application itself.
The problem is every developer has different ideas on which way things should be done, and enforcing those standards is one of the most difficult tasks for management among a team of (usually) very independent developers.
I find it quite amazing (and not always in a good way) how often we as developers shoot ourselves in the proverbial foot in regards to these sort of things, especially when we are in a hurry, or worse, are completely convinced of our own self worth, ignoring the conventions set forth by the previous devs – simply thinking ‘I will do it a better way’. Sometimes the best way isn’t necessarily the best way…
From an application support standpoint this sort of thinking is terribly dangerous, and I can attest firsthand the sort of pain a glaring lack of consistency can cause. Unfortunately, the ‘I can do it better’ mindset usually results in a developer either overcomplicating the section, or even worse, simply getting it wrong (and in extreme circumstances an unnatural, hideous combination of both).
Coding standards are there for a reason, so the next time you are developing a section of an existing application and you are considering breaking away from consistency, just don’t. Have a serious think about what you are doing and quite possibly how your changes might affect other parts of the application, not to mention your collegues on the front line, battling the already existing consistency break-aways from devs beforehand.
After all, you don’t want to give anyone a stomach ulcer from dealing with your code…
Try, try again.
My third attempt at a blog. The first is doing ok, however my second just didn’t quite gel with me. Something about the title wasn’t sitting right so I decided to start another… Pending Tech. Anyone that works with me knows what this means, but for those that don’t (ie most people) it’s a reference to a fake account on our bug tracking software, pending technical. It’s essentially the queue where our technical tasks sit waiting for us to pick off.
This served as the inspiration for this tech oriented blog and it struck me how much this truly does describe the life of a dev. Our entire careers are essentially one long string of pending technical tasks just waiting to be solved.
So I hope you, the reader, stays with me on this journey of writing… I will be sticking this one out to the very end.