Lifehacker has a series called How I Work where they detail the apps and tools and environment of how various people do what they do. For two of them, one of the questions is this:
What's the best advice you've ever received?
In about 1996 or so, I was a CS student and was working for Purdue's Engineering Computer Network, and my primary responsibility was keeping track of the documentation library. It was a very paper system, and I decided what we needed was an electronic system. At that point, the World Wide Web was relatively new, as was programming with the Common Gateway Interface (CGI), and about all I knew about programming is what I gained from CS 180. But, I figured that I could do this and it would make my life easier, plus I could use it as an excuse to learn Perl.
At the time, the web lead for our group was Kyler Laird. He showed some interest, gave me some encouragement, and told me the following advice:
"Don't fear flat-file databases."
I know, it doesn't sound like much. But, at the time, I had no access to big database systems on campus nor knowledge of them. Eventually, I used a database that tied to a hash (I think I have some code that still uses this, running via crontab somewhere), but on first pass, I could read a file, separate on pipes (because commas tabs are too common within text, while pipes only show up if you're talking about the UNIX command line) , and write a file, then go on to the next thing. Yes, the right thing is using SQL or, now, NoSQL databases (I still don't get them, but okay), but I could get something going now, then get onto the part where my interest lies and my enthusiasm calls.
So, yes, don't fear flat-file databases. Don't fear not using the "right thing" at some step along the way. Go with what you understand, get something going, and fill in your knowledge later.
Sounds like good advice. Relates closely to Knuth's "Premature optimization is the root of all evil." and even earlier Voltaire's "The Perfect Is The Enemy Of Good"
ReplyDelete