|
|
|
|
|
by gregjor
2106 days ago
|
|
I've been programming professionally for 40 years. Sometimes I'm in a manager or hiring position, but mostly (as a solo freelancer) I'm working directly with customers and solving business problems, using programming skills. I'm very familiar with the psychology of programming. Read the classics: Weinberg's The Psychology of Computer Programming, Tom DeMarco's Peopleware, Brooks' The Mythical Man-Month. Notice that those books are all about programming but not about languages. Alistair Cockburn studied programming success and failures and concluded that team dynamics -- "soft" people skills -- are a first-order driver of project success. Brooks came to a similar conclusion. Mastering several languages well enough to produce working code and (more important) participating in a team and business organization is a necessary precondition to calling yourself a programmer. But language mastery is not sufficient for long-term success (many of the languages and all of the tools and platforms I worked with in the 1970s and 80s are extinct today), nor is it sufficient to contribute at a senior level. By analogy a person can get through life just knowing how to hammer a nail, but they aren't going to work their way up to architect doing that, and eventually they'll get replaced by a nail gun. |
|
I think this explains why we seem to be a little at cross purposes :-) Your job requires Programming but you are not "just" a Programmer (you are a one-person company). As i interpret it, "Programmer" is a specific role within an organization which demands more of technical skills and less of others. Their focus is to design/implement a module within a larger system and not bother about Customer Relationship, Sales etc. which are no doubt, important facets for a company but it is not their role to play (Brooks says the same thing with his "Surgical Team" metaphor). Most "average" people have enough innate "Soft Skills" to function in a team working towards a common objective which is usually sufficient for a programming role.