October 2008 Archives

I'm at Microsoft's Professional Developer's Conference (PDC) in Los Angeles, where we've heard a ton of stuff about Microsoft's forthcoming technology. A lot of the press has focused on Windows 7, and that's understandable since Windows is what many of us stare all day. I've been running Windows 7 myself since Sunday, in an pre-beta build, and I'm both impressed and unimpressed.

The good bit: Windows 7 is better than Vista in every way I can think of. Even in the pre-beta, it is fast and stable. Even better, Microsoft has worked on making Windows "quieter" - reducing the number of distracting dialogs and notifications, and giving users more control over them.

Too much "toast" popping up in the system tray? Just choose "Customize", and you can turn off notifications from applets that are annoying. Too many prompts from Vista's User Account Control, the thing that flashes the screen and asks, "Did you really want to do that"? Now there's a simple slider that lets you minimize the prompts. Provided that you avoid the lowest level, security is not much compromised.

There are other user interface changes, but the nagging question is whether Windows 7 really merits a full new version number. In fact, Microsoft says there are no core architectural changes, which is great for driver and application compatibility, but reinforces the impression that this is just Vista done right.

The biggest innovation (if you have never seen an iPhone) is the multi-touch control, which lets you use your fingers instead of the mouse. You can scroll windows with a flick of the wrist, and pinch the screen to zoom or rotate what you see. Impressive; but whereas this works well on the iPhone which is designed from scratch with this in mind, there are a couple of problems applying it to Windows. First, most of use don't have touch screens, and while that might change, it's also possible that the technology will go the same way as the current Tablet PC, into a small niche. Second, how many application developers will make the effort to support touch properly? Watch this space; but I guess it is possible that mouse and keyboard will remain by far the most common way to control Windows.

The more interesting themes at PDC are outside Windows itself. There's cloud computing, there's Visual Studio 2010, there's news on the future of C#, which as its architect Anders Hejlsberg pointed out, is now a decade old, and plenty more. I'll post separately on some of these topics.

Nevertheless, Windows 7 will be a welcome upgrade when it comes. Which is when? Microsoft won't tell, but I'm guessing we may have it in our hands by this time next year, probably earlier. OEM vendors will want it for the Autumn. To hit that date, Microsoft will need to be complete the OS by the summer. Given the lack of major changes under the hood, that strikes me as plausible.

Check out Visualcv.com. (I have no affiliation with the site.) Would you benefit from being able to show your portfolio of work? Louise Kursmark of Blue Sky Resumes even has a page. If I ever get out from under, I'll make a resume for myself and you can critique it.
A job search is a project. It has a start (when you decide to look for a job), and an end (your first day at your new job). So, manage it like it's a project.

Here are things you might do:
  1. Give yourself an iteration length. I find that timeboxes help me focus my work, and they will help you too. If you feel overwhelmed, make a list of the tasks or accomplishments you want to complete in a timebox, such as one or two weeks. Now, you can go ahead and do those tasks.
  2. Know what tasks you've accomplished and what you still have left to do. If you thought you would send out 20 resumes and you did, celebrate that. This means you need to track your work in some way. Use a spreadsheet or stickies on the wall, something that helps you see accomplished work.
  3. Ask for a review. Just as you would ask for a review of your technical work, ask someone to review your resume, and maybe even your cover letter, if you have common pieces of your cover letter for multiple positions.
  4. If you ask every potential employer some common questions, write them down, so you have them available to you. This is like the checklists or standard things you do in a software project.
  5. Know when to stop with a particular position. You'll send a bunch of resumes that may not even be answered. Decide how many times you might inquire about your resume. Stop after that number.
  6. Make sure you write thank you notes after an interview.
  7. If you have an extended job search, consider a retrospective every few weeks to see if you could try anything different in your search.
Once you've landed a job and you start, your job-finding project is over. Put away all the in-process work and celebrate the end of the project.
Being stuck in a dead-end career is never any fun - and IT is laden with ample opportunity for stagnation. Here are a few situations that your career could be at a standstill - if any of these are familiar then you might like to consider a change!

Pittance-Grade General Purpose IT Dogsbody

