Friday, February 19, 2016

A great book about the Python programming language

...and now, back to the engineering portion of this blog.

Yes, The title of my blog is very misleading. I think most people seeing the title would assume that I'd be writing about my job as a software engineer at a computer hardware company. I'm afraid I have too many outside interests, though and I worry about giving away company secrets. So, I ignore a wealth of interesting topics (if you like engineering) for more generally interesting topics. But today, I'm going to start a series of posts on my deciding to add another programming language to my repertoire.

For my job, I mostly write in the Java programming language. I also write in the bash scripting language and some in C and C++. I even write a little in the Pascal programming language. But I see a lot of interesting examples written in Python. It seems that it's easier to write a simple program in Python to not only demonstrate a concept but to try things out. One of the regrets I have in my programming life is that I know little about databases. I've tried to get a simple set-up going in Java but you have to have a fairly complex program and set-up to start learning about databases.

So, I bought the book Practical Programming: An Introduction to Computer Science Using Python 3 pictured above. There are a number of reasons I chose this book. Number one is that it shows you, in a simple, straight forward way, how to create and test a database. Use of SQLite is built into Python so there is nothing to add or set up. The second reason I picked this book is that it teaches some of the basic concepts of Computer Science. While I have a lot of experience in programming, my degrees are in Electrical Engineering and Biology. I don't have formal training in Computer Science so this book introduced me to concepts any software engineer should be familiar with. The final reason I chose this book is that it is meant to teach you a good working knowledge of Python without going into details. Now that I've been through this book, I can write good Python programs but there is still a lot more to learn. I will be reading more advanced books in the future and I'll write about them. But this book teaches you everything you need to know to get started with Python.

One bonus feature I liked about this book is that it takes the time to show you how the values and data structures are stored in memory. While this seems like it should be a basic idea that anyone who has written programs as long as I have should already know and I do know it - for the languages I already know. But each language represents data and data structures differently. This book shows that when you store a value, how it is actually stored on the computer. So, when you change a variable one place, you should know if you are also changing the value somewhere else or if the value you are changing is just changing in one place. This is a problem that causes tremendous problems if you don't understand it and is the source of a large percentage of bugs. This book really helps you understand that.

So, if you are considering learning Python, I suggest using this book and I suggest learning Python version 3 instead of learning the older version 2. You will be happy you did.


No comments: