If you are going to spend a considerable amount of your life programming
computers, I recommend that you get familiar with a Unix-like operating system.
What do I mean by this? I am recommending that you use Macintosh OS X,
a Linux distribution, or some other operating system that is based on UNIX.
What is UNIX?
Unix is an operating system created at AT&T Bell Labs in the '70s, and now the
term Unix/UNIX kind of refers broadly to lots of different operating systems
at least partially based on this system. The history of it all is a bit
long and more complex than I have time to go into. An absurd amount of very
good work came out of Bell Labs. If you are at all interested in computers or
telecommunications, you'll be interested in all the amazing things that came
out of AT&T Bell Laboratories.
The UNIX command-line
Alright. So have you ever seen someone at a computer typing away
at a black screen with a blinking cursor? It is a command line interface (CLI).
It is a way of interacting with a computer that doesn't involve
pointing and clicking icons in a graphical user interface (GUI), but by typing
commands. Operating systems can be used via CLI as opposed to GUI. The piece
of software used to interact with the OS via CLI is often called the shell.
Learning how to use the shell will allow you to do lots of things on a computer
much more quickly than if you were pointing and clicking. You can also save
your shell commands in a file, called a shell script, and execute this script
to run all the commands in order. This allows you to automate fairly complex
things, and you can be lazy and not do the work of figuring out how to do it
all over again.
Why UNIX?
The UNIX command-line is really powerful. Programming-related tasks are much
easier while using it. You can write, edit, and run programs from the
command line, and execute commands to do tons of different things, and you
don't have to take your hands off the keyboard to do any of it. I've written
more about this in the section of this site named learn how to use the shell.
Linux Distributions
I recommend trying Ubuntu or Debian if you are not using a Macintosh operating
system. These two Linux distributions are mature, still being actively
maintained, and are easy enough to use. You will learn a lot by
installing, configuring, and messing around with Linux distributions. I
personally use Macintosh OS X much of the time, but I like GNU/Linux operating
systems also. Even if you don't use these operating systems daily for your
own personal use, you may end up working with some flavor of Linux in your
work some day.
Open-Source Software
Open-source software is a wonderful thing. You're allowed to download the
code, mess with it, change it, and learn from it. If you are curious about
how something works on a Linux operating system you're running on your
computer, you can go find out how it works. You can't do that with proprietary
software. So as a person that is starting out with learning how to program,
I recommend you use Linux and other open-source projects so you can see how
real software projects of high quality are built. You can even fix problems in
the software and help out.
Obviously my advice about using UNIX/Linux (or free/open-source software in
general) is biased by my own opinions about software, but the power and freedom
you will have with this software will allow you to learn a lot that you might
not learn using proprietary software. You will probably get hooked on the
power of UNIX.
After getting set up with a Unix-like OS, you'll have to choose your first programming
language to learn.