You work for a small company; the IT team comprises of you, and maybe a couple of others. You are expected to do everything from desktop support through designing the company's website to administering the servers. Despite this responsibility you aren't given much respect - just an endless string of inane IT-related odd jobs.

You are paid less than most of the other staff at the company - but this is one of your first jobs, you're young and it's a good chance to hone your general-purpose IT skills before you finally hand in your notice and go for a job that values your technical ability (in theory, at least).

Inept Corporate Developer

Inept is probably a little cruel, but the corporate development environment can certain conceal a certain degree of incompetence. In a world where performance is dictated by sheer volume of code, rather than quality, the subpar programmer can survive - even thrive if they possess the sufficient skills in the blaggard department.

There is the danger for any developer caught up in the corporate world to get complacent - but it's only really dangerous when you don't realise it. If you keep yourself aware of the outside world (at least as far as IT is concerned), keep your skills keen and keep innovating, you might just be alright.

Technical Middle Management

You're in charge of a small team, tucked away in an office somewhere, churning out an endless string of meaningless projects to keep the higher-ups happy: The life of such a middle manager is about as mundane as it gets. Once upon a time you were a developer, but now you spend most of your time in meetings and conference calls in a boring and repetitive cycle ad infinitum.

The endless string of work you'll be mired in will eventually wear you down, and if you don't make a break for it you might be stuck in middle-management limbo forever. Just remember: it's never too late to make a break for the next rung up the ladder - perhaps in your next position you won't just be another cog in the machine?

Serial Freelancer

Always busy, the serial freelancer takes on a never ending cascade of minor tasks in order to pay the bills. Never seeming to mind that they're missing out on more lucrative jobs, they're happy to keep on churning through site after site for small businesses and individuals alike.

Unfortunately such small jobs may mean such a freelancer becomes firmly lodged in the same position, always busy but never bringing in sufficient profit to grow. For all the effort in the world, barely paying the mortgage doesn't seem worth it. Perhaps joining an agency or forming a partnership with another like-minded freelancer might enable you to tackle more interesting projects?

Legacy Architecture Dinosaur

So you've stuck around in the same position for a few years, and you know how things work. In fact, you're the only person who does. The company depends on your intimate knowledge of legacy code and systems in order to keep things ticking over. Never mind the fact that your skills are outdated, you've a comfortable position (which is potentially well paid, for fear that you'll leave and take your irreplaceable knowledge with you).

Being the dinosaur in a company is a dead end, perhaps - but it can pay well. If you can put up with incessant maintenance on all sorts of insignificant systems, and cope with being perpetually burnt out, then legacy maintenance could be well suited to you.

On the other hand, perhaps it's time to dig yourself out of that rut? A new challenge is a great way to reinvigorate a career, and to stave off burnout. We might all feel like we're in a dead end from time to time - it's unavoidable for all but the most  fortunate - but if your working life is a perpetual drag, a shift in your career could put you on the right track again.

It's hard not to love PHP: fast, powerful, and useful for anything from quick web scripts to major applications. The trouble is, PHP is just too forgiving for my taste. I've been working with PHP recently and occasionally made some silly errors (my excuse: it was late). I mostly work in other languages, so from time to time I would forget that in PHP variables all begin with a $ character. In other words, I wrote code like this:

$err = 0;

if (err)

{

     print("<b>No match with this username and password. Please try again.</b>");

}

Unfortunately for me, the code ran fine. PHP sees err as an undefined constant which it assumes has a string value of 'err', so the if condition passes. For those used to strongly-typed languages such as C,Java or C#, this kind of error is unexpected, as in those languages the equivalent code will not even compile. Silent errors are particularly dangerous, since they are more likely to make it into production code with possibly calamitous consequences.

I guess the solution is not to make errors like that; but if you are like me, anything the tools can do to help catch errors is welcome. One possibility is to change the error_reporting value in php.ini. If you set it to a strict setting like this:

error_reporting  =  E_ALL | E_STRICT

then PHP will report likely problems in a manner that even a tired programmer will notice:

php_err.gif

Check out the comments in php.ini for a description of the options. You would likely only use a strict setting like this in your development environment, not in production.

A snag with this approach is that many PHP libraries out there do not expect such a strict setting and will throw up all sorts of warnings. It wasn't a problem for me, as on this occasion all the code was mine.

