This is your very first lesson on C programming via the free C programming course, written by Devoke Studio. These lessons are structured with the complete amateur in mind, and though they are perfectly usable for anyone, this course aims to build you from the ground up and provide you with the strongest foundation possible for your future programming needs.
This course is made up of written exercises, videos, and explanations, you should first watch the video above, and practice code alongside it. It is important to have this practical experience before attempting to read this material.
To get the most out of this course, attempt each exercise and wrestle with it until you get it right, this may take a few attempts but that is fine, that is the process of learning! Do this before then trying to intentionally break your code to familiarise yourself with the errors you will run into.
Coding develops structured and creative thinking, you will find yourself frustrated, at times questioning your own ability to learn, and often feel much of this is over your head or too complicated. But you can do it, it just takes time, no one is an expert overnight. When a programmer reaches an issue, it takes deductive reasoning, trial and error, and sometimes just pure luck to solve each problem, until you know what you are looking for. The more problems you solve, the better a programmer you become.
The ability to program will open up a host of doors for you. It is a practical and useful skill, but also will allow you to form creative ideas. You can set your heart on a project and put it into action, unlike most sciences, computer science does not require any other specialist equipment than a computer to get started.
I am hopeful that if you follow my tutorials and engage with the work, it will teach you that you are capable of anything. It’s a hard road ahead, but through determination, patience, and persistence, anything is possible. And do not forget, I am here with you for the ride!
First, let us talk a little more about why you should learn C, and why I chose it to be the language to teach you to program. You only learn to program once, from then it’s a simple matter of just learning a new language. A programmer is diverse and versatile, able to pick up any language in a matter of weeks if not days dependant on their deadlines or tasks. So in keeping with this idea, your foundations for programming are best set to the foundations of all programming languages themselves.
C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion. While a static type system prevents unintended operations, by design, C provides constructs that map efficiently to typical machine instructions and has found lasting use in applications previously coded in assembly language. Such applications include operating systems and various application software for computers, from supercomputers to embedded systems.
C is the grandfather to most modern languages, and there are an awful lot of them. So effectively it is the Rosetta stone of computer language. Once you learn C, you can look at most code and recognize features that began in C helping to understand some concepts. Think about how Latin roots form the basis for many words in different languages, so there are words in English, French, German, and Spanish which you may recognize because of the core root being similar. In programming, these key concepts can be constructs, variable types, loops, and statements.
Additionally, you will understand why other programming languages became necessary, plus why and how C evolved over time.
Today C is the most widely used and popular System Programming Language. C is a language that is referred to as “close to the metal” meaning it is close to the hardware or deep guts of a system . Meaning its not that much higher than assembly, (binary instructions). But do not worry about that for now, just know this means that C is versatile. If you want to write your own game for a Gameboy, N64, or whatever your nostalgia fixation is, C is the way to go! In fact, a lot of programming is done in C such as system software, data managers, the list goes on. In all C, after 30 years is very much alive and kicking.
As a developer it is my favorite language, hence my choice to bring this to you! It has been around for 30 years now and was invented to write an operating system called UNIX.
I believe that once you unlock its power and see its potential, you will love it, just as much as I do! One day will look upon this tutorial series fondly looking back at how far you have come from these early struggles and battles. And when you do, be sure to let me know about your journey! I love hearing from my students so drop me a message.
Here, I want to write a little about how C began, and who invented it. There is a lot of Jargon in this next step, which is not necessary for your understanding of C at this stage. Do not panic if you cannot understand it all, I am providing this as some leisure reading which you can perhaps come back to further in your journey. All the information provided below has been gained from extensive research online by Devoke Studio, I have included the links to these sources below.
Dennis Ritchie an American computer scientist, invented the C language. He was born in Bronxville, New York. As a child, Dennis moved with his family to Summit, New Jersey, where he graduated from Summit High School. He graduated from Harvard University with degrees in physics and applied mathematics. In 1967, Ritchie began working at the Bell Labs Computing Sciences Research Center, and in 1968 he achieved a thesis on “Program Structure and Computational Complexity” at Harvard.
The origin of C is closely tied to the development of the Unix operating system, originally implemented in assembly language on a PDP-7 by Dennis Ritchie and Ken Thompson, incorporating several ideas from colleagues, at the Bell Telephone Laboratories to develop the UNIX operating system.
Kenneth Lane Thompson, an American pioneer of computer science. Thompson worked at Bell Labs for most of his career where he designed and implemented the original Unix operating system. He also invented the B programming language, the direct predecessor to the C programming language, and was one of the creators and early developers of the Plan 9 operating system.
You see, before Ken Thompson and Dennis Ritchie, operating systems, such as your windows platform, mac and others, were all written in ASM. This meant you could not build a computer and simply install an operating system from a disk. Instead the computer had to be hard-wired with its own specific operating system written for each computer.
Those old arcade machines worked much the same way, with one machine hardwired to produce a single game. The big, technological changes we attribute to Bill Gates, Steve Jobs, windows and mac, would have never been possible without Dennis Ritchie and Ken Thompson. Sadly, these two men are often ignored or acknowledged for their astounding work and the impact it has had on computing as we know it. Which is why I have felt the need to post it here and raise awareness of the hard-work and progress they have allow the programming world to have.
Why was it named C you ask, well i wish this was a more interesting story, but C is a successor of B language which was introduced around the early 1970’s, named B for Bell, which was developed in Bell Labs circa 1969.
https://www.wired.com/2011/10/thedennisritchieeffect/
https://www.britannica.com/biography/Dennis-M-Ritchie
http://www.computinghistory.org.uk/det/16274/Dennis-Ritchie/
This course is provided for free, as we at Devoke believe all education should be. However, if you enjoy the course, we are always grateful for support and donations to Patreon to ensure we can continue providing resources for free.