Even making that distinction, I know very few “good programmers” who were not “bad programmers” in both senses at the beginning of their careers. Your experience is not at all uncommon. To be precise, all of the good programmers whom I both know now and also knew earlier in their careers had worse practices early in their careers. Your experiences may differ.
The difference is that people who become “good programmers” exercise self-awareness at some point, and start actively improving themselves for the sake of improving themselves. That the quality of the work also improves is a side-effect.
]]>This also explains why Linux and Unix platform are better for doing serious web development: the average developer working on Linux knows a lot more about how the system works, than the average developer working mainly on Windows. Developing a serious product and managing it requires a great deal of system work, and if you don’t know how your system/platform works, you’re doomed to fail.
Windows can of course be used to build and manage serious web-apps. Stackoverflow is made possible by Windows and the .Net platform (pun intended :P), but that’s partly because Jeff Atwood and Joel Spolsky are not just your average developers.
]]>(yet, another programmer learning to scale the mountain)[2]
]]>