Welcome. This is my humble attempt to document my advances in learning how to develop software in a scientific research context.
In order to give you an idea of what the posts are based upon, I describe my background below. While I’m not a trained programmer, computer scientist, or IT professional, I think that my experiences match those of at least some of the potential readers of this blog. I guess these would also be the people that it is mainly addressed to: advanced newbies, or, deep-sea divers without diving bells.
In primary school, some of my friends had a Commodore C64, and I wasn’t allowed to have one, which resulted in me visiting them as often as possible to play games. The computer world became so fascinating to me that I regularly went to the local public library and borrowed old copies of the computer magazine CHIP to read at home. Once I found a BASIC script in one of the issues (CHIP or other, this was the time when a lot of a magazine’s page extent would be taken up by code listings) which would create an infinite loop displaying asterisks randomly on the screen. A full-on space simulator! I learned this script by heart, then went to the local department store and typed it into all their C64 & C128 computers on display, secretly giggling to myself imagining the trouble the shop people would have to go through trying to stop that program. My first (and as of now only) hack, haha.
At some point my father, who was working in council administration, brought home the first PC to enter our household. I believe it was a 386 IBM PC. He was using dBASE at his work, and started using it for family stuff as well. My first contact with DOS. He was motivated to learn a lot about computers, and taught me some of the basics in the process.
My first own computer was a – then state of the art – 486 IBM PC (DX! 33MHz!), at a time when PCs for the first time really became affordable. It was running Windows 3.1. I was hooked.
In secondary school, I received my first (and almost last) formal education in computer science during a two-year computer science course. We learned Turbo Pascal, but I was way to busy with more important things (punk rock) at the time to really pay attention once the course went beyond the basics. Much to my later regret.
After that I became a plain user (well, mostly gamer), but triggered by the needs of my first band, I learned how to do things on it DIY style. For example: I produced the sleeve for my first band’s first 7-inch record with it, scanning the original artwork with a hand-held scanner (again, state of the art, haha), and then drawing our logo and adding it to the artwork in Paintbrush for Windows before printing it on the HP Deskjet 500 inkjet printer most families owned by then.
Just in time with the rise of the internet, I got to meet some people working in the computing centre of the local Technical University. With their help I got my first internet access (56k, I had to send in my ID card to get it), and was allowed to drop by and “do stuff” on their computers. I witnessed some of their meetings, and I was humbled by the complexity of the stuff they were working on. I believe this was the first time I’ve seen a UML use case diagram. Wow!
Again it was my band which triggered renewed interest in programming (or similar), as webspace became available, and I wanted to create a website for the band. So I downloaded a complete copy of SelfHTML at the computing centre, and read through it all. I re-emerged a changed man, and website design with HTML became my new hobby after that (although I hardly excelled at it). In the course, I learned some CSS, some JavaScript, and some PHP and MySQL (and some very basic Java). I never thought much of it, and nevery really dug deep into what I was doing.
When I was studying English Linguistics, that had to change. I did a course in empirical linguistics which renewed my interest in computer languages. For my dissertation (which took me more than a year to complete, and exceeded the page limit by factor 4), I designed a data elicitation system in PHP and MySQL, learning by doing. This was the first thing I have ever really programmed, and I’m sure it was a good example of how not to do things. However, it got me into programming again, and for a temporary job as student assistant in a linguistic research project, I was able to apply my acquired knowledge to develop a PHP interface for accessing metadata from a relational MySQL database.
After I had completed my MA, I got my current job of Research Assistant in a linguistic research project, for which I brushed up my knowledge of Java. In the course of the project it was decided to use the Eclipse RCP (website) as platform, so here I am again, learning by doing.
In the course of this blog, I will try to share things I have learned, in a way that will hopefully help out others searching for a solution to problems similar to those I have and will encounter.