| Short version: What makes a good developer? What can I do to prove that/learn if I’m a good one? (also with regard to hiring decisions) Longer version: I’ve got more than six years of experience working as a software developer now, but through my whole career I had doubts about my skill level. In a couple of places I was the only developer or the most skilled one, even though I was pretty junior then (I come from an industrial town in one of the ex-Eastern bloc countries - not the most advanced place really). I also worked in a couple of places where there were more skilled guys around, but the level of these companies was still not too high, so I knew some of the things I saw there were not actually the best practices. Finally I got a job in a place I thought was good - they are in financial industry, can afford to (and do) hire people from across the world, some of their ex-employees joined Google, so I felt pretty confident about their level. I was fired from that job a few months ago, and the whole process that led up to it was very difficult for me. The official reason was ‘not meeting expectations’, and it was implied that I’m not a good developer at all. The whole process was pretty dirty from the other side, with lack of communication, ambiguous statements that were not to be discussed and (at times) directly contradictory input. What makes me think that these problems weren’t only mine is the fact that employee turnover was high: a team of ten saw four people joining and five leaving (including all four newcomers) in about a year. I believe a good deal of personal dislike from the manager could also be present in my case, so I’m quite sceptical about the assesment - but I admit I had problems, so my professional self-esteem is still quite damaged. Now, I’m looking for a way to restore it. There are a couple of details to take into account: I was working in Western Europe, and my visa depended on my job (which made that whole thing way more important and difficult that it normally would); the country I was working in isn’t exactly the world center of software development, so I moved back to my home country to recover, but I still want to try emigrating to US/CA/UK/AU a year or two later. Another thing is that I am also changing my primary language: I was working with the corporate standard language (think C#/Java), didn’t really like the community and typical problems/jobs associated with it, and decided to move to a more ‘hacker-friendly’ language (think Perl/Python/Ruby). So my goals are as follows: personally - get experience in the new language and prove to myself that I’m a good developer; with regard to the outside world - have something to show that would make me worthy of an employment in a good company and might convince them to go through the immigration process with me. I could think of several ways to do it: - join an opensource project; - start my own project, get it running and attract users; - have some visible/measurable proof like certifications or a position in TopCoder/Project Euler; - a classic way of finding a beginner level job, learning at work and getting some recommendations there is also an option. These are the ways that I can think of, but I don’t really see the picture from the manager’s side, and I think many people here are more experienced that I am. So I’d like to ask your opinion on these options, and would also love to hear about other ones that I could’ve missed. Thanks in advance! PS There’s one more thing that’s been haunting me the whole time - I try to look at the situation and figure out who and what was wrong there. Frankly, I can see the situation in two very different ways: either I’m a whiner who just cannot face the reality, or something was really broken in the management system there (and two biggest signs that make me suspect it are high turnover and contradictory managerial input). Could you please share your impression of the situation? |
From your description, there is a good chance that your firing was at least in part due to the organizational and staffing practices at the company (your technical skills may have played some role - but are unlikely to have been the sole reason and may not have even been the primary reason). High turnover is often symptomatic of incompetence in the hiring process, poor management techniques or a poor workplace environment.
On the flip side, corporations will often be concerned with employees who "are just passing through." There's a lot of risk potential in employing a person who is actively seeking another job - particularly if they appear to be dissatisfied and use the term "hacker" and has high level access to financial software.
As for your professional self-esteem, that's all in your head not in the external world. Some things just have to be learned the hard way, and the ability to recognize which sort of organizations are a good fit - and which sorts are not - can be one of those. Certain personality types survive in corporations and banks, and other types don't. Neither group has a monopoly on technical skill or personal character.
Only you can choose to cowboy up and pursue your long term goals, which are ambitious, or not.
Good luck.