Live data from Hacker News

Today’s Top Tech Skills

hiringlab.org

61–70 of 373 posts

Re: Today’s Top Tech Skills

#61
post #55

Earlier quoted context omitted.

You really don’t need to know transaction isolation to do the vast majority of work on a typical web app.

I wouldn't say so. Concurrency bugs, like lost updates, can be very subtle and hard to debug, and common databases don't prevent these kinds of bugs by default.

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

Re: Today’s Top Tech Skills

#62
post #16

Java is still undisputed in the enterprise. Node.js was a contender but lost steam. May be .net once it becomes truly platform neutral have a chance to take on Java. Until then most probably it will remain widely popular.

I figured that was mostly due to legacy code at this point; is it undisputed for new code too?

Yes, there is a lot of new code being written for the JVM. E.g. Kotlin is a fine choice as a language for a new backend project these days with excellent support in frameworks like Spring Boot. Also it is a drop in solution in pretty much any Java project (as in you can mix the two and they interoperate without much fuss). Modern Spring Boot is pretty nice and getting nicer with each release. In terms of feature set it pretty much runs circles around anything in the javascript ecosystem. And with a language like Kotlin it's not a bad programming experience either.

As a language Kotlin is sort of similar to typescript with a few nice features added, a bit more elegant syntax in some places, a bit richer in some places, and of course none of the madness that comes from javascript compatibility. I've seen typescript developers pick up Kotlin and liking it. Other languages it is similar to are C# and Swift. Swift is so far not used a lot for backend stuff but I could see that change. All of these can already compile to web assembly and the tooling for that is likely going to mature in the next few years to the point where you can target browsers, node.js, and native with a wide variety of languages.

Re: Today’s Top Tech Skills

#63
post #48

Earlier quoted context omitted.

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…

>but javascript/typescript will probably be a good bet for the next 10 years Honestly how is javascript (and thus typescript) ever going away at this point? I honestly mean _ever_. Like until the day I die. Almost the entire web is using it. Frameworks like React, Angular, Vue have made it so I basically don't care that much about javascript. Most of my code is server-side and the client is largely handled by Angular…

WebAssembly has some hope of changing how browsers are programmed, but you're probably right that JS will live on for many human generations as a legacy tech at least.

Re: Today’s Top Tech Skills

#65
post #58
post #29

Earlier quoted context omitted.

Yes, it is. I can build anything in Java and run it on any computer owned by anybody. AWS isn't a technology, it's just Amazon's computers and the constraints and interfaces they wrap around them.

One could then argue that Java is owned by Oracle, and could be called Oracle Java, an Oracle technology. I tend to agree with you though, AWS is more of a company's interpretation of the cloud hosting technologies. It's too close for comfort, to be honest. I prefer to self host, but I tend to host in the cloud due to financial constraints.

I don't have any problem with cloud hosting, as long as there's portability. I wouldn't want to design my architecture to be completely specific to one hosting provider.

Re: Today’s Top Tech Skills

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

There were people who made entire careers being experts in Cisco. And Windows. And Solaris. And RedHat.

Heck, you can still make a career on being an expert in IBM 360.

It's pretty common to go deep on a particular vendor's technology and make a career of that.

Re: Today’s Top Tech Skills

#67

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…

With SQL, I started out using an ORM at my first internship and I've been using an ORM ever since. Over time, I've grown to dislike ORMs for anything more than anything trivial (a simple select statement with a handful of 'WHERE' clauses, an insert, or a delete). Most ORMs try to generalize the behavior between various RDBMS (Postgres, MySQL, SQLite, Oracle, MS SQL, etc.) and end up being exceptionally leaky abstractions.

When combined with tools that create a schema from code (which are in of themselves quite leaky), the resulting schema is frequently atrocious and lacking in both safety and speed.

Re: Today’s Top Tech Skills

#68

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

But at the end of the day any single bit of knowledge doesn't say much about your general ability to be a developer. The term "web development" covers an extremely wide array of topics. Luckily, there are many wonderful pieces of software out there that abstract things away and allow you to produce a finished product even if you aren't an expert in everything involved.

Re: Today’s Top Tech Skills

#69
post #16

Earlier quoted context omitted.

I figured that was mostly due to legacy code at this point; is it undisputed for new code too?

Yes, there is a lot of new code being written for the JVM. E.g. Kotlin is a fine choice as a language for a new backend project these days with excellent support in frameworks like Spring Boot. Also it is a drop in solution in pretty much any Java project (as in you can mix the two and they interoperate without much fuss). Modern Spring Boot is pretty nice and getting nicer with each release. In terms of feature set…

I was specifically talking about Java, not the JVM in general. The latter is obviously still a great technology and it hosts some of the best up and coming languages.

Re: Today’s Top Tech Skills

#70

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…

How would you know it’s a good filter? What position are you interviewing for?
Post reply on HN