Pure Programmer
Blue Matrix

Cluster Map

Welcome to Pure Programmer

Many people find the idea of learning a programing language intimidating. Programming can be a lot of fun but it is also a very useful skill to have these days. From small devices that have embedded software to large corporate data stores, software permeates every aspect of our daily lives. Someone has to write all those programs!

This site aims to lift the fog of fear many associate with programming in order to help you to become a better programmer. All the skills and techniques, tricks of the trade and fundamental principles that you need to become a programmer can be found on this site. It doesn't matter what your language of choice might be, this site will help you learn the skills you need to succeed in our fast-paced, digital world. We don't delve into the distractions of which programming languages is better or worse, we just cover pure programming as it may be in any modern programming language. Along the way we will have a lot of fun and soon you will [[grok]] programming like a professional.

The best way to learn how to program is by writing programs. In this site you will find many exercises for you to use to sharpen your programming skills. You can discuss your findings in the forum for each exercise and ask for help if you get stuck.

The fundamental concepts in software development are consistent across all third generation languages that are currently popular. Thus, the key to developing pure programming skills is to learn multiple languages so that you can distance yourself from having the mental model of a single language. Becoming fluent in multiple programming languages helps you to develop the ability to generate a general solution for a problem in your mind that is then translated to the desired programming language. To this end throughout this site, examples and exercises are available in C++, Java, JavaScript, Perl, Python and Swift. Simply select the languages you prefer to study and you are on your way to becoming a programming professional.


Platform Legend

  • Linux
  • MacOS X
  • Raspberry Pi
  • Windows

Programming languages today are often available on multiple platforms. The core language features are the same on all platforms but they also have platform specific libraries to support graphical interface programming on that platform. On this website we will focus on techniques using the core language features. Our programs will use text (console) input and output which is supported on all platforms. This allows us to explore universal programming concepts without delving into platform specifics. Where we must take platforms into account, icons in the margins will help identify portions of text that are platform specific.

How to Use This Site

This site covers six popular programming languages. Simply select the language of your choice from the popup menu at the top of the Table of Contents to view the pages for that language. If you just want a quick reference of language features use the Language Syntax Comparison link at the top of the Table of Contents.

Each of the pages on this site are designed to only use concepts from the preceding pages as listed in the Table of Contents. This allows you to use this site as a tutorial by progressing through the pages on this site in order. If you already have some knowledge of a programming language and are interested in specific topics, you can use this site as a reference by jumping directly to those pages using the Table of Contents.

In order to help you crystalize your knowledge of the programming concepts presented, each page contains questions and projects. It is best to try the projects on your own first before looking at that solutions. This way you strengthen your knowledge because the only way to truly learn how to program is by writing programs. Once you have completed the projects on your own, you should review the solutions provided and compare them to your own.

Getting Started

I have setup some videos to help you get the programming languages used on this site setup on your computer. Each video targets a specific platform and shows you how to get all of the languages installed.

About the Author

Richard Lesh has been a consultant/entrepreneur/educator in the software engineering field for more than 20 years. He has worked for companies such as Boeing, MasterCard, A.G. Edwards, and Monsanto. During this time he has developed a variety of web-based, stand-alone and server applications for Windows, MacOS, and various Unix/Linux platforms using languages such as C/C++, Java, Perl, JavaScript, Visual Basic and SQL. Much of his industry experience has been working on big data such as financial transactions databases, gene sequencing information, customer investment records, email retention records and aircraft maintenance data.

Richard holds a B.S. and an M.S. in mechanical engineering both from the University of Missouri-Columbia. His education focused on computer aided design, numerical analysis, simulation and computer graphics, which eventually lead him into the software engineering field.