Introduction
My primary degree is in physics and secondary in software engineering. Prior to learning wolfram language, I knew languages such as C++, Java and Python (excluding web development), yet I found it rather difficult to learn wolfram language. I think the difficulty was rather due to extensive exposure to a particular programming paradigm (object-oriented programming). Wolfram language makes you think in a different way and although the learning curve was steeper then I anticipated it was most rewarding to say the least. Here is what I would recommend you to do to learn wolfram programming language.
List Manipulation
Lists, I cannot emphasize enough how often you will end up working with this data structure. It is a good start to get yourself comfortable in manipulating lists. Please see this link to kick-start your way to enlightment in list manipulation!
Documentation
Wolfram language has by far the best documentation I have every seen in my life. Embrace it and learn to use it. You can access documentation in a number of ways
- Online
- In Mathematica, by navigating in the menu bar and clicking on
Help > Documentation
Spend some time looking over the documentation. Look at the structure, the information it presents and various examples which it covers. Learning to use documentation effectively will benefit you in a long term. Specially if you want to become good at using wolfram language.
Additionally, if you want to learn more about functions signature you can type ?
followed by a functions name as for example ?Plot
. This will produce an output containing information on how-to initiate the function. Also, if you know the name of the function and just want to see its associate documentation; in notebook you can type in the name of the function like Plot
and hit F1 this will open the associated documentation.
Functional Programming
This topic is a beast of its own and is worth exploring to do great things using wolfram language. All you need to know at this stage is that it's a programming paradigm. There are also others such as object-oriented programming and rule-based programming; you can apply any of the above when writing code in wolfram language but I think ( and this only my opinion ) functional programming and rule-based programming is sort of "the boss" when it comes to wolfram language. Here is a link to get you started.
Also, see for more information
Data Visualization
In wolfram language there is a truly large amount of functions which allow you to present your data in a way you want it to be presented; to name a few - Plot, ListPlot, Histogram, ParametricPlot, DensityPlot and much more.... No, honestly - Plot3D, ParametricPlot3D, DensityPlot3D etc. I think that gives you an idea of how many different functions does wolfram language offer you so you could visualize data. What's even better you can customize them in whichever way you like by manipulating various options.
Check out some examples here, here and here
Graphics
Wolfram language has also an extensive support for visualizing all sorts of geometric compositions in 1D, 2D or 3D. I for once have been able to build rather complex geometries visualizing onshore and offshore facilities in order to conduct hazard simulations (fire, explosion etc.). I mean it's great to say the least. In order to get more familiar with graphics support when using wolfram language see these link, link, link.
Some examples here and here
Manipulate
Wolfram language has this interesting thing called Manipulate. A powerful feature that allows you to construct graphical user interface for all sorts of mind blowing things. It's essentialy a high level function which is built using lower level components, it allows its user to quickly build interactive content to present and explore ideas. Follow this link to learn more about it.
See some examples here
With that said, I wish you good luck and hope you will be able to achieve your goals using wolfram programming language.
"A journey of a thousand miles begins with a single step" - Lao Tzu