Introduction - PROGRAMMING FOR BEGINNERS: All Concepts Explained (2016)

PROGRAMMING FOR BEGINNERS: All Concepts Explained (2016)

Introduction

Who this book is for

This book is for anyone interested in starting to learn about computer programming in general. It discusses the concepts that are essential for anyone who wants to continue learning about programming languages. This book is the starting point about learning programming. There is not any required knowledge to understand the material. You can read this book even if you don't know the word "programming", because it is clearly defined in it's own section.

Advantages of this book

I know very broad range of books about programming, and unfortunately I can tell that there is a very short number of books about this book's particular subject: about programming fundamentals, about types of programming languages, about what information you'll need to know before starting programming, how to choose programming language and so on. Most "beginner" programming books start by directly teaching you particular programming language. But what about this questions: is that programming language good way to start learning programming? what are the advantages and disadvantages of that language? what kind of programs you can write with that programming language? will it work for your particular programming needs? the answers to these question are just not discussed in most of the books about "starting to learn programming".

This book tries to provide you with all the information before you start learning about particular programming language. Also, this book will help you decide which way to choose, because in programming there are many ways to choose, for example game programming, programming word processors or similar desktop software, text analysis, sound programming, scientific programming, system programming, network programming, using programming for securing computers and so on. The choice is your, but bear in mind that all these subjects are different, complex and require time to have real results. So it is probably better idea to have one particular aim and follow it, for example build your learning way like this: "I want to write commercial video converter software. Which programming language is best for this task? What other background information I will need to know for this task?"

Also, I try to write as clear and concise as possible for this book to be easy to understand for anyone. I also include some real world examples for you to truly understand some concepts. Where needed, graphical illustrations specifically created for this book are also included in the book.

Why do I need to know background information about programming? (The purpose of this book)

Note: don't worry if you don't know concepts (like programming) in this section; I'll explain all of them in the following sections

Probably many people think (including I, in the past) that it is really useless to spend time about learning fundamental informations about programming. They think they can just select particular programming language and start to learn programming in shorter time. But this is a big mistake which I also made in the past when I thought exactly that way. There are several arguments which I will tell you, about why learning about the fundamental programming methodologies, programming languages, types of programming languages and other fundamental informations about programming is so important. First of all, when you start from the basics you won't have problems in the future along the way, because there won't be any missed informations and you should be able to continue learning process. In computer programming, some concepts explain the other ones, like in math for example. So, it is very important for you to not follow the wrong way. There are many ways and many programming languages, and there is a possibility for you to make a wrong decision (for example, choose and learn particular programming language and at some point discover that there was a better language for your programming needs you just didn't know about) and discover that only later on. The next argument is that for your brain it is much easier to process information from start to finish, not from the middle and jump back all the time to learn about concepts that are needed to understand material. In this way, you have to jump to basics several times, whereas if you know all the basics you can follow directly and not waste time on the background information. And lastly, you will need all these background information in any case because many authors about programming mention concepts and words that you just won't know until you have the fundamentals learnt. All the programming concepts are connected in some way, and it is much better if you learn from the broad perspective and not only particular concept to avoid problems arising later in the study process.

How to read this book

This is a self-contained book. It means that every concept that some people possibly might not know (for example, compiler or functional programming) has links (links are underlined, which makes them different from regular text) which when clicked will take you to the place of the book where the concept is defined. These possibly unknown concepts to the reader are not specifically written, for example like glossary; instead, they are content of book's regular (main) text.

Because of this book being self-contained, it's advantage is that you can read about any topic from the book and if some concept will be unknown, you can go where it is defined by link and read it.