I’ve been working as a programmer for 18 months. I actually landed this job before I’d even graduated: I was studying with the Open University part-time whilst I worked at a coffee shop. I was over the moon when I landed my first programming job, wide-eyed and full of enthusiasm. Don’t get me wrong, I still feel that way. However, there are a lot of things I’ve had to learn the hard way, things that never came up at university. Today I am going to impart some of those hard-learnt lessons.
I’ve broken down the things I have learnt into five categories of Teamwork, Flexibility, Planning, Communication and Organisation. These are skills that everyone will have to learn eventually if they want to do well in computer programming, and many of the lessons apply to other professions too. This first part is all about teamwork.
PART ONE: Teamwork
Don’t point the blame
I’ve been lucky. I’ve worked with some amazing people who’ve really helped me through my first months as a programming newbie. One thing that has been drilled into me is to always stick together. Take responsibility for things as a team and when someone messes up, don’t point the blame: after-all, we all make mistakes, it will probably be your turn next!
Talk about “we”
When communicating internally within your team, or externally outside of the team, always talk about “we”. Externally, referring to the team as “we” shows that you are informed about what the team is doing and are taking ownership of problems. When you start doing this you will find that before long you are also thinking about the team as “we” and this is the first step to great teamwork.
Internally within the team, using “we” instead of “I” helps for different reasons. You can get away with being more critical when you talk about what “we’ve” been doing wrong because you’re not blaming individuals. Being critical is vital to getting better, both individually and as a team, but you will still have to use tact. You will find that people skills are essential as a programmer, but don’t over-complicate it. You don’t need to become some kind of sociopath, the best result is that you all become friends. This is how to create a really productive team.
Talk about everything
Another aspect of good teamwork is talking. Talk about everything, question everything. Despite what you may have heard, programming is a hard job, things can become complicated very quickly. There are a million ways to do one thing, and you have to choose the best way. Let go of your ego, admit when you don’t know something. People will respect your honesty and will help you.
Keep your ego in check
Speaking of ego, if you’re anything like me you will have to battle with yours. You’ve probably always been the person who’s good with computers, or who is technically minded, and now you are in a team of equally-qualified computer nerds. The worst thing you can do is think of it as a contest, it isn’t. You are all working towards a common goal, you want your company to be the most successful it can be. You want to solve problems in the best ways possible and it’s a lot more fun when you are all working together, as well as being less stressful.
Remember that everyone has good ideas
Again, this is about ego. You are not the only person who has good ideas, every human being alive has good ideas (and bad ones). Keep an open mind, be logical, and most importantly share your problems with the team. A good idea is a good idea no matter where it comes from.
Ask for help
If you get stuck on something, ask your teammates. Most of the time, someone will have a solution to your problem. This way you can learn from people who’ve already made the same mistake and learnt from it, rather than learning the hard way yourself. Also, discussing and valuing other people’s opinions is a good way to build friendships.
That’s it for part one! If you enjoyed it then stay tuned for the next part, it’s all about flexibility! (edit: part two is now live and can be found here)