Sometime we get a new inexperienced guy in a company as a programmer. Typically, we test them beforehand; however they are rarely perfect when started. Sometimes they are very new to programming or have bad habits from previous programming jobs. Thus it is my goal to help them to improve. And sometimes it gets really hard to integrate the guy into company. However there are some criteria that allow recognizing people with potential on becoming programmers and ones that are better left behind.
1. Persistence and knowing how to learn. Even more, urge to try and learn new things. I love programmers that know how to look for information on a problem. Â Everyone can do a task they learned, but the best programmers know where to look for an answer and never give up without a good reason. The best way is to give a task they have no experience in and look how they are trying to solve it. If a person gives up prior googling for an answer, he will not be a programmer.
2. Ability to integrate various things he learned in different environment. Few programmers learned MVC or frameworks at universities here. However, they have learned FSMs or some other paradigms that can be successfully applied in web development as well. Few try it though 🙂 (Note: knowing more than one programming paradigm is a bonus).
3. Ability to create a concise logical algorithm for solving a problem. You can be entry level web programmer without that, but that’s it.  Ability to draw these using some popular schematics like UML state diagram is a bonus.
4. Ability to debug code of other person. A programmer is unable to learn if he can’t dive into code of someone else and understand how it works. Sooner or later you will have to implement a similar algorithm where you will not be able to use that code as it is. This is closely related to ability to create algorithm.
5. Ability to write code other people understands. I loved one programmer that wrote nice functions for everything while coding a trivial task in PHP. Also, he commented a lot. Sadly, his interest was not web programming.
Sometime we get a new inexperienced guy in a company as a programmer. Typically, we test them beforehand; however they are rarely perfect when started. Sometimes they are very new to programming or have bad habits from previous programming jobs. Thus it is my goal to help them to improve. And sometimes it gets really hard to integrate the guy into company. However there are some criteria that allow recognizing people with potential on becoming programmers and ones that are better left behind.
- Persistence and knowing how to learn. Even more, urge to try and learn new things. I love programmers that know how to look for information on a problem. Â Everyone can do a task they learned, but the best programmers know where to look for an answer and never give up without a good reason. The best way is to give a task they have no experience in and look how they are trying to solve it. If a person gives up prior googling for an answer, he will not be a programmer.
- Ability to integrate various things he learned in different environment. Few programmers learned MVC or frameworks at universities here. However, they have learned FSMs or some other paradigms that can be successfully applied in web development as well. Few try it though 🙂 (Note: knowing more than one programming paradigm is a bonus).
- Ability to create a concise logical algorithm for solving a problem. You can be entry level web programmer without that, but that’s it.  Ability to draw these using some popular schematics like UML state diagram is a bonus.
- Ability to debug code of other person. A programmer is unable to learn if he can’t dive into code of someone else and understand how it works. Sooner or later you will have to implement a similar algorithm where you will not be able to use that code as it is. This is closely related to ability to create algorithm.
- Ability to write code other people understands. I loved one programmer that wrote nice functions for everything while coding a trivial task in PHP. Also, he commented a lot. Sadly, his interest was not web programming.
Your thoughts ?
2 Comments
Ahad Bokhari · September 4, 2009 at 7:35 am
Great post, and I liked all points bro especially #1, #5 and #4. You know a great practice that might help you in your selection of programmers is to have them code something in your interview.
One of my colleagues hired a guy and after giving him very simple tasks he soon realized that the guy could not code to save his life! haha but he came highly recommended from friends who vouched for him. You know what i mean tho right… 🙂
Just my $0.02.
Giedrius · September 4, 2009 at 9:17 am
A while ago I gave programmers to code during interview. It really helps to distinguish people that can not improve as programmers. However, there were some “bad apples” that passed the test, but failed to analyse problems later on.
It is worth listening to other people recommendations, but you must take them with grain of salt. Their demands and understanding are not necessarily the same as yours. A good freelancer might be a terrible team programmer.