What Makes You A Good Programmer
If you are reading somehow you might be curious or just lost in the internet (i hope not). However, your visit will be worth it since in this post i will write about what makes you a good programmer.
I already seen lots of programmer in this world either online or offline. Most of them share common traits that i think its a sign of good programmer. However, i will share some of them with you guys so you can at least know what you should do to be a good programmer. Here come down the list :
They Design before they Code. Yes you read it right. They design how they should tackle the problem instead of just code like a monkey. You can easily seen them think first before they started typing.
They Leverage existing Library and framework but not abuse it. I have seen lots of answer in a forum that suggest you to use existing library but should not abuse it. For example, if your code is just about giving alert to user everytime they login, then don't just pull jquery out of the shelf since you can write in less line. Just don't be lazy.
They Copy code and learn from them. That's right, they more likely to copy fully working code that do the thing that they want and then learn from it instead of rewriting it again if it ended no different or worse than the copied code.
They constantly learning. As you can see right now that there are so many tools in the internet. All of them has different set of requirement and different skill. All of them requires practice. Remember, practice makes perfect. However, you should be picky with what you should learn. For example, don't learn esoteric language like brainf**k because its main purpose is to make you happy with it.
They write for Humans. You can easily spot a bad programmer by looking at their code. If their code is intended to be readed by him, god, or his/her computer then you just found a bad programmer. Computer is really good at understanding code while we are pretty bad at understanding something that requires memory. Hence that's why we keep creating a language that is easily readable by human otherwise we will stuck with assembly language or even worse, machine language.
They think about the future. If you just think about how to deliver your program right now without thinking what will happen in your program in the future. Then that's mean you still need to learn more. But if you intended to do so, that's mean you are an idiot. Because if you give extra time to think about your program in the future it you or someone might thank you for what you did. Maybe you make it effective and efficient, maybe you applied some design pattern that could be useful, or maybe you just leave some comment on your code (or this post) so other people can understand it.
They use the right data structure. I have seen lots of people that using wrong data structure. I have seen lots of my friend use vector when there is a lot of insertion and deletion in front of the vector. I even seen someone use vector just to store a value and will iterate that vector just to check if the value is exist. This is something that must be avoided. Data structure exist for a reason just don't abuse it.
They understand algorithm. I have seen lots of people say that you should understand algorithm instead memorizing it. Most of them said because we already have google. We just need to know which algorithm is right and which algorithm is wrong. Most people in the past memorize it because they only had book at the moment so do yourself a favor.
So that's all i can share with you today, tell me what is your opinion about this post.