Do you remember variables from math class in school? Variables in programming are actually very similar. Variables are just symbols that that represent a value and that value can be changed; thus the name variable. Unlike in math, variables in programming can be much more free form. Variables don't just have to be a letter. Variables can be a single character, but they are more commonly a word or a short descriptive phrase in lower case with words separated by underscores. It's actually best to name variables something descriptive so the you and anyone else that you're working with knows exactly what that variable is, even much later on in the code.
Types of Variables
Python is a dynamic duck typed language. Don't worry too much about the terminology, but that means that Python doesn't force you to specify which types variables are when you create them. Oh yeah, there are types of variables. Even though you don't necessarily have to specify their type when you create them, it's a good idea to know what type you want them to be. Later on, having the wrong type of variable will invariably get you into big trouble.
You probably want to jump in and start coding right away. That's a great attitude to have, but it's much better to experiment with the language and your programming environment first. If you've never programmed or never worked with an interpreted language like Python before, it's important to get a feel for the way Python works and start to develop a workflow. One great aspect of Python being interpreted is the ability to write a couple of quick lines of code and test them out in real time. There really isn't much setup beyond what you've already done.
Playing With Numbers
Without knowing anything about the language, you can use Python like a basic calculator. Open up either your .py file or the interpreter. Type in a basic math problem and run it.
Python is an interpreted language, meaning that it is compiled every time that it is run. There are a number of pros and cons when talking about an interpreted language like this.
First, on a positive note, they tend to be easier to debug. They fail immediately when they are run, and tell you what went wrong, which is nice compared to compiled languages like C/C++, which can compile just fine, but fail silently when run.
Interpreted languages are also very portable. All you have to do is install the interpreter on a system, and most code written in that language can run fine, regardless of the operating system. There are some exceptions when dealing with operating system specific code and libraries, but if you've planned for portability, you can work around those situations.
Python is a dynamically typed, interpreted, general purpose programming language. It's useful for everything from system scripting, to web applications, to full graphical desktop programs. Because of that, it's no surprise that demand for Python programming skills is only increasing, and top companies like Google, Mozilla, Instagram(Facebook), and Reddit rely on it as part of their core technology stack. Not only that, but Python is a favorite in both academic and scientific circles and is gaining ground in the financial sector. Top universities are even using it to teach programming in their computer science programs.
With all of that said, you'd probably be thinking that Python is something super difficult to learn and only accessible to the elite in the technology field, but you couldn't be more wrong. Python is easy. Python is really easy. In fact, Python is one of the first languages used to teach children to program. Python was designed to be very clear and simple to understand. It reads like plain English, and its syntax makes use of spaces rather than brackets and semicolons, so it always looks clean and uncluttered. It's very difficult, if not impossible, to wright messy Python. This helps out new programmers and programmers new to Python big time because you can always tell what you're looking at, or at least, get a decent sense of what it does. This way, you can look at code examples from established open source projects to get an idea of what professional grade Python looks like and how it's used.
Python and Linux work incredibly well together. It wasn't all that long ago that Python supplanted Perl as the de facto scripting and "glue" language on Linux systems. This means that many scripts and utilities that ship with modern Linux systems are written in Python. As a result, most Linux distributions have Python installed by default, but there is a bit of a catch. There are two current versions of Python. Python 2.7.X and Python 3.X.X are both current. Syntactically, they are very similar, but Python 3 has some features that Python 2 doesn't. That means that they are not entirely compatible and many distributions package them separately. So, your system may have Python 2, but not Python 3 or vice versa. This guide and the others in the series are going to cover Python 3. It is the future of Python, and it's not so bad to go back to Python 2 after you've worked with Python 3.
If winecfg is a screwdriver, winetricks is a power drill. They both have their place, but winetricks is just a much more powerful tool. Actually, it even has the ability to launch winecfg.
While winecfg gives you the ability to change the settings of WINE itself, winetricks gives you the ability to modify the actual Windows layer. It allows you to install important components like .dlls and system fonts as well as giving you the capability to edit the Windows registry. It also has a task manager, an uninstall utility, and file browser.
Even though winetricks can do all of this, the majority of the time, you're going to be using it to manage dlls and Windows components.