3 ms·
I interviewed a bunch of Stanford CS students recently, and was amazed when I asked them about how much they had worked with databases. The answer I got back re
by thinkcomp 19y ago
I interviewed a bunch of Stanford CS students recently, and was amazed when I asked them about how much they had worked with databases. The answer I got back repeatedly was "I've used them in class." Not good enough.
One person, who had worked at Google, used a database there. "What kind of database was it?" I asked. "I don't know," was the answer, much to my horror.
Perhaps it's just me, but it seems like no matter which language you love most, or what you're doing, your data will need to be structured, and it will probably find its way into a database at some point in time. I don't care which database it is--just learn databases!
Then at least people like me can think about hiring you.
- tjr 19y agoI wonder how much this has to do with how databases are taught to students. While I started programming when I was 12, I didn't really do much with databases until I took a db class in college. Databases seemed boring to me, compared to nifty stuff like AI and Lisp. The class only reinforced that notion. The textbook (and the class) focused mostly on some kinda funky little projects that didn't strike me as useful or fun to build. It wasn't until I started experimenting with web applications that I began to realize the power and intrigue of databases. Databases truly are cool and powerful. But I don't think they look that way on the surface.
- jmtulloss 19y agoI agree with you. Databases seem boring. I've avoided database classes for exactly that reason, but there's no way to avoid databases themselves. Many applications have database requirements. I've started using ORMs a bit to avoid ugly SQL, but they don't actually simplify things much. They mostly just take care of some caching, transactions, and portability. You still need to understand what's happening below to use them effectively. If you want to learn how to use databases, look into writing a program backed by SQLite. It's a great little database for desktop applications and it requires almost no setup to use, which is perfect for when you want to learn how to use a database but don't want to mess with actually getting one set up.
- eznet 19y agoThanks jmtulloss, I have played with SQLite a little and thought that might be a good course of action for my learning. Thanks for the support :) -Matt
- wheels 19y agoI agree that databases seem boring. I'd been using them for about 10 years before last year when I had to write significant parts of one. Once I started getting under the hood I realized how interesting a lot of the database problems are. Turns out, the geek factor is pretty high. Problems like query optimization, fast multi-dimensional indexing, full text search and so on give a nice playground for CS mojo. :-) Per SQLite: It is probably the simplest SQL database to learn. However, I fear it might give a skewed perspective on SQL to someone just starting with it. While it's fine for the simplest of applications, if you start building up complex queries, its performance is orders of magnitude worse than almost every other SQL DB, potentially leading one to falsely believe that such things were to be avoided. I personally find MySQL to be user-friendly enough for starting off with. Though, honestly SQL in general is one of those things that I'm glad to know, but find painfully inelegant.
- jmtulloss 19y agoI agree that SQL is painfully inelegant. It's one of those standards you wish had never been established. Like Windows, only worse. As for starting with MySQL, it does reflect the actual SQL side better, but it's another thing to install and have startup whenever you boot your computer. For just playing around with SQL without committing to anything, SQLite's a nice option.
- gcheong 19y agoOnce I learned that database systemss are an application of relational calculus is when they became interesting to me and it's amazing to me now that nobody ever mentioned this to me during all the years I worked in industry with relational databases.
- eznet 19y agoOn the list, thanks! This is what I am looking for - there are certain things that I am pretty sure that I need to know better, but with my lack of applicable experience, I don't know which of my notions are correct and which ones will lead me down an unproductive path. I too have been amazed at how little databases have been taught in my CS studies. For example, this previous term I was required to take a VB.net course. In this class, integrating a database and an application was mentioned in chapter 12 of a 12 chapter book (the shortest chapter of the book, at that)! My meager exposure to databases in my databases class was hardly sufficient to provide me with what was truly required to bring together databases with application development - sure, I knew how to query and how to join tables in SQL, but I had no real clue to how this pertained to my previous C++ or Java classes. Thanks for the insight thinkcomp! -Matt