7 ms·
Slightly on topic: when giving unsolicited tech career advice, my favorite trope is "learn sql". Don't have any computer background? Start with SQL. Already wri
by forkandwait 8y ago
Slightly on topic: when giving unsolicited tech career advice, my favorite trope is "learn sql". Don't have any computer background? Start with SQL. Already write compilers for living but don't know SQL? Of course you should learn sql. A www dev who is tied to ORMs? Learn SQL. A manager who wants to understand the IT that runs your department? Yep, SQL. Etc, etc. SQL is probably the most ubiquitous language under hood today.
- WrtCdEvrydy 8y agoIt powers the best tested technology on the planets. We've been writing relational databases for 45 years, and it has worked.
- weberc2 8y agoWell, sort of. Every decade it bolts on support for the new technology craze, and usually that proves insufficient so vendors add their own features, and even that tends to be pretty painful. Definitely a useful skill set but it’s still pretty painful.
- tomnipotent 8y ago> Every decade it bolts on support for the new technology craze You mean they got better? I've been using Postgres, MySQL, and SQL Server professionally for over 20 years (Postgres for only 15), but they've only become better & faster over time. I don't see this "technology craze" you mention, but I have seen things like parallel processing, bitmap indexes, selective indexes, query plans that use multiple indexes, online index creation (no locking), support for complex data types like JSON or XML, partitioning, vastly improved resource usage (CPU+memory+disk) just to name a few. This doesn't even include some of the cool vendor-specific features like foreign data wrappers (FDW) in Postgres, embedded language runtime support (SQL Server can do .NET, Python, R) and so on. > so vendors add their own features Of course they do, RDBMS' are products.
- weberc2 8y ago> You mean they got better? Well, I mean they support new features, which is perhaps "better", though when you continue to tack on features for decades, perhaps something was wrong with the relational algebra model to begin with. Also, you're conflating "SQL" with advancements in individual implementations of a relational database. Relational databases are great; I just think we'll find a model that is more suitable for application development than "relational algebra + the kitchen sink".
- tomnipotent 8y agoGood point, I was conflating SQL & RDBMS.
- wrs 8y agoOn the contrary, a model that is solid enough that you can continue to improve and build features on it for decades without changing the fundamentals is an extremely rare triumph in this industry. The signal that “something is wrong” is that you have to reinvent the foundation every five years (e.g., the tottering stack of false starts inside all web browsers).
- Latteland 8y agosql has stood the test of time, but we've also figured out how to extend the sql dbs and relational model so that it works efficiently in a lot more scenarios. there are column stores that do incredible compression, in-memory row stores, you can put json in a sql database and efficiently query it.
- weberc2 8y agoFeatures aren’t being “built on it”, they’re being bolted on because the model is insufficiency powerful, which is my point. To be clear, relational databases are great and important, but the relational model will have to be replaced.
- nl 8y ago
- sheeshkebab 8y agoAmen to sql
- forkandwait 8y agoThere should be an international Learn SQL day, with free all day workshops by volunteers, etc. Maybe on the date of one of the first big Codd papers or something...
- deleted 8y ago[deleted]
- adito 8y ago> Already write compilers for living ... Please pardon my ignorance, I really interested in this. What kind of job where you are writing compilers for living? The one that I know is something along Mozilla's, Google's, Apple's dev that working on the Rust/Go/Swift language. Is there any other kind of jobs that also in this writing compiler for living category?
- dspillett 8y agoLarger chip manufacturers (those with the resources to be designing their own CPUs/GPUs/similar) will likely have a dedicated team maintaining reference compilers for their designs, especially the more experimental or secret designs that are not yet proven and/or publicly available. Those creating specialist processing chips more dynamically in FPGAs may also have someone working in that area if they intend to control the result via a higher level language.
- dan-robertson 8y agoWell there are other compilers people are paid to write, eg oracle and IBM have java (JIT) compilers. There are also JavaScript compilers in vms. Plenty of companies can have internal languages which need to be compiled. One would be Facebook with hack but in a normal company it isn’t totally improbable to go from “we need to configure some rules” to “we need to add more features to our rule language” to “we need to run our rules faster” to “oops we are now making a compiler.” And there are specialised consultancies to help with these compilers. However I think GP was really alluding to working on programs that aren’t really anything to do with databases rather than writing compilers specifically
- dkersten 8y agoI agree. I used to dislike SQL, but after making some effort to better learn it, I now much prefer “raw” SQL over any wrapper or ORM for anything but the most trivial use cases. My favourite Clojure DB library is HugSQL[1] because it allows you to write pure SQL in a composable way. I’ve had to fix, optimise and diagnose transaction/locking problems with complex ORM-queries in the past and it was very painful. The best I could do was have the DB log the raw statements and then inspect those. If the queries were already in SQL, it would have been a lot easier. SQL is pretty damned good at what it does and is battle tested. [1] https://www.hugsql.org https://www.hugsql.org
- halfastack 8y agoHow does one learn SQL, then? Any good resources?
- reidjs 8y agoCheck out SQL zoo :)
- manigandham 8y agoKhan Academy: https://www.khanacademy.org/computing/computer-programming/sql https://www.khanacademy.org/computing/computer-programming/s... Mode Analytics tutorial: https://community.modeanalytics.com/sql/tutorial/introduction-to-sql/ https://community.modeanalytics.com/sql/tutorial/introductio...