In the recent two or so years I was surprised to see how many people don't _really_ know about SQL. Sure they can write a simple insert and update query and maybe a join, assuming they can just ignore that there actually are different types of joins. But if you ask them about other _still fundamental_ knowledge like a _rough_ idea about what the different transaction isolation level are/mean/imply for you, they fail…
What would you say is the special thing about this particular bit of knowledge that made you point it out? To be perfectly honest, it seems quite arbitrary to me. I could say I'm surprised to see how many people don't know anything about the browser rendering pipeline and consequently produce badly performing interfaces. Someone else would complain about people's inability to do even the most basic Linux administrati…
Today’s Top Tech Skills
181–190 of 373 posts
Re: Today’s Top Tech Skills
#182Earlier quoted context omitted.
I strongly disagree. For many backends/purposes, SQL is really the thing doing all the real work and the backend's just some fancy authentication and validation layer. Stick close to the technology doing the heavy lifting. If people abstract away SQL too much they just start reimplementing things in buggy underperforming code, using 1000 lines of Go or Java or whatever what should be done in 20 lines of SQL. Also, do…
And that's a problem - my opinion remain that individual sql queries are better left for analyst and data engineers to craft so they can discover whatever correlation they might be interested in. But for a full scale app it shouldn't be in the forefront, at least not in the same package as other logic. The entire idea of programming is the one where you abstract away things and then abstract away the thing you're cur…
I was talking about using SQL specifically for the OLTP workload not analysis. If a query that is necessary for a backend response in some REST API ends up taking 10 minutes, but could have taken 100ms if the backend developer just knew what they were really doing over in the SQL land....the backend developer will probably waste a lot of time doing silly things with the tools available to him/her (perhaps introduce redis to cache stuff there is no need for caching, build their own fragile homegrown index table or aggregation table manually using 100 to 1000 lines of backend code plus tests, and so on).
I mean, noone ships a totally broken application that noone can use because it is so slow then asks the SQL expert to optimize it onve it has shipped!! Instead any lack of knowledge of underlying database will just mean reinvention and needless and fragile cruft in the backend code.
Note: I am against abstracting away the specific database technology you sit on (whether some SQL or not). If you are on SQL, know about indexes and materialized views (and their limitations) and so on and use them to implement efficient API endpoints, let your model in SQL directly handle any questions about idempotency or races in your API, and so on.
If you are talking about just abstracting away the SQL syntax, not the DB technology as such... such abstractions I am "meh" about, not very against them but they are usually very leaky so... They don't seem to bring anything fundamental for or against just syntax candy (getting in the way in my case).
Re: Today’s Top Tech Skills
#183Earlier quoted context omitted.
If someone on my team was writing a web app and spending time meddling around with transactions outside of whatever abstraction layer we were using on top of the DB without an incredibly good reason, we'd definitely be having a coaching moment, and if it continued, I'd likely help them find a role with another org where they might be a better fit. Any quality database abstraction provides fairly simple means to perfo…
Transactions are hard. You can't just abstract it. Those different isolation levels are there for a reason.
/s
Re: Today’s Top Tech Skills
#184Earlier quoted context omitted.
The difference is that if you screw up your browser rendering, you're not messing up your data integrity at rest and creating compound technical and potential business debt. If anything in the critical path from pricing to payments that talks to your data store makes a mistake, you can risk anything from not recording your transactions properly to charging the wrong amount or not enough at all. It's very expensive to…
We're having this conversation as if everyone making SQL queries is one fat finger away from irrevocable data loss. I know very little about SQL but have managed to build literally dozens of systems on top of Postgres without ever causing a data loss event as a result of my poor SQL skills...
The distinction is similar to a property developer and a civil engineer. Both create buildings, but one does it at scale by offloading functions to known entities and prepackaged solutions, while the other understands one domain in depth.
Both are needed in any team or organization, because not every solution needs to be "engineered" (a Dockerized Redis instance without SSL or auth behind a corporate firewall may survive untouched for a decade), but sometimes you have to engineer something that withstands gale-force winds at 1000 ft height.
Re: Today’s Top Tech Skills
#185Re: Today’s Top Tech Skills
#186In the recent two or so years I was surprised to see how many people don't _really_ know about SQL. Sure they can write a simple insert and update query and maybe a join, assuming they can just ignore that there actually are different types of joins. But if you ask them about other _still fundamental_ knowledge like a _rough_ idea about what the different transaction isolation level are/mean/imply for you, they fail…
Re: Today’s Top Tech Skills
#187Earlier quoted context omitted.
What would you say is the special thing about this particular bit of knowledge that made you point it out? To be perfectly honest, it seems quite arbitrary to me. I could say I'm surprised to see how many people don't know anything about the browser rendering pipeline and consequently produce badly performing interfaces. Someone else would complain about people's inability to do even the most basic Linux administrati…
>> many people don't know anything about the browser rendering pipeline if you can recommend a good source for learning the browser rendering pipeline please post it here, everyone I have asked just shrugs it off and says that no one really knows.
https://developers.google.com/web/fundamentals/performance/r... https://developers.google.com/web/fundamentals/performance/c...
Would be interested to hear of more also.
Re: Today’s Top Tech Skills
#188Earlier quoted context omitted.
What would you say is the special thing about this particular bit of knowledge that made you point it out? To be perfectly honest, it seems quite arbitrary to me. I could say I'm surprised to see how many people don't know anything about the browser rendering pipeline and consequently produce badly performing interfaces. Someone else would complain about people's inability to do even the most basic Linux administrati…
It's not arbitrary because screwing up your data integrity is far and away one of the most painful and business critical mistakes you can make as an engineer. Your product isn't finished if it looks like it works, but is either storing data improperly at rest or doing the wrong thing with it.
Re: Today’s Top Tech Skills
#189I've always been frustrated by the promotion of this kind of list. Yes, it matters what the demand for a given skill is but that knowledge is virtually meaningless without also having information about the supply side! If 1,000,000 companies desire talent $foo which 2,000,000 workers have, it's not going to lead to as many opportunities or as much leverage as talent $bar that 300,000 companies desire but only 50,000…
I believe for many years, that kind of supply/demand relative comparison typically determined that COBOL was the skill to have :) I've been on projects with COBOL (yay!:), and there's always a complete dearth of skilled people...
For anyone looking at this list it’s probably the places where demand is growing fastest that you want to target.
From those you could split things into stuff that’s mainstream and upcoming.
Mainstream would be Python, AWS and JavaScript as per this list.
The fastest growing areas as per this list are Machine Learning, Azure and Docker.
A common pattern here is that the in demand skills cluster around front end + full stack (including ops) or data engineering + ML
Re: Today’s Top Tech Skills
#190Earlier quoted context omitted.
If someone on my team was writing a web app and spending time meddling around with transactions outside of whatever abstraction layer we were using on top of the DB without an incredibly good reason, we'd definitely be having a coaching moment, and if it continued, I'd likely help them find a role with another org where they might be a better fit. Any quality database abstraction provides fairly simple means to perfo…
> If someone on my team was writing a web app and spending time meddling around with transactions outside of whatever abstraction layer we were using on top of the DB without an incredibly good reason, we'd definitely be having a coaching moment, and if it continued, I'd likely help them find a role with another org where they might be a better fit. And most people with knowledge of DBs should run, not walk, away fro…