As an aside, I've enjoyed working with PHP. I used to find that it almost encouraged spaghetti code, but the object-orientation introduced in PHP 5.0 has made it easier to structure applications in a way that I like. I've also started using the PHP Development Tools (PDT) in Eclipse. If you use this together with an instant PHP environment such as XAMPP, it is easy to set up a desktop for PHP development with luxuries like syntax highlighting, code-completion, and step-through debugging. Taking all these things together, I've found that most of my objections to using PHP no longer apply.

4-layout-and-margins.png












Layout & Margins

Keep your margins generous. There's nothing worse than too much information crammed into a small space - long line lengths will hamper readability. It is best to have ample space on all sides, with the bottom margin generally being the largest.

If in doubt, keep the default. In most situations, you'll want to preserve the default margin settings. In most applications the default margin settings will be optimal for the paper size you specify. 

Consider columns for presentation. Certain sections of your CV, such as your work or education history, will benefit from a columnar layout. Doing so can provide a more logical, yet compact approach. Avoid splitting long paragraphs over columns - keep columns for summarised information, and stick to paragraphs for longer text.

Keep spacing between elements - particularly between sections where you've used a different layout (i.e. the transition from columns to paragraphed text). Whitespace helps keep the distinction between different sections, and is particular important if you're varying the layout style.


5-tools.png












Tools

The tools you use will reflect in the final output and format of your CV. Much will depend on which tools you have available, but it's good to be aware of the alternatives.

Microsoft Word

The default choice for most people. Indeed, in some cases your CV may be required to be in Word format - in such a case you have little choice but to endure Word.

Word does benefit from its availability and relative ease of use - but in terms of flexibility and the level of control it gives over layout, Word does suffer when compared to more design-focused packages.

Note that using digital word documents will restrict the fonts you can use to all but the default - a problem if you elect to use a custom font.

Open Office

For those on a budget, Open Office is a good choice as a Word alternative. It boasts many of the same features, and a certain degree of compatibility with Word documents - but suffers in the same respects as Word with regard to embedded font support and flexibility over layout.

LaTeX

Not the natural rubber, but rather a very powerful typesetting engine that has enduring popularity within academic and technical writing circles. LaTeX is capable of handling all the details of perfect typesetting for you - but it isn't WSYWIG, and has a relatively steep learning curve.

You can create very attractive PDF files through LaTeX though - and while it isn't entirely suited to CV generation in its default, non-enhanced form, there are a number of macros and templates available that help it tackle the task of CV markup.

InDesign / Quark Xpress

As far as design control is concerned, there are no better options than InDesign (ideally) or Quark Xpress (less so). Both are used in professional page layout situations, and their power with regard to layout is second to none.

If you require custom fonts, and the ability to control miniscule typographical details (kerning, line heights and sizes accurate to fractions of a point) - then the power of such layout packages provides exactly what you need.

Again, there is quite a learning curve - but if you put in the effort to become good with InDesign or similar, there really are no limits to the layouts you can pull off.


6-emphasis.png












Emphasis

Your CV cannot comprise of two sides plain, unadorned text - you need to break a potential essay into easily digestible chunks. Careful use of headings, breaks and other tricks can help break up a wall of text into a beautiful hierarchy of naturally presented information.

A larger type size is the perfect way to draw the reader's eye to headings - and coupled with a judicious amount of spacing will serve to break the document in a pleasing fashion. It's best not to use too large a font, however - just a few points more will suffice. If your body text is 8 or 10pt, your headings should be somewhere about 16pt in size - no more than double the size of your body text.

Underlines and outlines can also help - if used judiciously. I'd probably recommend against using text underlines in most circumstances (italics is best for emphasis), but a page rule (a line across the page) can make for an effective page break, particularly for a major section break or following columnar or tabular data.

Bold and italic are also two very important tools in your emphatic arsenal - headings should be bold where suitable, and certain passages in text can be highlighted in bold. Italics serve less as a highlight and more as a softer emphasis - for instance, in cases where a certain differentiation from the body text is required but not to the degree that bold would provide.

