San Pablo, Philippines
Being a programmer is not different from any other job; it requires dedication, passion, and discipline. It may be intimidating at first but when you get the hang of it, you will be able to do almost anything you can think of. The beginning is always the hardest they say however the hardest part is continuing the discipline of being a programmer. “If you have a dream, you can spend a lifetime studying, planning, and getting ready for it. What you should be doing is getting started.” – Drew Huston (Cofounder/CEO of dropbox).
This is not an official step by step process on how to become a good programmer, but the intention is to form a list of helpful tips that I learn and seen in the industry to get great results from your work. There is no concise definition of a good programmer, however, we are referring to the overall category of a programmer who has developed great IT solutions that are helping us today or that will help us in the future. Here is the list of steps on how to be a “good programmer”.
1. Establish a lesson plan.
If you want to become a good programmer, the first thing to do is to establish a plan for the knowledge you wanted to gain. Learning how to program is overwhelming if you don’t have a lesson plan, you might skip from one place to another that will confuse you.
The questions that you need to answer first before establishing your lesson plan are, How much time do you have? How much are you planning to invest in learning? (considering you are going to subscribe to e-learning websites or you’re going to buy a book)
Here is an example of a lesson plan.
I am currently working from 8 AM-5 PM considering travel time, I have 1-3 hours at night, I don’t plan to invest money in e-learning or books and I would like to learn Front-end web development.
1st Month: Learn HTML and CSS
2nd Month: Learn Front-end Framework like bootstrap or materialize
3rd Month: Do some experimentation with your gained knowledge in HTML, CSS with Front-end Framework
7th Month: Evaluate your knowledge in Front-End development and go back if you have issues with something.
This list can go as long as you want, so you should always put a schedule to avoid overwhelming yourself and end up quitting. There are Websites that can help you out in learning here are some examples
2. Start with the basics.
As I mentioned, programming is very overwhelming that’s why you should phase yourself in studying and set goals, also you should start with the basics of the programming language that you desire because if you are going to skip to the advanced part of it, you will surely be overwhelmed and might pick up bad practices in the future.
In programming knowing and mastering the basics will give you a better idea of how to tackle complicated systems in the future. Some bugs that you will or you might encounter in the future will look complicated but the thing that you need to do is very simple, however, people think way too much to solve a bug sometimes.
3. Be curious.
You should always have a question for yourself on how is it working? , why is it doing that? , where is the problem coming from? , and what can I do to fix it or make it better?
Being a good programmer does not always rely on the things that you don’t know, being curious about the things that you are doing is also a part of being a good programmer since you are always hungry for knowledge and learning.
Every successful programmer started with a question, that why they were able to create the systems that we are using right now, like Facebook, Google, Uber, Dropbox, etc. they wanted to answer a question that they have in their mind. And not all of the questions you have can be remembered. That is why you should have a list of the questions that you have, save it on your computer or bring a notebook or anything you can write on.
Listing down your questions might not sound that helpful however listing it down will give you a clearer vision on the task that you are going to do.
4. Be proactive.
Being proactive does not only mean doing your task in advance, but it also means that you should be proactive in telling your boss if there are any challenges or delays during the production of the system, for you to set their expectations that there will be a delay.
It is okay if what you are doing is taking longer than planned however it’s not okay if you are going to surprise them the day of the deadline that the system you are doing is not yet done without giving them a heads up on what is happening.
If you are stuck with a bug that you cannot figure out don’t be scared of asking your teammates, always remember that this is not a one-man job, it is a collaboration of effort and idea to make a good working system. So ask them if they know how to fix the problem and learn from them. Asking your teammates will always be appreciated because they know that you are doing your best to learn and contribute as much as you can to the team, however, keep in mind that too many repetitive questions is annoying. So take note of the answers that they give you and understand it to avoid misunderstanding within the team.
There are tools or application that can help you with being proactive, here are some examples:
-Google calendar => https://calendar.google.com/calendar
-Sticky notes => pre-installed on windows OS
-iOS Reminders =>Available using apple devices
-Evernote => https://evernote.com
Other reasons to be proactive:
-It sets proper expectations
-It makes you look professional
-It gives you time to think for a plan B.
5. Think of something you want to create.
Having basic to intermediate knowledge in front-end development, you should start thinking about what you want to make or create. Is it something for your favorite anime, kpop group, etc. you should maybe start with something you like other than programming to boost that inner nerd in you, or maybe you wanted to create something for your school, like a school website. And ask them for feedback so that you can improve on what you are doing.
You should do anything you wanted to do. Even if it does not have a function for log in/register and it is just a plain website with a bunch of pictures for advertisement per se, do it. Every idea you have should be done, so you can practice the skills that you have been working on. And after creating the webpage that you wanted, do another webpage again and compare your works, so you can evaluate yourself.
6. Join community forums.
There are a lot of community forums for developers. You just have to find a forum or a group chat where you can learn and share your knowledge to help other developers too. A great example is StackOverflow. It is a community forum where people ask a question about their work and those who know how to do it will put a comment on what to do or try. You can learn just by reading the answers that they have, however as of the moment it is normal if you can’t understand everything that you see in that forum, so you have to go back to step #3, be curious and list your questions down!.
Joining community forums or chat groups will also give you the peers that you need to be a good programmer since you will share ideas, solutions or even problems/bugs that you encounter and answer it as a group in form of collaboration.
Here are some examples of community forums or group chat:
7. Look for a mentor
Having a mentor in programming is one of the most efficient ways to learn because you have someone to ask whenever you have a question. However, let us face the truth that not all mentors are good teachers so you should find a mentor who has years of experience in programming.
Your mentor can also help you out with your lesson plan since they too have their lesson plan for themselves but it is advance than what you currently have, they also can give you some tips and tricks when it comes to programming.
It also reduces the cost of learning programming since your mentor can teach you or show you what are the things you should study, and most probably, they have a free learning website that can recommend to you. Learning is an expensive process not just with money but also with the time that’s why you should structure your learning to not waste time
8. Read documentation.
There are a lot of ways in learning different plugins or add-ons that you can use on your website, application, mobile, etc. however the fastest and more detailed tutorial that can help you is the documentation of that specific plugins or add-ons
Every 3rd party add-ons have their documentation that will guide users on what are the default value of syntax or how to use a function that they have. It also guides users on how to install their plugins, and it shows whether the plugin is supported by the version that you are using on whatever application or website you’re doing.
Here are some examples of documentation used in web development:
9. Start creating your portfolio.
Practicing and honing your skill every day is one thing however for you to test your ability and skills, you should start creating projects for your portfolio. It may not sound that important when you are just starting in programming however creating your portfolio as early as possible gives you an advantage to others. Why? Because if you have established your portfolio and you applied for a job in a programming company, it is proof that it will give you an edge over your fellow applicants and will surely consider you.
Creating your portfolio does not mean that you are going to put all of your practice systems in there, what other people usually do which is similar to artists, is that they are picking their best works that highlight their forte and add it into their portfolio. Always remember that first impression lasts especially when you are applying to a company, so you should always be prepared to answer their question regarding the portfolio that you created.
10. Never give up.
In every decision that you are going to make in your life, you will be faced with challenges and no matter how big or small that challenge you should keep your head high and push through the challenges in front of you. This is one reason why people are not pursuing being a programmer because let us face the fact that being a programmer is unlike regular 9-6 jobs, Being a programmer requires discipline, dedication, and hard work.
When you are about to give up on programming, you should always look back and think. Why did you even start learning programming if you’re going to quit? Remember the reason why you wanted to learn to program and look at the accomplishments that you have done. And always remember “all is well” -Ranchordas Shamaldas Chanchad
This list can be used as your guide into becoming a good programmer, even if you’re a career shifter, been in the industry for a while or a fresh graduate. This list can be surely helpful because even a professional that has been in the industry for quite some time is still doing this. “Continuous learning is the minimum requirement for success in any field” –Brian Tracy.
One more thing that is not on the list is Your only competition is yourself because you don’t have to compare yourself to the works of other people for it will only result to negativity that will lead into discontinuing whatever you are doing, it may be hard for some people not to compare themselves to others but if you only focus on yourself and have the “I can do this” attitude, there is a higher chance that you can do whatever you want to do in life, not just in programming.
Agree or disagree with the list given? What did you do to become a good programmer?
If you have any suggestions and tips on how to become a good programmer, did I miss anything? Let us know in the comments.