What I learned from 5 years working in Software Development

photo-1498050108023-c5249f4df085.jpg

1. You are desperated, countless times

I was a junior developer just like everyone else. I was passionated and full of energy when I jumped on the programming job hoping that I could be an expert after several years. But things weren’t going very well. I struggled, many times. There are so many things I needed to learn, and I didn’t know which ones were for me. I got lost and tried to learn everything. And that made me exhausted. I hated my job and wanted to quit so badly.

Then I came to realize that I could not learn everything, but I could focus on things related to my work. If I worked on Python, I would read the language’s syntaxes, it’s best practices and design patterns. The languages are quite interchangeable, if I master one language then I can easily grab other one. If I worked with web applications, I would then learn how the world wide web works, the technologies that run our global network, and the basic parts that construct a website: HTML, CSS, JS…

I learned bit by bit, everyday, for years. I read and I write what I deeply care about. And I became stronger and got better on everything I work with.

2. You learn a lot from your mistakes

“If you don’t make mistakes, you don’t make anything”.

If you try to do something, you will likely make mistakes. The only way to make no mistake is to avoid trying to do anything.

I was affraid to make mistakes, I hated being hated by other people. But when I avoided mistakes, I couldn’t make any difference, I stayed the same for a long time. Then I tried different things, I did different activities, I joined many interview while I still had a job. All of a sudden, I got raised, I learned more in several months than I had learned in years.

I know that my success came from my hard-works and because I was brave enough to embrace mistakes. People who don’t make mistakes would not know that they could do things in different ways, and that they can change their lives completely for the better.

3. You need to take breaks regularly

I could work 12 hours a day for months when I was a young developer. I loved sitting in front of my computer all the day with no much break time. That worked some first times, but then my body refused, I was exhausted the day after I had worked all the night, my productivity inclined tremendously.

It’s not how long I worked but how productive when I was working. Productivity requires break times and an appropriate schedule. Strong mind comes from a strong body. I can only focus for a short time, 20 – 40 minutes span. I then take a quick break about 5 minutes. This schedule has been improving my quality of works noticeably as my health keeps being fine.

4. Where you work and whom you work with are more important than the money you earned.

Think about your current job as a part of your whole career. You could change your jobs frequently, but their should follow your career orientation. Consider your job as a way to improve your career, and how it helps to achieve your long term goals. It’s not about how much you earned.

But I didn’t know that from beginning. My several first jobs were nightmares. I hated the company I worked, I hated people I worked with. I worked there just because I earned some bucks to survive. I hated going to work every single day.

Then I quit.

I followed the job I dreamed of and worked very hard to get it. I earned less money but I was happy. The new work place was full of pasionated and self-motivated people, so I could learn a lot from them. I grew everyday since then. The company I work for and the people I work with mean a lot to me because everything around me has effect on what I do. I need to find motivation from other people and a place that I have meaningful works to do.

So whenever I intend to jump to another job, I ask myself what could I find from working in that place, other than money.

5. Communication skills are the most valueable asset that you can learn.

I have worked with lots of people: developers, testers, designers, team leaders, project managements, customers… and the way I communicate to them had a huge impact on the tasks I worked on or even entire the project. I was misunderstood by others so many times, and I didn’t grab their ideas fully in many cases. That’s bad.

Being a developer in a team, I need to convey my ideas to other team members. Effective communication helps to prevent software bugs, overlapped tasks, wrong requirements understanding… It has so many values that I could not list all of them here. And the most important thing is it can be learned. I have been practicing to have good conversations with my friends, colleagues, family, and everyone that I accidently talk with.

Software developer is not all about coding. A lot of skills are required to produce good software in a timely manner. Communication skills are in the top list that we developer should invest on.

Leave a comment