Avoid colour emphasis. For many of the reasons that I mentioned in the last post regarding the usage of colour - notably reproduction difficulty - but also for issues of readability and a lack of convention - colour has never historically been a source of emphasis in text, and today colour tends to be used for interactive elements (i.e. hyperlinks in web documents) rather than to provide an accent.

As with so many aspects of CV design, the trick is to be conservative - black and white trumps colour, simpler layouts and more compact structure are best, and classical typefaces are the ones to stick to. There's really no reason to attempt anything too avant-garde, when the basics are really all you need - get the basics right and you'll stand out more than you might otherwise suspect.



You've encountered a recruiter or the hiring manager. He says, "Come on in for an interview." But maybe you've got a lot of experience or you've met a number of people who don't share your vocabulary about the job you're looking for. Somehow, you want to make sure the hiring manager's expectations are similar to yours. A phone screen would solve this problem. But, how do you ask?

I recommend being truthful. Say, "I have a lot of experience, and want to make sure this job is what I think it is, and that our salary expectations are similar." If the manager asks about your salary first, explain that you need to know about the job first to make sure you are valuable enough for him to consider you. You are being honest, and that remark postpones the salary discussion.

Here are questions you might consider asking:
1.    Tell me about the job.
2.    Did the previous person leave? Do you know why?
3.    Give me an example of a really great challenge in this role.
4.    What would a successful candidate look like?
5.    What's the normal salary range for this job?
You don't need a lot of questions, but you do need a few.

If the hiring manager doesn't want to phone screen you, that's data. Why would the hiring manager waste his, his teams or your time if there's not a good match?

The most striking talk in last week's Future of Web Apps conference in London (FOWA) was from Sun's Director of Web Technologies Tim Bray, well-known as a co-inventor of XML. On a day when the world's stock markets were in sharp decline, he tore up his talk and spoke instead on how developers can survive the coming recession.

His recipe for survival is as follows:

  • Go Agile. The Agile development methodology is flexible, delivers high-priority features quickly, and doesn't lock companies into long projects that only yield returns at the end.
  • Use open source:

"It's got to be very cheap to deploy technology. In practical terms, that means open source software. I do not see much of a future for Enterprise software."

said Bray. I believe he overstates the case. Companies are not going to make major platform shifts because money is tight; they are more likely to play safe and stick with what they use now. Nevertheless, if you can choose between free and expensive, free is pretty attractive.

  • Go to the cloud:

"The business benefits of going into the cloud, you only have to pay a little at the beginning, you don't pay anything serious until you see benefits, are going to look overwhelming."

The snag here is that like the rest of us, Bray hasn't figured out which cloud to go to, and is particularly wary of lock-in. Still, utility computing has obvious cost-cutting potential.

  • Lose your programming prejudices. "Stop believing in programming religions," said Bray. I reckon this is his most important point, and relates directly to the others he made. In a downturn it pays to be pragmatic. Developers willing to get out of their comfort zone and try something different for the benefit of their customers will have more opportunities as firms cut back.

What if things get really bleak and a lot of us have time on our hands? Well, at least it is an opportunity for Java developers to learn PHP, or vice versa. Further, as Bray observed at FOWA, getting stuck into an open source project is a great way both to learn new skills and also to build your professional reputation. Never mind the CV; the first thing he does when evaluating a job application is a Google search.

Nobody knows how severe the downturn will be; Bray thinks it will be grim but admits he could be wrong. What is certain though is that the world will still need software development skills, and that the Internet will continue increasing in importance. If this is where your skills lie, that has to be a mitigating factor.

 

You can see highlights from Bray's talk here; and summarized on his blog.
1-typefaces.png














Typeface Selection

Visually, there's not much exciting you can do with what is essentially a few pages of text - but what you can ensure with your CV is that you at least get the basics right.

The typeface you choose is a good way to distinguish your CV visually - but choosing the right type is a task best approached conservatively, as some fonts may be seen as amateurish, unpleasant or just plain unreadable. As with so many aspects of CV design, the trick is to be quite conservative in your selection - but not to settle for the same as everybody else.

The Bad

Times New Roman - the default choice for most CVs. A bit of a workhorse, reliable, inoffensive - and looks just like the rest of the pile. If you want to stand out, at least in terms of your CV's presentation - then Times New Roman is not for you.

