|
| Resources for Other Programming Languages
|
|
|
|
|
|
|
The term programming language is frequently used very loosely.
Many times we refer to programmable softwares as programming
languages, and sometimes we simply mislabel software products as
programming languages, as I have done below with Tableau for
convenience. There are different 'levels' of programming
languages: high, medium, and low. The exact definitions of these
terms are a good way to start an argument so we will use simple
working definitions that are applicable to our conversation. We
are only concerned with 'high' and 'medium' level languages. We
will consider a language to be a 'high' level language if it
does not require the user to interact with a compiler, and a
'medium' level language if it does require the user to interact
with a compiler. Under this definition, programming languages
such as R, Python, Matlab, and SQL are 'high' level languages, and
programming languages such as C++, Fortran, and Java are 'medium'
level languages. Hence, if we want to learn C++, Fortan, or
Java, then we need to obtain a compiler.
How do I get a compiler?
(1) You have access to a Linux machine, and the compilers are
already installed.
(2) Install a compiler on your machine.
We are interested in how we can install a compiler on our
machine.
The standard open source compiler, and the most widely used
compiler, is the GNU Compiler Collection (http://gcc.gnu.org/).
The GNU Compiler Collection has compilers for C/C++, Fortran,
and Java.
(1) If you have a Mac, then you can get the GNU Compiler
Collection (GCC) by installing Xcode.
(2) If you have a PC, then you will need to install CygwinX or
MinGW.
(3) If you do not want to install a compiler, then you can try
to use a web-based compiler like CompileOnline.com.
Installation Notes:
(1) MinGW has C/C++ and Fortran compilers, but not a Java
compiler.
(2) When installing CygwinX (http://x.cygwin.com/), note that
you should simply select all of the components for a full
install. The base install is stripped down and adding
individual components is not easy for the beginner. Simply
start with the full install. The full installation is a
large package, and it will require an overnight download and
installation. The installation is very time consuming so if
you want to use CygwinX, then you should install it well
before you need to use it.
|
Tableau Your Data!
If you are interested in learning Tableau, then it is easy enough to
get started using this (low cost) book and the resources
on their website. Tableau has some free online video
training and a free student version.
http://www.tableausoftware.com/academic/students
Note that until the Summer of 2014 Tableau is Windows
only. The Mac version will come out sometime after the
Summer of 2014.
|
|
Exploratory Data Analysis with Matlab
Matlab is a really nice programming environment. Nearly all
engineering firms use Matlab as their standard software,
and other organizations that require that all software be
commercial software frequently choose Matlab (e.g. the
banking industry). It is hard not to like Matlab as a
programming environment. It is extremely well done, and
it represents the standard for all other high level
programming environments.
Here are some notes:
(1) Base Matlab is a matrix-based programming
environment, not a software. Matlab's software
capabilities are sold separately as a Matlab
'toolbox'.
(2) There is an open source version of Matlab called
Octave. Octave is only available for Linux, but you can
use it at www.compileonline.com. You might be able to
install it through CygwinX, but I have never tried.
(3) Students can typically purchase an academic version
for about $100. Check with your university.
|
|
Data Mining with Weka
You can use Weka for machine learning and data mining. Weka
algorithms are also available in R in the RWeka library,
or you could learn Java and become a Weka Jedi.
http://www.cs.waikato.ac.nz/ml/weka/
|
|
Introduction to Programming in Java
If you want to learn the basics of Java, then this is a good place to start.
|
|
Data Structures & Algorithms in
Java
If you want to become a sophisticated Java programmer, then you will
need to understand data structures.
|
|
Fortran 95/2003 for Scientists
and Engineers
I like programming books that are for 'scientists and engineers' since
all of the programming concepts are directly imbedded as a
means of problem solving. I find this to be a useful context
for learning programming.
Fortran does not get much attention these days, but it
is still a very useful programming language for numerical
computing. If you needed to build a large scale
simulation model, it would make perfect sense to implement
the model in Fortran. Fortran is also easy to learn.
|
|
C++ for Engineers and Scientists
Again, I like programming books that are for 'scientists and engineers' since
all of the programming concepts are directly imbedded as a
means of problem solving. I find this to be a useful context
for learning programming.
|
|
C++ Primer Plus
In a world of very expensive C++ books, this book is a very good and
inexpensive option for learning C++.
|
|
Algorithms in C++
If you want to become a sophisticated C++ programmer, then you will
need to understand data structures.
|
|