10 things a successful programmer do

10 things a engineer do

Do you want to know what a good programmer do?  Or would you like to know how to be a good programmer?

Then this article is for you.

There is a difference between the programmer and good programmer. You want to be a good programmer, that’s why you are here.

Keep reading…

#1 Find a mentor

Some days back I met one of my relatives whose son was just taken admission in B.tech. He called me at their home to talk to his son as he was not going to college for 2 weeks. The discussion with him was interesting, interesting because he wanted to be a programmer but do not want to go the college.

He said, I looked the course for first 2 semesters and there are not any programming language in that so why I should waste my time in that.

The syllabus might not up to mark but I do not think its useless.

Disclaimer: I am not a B.Tech engineer, I have done graduation in Math and then post graduate in M.sc(IT) so did not know much about the syllabus.

By our conversation, I realized that his syllabus was more theoretical instead of writing code and he was keen to write code even from the first day.

We all three(Me, he and his father) concluded that he might be lazy in reading, So I have given him 2 books [The Mythical Man-Month: Essays on Software Engineering and Soft Skills: The Software Developer’s Life Manual] to read and asked him to continue your college until you finish those.

These books are related to software engineering but not for programming language so he himself can judge if he is against syllabus or reading.

Some tips to work with a mentor

#Don’t go with the stranger – if possible find a mentor who is in your network
It’s not necessary that you know him/her very well but being familiar is a better option. Familiarity required because you must know if your mentor has skills to help you.

#Don’t ask for Mentorship, Let him pick to you.
Instead just start talking with him/her about your ideas, career or problems and then see if he/she show interest to listen, interest to give you advice.

#Find out the mentor who has relevant experience
First, find out for what kind of subject you have for mentorship and then look for these values in your mentor and start a discussion to know his interest.

#Value the time of Mentor
See, if you have selected someone as a mentor that means he is doing some valuable which keeps him busy so value his time. If you need long discussion intimate him prior and set a time for discussion.

#Be in touch with him
Calls and chat do not work every time, try to meet at convenient locations for short time. Don’t forget to send thank you message after the meet.

#Finally on Mentorship: A mentor would help you by advising some tips or strategy, you can not expect magic from him. Finally, all decisions will be yours.

#2 Keep learning new tech skills

Technolgy changes very fast and you have to keep updated yourself to compete. I started my career in digital marketing then moved into web development. Programming started with classic ASP, SQL Server then learned PHP/Mysql and worked a lot of in that, later learned Angular/React/Node.js, Learned project management skills, became an entrepreneur, failed in some startup, now again co-founder in a startup and writing a blog to share my experience and knowledge.

So there is a lot to learn every day. You have to choose what skill set now you have to acquire to take your career to next step.

I usually study on the free courses/blogs on the internet to learn a new technology. Once I get the basic understanding then I usually buy a paid course.

#3 Set your goal – Break it in actions

Setting the goal and working towards to achieve this would make you more focused. You can set the goal like to upgrade your skills like becoming a better ReactJs developer,
Will start freelancing in one month, will start blogging in next 3 month, will be TL in next 2 years, will reduce DFR by 30% (Defect finding ratio) in this project, will lose 5kg weight in 2 months, Will stand up from a desk in every 30 minutes etc.

Set goal or take resolution which you are little out of your capacity so it can become a challenge for you. I usually set macro actions so these can be achieved fast.
The happiness and feelings are great for the achievement of this and that gives motivation too.

I called in macro actions as these are tasks that I have to do achieve the goal. Let’s see it in action.

How I complete my goal of  learning ReactJs

#The goal of week1: make a list of all prerequisites and free tutorial to learn ReactJS

Next goal was having dependencies of prerequisites I will find in goal1 so do not set any other goal until goal1 is completed.

I made a list to learn one by one to start with ReactJs

  • #Object-oriented javascript – goal 1 week; Achieved it because I already have knowledge of object-oriented javascript
  • #Learned ES6
    The goal was 1 week; could not complete it. The ES6 is a modern javascript and needs serious attention to set up a foundation on modern JS. Taken a paid course for Javascript ES6 Tutorial and finally, it took 4 weeks to study it and complete my paid course.
  • #Learned ReactJS
    The goal was 4 weeks – completed in 7 weeks.Started ReactJs from its official website. Then watched many youtube videos to get the basic understanding and after 2 weeks, I taken a paid course Modern React with Redux
  • #Learned Redux-saga
    When you start learning some new tech then you can not be perfect in setting the goals. Initially, I broke redux in new goal but found it needs to be learned with ReactJs course.
  • #Babel
    Same with the babel, I learned about babel when studying ES6.

So the conclusion is when you set a goal, find a list of things to do and then break it in parts and work accordingly.

#4 Beyond requirement – Understand what is business needs

The more you understand the business needs, more you would do the communication with project leader or client and that will make a better product.

Software developer gets a specification document to start the development, that’s ok to get started but it is possible that 2 people have a different understanding on the same sentence or it is possible that business analyst missed some use cases in the specification. That might cause the delay of the project and when the project got delayed, all blame goes to the developer.

Here if you would have the understanding of the business, you can find out if something is missing, you can cross-question if there is anything mismatching with your understanding.

So you must try to take the understanding of business. You can have a discussion with your project leader, business analyst and must do your own research to understand the business.

#5 Gain Recognition

Gain recognition in our company and on the public platform as well. Having a good communication, good understanding of business needs, problem-solving skills, helping others
will give you recognition in the organization where you are working.

Make a good reputation on StackOverflow and GitHub.

Found “Success in Programming: How to Gain Recognition, Power, and Influence Through Personal Branding” helpful to understand how to gain recognition in software development.

#6 Making your own decisions

Making your own decision is as important as understanding the business needs. If you understand the business, specification then you can make your own decision and if you take a decision then you can communicate well with your client, project leader.

#7 Try to be optimistic

Being optimistic is an essential asset in the software industry if you have it then great else start gaining it.

I can do it attitude is a good characteristic to be a successful programmer.

#8 Participate in Tech discussions, share in opensource

The community of the software development is a stronger community on the internet. When I stuck to any problem then my first attempt is always searched on google or StackOverflow and most of the time I got a solution.

If did not get the immediate solution then I can post my problem and someone from community soon will answer.

As we take help from others, we should spend some time to contribute to the community by helping others.

A help can be done answering on StackOverflow, quora or writing your own blog or writing on medium, wordpress.com, tumbler etc.

You can contribute to any opensource project on GitHub, it adds a good value to your profile.

And of course, all these activities will help to get recognition.

Read how StackOverflow and Github can help in your career.

#9 Improve your soft skills

Soft skills are must have things to get a momentum in your career.

Communication, willing to learn, listening, teamwork, work ethics, optimistic attitude, manage ego are few essential soft skills a successful software engineer has As your career grows, the importance of communication also increased. You have to start communicating with clients, leader.

The most important is the writing skills, you should have good writing skills to write emails, to chat with your superior, colleague or clients.

#10 Have fun, Be a good human being