Ever since .NET burst onto the scene back in early 2002, Microsoft has promoted it as the primary platform for custom applications. For sure it has plenty of advantages, including automatic memory management, a modern programming language called C#, and a rich class library encompassing both Windows and Web development. The Windows Presentation Foundation, touted as the next generation of the Windows user interface, can only be programmed using .NET.
Unfortunately .NET also has downsides. The first is potentially troublesome deployment, thanks to the large runtime required. The problem has not gone away even though Windows now comes with .NET as standard, since new versions appear regularly. The second issue is performance. Although a just-in-time compiler enables .NET code to run at near-native speed, there is still a heavy memory overhead. The result is that .NET applications generally load and run more slowly than native code equivalents.
The trade-off here is that ease of programming compensates for slower performance. It's true; but not all developers realise that the choice is not only between C# and Visual Basic on the one hand, and the intricacies of Visual C++ on the other. Before turning up as Microsoft's chief architect for C#, Anders Hejlsberg worked at Borland on a language called Object Pascal and a development tool called Delphi. There is some family resemblance, particularly if you include Delphi's Visual Component Library (VCL), which wraps the Windows API with a class library that is equally as capable as the Microsoft Foundation Classes, but much easier to code against. Unlike Microsoft's .NET tools, Delphi compiles directly to native code, and it is feasible to create applications that have zero dependencies, run like lightning, and work on versions of Windows right back to 2000.
Delphi's recent history has been unsettled. Borland delivered some unsuccessful .NET editions and messed with the IDE. The Delphi side of the business was then spun off into a separate entity called CodeGear, which was recently acquired by Embarcadero, best known for database design tools such as ER Studio. Fortunately the compiler remained as good as ever, and the signs are that Delphi's new home will be good for the product. The company has just released Delphi 2009, the first version with proper support for Unicode. A companion product called C++ Builder has the same VCL, but uses C++ in place of Delphi's Pascal variant. These releases also introduce language enhancements including generics and anonymous methods.
Delphi is not the answer to every software problem, and its documentation is poor compared to what you may be used to with MSDN, but in the right context it works like magic. Aside from .NET, every corner of the Windows API is open to it, including services, native code DLLs, COM components, and fiddly software like custom actions for the Windows Installer. The Delphi IDE is once again mature. If you have ever looked with horror at the tens or hundreds of megabytes demanded by .NET for your small Windows Forms utility, or found yourself troubleshooting some obscure problem installing the .NET Framework, Delphi is well worth investigating.
Getting a job in IT is a lot more than just ticking the right skills boxes; there are a number of other assets and techniques you can bring to an interview to maximise your chances of getting the position in question. Such 'employability' is essentially a composite of your skills, your effectiveness in presenting those skills, and the manner in which you communicate.
Here I will cover five of the more important key aspects used to assess the suitability of candidates for IT roles - largely stemming both from my experience as an interviewer for technical roles, and on the other side as a interviewee.
A good education is a good start, as far as employability is concerned. A degree is not always necessary to break into an IT career, but it certainly helps - treat your degree as a foot in the door, not as a passport to an automatic career.
A key thing to remember is that your IT education does not end with the receipt of your degree - in many ways, it is just the beginning. If you wish to remain competitive, you will need to constantly improve your skills, and keep up with developments in languages or frameworks.
Do not discount additional educational routes either, in particular professional training courses. Microsoft's offerings are well known, and valuable - as are Cisco Career Certifications.
Qualifications alone will not get you a job, though - you will need to round out your education with the demonstration of a little aptitude and a willingness to continue learning.
Regardless of qualifications on paper, the breadth of experience you have will also be a major factor in your employability. A degree in database systems is one thing; ten years working as a DBA is quite another.
For university leavers, the lack of experience is a hampering factor - many job listings state that they require a certain number of years of 'professional experience', which may seem insurmountable to those who have dedicated the last three-plus years to the study of their chosen art.
If you lack the required experience, fear not - some positions will be more amenable to graduates than others - and the key thing to remember is that years of experience can be trumped with your other assets, whether it is your specific skill set, or demonstrable dedication to a field.
This is perhaps the hardest asset to attain, but confidence is a great skill to have in an interview situation. The IT world is filled with introverts, many of whom are greatly skilled, but if you cannot convey your suitability for a role your chances may be diminished.
Confidence does not mean you have to know the answer to every question - but it does mean that you should not be fazed should you come across a query in a subject with which you are unfamiliar. There is no perfect solution to dealing with unknowns, but do not let it throw you - just roll with it and steer your answer back to the areas in which you are capable.
Be wary of arrogance, too - you do not want to come across as confident to the point of rudeness. Your demeanour in interviews should be a balance between confidence, likeability, and a touch of modesty where needed.
You do not need to be fresh-faced to be enthusiastic. A passion for IT, or a specific area, is undeniably a boon in terms of getting a job.
Genuine passion for a subject usually shines in the interview - if the interviewer sees that you are willing to talk at great length about a particular subject, they will probably note that as a key interest of yours. Just make sure it is relevant to the role!
It is not just your ability to wax lyrical about a subject that will convey enthusiasm either - extra-curricular activities, such as maintaining a relevant blog on a technical subject or indulging in personal projects, will help in showing your enthusiasm and dedication to a given field.
Such relevant work is particularly suited to the next point, demonstration:
The single best thing you can bring to a job interview is a direct demonstration of your skills. You could talk about how many years experience you have with a language until you are blue in the face, but if you can demonstrate a concrete example of those skills, you will fare far better.
For certain skills, this may be tricky - but in my field (web development / design), a solid portfolio of live URLs that are demonstrable of suitable skills are invaluable. The visual aspect is important - whether it is printouts, screenshots, or live demonstrations - such assets will ably illustrate your talents, and in a much more memorable way than simply discussing such work.
During the interviews I have conducted, demonstrable ability in the form of a good portfolio has always been a good indicator of the skills of an interviewee. If you have any previous work that you are proud of, make sure you take some means of demonstrating it to the interview.
Of course, the list above is not exhaustive. In my experience, at least, the above are amongst the most important. Maximising the effectiveness of the way you communicate your skill set to an interviewer is the key to maximising your chance at a position.