Arial - Times New Roman's san serif cousin, and nearly as prevalent. Designed as a cheap clone of Helvetica, and it shows. The same applies to Verdana - you are better off choosing an alternative, altogether less ubiquitous, san serif typeface.

Comic Sans
- Great for getting that comic book effect - but for a prospective employer? Avoid at all costs.

Be wary of - Any font that came preinstalled with your computer (Trebuchet, Tahoma, et al.), as the odds are that everyone else will be using it. Also, steer clear of any novelty fonts, handwritten effects, or anything you could describe as 'funky'.

Simple is always better.

The Good

Helvetica - The classic modernist san-serif font. If you want the clean look of no serifs and simple letterforms, you can't go wrong with Helvetica. Also good, and in a similar san serif vein: Frutiger, Franklin Gothic and Univers.

Garamond - An 'old style' serif typeface for an altogether more classical look. Other good serif fonts include Caslon, Palatino, and Baskerville - and there are many more classical serifed fonts to choose from.

Summary: Default fonts bad. Classical, simple, print ready fonts good.

2-terseness.png













Keeping it short and sweet: Terseness

Putting together a novel-length CV benefits no-one; it will take you longer to put together, and will take prospective employers longer to read through - assuming they bother at all.

The golden rule is to keep things as brief and as information-dense as possible; I find most careers can be covered quite comprehensively in 2 sides of A4 paper. With a longer CV you will find that employers are less keen to go through it in as much detail, so some of your selling points may simply be skipped over.

Don't be tempted to reduce page margins and font sizes just to squeeze more in. Try to keep your minimum font size to around 10pt if you can, and your page margins should be left near as the default. Small text or longer line lengths will make your CV harder to read.

If you're really struggling to fit everything in two pages or less, you might want to consider restructuring some sections so that they are more compact, or better still excising parts which are less relevant or which do not contribute as much as the more important sections.

In paring down your CV you will ensure that what is left highlights your strongest aspects - it is better to have a few condensed paragraphs regarding your finest skills, that two or three pages detailing every aspect of your career experience. This distillation of your life into a few short words is tough, but will make for a stronger representation.

3-colour.png













Adding an accent: Use of Colour

The simplest rule of colour use within CV design to follow is this: don't use any. Plain black and white throughout is the safest (and easiest) bet. This is particularly important if you are sending your CV as a digital file - with no control over printing there's no telling how it will look.

You may be tempted to add a splash of colour to add an edge of individuality - this can work, but simple monochrome does have a few distribution advantages - between your digital file and your interviewer there could be any number of fax machines, photocopiers, and monochrome-only printers. A design that works in just two colours is essential.

If you are submitting a CV directly on paper
, then you can probably consider certain options that are not afforded to digital files - selecting a quality paper can add a certain finesse to the impact. Anything above the bog standard 80gsm white laser paper will make a difference, and you could even consider a lightly coloured paper (anything from ivory to cream - fluorescent yellow might not be the most subtle idea) to help make your CV stand out in the pile.

Generally speaking, though - unless you have a very good reason to use multiple colours within your CV, then you want to stick to the basics. White paper, black text - and nothing else.

If you have need to include work examples, screenshots or similar - bundle them separately as a portfolio and leave your CV as plain as possible.

If you've been working for a while, you have a number of people who could be references for you: colleagues, project managers, managers. All of these are people who know what you've done.

So, how do you choose references?


  1. Make sure your reference can talk on the phone. If you choose a reference who hates talking on the phone, you are not going to get a good reference. It doesn't matter what they say, if they 'erm' and 'err' and sound slow to respond, you will not get the reference you need.
  2. Choose someone who can talk about the value of your work. If you choose someone who says, "Oh, yes, Tim worked here," and stops, what good is that? Even saying, "Tim was our release engineer," does not show value. Contrast that to this statement: "Tim worked on my project for 6 months. In that time, he showed me the value of continuous integration, and helped influence all the other developers into really doing continuous integration. I don't know how we would have finished the project when we did without his nudging and cajoling us into it." 
  3. Choose some colleagues, and at least one manager. If you've had multiple jobs, ask multiple colleagues and multiple managers. Two or three managers and three colleagues is a good number.
