There are many different types of programmers who develop programs. Or is it computer programming? Or is it coding? These are all signs or squares we use to categorize people and their skills. Just as we distinguish between testers, programmers, managers, architects, designers, CLO etc. this is just more straightforward. What exactly makes the programmer the programmer or the programmer? We may use it loosely interchangeably to mean the same thing, but from an external perspective I like to think of them as badges or lines. Something to gain with time, patience, wisdom and experience.
Some people have some characteristics of their own that make them good, bad, better or worse than the next person. In order to simply define what might be, I suggest five boxes or signs.
- Tool user
The user of the tool is the least experienced of them all. He has enough knowledge to roam around tools like Visual Studio 2005 and gather the graphical user interface by simply dragging and dropping widgets onto a form. For someone who does not know better, because he produces results that often seem convincing (stemming from the tool's efforts and not by his own actions), they think hard of him and / or his designs. Why the term construction, not production or development? Well, he's not really developing anything. It builds things with the use of advanced tools ever. The categorical or shrewd management of technology will see this past, but unfortunately (or fortunately for the best programmers in the world) still finds its place. This is the worst kind of developer. When something is broken under the hood or needs behavior modification to do anything essential, forget about it. Selection languages: Does it really matter? It is all gibberish
Favorite program: Any and all RAD tools that provide rapid development of clicky interfaces
Favorite program: Simple text editors, perhaps text editors that provide syntax discrimination
The programmer has a good understanding of what the program code is and writing it. He does not rely on tools as much as his own understanding of languages. He is not about the tools he studies because he understands the tools he will not make for him. But this oversight blinds him to realizing the benefits that he can provide to the most experienced programmer. This familiarity with tools and libraries as a result of limited exposure and experience in the broader field, through its shadows from the larger project environments that require version control, and many developers and larger environments. He is not familiar with it. Likewise, while qualified programmers cannot necessarily think about how others use what they write and as such, it really doesn't fit into a team-building environment. He is a lone skill programmer's. He may have skills, but no one can work with him because he does not think up or down the line of code he is writing. Selection languages: C ++, Java, C #, Visual Basic
The developer is an experienced programmer who understands that there is a lot more to software development than the lines of code that composes it. He has a much better understanding of software design concepts and principles than a programmer and thinks of a problem in its entirety. While he has a good understanding of this problem and is open to seeing it from most angles, he doesn't necessarily understand the entire range that applies to him. Through experienced programming skills, he does not rely on tools but uses them to increase productivity. Selection languages: Managed blade is generally preferred over unmanaged blade because it understands the increased productivity that accompanies it.
Favorite program: IDE's highly developed anything that provides intelligence, syntax highlighting, code snippets, templates, formatting, etc.
The architect is cream crop. It is a developer with experience with ten years of experience under the belt. He has gone beyond the technical aspect of software development and an understanding of good solution design. He can walk into the business and connect the points that people within the range cannot reach. Drawing on many years of experience as to what works and what doesn't work, he is often appointed as a consultant for his valuable experience.
This set of broader and specialized skills puts it in high demand. When the company wants to bring in big weapons and call a consultant. This is the man.
Selection languages: Programming was left to his youth, his consulting services required him to write very few lines of code.
Favorite program: Modeling tools, metric tools, and tools for comparison purposes.
What types of programmers have you met / worked with in your life?