What Is The Best Workplace For a Fresh Graduate?

Recently I was invited to do a presentation in-front of soon-to-be graduates at my university where I have obtained my qualification in Computer Science.  Myself and a few other of my fellow ex-classmates were suppose to give students a talk on what to expect after graduation, and what it is like working in the industry.

After my presentation, one of the soon-to-be graduates asked me a question: “What type of companies should the fresh graduate look for, and what jobs should be avoided?

Although it may sound simple, this question was not an easy one to answer. Sure, as an ex-grad my self, I remember our lecturers telling us to take any professional job, to grab any opportunity and just to get a foot in the door. Not a bad advise after all, and many including myself have followed this  path, and I am sure many still are. At the time, I was  told not to worry too much, as at the first job I will be taught everything I need to start my career path.

But only after a few years, I understood how important the first job really is. The first job can shape a graduate into a good or an average IT professional. The first job either can teach the grad the logical approach and how to be meticulous about little details or how to look for shortcuts. Also, the first job will dictate what technologies and tools the grad may use in the future, whether he or a she will become proprietary or an open source IT professional.

Off course, when applying for jobs and attending job interviews, as a  fresh graduate you are not in a position to bargain and demand the best (whatever “the best” means). Simply because the grad does not have the experience and skills to support the demands. Therefore, around the first two years, a graduate has be satisfied with the first job he got, in a hope that the experience gained will help in the professional future endeavors. The graduate hopes that the first company he got into, is a good one and considers him self very lucky to be there. But really, is the first company a good one?

One of the types of companies that I would advise for a fresh graduate to avoid is consultancy firms. Having said that, I want to say that there is nothing wrong in working for a consultancy firm (I am working for one now), it is just as a fresh grad it is not the best place in my opinion to get shaped as a strong IT professional. I will try to elaborate on this.

As a consultant, you are assigned to a different projects, usually on the clients’ site. For a fresh grad, this experience can be similar to a jump into the ocean from a plane high in the sky. One may say there is nothing wrong with that, this experience will force you to learn.

I am not sure that I fully agree here. Sure, this experience will force you to learn, learn something, definitely. Will force you to learn to do what the client needs, to follow the clients’ way. Which is often can be not entirely the right way. A consultant usually costs a client a lot of money, which is why clients want to see results delivered and delivered fast. Therefore this type of environment, is not very good for learning the skills and building a strong foundation nor the client is interested in spending the big bucks for teaching fresh grads.

Another type of companies that I don’t favor as the first job, are the big corporations (for example lets say banks). Working for a corporation at the beginning of your career, your freedom and creativity as IT professional are often restricted. You are forced to use tools that are in place and most probably cannot use other tools to get the job done, even if the other tools are better. In corporation, the fresh grad can start feeling very small, a little screw in a huge apparatus, without a clear understanding why he does what he does.

When I was hunting for jobs after Uni, I was quite skeptical about graduate programs run by some big banks or insurance companies. Usually they teach their own way to do things, which is not necessary the right way. They teach you what they need you to know for them. Corporation can be a big place, and often people don’t have time to teach you, they are there to do their job, get paid and go home. The corporations are lacking human touch, and often not having around a supervisor or a mentor who can be available when you need them, can be a real minus.

Having a mentor. I cannot stress enough when I say, how important is to have a good mentor who is there to give you a “slap” on the head and a “kick” in the right direction. Someone who really cares and have a  passion for what he does. One may say: yeah, having mentor is a good thing, but I don’t really need a “baby sitter”, I am capable learning by my self, Google is full of tutorials.

Sure, we all should (and must) be able to know how to improve ourselves through self learning. I am not saying that a lack of mentoring can be the crucial factor in failing to become a good IT professional. No, not at all. Mentor is just a person that simply has more hands on experience than you, and can explain you things in person, face to face which is sometimes much better than just reading a tutorial on the web.

How many of us, IT professionals are lucky to say that “yes, I have had a good mentor that helped when I began my career path”? I personally can say, that I was lucky. I have had two mentors. Each and every one of them have contributed in their own way to my development as an IT professional I am today. I am still drawing on those experiences and trying to improve my self on a daily basis.

