Programming Language

I decided to go with Python, because to me it was new. But also because there seeemed to be growing interest in the language everywhere I looked. It was considered more human language like than many others. It had a reasonable collection of packages to support the fundamental language in order to do just about anything you like. But also important to me it seemed to have a lot of respect in data science and machine learning circles.

Doesn’t mean I won’t eventually look at something like Julia, which is garnering a bit of interest in machine learning circles. And R has been one of the top languages for data science for a goodly length of time. But for now, Python is the language I’ve chosen to learn and work with. I have purchased a basic book on Go. Will see if that leads anywhere sometime in the future. And, I’ve been seeing a lot of new support for Rust. But perhaps not in the data science and machine learning worlds. Enough said, Python it is — at least for the medium term.

Development System and Environment

OS

Also as mentioned, I am working on a Windows 10 pc. The 64-bit version. I have upgraded to the Pro edition. But, you should likely be fine using the Home edition (which I did initially). Over the years I always planned to install Linux on one of my older PCs. Somehow have never gotten there. However, with Microsoft supporting Linux within Win 10, who knows what I might be trying in future.

Editor

As stated in the first post, I have also decided to use VS Code (Microsoft open source, cross platform) for my coding needs. There are numerous other choices ranging from text editors (Textpad, Sublime Text) to full blown IDEs (PyCharm, NetBeans, etc.). And of course there are web environments such as Python Tutor, repl.it, etc. None of which I have really tried. I seem to be happiest working quietly on my own pc.

I have used Textpad and Sublime Text in the past (well still do for some things). I seem to recall I did install and look at PyCharm, but really couldn’t get into it. Your preferences, likes and dislikes are certain to be different to mine. So, if you haven’t done so before, check a few of the options out before you settle in on one of them.

My Initial Attempt

With my earliest learning attempts, I just installed a version of Python, coded the book’s exericses in Textpad or Sublime Text and ran them from a command window (DOS box). Python would have been installed globally and packages would have installed in this global environment. I may have tried installing some packages locally but not really sure as I hadn’t yet discovered “virtual environments”. Shortly after I found about and installed VS Code. Which I have used ever since - say a year or so.

Since then I have come to learn that this may not be the best approach, though simple enough for a total beginner. But, there may be times when you are working on different projects (i.e. books, exercises, tutorials) that for one reason or another require different versions of a given package, or even different versions of Python. The simple installation process mentioned above will, generally, not handle that situation very nicely or easily.

So I am going to suggest you begin your efforts to learn Python by using virtual environments right from the get go. It really doesn’t add any substantial complexity to getting yourself set up. And, will likely pay off in the long run. And there are some subtle benefits. For example sharing your project setup with a friend or collaborator.

The Second Attempt

So, here’s the basic setup I will be using:

  • Windows 10
  • VS Code
  • Python
  • Virtual environments via Miniconda
  • Jupyter Notebooks, when and as appropriate
  • Git & Github, if I can develop some kind of habit?

That’s more than enough to get started. We’ll install everything in the next post or three. I know the installation information is stuff you can find anywhere or everywhere. But I want to keep some notes for myself as well as possibly help others.

Note, I am going to uninstall VS Code, Miniconda, Git, and Jupyter Notebooks before I begin the next blog so that I can better cover the actual installation process on my pc.

Further Resources