Customized IDL Training
Note: Schedule a class by the end of February, and every participant will get their choice of a free IDL book personally signed by the author.
I teach no regularly scheduled IDL courses. Rather, I am typically hired by companies and organizations to come to their site and teach a three or four day customized course to their employees. Typically, such courses have 10-16 people in attendance, and the course material is chosen to meets the specific needs of the organization. Sometimes the course will focus on IDL programming fundamentals and sometimes the course will have a very specific goal in mind. I have
20+ years experience teaching IDL courses and I can adapt the material to meet your needs, whatever they are.I strive, whenever possible, to have people of the same general level of knowledge in an IDL course, but sometimes this is not possible, for any number of reasons. Most of the programming exercises and lessons I bring to a class can be taught on several levels, which allows me to tailor the material for the abilities of the course participants without slowing the course down.
The programming examples are exceptional ... they are valuable additions to my own IDL library.
Significant course discounts are available if you invite me to exotic foreign destinations where there is opportunity for either adventure travel (hiking and backpacking), birding, or scuba diving. I'll teach for free (maybe!) if the desination includes all three.
![]()
Individualized Instruction
I have been experimenting lately with individualized instruction. This is almost a combination of consulting and teaching. Normally, this involves getting together with no more than one or two people to work on a specific task related to IDL programming. As we work together, I can explain and expand on topics that are essential for solving a particular problem. This is a great way to get your project up to speed quickly and to work with your time efficiently. I have even been experimenting with doing this kind of instruction remotely. If this sounds like something you are interested in, please contact me directly so we can discuss the possibilities.
![]()
Get Up to Speed Quickly
The reason most people take an IDL course is to get up to speed as quickly as possible. IDL is a big language, and it grows bigger every year. We all want to keep up with changes in graphics systems and language features like pointers, objects, lists, hashes, and all the other topics that can potentially make our programs more robust and useful to us—but we have no time to learn them!
I think of every class as an opportunity to put IDL in context for you by teaching the topics you absolutely need to know, in a concise, easy-to-understand format, that both encourages you to learn more, and gives you the skills and vocabulary you need to do so. I am careful to make the programming examples simple enough to be understood, but real-world enough to be used to learn more on your own. My goal is to empower you, not teach you everything you need to know in three days time. We move fast, but we have a good time doing it.
![]()
Training to Suit Your Needs
I pride myself on matching the contents of each of my IDL training courses with your specific training requirements. There is no point taking valuable time learning things you will not use. I find out what you need and want to know, and then use my skill and experience teaching IDL programming courses to customize course materials and example programs in a way that is of specific benefit to you.
Whether you want one-on-one personalized instruction to help you get your assignment jump-started, a customized course for the people in your lab, or a standard course for all the IDL programmers in your building, I can help you design a course that is perfect for you and your training requirements. Contact me today to see how easy it is to get started.
![]()
Your Course Guarantee
I have nearly 20+ years experience using IDL. Teaching is my passion.
I think you will find my training courses lively, entertaining, and--above
all--motivating. I have helped literally hundreds of IDL users to learn
to write top-quality IDL programs.
Every training course I teach is fully guaranteed. If you are not completely satisfied, you will not be charged for anything beyond expenses. My number one goal is to provide more value and service than you expect. I'm confident that you will not find a better IDL training course anywhere, guaranteed!
![]()
Suggestions for IDL Training Courses
Although every IDL course I teach is different, people often like to have suggestions for the types of courses I have taught in the past. Here are a few suggestions for training courses that cater to a range of IDL users, from the beginner to experienced IDL application developers. Click each link to see a more detailed course outline.
- Working with IDL Graphics: The IDL graphics system is in transition and is a bit chaotic at the moment. IDL programmers need to know about the old, traditional graphics system in order to work with legacy code found in many of the popular IDL programming libraries enjoying wide use in the IDL community. The new, function graphics system is based on objects and looks promising, but many people find it too slow and buggy (IDL 8.1) to use on a regular basis. I have developed the Coyote Graphics system, which is a hybrid system with the speed and simplicity of the traditional system and the advanced features of the new object-oriented system. This two-day course introduces the user to all three systems and explores the advantages and disadvantages of each for producing graphical representations of data.
- Working with Map Projections: A one-day programming course focused on using IDL map projection software to create graphical output on maps. The course will concentrate on setting up map projections for satellite image data and how such data can be annotated with map information.
- IDL Essentials: A three-day overview course for those who want to learn the basics of IDL programming and graphical display techniques. Approximately half the time will be devoted to the graphical display of data (using the graphics system preferred by the user), and half the time will be devoted to learning the proper techniques of basic IDL programming. This will include how to read and write data to and from various file formats, how to handle errors in programs, how to practice good memory management techniques, and how to write structured programs that are easily extended and maintained.
- IDL Programming Techniques: A four-day programming course suitable for intermediate and advanced users who want to take their IDL programming to the next level. I've put all of the most powerful programming techniques I know together in this one, all-encompassing course. It contains a one day overview of graphics, but quickly moves on to advanced programming techniques, including how to build object-oriented programs with graphical user interfaces. Advanced programming concepts such pointers, objects, lists, and hashes are introduced and used in the programs we write together in class.
- Object Programming and the Object Graphics Library: A three-day programming course for advanced IDL programmers that provides a context and basic understanding of the principles of object-oriented programming in IDL. Emphasis will be placed on learning the principles of and writing programs that use the object graphics library in IDL. The user will be introduced to OpenGL concepts that will allow advanced IDL graphics routines, especially those taking advantage of the 3D nature of the object graphics system, to be written in class.
![]()
To Find Out More
If you want to know why hundreds of scientists and engineers have already chosen Fanning Software Consulting to provide them with IDL training, then contact us today to discuss your specific training requirements and to get a training quote. Special considerations are given for remote or exotic locations where there is an opportunity for out-door adventure and/or speaking a foreign language!
![]() |
David W. Fanning, Ph.D. Phone: 970-221-0438 |
![]()

