Advice to an IT Graduate

Will Code JAVA for Food
Will Code JAVA for Food
(Even with Eclipse)
Credit: cismet_geeks

A newly-minted graduate in software development recently wrote me after finding my resume online, seeking career advice on how to succeed in the IT professional world. These were my personal thoughts; maybe other readers will have additional insights to add in the comments section:

Dedicate yourself to lifelong learning.

Don’t be afraid to research while you’re on the job. You are a professional, a technical expert, and must keep up with the literature and latest developments in your field. Search engines and forums will provide the most practical and nuanced advice, while organizations like the IEEE and ACM provide the academic sustenance. Remember what Adlai Stevenson said, “I reserve the absolute right to be smarter today than I was yesterday.”

Work with people who are smarter than you.


Getting a job as the big-chief in a small organization will give you bragging rights and a higher salary, but it will also be a dead end for your career because you have nowhere to grow. Getting an entry-level position with a medium sized organization will start you with a lower salary, but you will have lots to learn and your salary will eventually grow much higher in the long run. Working with a variety of people who have ten or more years in the profession is a fantastic learning experience, and will broaden your horizons in ways that will make you all the more valuable to the workforce.

Put forth just a little more effort than your coworkers.

It’s amazing how many people just want to get by, expecting their supervisors to direct their every action. If you are happy where you are at, and see the possibility of being selected for advancement as the environment grows, then you need to focus on the nuances of the system in which you are working. Take notes: I kept a notebook of all the little nuances of our system, which quickly made me a go-to person whenever anything went wrong or if someone needed help. It also empowered me to work independently on most tasks, and management notices when you get them checkmarks on their todo list.

Certifications are nice if you think you will need to change companies in order to advance your career past a certain point, they act like keywords to get you noticed by employers; however, if you take on extracurricular training, make sure it will give you deeper insights into the technologies you are presently working with. You might convince management to pay for it too. : )

Work in the presentation layer.

By this I mean code for the presentation layer; be responsible for the User Interface. By working in this aspect of the system, you will be closer to the actual business and learn how the users actually work with it. The interface is where you’re going to be connected to the customer. You will be visible to them, and that social interaction will be the biggest boon to your career. The customer can’t rave about how helpful you are if you’re sequestered in a dark cubicle coding SQL, no matter how crucial that effort is (In fact, being crucial in such a position will often keep you from advancement).

Another benefit to working with the user interface is that everything bubbles up to it. If something goes wrong in the business or persistence layers, it will manifest in the UI, making you the first-responder, which brings me to my next lesson:

Learn all aspects of the business.

Layers of Information Technology
Layers of Information Technology
(Click to Enlarge)
Credit: xkcd

Too many developers work with blinders on, keeping their head down and only focusing on what they are directly responsible for. Don’t be that way. If you think your code isn’t working because of someone else’s work, debug that person’s work and find the problem. Then, not only can you give them the solution when you bring it up, but you will understand their solution and gain a wider perspective on the whole system.

But don’t be a jerk about it… Which brings me to the most important principle:

Be humble.

Don’t ever ever ever mention fault when discussing problems with a system. Everyone checks in code that doesn’t work or was poorly written from time to time. Time wasted pointing fingers is time not spent solving the problem. I’ve watched developers waste hours trying to figure out who was responsible for a bug in the system, all so they could make a big production out of exposing their peer’s error. No one is impressed by this, and the peer gets antagonized by it.

If you see an error in someone’s code, just fix it. If the team is dealing with a bug, just fix it. Don’t get irritated when someone comes to you for the third or nth time to get an IP address or database vnode, take it as a sign that you are making yourself invaluable to the organization. Treat all your coworkers like customers, provide services for them, and when it comes time for management to promote, they will see you as the person everyone enjoys coming to for help, the person the customers like working with, and the person management knows is capable of tackling any problem thrown at him or her.


Posted

in

by

Tags:

Comments

4 responses to “Advice to an IT Graduate”