What Not to Do as a Programmer - My List After 2 Years of Working In Teams
Tags: career, beginners, discuss, devlive
Published: 2019-07-19 05:07:41

There is a lot of content out there discussing what you need to do to become a good programmer. What concepts you need to understand, what technologies you need to learn, what tools you have to know, etc. When I joined the tech industry 2 years ago with dreams of being a great programmer who will change the world with code one semi-colon at a time, I had a mental list of what I need to learn in order to be an awesome dev. Over time I have learned that there should've been a list of what _not_ to do as a **programmer**, **dev**, **software engineer**/**ninja** or whatever you call yourself.

I'm trying to put together a list here to keep reminding myself and for those who have just started their careers or are going to, soon!

##1. Do Not Fall In Love ❤️ With Your Code

The number 1 mistake a lot of devs make at the start of their careers is treating their code like their _babies_ or _pets_. 
Sure, we all love our work but always remember what your end goal is, to write good code and collectively contribute to making the product/project you are working on better every day.
When you don't attach your feelings with the code you write, there is a better chance you'll always try to make it better and not let your feelings come in way of **improving** it.

##2. Do Not Try to Learn Everything :book:

The kind of business we are involved in, there is always something new around, that new _JS_ framework, a new library or another new productivity tool. 
Do not lose your focus by thinking that you need to be expert in every tool and technology that is around. Keep exploring and trying out new technologies and stacks but always keep your focus on something **particular**.


##3. Do Not Worship Frameworks & Languages:gem:

Sure keep your focus on something particular but at the start of your career do not try to put a label on yourself. Do not call yourself a _ROR Engineer_ or a _React Developer_. Sure you work on _React_ but do not let that define **you**. Frameworks and languages will come & go, you are here to stay!

##4. Do Not Feel Proud if your Team Depends Heavily on You :boy:

One thing I always thought of something to be proud of was doing a lot of heavy lifting in a team. I always thought the best programmer would be the one without whom the team will not be able to function. Do not try to be that guy! Teams that have a _uniform_ distribution of responsibility and workload are less prone to failures and crisis. Always try to enable other members of your team and not keep the knowledge and expertise to yourself. Do not try to be that **hero** who's always there to save the day!

##5. Do Not Mind :angry: Negative Feedback

Always assume that other people who work with you want to see a better self of yours. Do not take **criticism** or **negative feedback** from your coworkers as a personal attack on you. Listen to the feedback, _contemplate_ and try to improve.

##6. Do Not Keep Complaining :interrobang:

Always try to take initiative rather than complaining. Realize the fact that even as a young or junior dev you are now part of the team. Do not act as an outsider who keeps complaining rather take **initiative** and suggest options to make things better.
_Note: This does not apply at all in case of abusive, threatening, discriminating or harassing behavior. Do not wait a moment to report any such behaviors._

##7. Do Not Point Fingers :point_right:

If something goes wrong e.g a _deployment_ fails, bad code gets into _master_ or a _server_ breaks down, do not start pointing fingers at individuals. Teams operate as **collective** entities and take responsibilities as **groups**. Sure, you want to find out what went wrong but that does not mean you single out individuals and blame them.

##8. Do Not Remove Your Work-Life :family: Boundaries 

Keep in mind that you have a life outside of your profession. Do not let being a programmer come in way of having quality time with your family, quietly reading a book or going on a vacation.



All of my observations come as a junior engineer with 2 years of experience only. My opinions could also be biased only by the kind of teams and people I have worked with. 

Junior devs working in teams early in their careers, what do you guys think of this? Senior, more seasoned guys correct me if I'm wrong or want to add something!

Edit: There are some brilliant new points and discussion on these in the comments section. Please go through those as well, happy coding :)