Dan,
That's interesting. What kind of optics were you using? Sounds like some wide open aperture action, or mad macro level.
It's been 20 years, I couldn't tell you the specifics. Not that I know all of them. I was just hired to write the software. The lens had a very wide aperture, so the depth of focus was extremely narrow. I mean EXTREMELY. It was a scientific camera designed for that type of use.
Interesting the mention about the C interpreter. I'm assuming the time savings of being able to quickly write and use the code outweighed the performance benefits of actually compiling the code?
As you might surmise, writing a compiler wasn't an issue. Compiling wouldn't have sped things up, and it wouldn't have assisted my task. I needed a vehicle to convey instructions, and since C is so nakedly powerful with minimal code, and since my user would know C, it seemed like the natural method to create a task routine. I also provided a C "checker" (kind of like a C pre-processor, or CPP if you are familiar with C compiling) that would test for invalid C code so one could make sure their routine was good before finding out two hours into a three hour run that you had an error! I thought of everything, or at least I tried to. I never heard one single complaint about the software or user manual I wrote. Last I knew it was still in use, although that has been a while. I'm sure now it is not. Not because it has been replaced. I'd bet my next paycheck no one has done anything like that since. But just because people don't use that platform any more.
My only real claim to fame is being second author on a teaching case that my advisor had published in the Journal of Information Systems Education. I basically did the data model and some other stuff.
Not really sure what that entailed. I never had an adviser. Well, I checked with one the last semester before I graduated to make sure I was going to graduate, but otherwise I stayed clear of them. I did approach a prof one day about doing an independent study. I was writing an Amiga 2D/3D graphing library (full color, of course) on my own, and thought I could parlay that into an independent study class taking a certain mathematical program's output and graphing it like Maple. This was before a certain mathematical program had the capabilities it does now. I am talking about doing all of this as an undergrad. Although I did start my grad degree, I never bothered finishing. As a single father I had three kids to take care of.
I've picked up one of those Arduino units, but don't really have any other electronics to interface it with.
I was not familiar with that until I looked it up just now. Experiment on your own. I've etched my own circuit boards. I've designed my own breadboards. In fact, that's another thing I did, write my own digital circuit simulation software that, last I counted, had users on four continents (that I know of). Australia would have been number five, but never heard anything from them so...
Go for it. I remember back in the late 80's/early 90's I was going to write programmable logic controller software along the lines of an Allen Bradley 584/984 with real world I/O. I never got around to it. It would have been fun. And relatively easy I think. Plus, no equivalent to this day ever existed in the PC or Mac world that I am aware of. Thus it would have been extremely useful in both teaching/training and real world control. Only your imagination hinders you. Life is just too short, and some things you can't put off or technology outpaces you. For me, work, music, and a bad marriage got in the way.
IMO the best way to learn is to give yourself a project. For example, design your own Christmas light display like you see on youtube videos. It doesn't have to be that powerful, but make a simple version of that. That will give you experience in crafting a user-friendly graphical software interface as well as designing and building a real world hardware interface. You will begin to learn the real issues that are involved between hardware and software and with creating a product. Just solving the human interface issues alone will be a big step.
After you get a couple of simple projects like that under your belt, go for it. The world is your oyster.
[insert Frankie Goes to Hollywood reference here]