ADZARA MEDIA Learn Programming Fast A Beginner’s Primer Becoming a Programmer Paul F. Mabry 12/3/2015 Computer Programming is an incredibly useful undertaking but it can be a daunting task to learn. This book revolutionizes this process and gives the beginning programmer the necessary but often overlooked foundation needed to learn programming. Becoming A Programming provides the necessary and essential background information and concepts which makes learning to program quick and easy without all the needless technical mumbo jumbo normally found in many of the other ”Learn Computer Programming” books. Preface This book came about as my students were coming to me always looking for a better way to learn how to program computers or how to learn a programming language. As you may be aware, if you have been searching for books on learning computer programming, for the most part programming books are incredibly similar to one another. The typical learn programming book usually starts with very little background material and they jump right into the famous “Hello World” code as if all programming languages were created with this idea in mind. This book “Becoming a Programmer” was written with the intent to go another direction, to introduce the programming student to the ideas and concepts of computer science, which are used by programming language designers to create computer programming languages in the first place. It is my belief having this crucial knowledge in place before jumping into writing code is the critical piece missing from most of the current methods and material used to teach computer programming. Introduction Chapter 1: What is Programming Chapter 2: The Big Three Chapter 3: Programming Essentials Getting Started Chapter 4: Data Structures Chapter 5: Algorithms Chapter 6: Operators Chapter 7: Syntax & Semantics Chapter 8: Organizing your code Chapter 9: Software Design & Development Concepts Chapter 10: Code Style Guide Conclusion Acknowledgements Index Introduction Quick and to the point! I have spent years teaching myself various programming languages, countless hours after countless hours during the course of three plus decades. I learned how to learn programming languages. I learned how the traditional “How to program” courses and books were without fail long, drawn out and frustrating. Each one had to cover the same “Hello World” pseudo code example, presented in mystery code and unchained from any meaning. I learned along the way programming languages have many similar methodologies based on the fact modern computer operating systems perform the same tasks repeatedly. This secret has enabled me to learn many programming languages and to learn them well. For the most part all one needs to do is to learn how different programming languages operate on and implement the core fundamental ideas and concepts presented in this book. For the life of me, I cannot understand why programming courses fail time after time in presenting these universal ideas in context with the code their shoving down your throat. It is as if they expect you to have already known these concepts in the languages they are trying to teach. Learn these concepts in context of learning computer programming then it becomes a simple matter of learning the particular syntax and semantics of each language! Of course, there are unique characteristics of each language but learning those means, the basics of the programming language are similar to countless other languages. Normally language specific particulars cause us so much grief but this I have found is because of the methods normally used to teach the language. Rarely taken in context and these mostly serve only to perplex and stall our progress in learning to properly program in the language. Computer Programming is an art and a science, it consist of a formalized set of ideas implemented in a rigid system of properties, methods, functions and structured rules. These formalized properties, methods and functions are necessary in order for any computer programming language to do its job. They are an unavoidable all-encompassing mandate. The good news these concepts once mastered become a simple matter of applying them to the particular programming language one is attempting to learn. Many of these concepts, properties, methods and functions are the basis of the computer science curriculum in our Universities where a single concept occupies the entire semester (or the entire year). Fortunately, for us it is not necessary to spend semesters in a classroom to not only learn computer programming but also learn to master these concepts. This is your challenge, acquire the computer science and generalized computer programming knowledge needed to utilize any programming language one chooses to learn. It is these properties, methods, functions and structured rules, which allow the computer to operate, without the construct of a set of instructions the computer is merely an inanimate object, a boat anchor if you will. Every programming language is in actuality a set of instructions the computer processing unit (CPU) uses to produce a desired result. Every book or course on computer programming begins with explanations of some basics and the ground rules of programming followed by the usual, a supposedly simple example you will see time after time the “Hello World” application. I prefer to go down an entirely different path and get right into an important idea, why do you want to learn computer programming. Which programming language should you learn first? If you want to learn the through a “Hello World” application example, you have the wrong book. What programming language should I learn? One of the most commonly asked questions by anyone interested in learning computer programming however, the reality is, a simple unambiguous answer does not exist. There is no one answer fits all for potential computer programming students. What does exist is an answer to a significant question potential programmers can ask them self in regards to their motive, rational and desire to learn computer programming. I believe given the right information anyone looking to learn computer programming can answer this question as they begin their “learn computer programming” journey. Why do you want to learn computer programming? It is of utmost importance to have a clear and concise purpose behind one’s desire to learn computer programming. Having a picture of why you want to accomplish a certain task, in this case learning computer programming, can be helpful in several ways. This sort of clarity can help identify which language would be most appropriate for you to learn first. Different answers lead to different computer programming languages being the place to start. If you want to learn computer programming to build websites JavaScript, PHP or Ruby as well as the format style language, CSS (Cascading Style Sheets) and the mark language HTML (Hyper Text mark Up Language) are definitely appropriate choices. If you want to learn programming to design smart phone apps then Objective C and Swift for Apple’s iOS Smart Phones and/or Java for learning to build Android apps or if Windows Phone apps are your thing then learning C# is where to start. All would be appropriate languages to get started learning Smart App Development. On the other hand if your interest lies in a more rigorous and professional software application development career track then consider in context how these types of careers are categorized and then consider the programming languages in use for these categories. · Front end /Client side programmer – Mostly the same tools and languages used in web development. Definitely need to know JavaScript · Back-end/Server side programmer – Java, PHP, ASP.net, Go, Python, Ruby on Rails, .Net (C#, Visual Basic, C++) · Smart Phone/Mobile Development – C#, Java, Objective C, Swift and JavaScript · Data Analytics/Science/Statistics Python, R, Java, C# The R programming language shines here but Python is a favorite with many in this industry · Financial/Quantitative and/or Mathematical C, C++ · Gaming/3D Development programming Java, JavaScript, PHP, C++, C# Mainstream Languages Why do you want to learn computer programming? The main stream programming languages like C, Java, C#, Perl, Ruby, JavaScript and Python are always a great place to start and all can do most if not all the tasks I’ve outlined above. They are mainstream languages for a reason. Modern popular, high-level programming languages like those just mentioned are well supported, have huge user populations and tend to be embedded within the various enterprises, institutions and industries that make up a modern st 21 Century economy. The C programming language is probably the most widely used of all the programming languages and hands down the one of the hardest to learn! The C programming language is much closer to machine language (“closer to the metal” is a phrase used in programming circles to describe low-level languages) and in some quarters, C is considered a low level programming language. Remember the low-level languages are harder for humans to read and write. Most discussion on the difficult to learn C programming language revolves around the fact a programmer using C must manage many tasks the other mainstream languages handle automatically, this makes C programming even more difficult to grasp. The C programming language might not be your best choice starting out as a computer programmer. The upside to learning C programming as a first language is the solid foundation in computer science and programming you have to develop to earn competency as a C language programmer. If you are thinking practical then Java, Python and C# are right up your alley. They are excitingly practical and versatile as well as in high demand. If you are motivated to learn programming as a possible high paying career move, then either of these programming languages fit the bill exactly. Try Python of all the mainstream programming languages it is probably the easiest to learn. Python is incredibly versatile and cross platform neutral, it can be implemented on all the main Operating Systems like Mac, Windows, Linux and Unix. Python programming is highly prized in Data Visualization, Scientific computing and statistics. Python is an object-oriented language, just like Javascript, C++, C#, Perl, Ruby, and other key programming languages. For people planning to become software developers, learning this type of programming in one area will help you easily learn more complex object oriented languages like C# and Java. As a further thought, I have found having Python under one’s belt allows the programmer to learn, grasp and identify the syntax and semantics of other programming languages quickly and easily. Basic to our motivation choosing a programming language is also to concern ourselves with acquiring skills in a computer programming language that is relevant to what we expect to accomplish. If a career as a programmer is on your mind any of the mainstream languages is a place to begin. If you find a programming language does not fit your needs move on.
Description: