I’ve spent most of my career working with programmers, both as a programmer myself, and as a manager. So what if you are a new programmer starting your first job with a software company. How should you spend your time? Here are some ideas.
Polish Those People Skills
As the “new guy” you are going to meet lots of people. Make a good impression. Discreetly make notes of names and responsibilities. That first few days you will never remember all the names. Notes can help!
Assume you are going to work really hard getting up to speed in the beginning. This is normal. Be like a sponge absorbing everything and keeping lots of notes. Make it more interesting by splitting your time between learning and actual programming. And some of that learning may have to happen after normal business hours.
Just one caution here. At some companies the culture is one of burnout. I’m not advocating that, actually quite the opposite. If you find yourself in a “sweatshop” stay just long enough to make the resume look reasonable and then get out. I would say if you find yourself working ridiculous hours after a year there is a problem.
Know Your Company’s Products
What does your company do to make money? Learn a little about the products and services, so at least you recognize them when they come up in discussions.
Really Know the Product You Support
At most corporations you will generally be responsible for working with one of their products. You usually won’t be the one coming up with new products, that is usually reserved for the senior people. You will usually support or add small enhancements to an existing product. Get to know how the product works on a functional level. You may even want to go outside the “programming” department and get some demos.
Ask Lots of Questions
At many companies the knowledgeable people are simply too busy to reach out to you. You need to reach out to them. Be considerate with their time. Ask when is a good time to talk. And try to be prepared with specific questions.
What Programming Languages Will You Be Using?
Most of the time you will be responsible for working with a small number of programming languages. What are they? And don’t panic if you’re not an expert in the languages. As a Programming Manager for many years I found that good programmers can pick up any language skills that are needed.
What Programming Tools Are Used?
Find out what tools are used, and then try to get really good with them.
How Are Environments Set Up?
Usually there will be a specific process for setting up environments. Learn the process, and if it isn’t documented do so.
Who Sets Up Environments?
Sometimes a certain group is responsible for setting up environments. These are good people to get to know. When things get busy they have a way of taking care of their “friends” first!
Ask for a Mentor
Ask for a mentor and then respect their time for asking what would be a good time to meet daily. And then be prepared for those meetings.
Find Out Who Are the Experts
Often certain people will be the acknowledged “experts” in a particular area. As you find out who they are, keep notes of who they are for future reference.
Never Stop Learning
In programming you can never stop learning, and all of it cannot happen during normal business hours.
Volunteer for new projects without sacrificing your other responsibilities. And then deliver!
Be Active Outside Your Company
Your career is not your current employer. Find ways to be active outside the company. Are there groups you can join? Can you take classes outside the company? You never know when the contacts and friends you make will become important.
Get To Know Your Company’s Customers
This one is tougher, especially when you are new. Eventually you will usually communicate with your company’s customers. Do your best for them. Try to always be truthful and helpful. Believe me, there is nothing like an executive hearing from a customer how helpful a certain programmer has been.
Learn Some Basic Accounting
Many, or most products have an accounting type component. So it is helpful to learn a little accounting.
Keep Learning How to Manage Your Time and Productivity
As you gain experience you will have more demands on your time. The way to survive is to get really good at managing your time and maintaining your productivity.
Be Relentless About Quality
This is one I often had to teach new programmers. It is better to spend a little more time and deliver quality. Be the programmer who is known for delivering good code with a minimum of bugs.
Learn How to Make Accurate Estimates
This is an important skill to learn. I’ve seen that new programmers often underestimate how long something will take. Allow time for analysis, coding and adequate testing. Add a little extra time for unforeseen issues. However don’t “pad” too much as a good manager will always know.
Become an Expert at Something
As early as possible, become an expert at something. I found this was easier than you would think. Many times a new programmer will take the time to learn the ins and outs of a certain tool or process, where the senior people only know the basics, and never had time to learn the details.
Dress for Success
No, I don’t mean to wear a suit everyday! This is an area that is usually ignored these days. However if you dress like the people a little above your level a manager can more easily see you at that level.
Always Be Accountable – No Excuses
Try to be accountable and not “pass the buck.” Good managers will appreciate your honesty even when you make a mistake.
So here are my ideas. As I think of others I will pass them along.