Programming is simply a method of creating sets of instructions to perform specific operations. The process involves developing a deep knowledge of your subject material, designing specific algorithms, and creating a formal logic in order to complete a specific process. It can be automated, processed between various types of user input, and shared between multiple individuals / systems. Programming is a way of making a process efficient and evolvable.
It is not an easy thing to do. It’s often considered a craft, an art form, and/or a form of engineering. Programming and Source Code can last and be effective for as far as we’ve seen, half a century, and with new technologies, could potentially be effective for hundreds of years as environments can be maintained to allow a program to exist and be productive for very long time periods.
What are the fundamental elements of effective programming? How can people adopt and learn new methodologies? How can simple programming tactics be utilized on extremely large scales? Time and time again, I come down to some very simple ideas that push effective programming to new levels. In the grand scheme of things, programming typically has remained the same over the years of evolution, while tactics alter slightly, architectures are very basic. Here are some basic effective programming tactics that I had a conversation about today.
Concepts – Core programming evolves around fundamental concepts. Which should be and will be learned in most higher level educations such as colleges and universities. These concepts include Advanced Data Structures, Algorithmic Styles, Communication / Transportation, and Complex Logic. If you can understand the basic concepts of programming, you can take those concepts and transport those across any language and any syntax. Windows, Linux — Same thing, same concepts… C# and ColdFusion — Different styles, yet completely same concepts. Each and every OS and Language is trying to accomplish the same task. It’s just how you accomplish it, the concept.
Common Sense – Basic understanding and logical reasoning is extremely important to the development of programs and algorithmic logic. Understanding resource use and strategies to maintain security are easy examples of how common sense should be used when designing a program. If there is a way in which resources can run out and the potential that those tools could ever exceed any allocated resource amount, re-think your strategy: test, analyze, and make good judgements. If there are ways in which security can be punctured, measure the amount of time to puncture compared to the ease of detecting such an attach. Everything can take all of your resources, everything can be hacked… so be smart and think logical.
Big Picture – Often times programmers set out to simply, “get a task done.” But how does the task affect the logic of other code and data being introduced into systems? Keeping the big picture in mind allows a programmer the ability to look 5-10 years in the future, follow trends, departmentalizing code that should not interact, and reusing code that should be inherited by multiple systems. The most common sin of programmers are being short sighted to the task at hand, while not looking at the future implications. What they do not see, is the big picture… and when you can portray your big picture thinking ability and implement it logically, it’s easily noticed by your future effectiveness.
Concepts, Common Sense, and Big Picture are vital pieces to becoming an effective programmer. I had a great conversation about this today, so I thought I would share it with the world. These are ideal effective programming techniques. But they are not restricted to just programming. Technology and programming is a heavily invested sector. Life will show these same effective practices extending all around regions of business, life, and spirituality.