Knowing enough to get the job and staying afloat : learning by porting

Do you have all the skills you need to change jobs? While you’re busy working with one technology or managing a project, new technologies pop up.  Even if you make an effort to stay in touch, chances are you don’t get trained for the next job; only for your current one. So even if you do have a ton of experience, you might end up starting from the bottom again.

Job offers often repeat the same patterns of required knowledge and experience. In Québec, job offers usually require you to have 2 years of experience in a specific programming language or technology for a full-time job. A position for an experienced software developer requires at least 4 years, in multiple technologies, and expert positions very often require 10 years of experience in a specific technology, even if it has not been widely used for that long.

I believe that sometimes you can replace depth of knowledge with breadth. For example, if you want to apply for a C# job without work experience in it but you have worked with Java and other OO languages, an employer could still pay attention to your resume. Can you learn enough on your own qualify for a job requiring 2 or 4 years of experience? I’m leaving out ‘expert’ level; becoming an expert is a very different process than getting to a testable level of proficiency. To become an expert you need to  spend more time ‘hacking X’ than ‘using X’. It means spending time investigating a technology, not merely using it. So the actual number of years of ‘usage’ are not as relevant as being able to show you have investigated, reported and tried to improve on various parts of a technology. If you are an expert in something, you know that you are,  and don’t need my opinion.

I’ve spent some time hiring software developers;  I know that if some of the skills are missing or incomplete, I will still consider a candidate that can demonstrate a good spread of skills, because he or she has the capacity to learn.  How fast? What is the real difference between 2 years of experience and 4?  The important thing is to be able to show competence. Can you fill in the blanks in your knowledge quickly? Can you think your way through a problem or interview question?

The difference between a craftsman and a theoretician is practice. So you need to gain experience in new technologies quickly. What is the most efficient way? You can pay for certifications and seminars, but if you’re like me you’re an autodidact who doesn’t enjoy spending thousands of dollars and weekends when all you really want is to download some software package, Google for docs and learn at your own pace and time.  What to do? Pick a problem that uses one of the technologies you want to add to your resume, and come up with a project to resolve it. Design and implement it with the new technology. When that is done, solve the same problem with another technology.  Repeat till you’re confident you can show you won’t need 3 months to get to work in a potential employer’s environment.

For example I’ve designed a method for tracking requirements. The project isn’t the important thing; identifying what technologies I want to add to my resume are what matter.  I had never used C# or .Net in a project, so once I’m done designing the architecture and database, I code it in C#.  I can learn the basics of the language and the core libraries. Once I’m happy with the results, I can start over with J2EE.  The second run in the second language is much faster since I don’t have to redesign the software & database and the design bugs have been worked out. Then I can try again in Ruby, Python, and so Forth.  For a low time cost I can add learn new skills.  It may be a bit boring, but it’s hardly redundant and wasted time.

If this is obvious or common sense it should be easy to test. I’ve actually coded the above project in C#. I’ve learned a few things specific to .Net. Setting up and learning how to configure web.config, using code-behind and file layout correctly and understanding very obscure and unhelpful error messages took the most time; figuring out the libraries, running queries and using controls was very easy using Visual Studio. I plan to reprogram the same thing using J2EE and Eclipse, I won’t have to focus at all on the design, only on learning the differences in coding and libraries.  I will note how long it takes to do the second versions and the following ones.  Who knows, I might change my thinking of how quick learning a new technology and becoming proficient with it can be much, much faster than ‘common knowledge’. Let’s not forget that most studies on this date from pre-Internet days where programmers might expect to use the same programming languages for a very long time.

I’ll post the results as soon as I have anything interesting to report.  If you have any questions or suggestions please add your comments, I am eager to hear from you!

Nerd et Non-nerd sont en bateau…

