5 Answers to common (and difficult) interview questions

After several posts focused on product release, I finally have some time to write about life as a Developer, and to answer some questions asked by my (few) readers. The most common questions I receive are about job interviews. Competition from other Developers is getting higher every day, and Companies are, understandably, getting picky, looking for Professionals who can “tick all the boxes”.

The difficulty in passing an interview, however, is not just showing that you can write code. Ironically, that’s the easy part. The difficult questions come later, when the technical interview is over, and are meant to test your personality. People who spend most of their time “talking” to machines can, sometimes, have a hard time answering human-related questions, therefore it becomes vital to prepare some answers upfront. Read more

Overview of a Developer’s Career – What Software Development is not

As I mentioned in the first post, some of the people who asked me how to become a Developer gave me the impression of having the wrong expectations. To avoid disappointment, it’s a good idea to have a look at what not to expect from a career in SD.

It’s not a “get rich quick” career

IT seems has been in a state of constant growth for many years now, and it seems it’s only going to get bigger. The market offers plenty of opportunities for a skilled Developer, and, due to the high demand of such professionals, salaries are fairly high. However, you must not expect to become a millionaire. Even if you aim to become the best Developer in the world, you won’t become rich just for that.

If your main goal is making a lot of money, I’m afraid you’re on the wrong path. You should be learning business and marketing instead. In fact, the founders of Google, Facebook, Microsoft and so on were not such great Developers at all. What made them successful were excellent timing and business skills.

Of course, you can always learn those skills as well, but the hours in a day are limited and chances are that you will have to choose something to leave behind. The truth is: Software Development doesn’t bring money. Sales bring money.

It’s not always fun

There will be moments when you’ll ask yourself why you didn’t choose another job, or simply didn’t work in your parents’ farm, instead of dealing with yet one more frustrating issues. Even if you spend sleepless night to make sure everything is perfect, you’ll always have someone in the team who will screw something up. And that person may be you, since you didn’t sleep for so long. The best thing you can do is to accept that issues are normal, and be ready when they arise. Take it easy, your passion must not be a reason to destroy your health.

It’s not an easy discipline

This is probably one the reason why so many “Developers”, to put it clearly, suck. SD is complex and it requires you to have at least a basic knowledge of other fields, such as System Administration, Networking and Design. You then have to put the pieces together, and make sure they run smoothly. Even from a pure coding perspective, you have to learn best practices, know when to use them, learn how to do proper testing, and get used to the fact that you’ll work on the same thing over and over until they are complete. Finally, you have to cope with the fact that the only projects that you’ll ever close are the ones you’ll abandon. All the others will, hopefully, in constant evolution and you’ll work on them for years.

Bottom line

There would be much more to write about becoming a Developer, but I covered some of the most important points. At least, you should now be able to evaluate your priorities and see how they would fit a career in Software Development. If you think it’s your future, I hope I’ll keep having you amongst my readers and I’ll do my best to help you.

In my future posts, I’ll write about the concepts of working smartconstructive laziness and effort investment, from a Developer’s perspective. See you soon!

Overview of a Developer’s Career – What Software Development is

A demanding and rewarding career

As for all professions, Software Development requires time and dedication. It’s one of the jobs you can’t do “just because you didn’t find anything else”. A good Developer cares about what he’s doing, he likes to find his own errors and goes through a path of continuous improvement. A typical working day won’t necessarily be 9-to-5, and you’ll often find yourself thinking about new solutions and methods outside the office. That doesn’t mean you will turn into a socially inept, lonely geek, but simply that it’s a profession where curiosity and willing to constantly learn are a must.

Does that mean you’ll always be “on the job”?
That largely depends on you. When I started, I was so eager to learn that I got books about everything related to Development (at that time, “everything” involved much less stuff than today). I spent nights studying, experimenting and banging my head against the wall to understand why something didn’t work as I expected. However, that was because I had an absolute burning passion for it. Even without being such a maniac, you’ll be able to go far by simply keeping yourself up to date.

One important suggestion that I can give you is to always keep in mind that you set your own standards. Once you’ll land in your first Development job, it will be ok to show enthusiasm and passion for it. Companies appreciate efforts and, sometimes, they reward it.  Sometimes.

However, don’t expect the rewards to always be proportionate to your efforts, especially when you go the extra mile on a daily basis. If you tell your employer that you can’t believe you’re getting paid to do something you would do for free, 24 hours a day, you are actually offering yourself to be exploited. One day you’ll like to spend time on something else, and your company won’t accept it, as you worked ’round the clock so far.

In short: find your passion, cultivate it, but don’t brag about it with your employer.

A profession where you actually DO things

One of the most important aspects of SD is that it allows, and requires, that you do something. You have to design an application or a library, write code, to test it, interact with your team, prepare analyses, learn new technologies and so on. Perhaps you won’t have to do them all, and, for sure, not at once, but you’ll be busy. Very busy. There’s really a lot to do once you’re in this world, and the best thing is that, once you’ll have found your method, it will get easier. You’ll be surprised of how much you’ll be able to deliver!

Additionally, if you’ll work smart enough (more on this later) the reward will be having your name on some popular application, and the chance to work with equally talented individuals. Note that I didn’t mention the possibility of becoming filthy rich, because that’s not on Developer’s career path. A Developer is a maker, a creator. The greatest reward one should expect is the satisfaction of having done a good job, every day. Counting the money belongs elsewhere.

A profession that can grant you excellent flexibility

Software Development can give you enormous flexibility, if you are able to handle it. It will probably take a while before companies will trust your self-management skills, but, when it will happen, you’ll enjoy a level of freedom that not many people can have.

Freedom in terms of time

Everything you’ll be working on will have a deadline. By that day, you’ll know that some things will have to be in place and working as per specifications. How you will make that happen will be up to you. In my recent employment, I work from home 90% of the time. Of that time, most is spent in the evening, or in the night, as I mind my little daughter during the day. So far, results have been excellent.

Freedom in terms of location

Thanks to the progress in telecommunications, working remotely is easier than ever. As long as you’re be able to communicate with your team, and deliver your work in a timely manner, it doesn’t matter much where you are. This gives you the chance of going on a trip (almost) whenever you like, for as long as you like. Of course, if your company is in Europe and you go to Japan, the time difference may make things more complicated, but that would be an extreme case.

The two freedoms combined

Personally, I always liked short trips, but, with standard annual leave, it’s not possible to take one or two days off every weekend. Being able to manage time and location as I see fit, I can book accommodation for mid-week dates and outside of main holiday periods. This means big discounts, less traffic and less stress. I can work from anywhere, as long as I have an Internet connection and a quiet room (essential, as SD requires focus).

Let’s now go the the the third and last part, titled What Software Development is not, in which I’ll explain what not should not be expected from a career in Development.