If you haven't worked in the field long enough to have that many references, ask your managers wherever you worked before you got into the field. Did you work in a supermarket, or a retail store? Those managers are good choices. Did you mow lawns or shovel sidewalks? Ask those neighbors. Ask them to emphasise your reliability and value. (Yes, use those words.)

All of these ideas require that you stay in touch with people at previous jobs. You don't have to have long conversations every week. Touch base with these folks every 3-6 months, just so they don't forget you. You can even remind them you're staying in touch because you enjoyed working with them and that they'd agreed in the past to be a reference.

Remember, these people are doing you a favour. Choose them carefully, prepare them, and don't forget to thank them.

The recent Linux plumbers conference included a session on getting Linux to boot in 5 seconds (see also the write-up here). It was great to see the report, because performance gets far too little attention. Most of the business world runs Windows rather than Linux, at least on the desktop, and in most respects Windows seems slower than Linux on the same hardware. I would give anything to have Vista boot in 5 seconds on my laptop. In fact, the main problem with Windows Vista is not driver compatibility, or annoying security prompts; it's that little spinning bagel that appears only too often. When I start Microsoft Outlook 2007, I brace myself for an extended pause while it starts up, during which the whole system becomes unresponsive. By contrast, I still enjoy using an ancient version of Paint Shop Pro for working with images, even though I have Adobe PhotoShop installed, because it starts in a blink and does exactly what I need.

The old joke is that what Intel giveth, Microsoft taketh away; but it is not a joke any more. Time spent waiting while a computer boots, or reboots to apply an update, or sits there doing who-knows-what in one of those sulky pauses, is time when we could be getting on with our work. Those delays cost real money, every day. They are also aggravating, sometimes not only for the immediate user. If I am on the telephone, for example, Outlook's slowness is not only a problem for me, but also for someone else trying to arrange a meeting.

I suspect that Microsoft made two wrong assumptions. First, that hardware improvements would remove performance issues. Fast hardware does mitigates problems, but really only disguises rather than fixes slow code. Further, the popularity of mini-laptops and other low-power devices means that fast hardware cannot be assumed. Second, Microsoft intended Vista to be always on, relying on sleep and resume instead of fast start-up. Unfortunately sleep and resume tends to be unreliable, and many Windows updates still require a system restart.

The same factors apply to web sites and web applications. One of the things that keeps people going back to Google is the consistently excellent performance of its site, especially in search. I am convinced that this has a subliminal impact, and that we instinctively prefer the sites that are more responsive. PHP inventor Rasmus Lerdorf speaks frequently about performance - last August at Drupalcon, for example - and is intolerant of slow applications; it would be great if more industry leaders shared his attitude.

There is little we can do about Windows boot times - well, apart from happy hours spent messing with msconfig, the System Configuration Utility - but that does not apply to our own development work. A project is not really done until the performance is satisfactory, even if all the other features work as specified. Performance is easy to measure, and there are plenty of profiling tools that show up bottlenecks in the code; tools like Rational PurifyPlus, Intel's VTune, or for .NET Redgate ANTS; there are also free tools available. The trick is to focus attention on what is too slow, rather than wasting time on what is already fast enough. It is rewarding work, since applications that perform well are a delight to use. Performance goes hand-in-hand with design, about which I posted a couple of weeks ago; they are both essential parts of the user experience, and a good user experience means a high level of satisfaction. There's nothing better for keeping customers coming back for more.

Technology moves at a fast pace. This fact is painfully apparent to anyone who's worked with it for more than a few years - both hardware and software evolve at an incredible rate, as do the skills required to use them. The tools we were using a decade ago are long obsolete, and even the languages we use evolve and are eventually replaced.

You don't necessarily need to learn whole new languages to keep up-to-date - sometimes just keeping abreast of language and framework revisions can help. Frameworks such as .NET are actively updated and refreshed, leading to the introduction of new language features (as with .NET 3.5), and new elements within the framework itself. Regardless of your chosen tools, keeping up with current trends and revisions is definitely a worthwhile undertaking.

The trick is, then, to make sure you are aware of any new developments - and this means you'll have to spend some time keeping track of what's going on in the world of programming.

