"I may not have gone where I intended to go, but I think I have ended up where I needed to be."The Long Dark Tea-Time of the Soul
I got my first computer in the early 1980s, a ZX Spectrum with an amazing 48 KB of RAM. Computers soon turned into my lifelong fascination and an indispensable companion, assisting me in my professional work and hobbies alike. I have a PhD degree in electrical engineering from the University of Ljubljana, Slovenia, where I am currently Associate Professor at the Faculty of Electrical Engineering. My research topics include evolutionary algorithms, in particular, genetic programming. I teach computer programming at all levels, from assembly to object-oriented, and to all kinds of audience. Now and then I even venture to explain to my mother-in-law how to forward an email, and I haven’t given up yet. I am also a programmer and writer. I live with my family in Ljubljana, and when I am not programming, or teaching, or researching weird stuff, I make the most yummy pancakes, not to mention the pizza.
A Beginner’s Guide to Computer Programming
Paperback: 486 pages
Series: Chapman & Hall/CRC Textbooks in Computing
Publisher: Chapman and Hall/CRC (September 25, 2015)
Online Material: fajfar.eu/start-programming
Buy at amazon.com
Buy from the publisher (Use a promo code for a 20% discount: AVP17)
About the Book
The main body of the text is accompanied by five appendices. The first of them contains a solution of the last homework, the second summarizes (also with examples) some major directions in which you can continue your study, including hints on some of the relevant sources. The last three appendices are abbreviated references of the three languages used in the book.
There will be situations when you need to use yet more languages and technologies in order to get the job done. Some such situations are gently dealt with in this book. For example, you will learn just enough about a Server Side Includes language to be able to include external HTML code, which will save you a tremendous amount of time and energy.
Is This Book for You?
If you know absolutely nothing about computer programming and want to learn, this is the book for you. It has been written with a complete beginner in mind in the first place.
If you have been exposed to programming before, you might find the book useful as well. Today, many people learn from examples and forums, and thus acquired knowledge is mostly skills and not much theory. If you ever want to build more serious software, you need a firm and systematic understanding of what is going on. You need a framework to which you can systematically attach your partial skills to form a sound structure of connected knowledge. Hopefully, this book can give you this as well.
Last but not least, if you’re a teacher of an introductory programming course, you might find a handful of useful examples and approaches for your classes on the few hundred pages that follow.
But most likely, as there are as many learning styles as there are learners, you will have to find out for yourself whether or not this book is for you.
Quiz, Additional Problems, and Source Code
As you progress through the book, you will probably find it useful to go through some quiz-type questions, or will even want to plunge into a few more intriguing problems. Even if you don't have a copy of the book, you may decide to test your skills, so why not giving it a try. Quizzes and programming challenges are awaiting you at fajfar.eu/start-programming, where you will also find the source code of the examples from the book.