So what is the right place to start working, in my opinion? I think starting in a small company (6-10 employees) is the best option for a fresh grad to get hands on experience and build a solid foundation. Usually small companies are more versatile in their choice of technologies and tools used, and there is a lot of space for creativity and for learning some basic concepts. Small companies have a lot of human interaction between the senior and junior developers, something that can only positively contribute towards professional development.

I admit, that now it is easy for me to sit and contemplate what is good and what is not so good. Many fresh grads, don’t really think that far, they just want to get out there after 3-4 years of University and start making some money.

In summary, I want to say, that the decisions one makes at the beginning of his/her career can really decide his/her professional future. The highest paying job is not necessary the best job, when starting a career. Gaining valuable skills is much more important. Therefore, the first few years of boot camp, are very important in the process of becoming a good, passionate IT professional , instead of someone who takes it as just another nine-to-five job. The latter lacks of creativity and unfortunately modern workplaces are full of them.

On the Hunt Again and Need Your Help

Well, I have decided – its time for me to move on… Although my current company was/is a good home for over two years, it is time for me to look for another job. I was hired as a J2EE developer by my current company, but after the Java project has finished, I ended up as a PHP developer (Not that there is something wrong with PHP).

As much as it was good to get some hands on PHP experience, I want to pursue a different career path, to do what I really have passion for – Java/J2EE.

I started by updating my resume, which can be viewed here and my LinkedIn profile. I met with my manager for a chat and told him about my future plans and explained him my reasons. He showed understanding and totally supported my decision.

I want to point out that I really enjoy working for a premium SMS aggregator and SMS/MMS area in general, I think its great fun. It would be nice to have my next job related to Telecom too. I responded to several job advertisements that I found on seek.com.au, and even got a few phone calls from two recruiters.

This is already good, it means that people show interest. Having said that, I want to provide some information about my self where I clarify why someone should or should not hire me.

So yeah … why should we hire you?
Well, I can start talking now how with my knowledge and skills I can contribute and help your business grow. But to make it simple – I love programming and I love what I do. I am not saying that I am brilliant at programming, but I think that I am good enough (I am not sure whether it is fair to rate my self).

As an example, I remember times when I managed to find a working solution to the problem that I had during the day while getting a night sleep and dreaming. (Hence the idiom “sleep on it”)

What kind of company are you looking for?
From what I have learned about my self, I enjoy working in more casual and less corporate environment. I feel less productive and less creative in an environment where people make tech decisions according to internal politics. I do not like it, its distracting. I can get frustrated when I need to get signatures of N people to install some software package on my workstation.

I prefer working for open source oriented company and don’t fancy an idea getting stuck in proprietary software house (ie. Microsoft). Not that there is something wrong with Microsoft, yeah?

Having said all that, I want to say that I can work for any type of company, its just from a working culture point of view, corporations are not the highest priority for me.

Are you a die hard geek?
Hm… not a die hard geek, but a geek. Being a programmer for me is not 9 – 5 job. I do like programming and like to tinker with code when I have some free time. I do have other hobbies apart from programming and some of them include my gf and sport. Ok, ok … my gf is not a hobby ;) I like have a few drinks with friends, play a bit of soccer (never really got into Footy) and I box sometimes.

Can you work under pressure, do you manage stress well?
Hey, that is two questions in one. I can work under pressure if I have a deadline. Generally I do manage stress well, and when I am not, I just need to remember to walk away from the computer and go for a walk to clear my mind. Also, bright ideas do not come into my mind when I stare at the screen.

Are you a team player?

Yes, definitely … I get along well with people from various cultural backgrounds and have a lot of experience working in small teams. I think one of the keys to be a good team player is communication skills and ability to compromise.

Do you have experience in managing projects or people?
Nope, never managed a project nor people. Not that I refused, its just never happened. I would not mind to try my self out in managing a small project with one or two developers.

In what area would you like to improve?

Hm… I really want to improve my software design skills. To be able to manipulate well different design patterns and come up with really smart and efficient software solutions. Sometimes I really feel lack of experience in this department.

Well, that’s pretty much it :) I think I have finally managed to paint a scary portrait of my self. I hope my job search wont be a very long one.

If you would like to comment on anything I have wrote here – please do so. Your comments/suggestions/flames are always welcomed.

Cheers,

Alex