Live data from Hacker News

Today’s Top Tech Skills

hiringlab.org

91–100 of 373 posts

Re: Today’s Top Tech Skills

#91

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…

My go to interview question to test basic SQL knowledge is use of “HAVING”. It’s a surprisingly good filter. EDIT: To clarify since this got more attention than I expected...I don’t disqualify any candidate based on the answer to a single question. I just use that question to assess their actual SQL experience. If you’ve spent any amount time writing raw queries by hand for reports or just to pass through to a web se…

My use of SQL beyond very basic is very sporadic (I do remember about HAVING though). If you ask me out of blue I would most likely fail tests. From time to time however I do have to design database for particular product and in a matter of few days my knowledge gets from basic to very good one. Only to go down again a short while after database design implementation and testing completes.

That does not mean that I do not know basic concepts about how different databases work, including underlying storage engines etc. To the point that for one product I personally designed actual NoSQL (EAV to be precise) database engine and query engine largely resembling SQL to go along.

So would you fail me in your test?

Re: Today’s Top Tech Skills

#92
post #60

Earlier quoted context omitted.

It can seem that way, but the consequence of not knowing them is lots of subtle race conditions. Granted, most webapps probably don't have enough users to trigger them too often, and the impact is often limited e.g. because the kinds of inconsistencies you can introduce don't actually matter that much in many cases. For the majority of webapps, I'm not sure the default isolation level of MySQL and Postgres is an appr…

The vast majority of work on web apps is probably writing CRUD controller methods, proxies to upstream services, or React components. It’s like saying CSS transitions are vital; they aren’t, but probably affect the user experience for the average Joe just as much if not more than a phantom read. At that level of depth you just hand it over to the CSS champ or the DB champ.

Sure, as long as the developer knows what they don't know. Race conditions usually don't fall into that category (and neither do potential UX improvements actually).

Re: Today’s Top Tech Skills

#93
post #15

I’m thinking about the future. What skills will dominate the software market 10-20 years from now? - Big companies use C++ heavily, besides being the language for deep learning/GPU programming. Will Rust/Go replace it anytime soon? - Will React still dominate front end development? - What about Python and the data analysis ecosystem?

React might go away, but javascript/typescript will probably be a good bet for the next 10 years (who knows beyond that). I'd like to think that people will come to their senses about Python and use sensible languages for ML + data once they relearn all the problems that software engineers learnt about it all that time ago (fast development != reliable/maintainable development, fast development != easily-scaled devel…

What are the problems with Python? I’m an undergrad student that just wants a job. Programmed for a year in Java, but heard that I should be transitioning to Python if I want to work with the big ML libraries such as PyTorch, PySpark, NumPy, Pandas, etc.

Re: Today’s Top Tech Skills

#94
post #9

I have to wonder if Java would be in demand if not for Android?

To everyone replying: I think demand is rather different than popularity, ubiquity, or even supply of jobs. Even the link refers to Python being the top language of 2019, but "researchers at [...] Indeed" (note: a single job listing source) found SQL & Java to be included in listings marginally more frequently than Python.

Re: Today’s Top Tech Skills

#95

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…

My go to interview question to test basic SQL knowledge is use of “HAVING”. It’s a surprisingly good filter. EDIT: To clarify since this got more attention than I expected...I don’t disqualify any candidate based on the answer to a single question. I just use that question to assess their actual SQL experience. If you’ve spent any amount time writing raw queries by hand for reports or just to pass through to a web se…

Eh, HAVING is something that can be learned in 5 minutes. So filtering out for that is probably generating a lot of false negatives. I quiz them on indexes and table design. Those can be done without writing a single SQL query.

Re: Today’s Top Tech Skills

#96
post #15

I’m thinking about the future. What skills will dominate the software market 10-20 years from now? - Big companies use C++ heavily, besides being the language for deep learning/GPU programming. Will Rust/Go replace it anytime soon? - Will React still dominate front end development? - What about Python and the data analysis ecosystem?

React might go away, but javascript/typescript will probably be a good bet for the next 10 years (who knows beyond that). I'd like to think that people will come to their senses about Python and use sensible languages for ML + data once they relearn all the problems that software engineers learnt about it all that time ago (fast development != reliable/maintainable development, fast development != easily-scaled devel…

I think you might be conflating good general software engineering practices with language choice. Remember that the current dominant social network of our time (Instagram) built and scaled just fine off of Django + Postgres and a relatively small engineering team -- you can write poor code in Python just like you can in Java, and you can write good code in either one.

Re: Today’s Top Tech Skills

#97
post #14

It remains weird and disturbing to me that "AWS" is treated as a skill. Not "cloud system management", but " AWS ". Edit: I do understand why it can be lucrative to have expertise with a specific cloud provider. It's just the status quo of these services being their own unique silos that disturbs me: I would personally be wary of making "ability to effectively use Amazon's servers" a pillar of my career.

Different clouds operate in different ways - people probably want the skill of knowing how the various parts of AWS best integrate and I’m sure that there is a lot of subtlety and non-obvious things to this. Seems reasonable to me? I don’t think it’s disturbing to seek a specific practical skill that you know you need. Not everyone has to be a master of everything.

In my experience there's much more transferability of skills laterally between cloud platforms than there is within the platform itself, ie. knowing how to design a high-volume transaction platform on Azure or AWS is going to be leveraging the same kind of technologies with the same kind of behaviors and features, the real change is going to be in details that in my opinion are quick to figure out.

But arguably if you are specialized in building internal tooling in AWS, the gap to design an effective HVT platform in AWS will be much harder to fill. Same thing goes if your specialization is more on the infra side of AWS or on the application development using paas.

Re: Today’s Top Tech Skills

#98

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…

I agree. Use the right abstraction and the right number of them: I’ve yet to find an ORM that didn’t kick you in the face In terms of performance to only hold your hand with queries. SQL queries can be done in code in a sane way to avoid sql injection or you could implement stored procedures and functions to make operations more ORM-like but not pay any of the ORM tax. It’s just annoying to see the DB treated so flip…

I think HugSQL[1] (Clojure library) has really opened my eyes to what DB interaction should be like. It’s not exactly an ORM, but it protects you from SQL injection and makes it convenient to leverage the capabilities of your SQL database.

Also, his name is Usain Bolt[2].

[1] https://github.com/layerware/hugsql

[2] https://en.m.wikipedia.org/wiki/Usain_Bolt

Re: Today’s Top Tech Skills

#99

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…

>> 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.

Re: Today’s Top Tech Skills

#100

Earlier 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.

I think the point to be made was that if you screw up your browser rending to the point of it being unusable on old devices, that could be just as business critical as the data integrity issue.

Making either of those your line in the sand for what a developer should and shouldn’t know is arbitrary. I don’t know a ‘Scala’ full-stack developer that could do advanced optimisation on React render times, or a ‘React’ developer that knows transaction isolation.

Not knowing either of these does not make you an unworthy developer and unless you have a specific need for these skills it probably does more harm than good expecting everyone to know them.

Post reply on HN