a thoughtful web.
Good ideas and conversation. No ads, no tracking.   Login or Take a Tour!
comment
BT  ·  4355 days ago  ·  link  ·    ·  parent  ·  post: First question: Which language should I learn first?

  Note: My links all got parenthesis appended to them. "[test](test) test" becomes "[test](test))test" after saving and will not change back. Inserting an extra space lets the space show up, but the extra parenthesis also persists. 
mk See the above note. #bugskii . Perhaps I'm doing it wrong. Do let me know if so.

Yes and no. You'll almost certainly need some sort of database backend (non-relational databases are getting pretty popular nowadays). The thing is, you won't actually need to know the query language anymore in many cases.

In the case of relational databases (typically mysql/postgres) many languages provide some sort of database abstraction which greatly reduces the amount of database-specific knowledge you need to know. Let's take an example from ruby on rails: The query

  SELECT * FROM clients WHERE locked=true
becomes simply

  Client.where(:locked => true)
. The second, using ORM, hides the query language behind the language's objects. It means the programmer only has to, for simple stuff, know the language and library's syntax. Admittedly, more complex stuff almost necessitates knowledge of the underlying database, but those cases won't come up in all that many situations.

As for the new "hip" relational-database replacements, they almost invariably have similarly abstracted libraries. The many key-value stores, such as redis, basically just have set/get methods. Document-stores are more complicated to try and classify, but the libraries do simplify things significantly.

The point I'm trying to get across here, if a little slowly, is that higher level languages have abstracted databases to the point that a fine grasp of the underlying query language is unneeded; rudimentary knowledge will be enough for the OP's purposes.

Okay, final bit. You mention python, but you don't mention what you're doing other than "online". Online stuff doesn't have to have a database necessarily. Sites that can be static (information, no users. Blogs can also be static) shouldn't have a database for performance reasons. Typically, for anything where you have users or dynamic data, it's a good (not 100% required still) idea to use some sort of database. However, for anything that doesn't require complicated relations it might be a good idea to just use redis (which has a good library for python) and not have to deal with the complexities SQL brings with it. If you absolutely need the power relational databases have to offer, elixer can do some of the abstraction I spoke of, though you'll still want to be familiar with the underlying database.

I personally find knowing my way around databases useful, but I also think that things are moving away from needing to really have a strong grasp of them and if you don't want to hassle with it you'll be able to "get by" at least. Hopefully that all made sense!