Blogs and other technically-oriented sites are a good way of doing this - from the official development blogs to the unofficial commentary, ensuring you have a few relevant RSS feeds in your reader is an easy way to keep up with changes.

Getting to grips with something new is an altogether different challenge to that of simply being aware of changes. Reading blogs and news articles will only get you so far - if you want to learn a new concept, or language - then you'll have to dive in and get your hands dirty.

There is a wealth of information on new technologies to be found in books - for every aspect of computer science, for every language - you can be sure to find some resource available in print. I have a healthy library of technical books over a wide gamut of topics, although I must confess I haven't had the time to read all of them from cover-to-cover - but those that I have read have served me well.

As comprehensive as a book can be, technical literature can be a little dry so you need to be disciplined in order to get through them. Reading (even just skimming) a chapter a night is a good way of introducing yourself to a topic, and needn't take up too much time. As you gain a familiarity with the topic you can revisit the book for a more in-depth look at a particular subject, using the book as a specific reference rather than an introductory tome.

You don't need to spend money on books if you're on a budget, either - there is much in the way of reference material and tutorials available online, if you can find them. If you couple this use of reference books with judicious use of online tutorials, and getting hands-on with actual usage of new technology, then you should fare much better in terms of keeping up.

Working in technology requires lifelong learning - there will always be new versions of software, new platforms and new languages to replace the old. Very few developers will have the luxury of working with the same systems for a long period of time - while those maintaining legacy systems or content with older languages may be in a relatively unchanging environment, for most of us there is the challenge of keeping out skills current.

It's tough - particularly if you spend your time developing for a particular platform rather than learning the next, but it's important to keep yourself employable in the future. If you're in a comfortable development position for a long period of time, you may be tempted to just coast along with your current skills, but should you ever find yourself looking for work, you could be at a disadvantage.

I've been a reference for many peers, previous employees, previous managers, and even clients. It's almost always my pleasure. But let me tell you about a time it wasn't.

I'd been managing a relatively junior employee who wasn't quite clear on the concept of coming into work on time. He didn't like deadlines--even the ones he gave himself. He was a little spacey, and would go off on tangential work that wasn't part of his deliverables. When he did the work I asked him to do, he was great. It's just that he did that so infrequently, he was a problem.

I'd inherited him. (Although, that was early enough in my management career, I could have hired him. I might not have known how to differentiate his talk and his actual work.) I worked with him over the course of three months, giving him feedback, and coaching him on how to deliver work on time, or at least show me progress.

Nothing worked. I asked him to find a new job. He did, in about two weeks. Ah, big sigh of relief.

About a month later, I received a call from his current manager. Could he have a reference? I asked the manager if this guy was working there. He was. Why did he want a reference from me? "Because I want to know if his behaviour now is the same as it was when he worked for you."

Oh boy. I answered the manager's questions truthfully, and added, "he's not a bad guy, he was just too much work for me to manage. If you could pair him up with someone, maybe you can straighten him out."  The manager did pair him up with a more senior person and they worked well together for about three years.

How do I know it was three years? Because my ex-employee gave my name as a reference. A potential manager called and asked me for one. I explained that I was uncomfortable giving a reference when he hadn't worked for him for over three years. "Well, you're one of his references." I replied, "I would think people would grow and expand their skills in three years, and I can't comment on those." "It's ok. Let me ask you questions." I reluctantly agreed.

Of course, what did he ask me about? Delivering completed work on time. How he worked with other people. How quickly he learned the system. How well he stayed with the task at hand. I was uncomfortable, to say the least.

If you don't reconnect with your references, you can't know what they're going to say. If you don't ask them what they're going to say, you might well be surprised. You don't have to be fired to worry about a reference from a previous manager.

Never give a reference without checking with the person first. If you're looking for a new job, talk to your references. Call them, email them if you must, but contact them and ask them what they would say about you. Make sure that the answer to "Would you hire this person again?" is an unqualified yes. If your reference has to qualify that answer in any way, discover why.

If you don't know what your references are saying about you, you are sabotaging your job search. Don't do that! Instead, reach out and connect with your references. They will be impressed. They will think more fondly and respectfully of you. And, you'll know what they are going to say. Everyone wins.

Current Vacancies from CWJobs

(* Required field)










Preferred format