Realities of Daily Life as a Programmer
Reading online every day, I see people write about their wonderful journey toward software development. About how they started from an impoverished situation and are now working in some of the best organizations in the world as developers.
However, these developers often place more emphasis on the technical stuff you need to know before you become a developer and less about what you need to know in terms of the reality of the everyday life of a developer on the job—issues like how to deal with team members, complete project deadlines, and communicate with your team when you have problems you cannot handle by yourself. These issues are fairly talked about, but more preparation can be done in this regard.
This article emphasizes some of what you need to know, not only before becoming a developer, but also those things you need to know and have available when you are working on a team as a developer.
They say “Experience is the best teacher,” but sometimes learning before the experience will allow you to have a better overall experience.
Programming Is a Team Game
When you see Usain Bolt running, you feel very inspired to run fast. But do you know how many other people had to put in their time and effort to make such a feat possible? Well, the exact number might not be known, but there are definitely more people than just Bolt who made it work.
This is also the case in the field of programming. Movies like The Social Network have created this impression that we can just sit in our rooms and create a revolutionary application that everyone wants to download and use, like creating your own Facebook app or WhatsApp. But clearly, changing the world involves more effort and synergy than what these movies portray.
The reality of success in every field, not only programming, is that the effort of all is greater than the effort of any one of us. Effort when combined is far greater, and this is the type of effort teams need when creating awesome apps.
Beyond the technical skills as a developer, you should also always seek to work as a team. Do not be that developer no one wants to work with—the developer who knows it all. Even when you do know it, set out to work as a member of a team, because, as the saying goes, “Two heads are better than one.” Working in a team not only makes you proficient in what you already know, but it also allows you to learn other things from your friends and colleagues that might take you a while to learn on your own.
Even methods of software development like agile and scrum work for teams better than if they are simply individual implementations. This way, the best effort is expended in doing the right tasks and everyone can work together on where we excel the best.
To be a team player, you should be willing to go the extra mile for your team members, even during times when you normally would not. If this isn’t already part of your personality, you still shouldn’t use the excuse that “I cannot go out of my way.” Have a growth mindset in what you do rather than a fixed mindset. Having a growth mindset simply means that we are not limited by our experiences and personalities, that we can be more and also do more.
Trying to understand your colleagues and knowing what they like best, and attempting to participate in such activities can be one way to create a formidable friendship between teammates. Trying to strike up conversations is another way to create bonds between teammates.
In essence, being a team player is about victory for the team rather than for the individual. This means being able to always seek victory for every member of your team. Ensure that your task and the tasks of everyone on your team move the whole team forward.
Knowledge Is Underrated
We sometimes feel we know very little and see no need to share what we know. Whatever knowledge you have, always seek to share it. Let others know what you know. One of the best ways to learn is by teaching others what you know. It validates your existing knowledge and provides an opportunity to improve on areas you are not very competent in.
It would not make any sense if no one understands your code beyond you alone. What would happen someday when you are possibly on vacation, and someone is reading your code? You would need to be called simply because no one on the team understands what you did.
Share whatever knowledge you have. No amount of knowledge is a waste. Set aside time during the week when you meet with your teammates to discuss and share knowledge.
Especially in the area where you feel a certain colleague could do better, never settle until you have tried your best to share what you feel and know in that area so that others can also succeed and progress.
Consider a new programmer who has just joined the team; make sure the transition process is smooth and that you help in every little way you can. It might not be in very big ways, but simply helping in small ways can enable a new programmer to succeed.
A lot of people have gone further in programming, not only because they tried, but because someone somewhere told them they could. In the end, none of us is smarter than all of us.
Discuss Issues Directly
People sometimes believe that programmers speak only to their computers, but sometimes the human side slips in and programmers fall into the everyday drama of gossip. Do not spread or listen to any gossip.
As coworkers become closer and share things with each other, some unhappy situations happen that can cause chaos between team members. A new programmer might be better than the current guys on the ground and that might lead to some tension in the team, especially when other team members believe the new player is a threat to the status quo.
Always be open and objective about any issue. Never leave issues unattended to and continue such discussions behind your teammate’s back. It might seem like a harmless endeavor, but when it persists, it causes distractions and distrust within the team.
Remember that if you talk behind another person’s back, you might also be talked about behind yours. It is as simple as that. When you realize that a conversation is turning into gossip, ensure that you not only leave such gatherings, but try to admonish those people against doing such a thing.
It is not about excusing yourself; it is about standing up for what is right.
When programmers first start their careers, they’re excited to dive into projects. But it’s easy to forget that you also have to incorporate your teammates into your coding. The reality is that you won’t be the one who always does 100 percent of the work.
Seek to find a balance between your output and that of your colleagues. While there will always be some people who are way better than others in accomplishing certain tasks, try to find a work output that aims to create a good impression of you and your team members.
This involves working with your colleagues even when you are the main person that does all the work. In the end, share the victory between you and your teammates. Everyone feels happy being a part of something great and important.
This is not about overshadowing your effort in the team. It is about making everyone part of the team by not always doing all the work and making your other members feel out of place while doing their work.
Try to pair program as often as possible, especially in areas you feel your teammates need to improve in. Allow them to make the mistakes during the pair programming sessions so that you can discuss these issues and fix them. It matters that everyone realize their mistakes without having to be ridiculed in the process.
Remember: No One Was Born a Programmer
No one was born a programmer, so that means there is a learning curve for everything that we do. Try to be lenient when you start working with a new engineer or when you’re trying to learn something you consider to be a no-brainer. Remember that every expert was once a novice, and it’s okay to be a novice when you’re learning new things in programming.
The easiest way to remember this is to look back at when you were a beginner in a programming language and see how far you have come. This should always be at the back of your mind when you see others struggling to get something started.
It might take them a while, but that does not in any way mean they are not smart. They are simply passing through that stage you once used to be in.
Saying things like, “This is simple, why can you not get it?” should be avoided at all costs when trying to show another programmer how to perform some tasks. Relate to when you started and discuss some of the challenges you had. This makes everyone feel less afraid to make mistakes and also allows them to learn from their mistakes.
Feedback Is Key
Once you’ve received the training to be a programmer, you’re going to think you know everything. But it’s important to remember a very key point: Feedback is important. Besides being able to receive feedback, you need to be able to give it, too.
As humans, we have great room for improvement and one of the best ingredients for growing is honest feedback. Good feedback has a great way of shaping us into better versions of ourselves.
We cannot always get it right, but we can definitely improve, and one such way is to seek feedback from your colleagues and employers on how you can do better. For example, you might sometimes spend too much time and resources on something that might not be of great importance to the organization and your colleagues at large.
It’s also important to communicate with your employers and fellow colleagues on issues that need to be addressed. This should be done in the form of casual chatting or focused discussions.
This feedback would definitely go a long way to make sure everyone makes necessary amends before it is too late, and as such, everyone can produce their best work at all times. As a programmer, it’s important to always be humble.
Is Programming Right for You?
In the end, programming is not only about giving instructions to the computer. It is about making everyone that gives instructions to the computer happy while doing that.
This involves working together as a team, sharing what you feel everyone should know along the way, seeking to create balance among team members, and discussing issues openly and honestly. Humans are naturally social animals, and as such, communicating with others in the best manner can make us better and happier.
In the end, we all want to be better at our job and we can all achieve that if we seek to make others better by sharing feedback and also helping when others are in trouble. We all have been there and we realize how annoying and tiring it can be to be stuck.
These are the realities of being a programmer. Are you ready to accept the challenge?