Archive for the 'Programação' Category


Curiosidades, Linux, Programação No Comments »

…profissional foi a expressão que encontrei que melhor descreve aquilo que senti hoje no emprego. Há dois meses que dava voltas e voltas ao meu código para encontrar o erro que me impedia de progredir no projecto. Hoje finalmente descobri. Numa das If clauses perdidas no meio do código estava:

If variavel < 24

onde devia estar

If variavel < 512

Claro, assim parece muito óbvio. E eu devia ter encontrado isto há muito tempo. Mas em minha defesa, esta condição fazia parte de um bloco que não tinha sido feito por mim e que eu considerava 100% correcto.

Quando finalmente detectei o erro esta tarde, uma sensção indescritível.

Um orgasmo profissional. No entanto, contínuo a preferir o outro tipo…


Interview for a programming job

English, Programação 6 Comments »

As one might notice by the links in my blog, Jeff Atwood’s Coding Horror is one of my regulars. I have recently read two of his posts concerning job interviews for programmers. In the first one Jeff talks about simple programming problems used by some companies to filter their candidates.
He quotes two authors that had previously written about the subject.

I was incredulous when I read this observation from Reginald Braithwaite:

Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can’t write code at all. I repeat: they can’t write any code whatsoever.

The author he’s referring to is Imran, who is evidently turning away lots of programmers who can’t write a simple program:

After a fair bit of trial and error I’ve discovered that people who struggle to code don’t just struggle on big problems, or even smallish problems (i.e. write a implementation of a linked list). They struggle with tiny problems.

So I set out to develop questions that can identify this kind of developer and came up with a class of questions I call “FizzBuzz Questions” named after a game children often play (or are made to play) in schools in the UK. An example of a Fizz-Buzz question is the following:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

Most good programmers should be able to write out on paper a program which does this in a under a couple of minutes. Want to know something scary? The majority of comp sci graduates can’t. I’ve also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

The second post is about the phone screening process. He quotes another author who claims there are five critical subjects in wich to analyze the applicants:

In an effort to make life simpler for phone screeners, I’ve put together this list of Five Essential Questions that you need to ask during an SDE screen. They won’t guarantee that your candidate will be great, but they will help eliminate a huge number of candidates who are slipping through our process today.

1) Coding. The candidate has to write some simple code, with correct syntax, in C, C++, or Java.

2) OO design. The candidate has to define basic OO concepts, and come up with classes to model a simple problem.

3) Scripting and regexes. The candidate has to describe how to find the phone numbers in 50,000 HTML pages.

4) Data structures. The candidate has to demonstrate basic knowledge of the most common data structures.

5) Bits and bytes. The candidate has to answer simple questions about bits, bytes, and binary numbers.

Please understand: what I’m looking for here is a total vacuum in one of these areas. It’s OK if they struggle a little and then figure it out. It’s OK if they need some minor hints or prompting. I don’t mind if they’re rusty or slow. What you’re looking for is candidates who are utterly clueless, or horribly confused, about the area in question.

Further in the post, he writes some examples of what he is talking about, I vividly recomend you to go and see them.
All of this seriously scared me. Altough I’m still a young inexpirienced programmer, some of those problems I could not solve in little time. I would probably not even pass the phone screening phase. I ask: Is this hard screening process standart for all those programming job openings or the standarts in our market are lower than that? Altough in an ideal world all programming jobs would be done by good programmers, I don’t see 90% of all programmers able to pass that interview…

Note: From now on, all (well, most of it) tech-related posts will be written in english, trying to maximize the audience that way.


Testar: é importante.

Programação No Comments »

Em relação a este post: hoje de tarde, enquanto practicava um pouco de Assembly, pedi para me testarem um simples programa. Aparentemente, o caracter ‘b’ é par*. Muito atenta ao que eu escrevo linda, muito bem.


*Explicação: o programa recebia um carácter, fazendo a sua conversão para dword. Ao receber a letra ‘b’, converteu-a para o seu código ascii, 66, que ,obviamente, é par. Na realidade previ esta hipótese, mas como era um programa tão simples, apenas para me relembrar as instruções básicas de Assembly, decidi ignorar.