| Note: I will say everything below with the context that you are talking about programmer working for businesses. Good and Bad are very relative words. To apply these to a programmer, let us analyze. I would say start with this question: What is the Goal of a programmer ? Is it to write great code OR is it to help a business succeed by creating things of value OR both OR something else ? If the goal is to just write great code, then do they need to write great code along with others ? Or are they ok to write great code just by themselves ? If the answer is that they need to be able to write great code with others in collaboration, then you have your first point covered which is "personality" or I would say "Attitude". If you cannot work well with others, you are bad programmer. Now, if the goal is to create value and help a business succeed, then does it matter if the code you write is technically the greatest ? Perhaps not; other than the fact it personally is very fulfilling. Gotta love that feeling when that thing compiles!! But the real question to ask is: can I get the patch the system quickly if the code fails or the system crashes ? If yes, then you are a good programmer. If the business team comes to you for advice on doing something technically that could help them increase revenue but may not be the best technical solution at this time, you are a good programmer if you can make that happen. You are a bad programmer if you tell them you don't want to do it. That takes to the other point about "passion". I would say that Passion may be an overused word but it should be more about "Do I like doing what I do even though I am not crazily obsessed with it" ? If yes, then you are a good programmer. Why ? Because if you enjoy what you do, you will do it better (most likely) The last point "Tech Debt". It is again relative. Tech debt for what ? If my company is not making any money and I need to put food on the table, does tech debt matter ? Or does it matter that I need to get paying clients first and worry about the tech issues later. That is a good programmer who can manage this tech debt depending on the situation of the company. Oh but they don't have any documentation in the code, I hate it. Ok then fix it keeping the business goals in mind. If you have the time to do it and still create positive outcome for the business, then that is a good programmer. Everyone else is a bad programmer. |