Resources for a Beginner

Hey everyone,

I'm relatively new to programming and I was wondering if anyone had suggestions on whether I should learn to program in Igor (the program I will be using for data analysis) or if I should take the time to learn another language first. If the latter, is there a particular language someone would suggest or resources to begin?

Thank you so much!
I think there are two parts to learning to program. The first is learning the logic of programming, how to write algorithms, how to use loops, etc. This part isn't really specific to any language, as most procedural programming languages don't differ very much in this respect. The second part is learning the syntax and getting familiar with the language itself.

I think it's easier to learn something when I have an actual goal in mind (other than just learning). Since you plan to use Igor for your data analysis, you have a goal and a reason to learn Igor. So I would recommend that you learn to program in Igor. The downside here is that as far as I know there aren't tutorials that teach you how to program using Igor. Most of the guides assume that you have some basic familiarity with programming in general. But if you don't know what a variable or function is, and aren't familiar with different flow controls (eg. for loop, do...while, etc.), you may want to find another resource to teach you the very basics of programming and then start using those ideas in Igor programming.

If you need help learning the very basics of programming, I recommend that you take a look at Codecademy ( They provide free online tutorials that teach you JavaScript, but the first several units focus more on learning to program rather than the language itself.
Just do it all in Igor. Igor has several features that lower the barrier to entry, like how the dialogs show you the actual commands you need to use. Also, being able to program while having access to Igor's graphing, data loading, and manipulation tools will prove to be an enormous advantage.

And you'll find that after you've picked up a single language, like Igor's, other languages become much easier. So even if at some point you find yourself no longer using Igor, the skills you learned will still be useful.
If you have not done the Igor Pro guided tour, I recommend that you do that first since you need to understand Igor in order to program it. The guided tour, or at least the first half of it, is essential for all Igor users. To do the guided tour, choose Help->Getting Started.

Here is the Igor documentation for learning Igor programming.

There is a short section in the Guided Tour:
DisplayHelpTopic "Guided Tour 3 - Histograms and Curve Fitting[Writing a Procedure]"

I recommend reading the following manual chapters in the PDF manual:
IV-1: Working With Commands
IV-2: Programming Overview
IV-3: User-Defined Functions
IV-5: User-Defined Menus
IV-6: Interacting With The User

The basics of those chapters would make a good introduction to Igor programming.

After doing some Igor programming, you should read Chapter IV-3, "User-Defined Functions" again. Some things that did not sink in on the first reading will make more sense after you have done some programming.

Howard Rodstein
Do you also offer ebook version? and sample chapter?

MSchmid wrote:
The question is already a bit older, but maybe someone has a similar problem today and finds this thread.
There is now a book about programming Igor (Igor Pro 7).

Use the link, or go to Amazon and search for "Programming in Igor Pro".

Hope this is helpful!