About
Welcome to Programming In C#
My name is Frank Carr and let me tell you a little about me. I’ve been programming professionally for over 20 years. My first programming job involved coding in MASM, C, and QuickBasic under DOS. A few years later I moved on to Visual Basic 1.0. I’ve written production programs in every version of Classic VB, 1 through 6, as well as VB.NET 2002/2003 and 2005. I began transitioning to primarily programming in C# in 2007. I also have developed several web sites and web services in classic ASP and ASP.NET as well as PHP and Java. I’ve primarily worked with Microsoft SQL Server databases although I’ve also done work with Oracle, Sybase, Terradata and MySQL databases. I was a Microsoft MVP in Visual Basic from 1994 through 2004 although I’m no longer a MS-MVP at this time.
I had a previous blog, VB Notebook For .NET, where I discussed VB.NET in 2007 and I had an archive of my older VB Classic website which was written between 1999 and 2003. Some of the information there is a little dated now but may still be useful to you.
My objective with the site is to provide some of my own insights into C# programming and to continue to expand my knowledge of C# and the .NET Framework. Let’s face it. While the language is relatively simple, the Framework is huge and has several nuances that can make it difficult to decide upon the right methods to use for a particular project. I’ll also be discussing my thoughts on various trends and topics on programming in general such as Agile development methodologies, common programming workplace politics and project management.
The code examples on this site are for Visual Studio 2010 unless otherwise stated.
My Programming Philosophy
First, it has been my observation that every complex software system inherently has a considerable amount of chaos built into it simply because nobody can understand fully every aspect of it. Therefore, it is best to work in a state of “lucid ignorance” where you understand that you don’t know everything but that you can, to some degree, articulate what you don’t know. The more you embrace this chaos and work within it, the better your end product will be. The more you try to plan for it and/or ignore it’s existence, the more likely it will be for you to experience catastrophic failures.
Many things we do naturally become difficult only when we try to make them intellectual subjects. It is possible to know so much about a subject that you become ignorant.
- Mentat Text Two – Dune by Frank Herbert
Second, I believe in being a general logical problem solver and not a rote regurgitator of programming trivia. One of the problems I see today is many programmers and organizations get enamored with a particular tool, such CSLA, or methodology, such as Agile, to the detriment of actually solving the problem(s) they’re confronted with. It’s the old saying in action, “When you have a hammer everything looks like a nail”.
Above all else, the mentat must be a generalist, not a specialist. It is wise to have decisions of great moment monitored by generalists. Experts and specialists lead you quickly into chaos. They are a source of useless nit-picking, the ferocious quibble over a comma. The mentat-generalist, on the other hand, should bring to decision-making a healthy common sense. He must not cut himself off from the broad sweep of what is happening in this universe. He must remain capable of saying: “There’s no real mystery about this at the moment. This is what we want now. It may prove wrong later, but we’ll correct that when we come to it.” The mentat-generalist must understand that anything which we can identify as our universe is merely part of larger phenomena. But the expert looks backward; he looks into the narrow standards of his own specialty. The generalist looks outward; he looks for living principles, knowing full well that such principles change, that they develop. It is to the characteristics of change itself that the mentat-generalist must look. There can be no permanent catalogue of such change, no handbook or manual. You must look at it with as few preconceptions as possible, asking yourself: “Now what is this thing doing?”
- The Mentat Handbook – Dune
Lastly, I think that successful programming means internalizing the skill and art of programming rather than simply following a set pattern.
No Comments »
No comments yet.
RSS feed for comments on this post.