Il y’a quelques semaines, j’ai été de façon virtuelle à un salon de l’emploi sur les nouvelles technologies; avec web cam, clavardage et contacts avec les employeurs potentiels. Je tais le nom du salon pas parce que les journalistes qui ont couvert l’évènement ont à avoir honte de quoi que ce soit, mais simplement parce que leur enthousiasme dépasse, et de loin, la réalité de la chose. L’enthousiasme est tel, en fait, qu’un salon entièrement virtuel est en préparation, Technofil2011. Nul doute que l’idée est intéressante, mais est-ce bien utile?

Pour une journée qui a accueillie plus de mille candidats, il y eut un total d’une trentaine de personnes présentes dans le salon virtuel.  3% est un résultat admirable, sauf que  seulement 4 personnes ont fait des échanges par clavardage, en m’incluant. Est-ce que les semaines de publicité et de préparations en valent la peine pour communiquer avec seulement 0.3% des chercheurs d’emplois de votre domaine?

Et sur ce nombre, quelle est leur motivation pour ne pas se déplacer? On peut imaginer que certains utilisent en secret la connexion réseau de leurs employeurs afin de changer d’emploi. D’autres auront des capacités de mouvement limitées. Mais comment un employeur peut-il vraiment être intéressé par un candidat s’il est trop timide pour sortir de chez lui? Trouver un contractuel par Internet n’est pas trop gênant, surtout pour du télétravail, mais vous devez rencontrer la personne en face-à-face avant de penser l’intégrer dans votre équipe permanente. Si vous voulez plus d’information sur un candidat, pourquoi ne pas l’appeler? Si votre problème est d’avoir trop de candidats (beau problème!), n’est-ce pas plus efficace d’avoir un seul formulaire en ligne qu’ils peuvent remplir à volonté?

Et est-ce que les employeurs vont vraiment utiliser un salon virtuel comme outil? Au salon tous les informaticiens ont remarqués le dé-balancement entre le nombre d’emplois en Génie et ceux en Technologie de l’Information, environs 1 emploi pour informaticien pour chaque tranche de 20 emplois. On nous explique cette différence par le fait que les Informaticiens sont des Nerds et donc timides. Je pense que la vraie explication est dans la motivation des employeurs d’être présents dans le salon. Les ressources humaines préfèrent recevoir un CV par courriel pour filtrer les candidats que les rencontrer en personne. Il n’est pas rare dans une foire de rencontrer des entreprises qui nous réfèrent à leur sites Web plutôt que de faire une entrevue impromptue. Cela ressembles plus à une opération de relations publiques que de recrutement.

Ceux qui ont vraiment besoin d’être vus sont les PMEs car tous connaissent les CGI, Loto-Québec, STM et autres gros employeurs de Montréal. Les PMEs ont aussi des besoins de ressources humaines et pourtant ne sont pratiquement pas représentées dans ces salons. Probablement car y avoir une présence est une dépense qu’ils ne peuvent pas se permettre; demander au directeur du développement de passer deux jours hors du bureau? Impossible!

Bref, un salon de l’emploi virtuel peut être intéressant pour des PMEs en Informatique, mais les sites d’emploi n’offrent pas de foire virtuelle. Pourquoi? Le CV est équivalent à une demande de ‘chat’, à la discrétion de l’employeur. Y’a t’il des avantages a un système en direct? Je n’en vois aucun.

C’est amusant de voir que des décisions sont prises basées sur l’image de marque des Nerds, ou du moins de la perception incorrecte des gens envers eux. Ça veut peut-être dire que les Nerds sont maintenant un groupe démographique à prendre en compte, encore bien incompris. “Ils sont timides, ils n’aiment pas les relations sociales, vite! Du virtuel!”. Pourtant l’Informatique moderne n’existerait pas si les hackers et nerds n’étaient pas fondamentalement grégaires… entre eux.

Peut-être espèrent-ils créer un nouveau marché de l’emploi en ligne, mais je ne vois pas de futur pour cette idée. Avez vous une vision que je n’ai pas?

Cependant si quelqu’un veut m’offrir un emploi à temps plein pour chatter avec des nerds de leur passions et de nouvelles technologies, bien assis devant mon ordi, laissez-moi un message!