Live data from Hacker News

Ask HN: What Technologies to Learn in 2020?

news.ycombinator.com

331–340 of 441 posts

Re: Ask HN: What Technologies to Learn in 2020?

#331
post #284
post #201

Earlier quoted context omitted.

Second this. Looking for resources as well. Been working as an engineer for 3 years but still feel this is my weakness due to ORMs

What helped me a lot getting away from being limited by ORM capabilites while on the job: - Get the raw SQL of some slow or memory intensive queries the ORM produces and try to optimize them by hand. Try different approaches to get the same result, measure and understand them by using 'explain' and visualizers like http://tatiyants.com/pev/ This works great together with libraries like sqlalchemy where the ORM is opt…

This is a great answer - lots of practical advice. Thanks.

Re: Ask HN: What Technologies to Learn in 2020?

#332
post #308

Earlier quoted context omitted.

I consider Rust a lower-level language than Go, because it's forcing the programmer to deal with memory management. In what sense do you consider it higher-level?

Rust is lower-level than Go, but it's also higher-level (!) insofar as Go is among the least "expressive" languages out there — has to be its #1 criticism / value depending on where you stand. Go is very niche in scope, which is how it manages to be so essential.

I've heard this criticism a lot, but I don't really understand it. In comparison to Lisps, Haskell, and other languages I love, of course Go is inexpressive, but that's part of the point. In comparison to languages with which Go actually competes, e.g. Java, C++, etc, (uncharitably, various flavors of Blub) I don't see it as particularly inexpressive. In particular, although Rust ostensibly has some very high-level features like macros, in practice they are only used in particular very narrow domains and are discouraged elsewhere, so I consider Rust to be a less expressive language than Go overall. My measure for expressiveness is simply amount of code divided by functionality. Go seems to hit the sweet spot for expressiveness for languages in this class, without requiring programmers to learn a totally new paradigm. In short, "blub done right". Whereas Rust seems to be aiming very specifically at C++, trying to design a C successor as we would do it today.

Re: Ask HN: What Technologies to Learn in 2020?

#334

Earlier quoted context omitted.

Do you hate JS the language or do you hate the ecosystem? JS gets a bad rap from folks that have never had a chance to master the language and do pure JS development, which is actually quite enjoyable.

I hate the ecosystem. That being said, you can’t go wrong by having JS under your belt. Because of its ubiquity and path dependency, it’s not going anywhere. Besides it’s the one language that can be used for any front end development - web, mobile, and desktop. Typescript makes it a lot less painful as a language but the ecosystem is still a mess.

I encourage people to learn the language and avoid the ecosystem. You don't need frameworks or build systems to write good, clean, performant web apps. Unfortunately, arguments for simplicity often fall on deaf ears.

Re: Ask HN: What Technologies to Learn in 2020?

#335
post #6

If you're in the web sector, definitely give a try to wasm. Have a go at Rust while you're at it — see what I did there? I'm personally hot for GraphQL because it's a powerful paradigm to model data. Both Go and Rust are incredibly interesting languages, in very different ways. In some ideal world, Go fits in a scaling/efficiency vertical somewhere in-between C and C++ (it's very specific but it basically encompasses…

Wasm is getting really big in running stuff outside the browser, e.g. in blockchains. Check out my overview of Wasm in Blockchain 2019 here: https://medium.com/nearprotocol/wasm-for-blockchain-2019-d09...

Re: Ask HN: What Technologies to Learn in 2020?

#336
post #76

Learn how to really use a relational database, relational data modeling, and SQL. Not knowing of their capabilities may lead you to unnecessarily complicating your tech stack. You can go a really long way with just this domain of expertise. From there, do the same with whatever key-value store interests you (for me, it's Redis). Python isn't known for high performance but when a django web app uses a cache and relati…

What topics/ideas would say someone needs to understand in order to really understand relational databases? Also, can you recommend any resources?

Re: Ask HN: What Technologies to Learn in 2020?

#337

Earlier quoted context omitted.

Python isn't known for high performance As was said by one of the original Twitter architects, defending the choice of Ruby against people who were saying that it was at the root of all of their performance problems, for any well capitalized company, the language rarely makes a difference. A stateless web server is a “embarrassingly parallelizable”. The speed or lack there of your runtime is usually not a make or bre…

So your proposed solution is to throw more hardware at the problem? It surely can work at the small scale, but why do it when you're talking about hundreds of thousands of dollars / mo in servers? Why not choose a proper high-performance language, at least for the parts that are slow?

> So your proposed solution is to throw more hardware at the problem?

Yes. It's usually cheaper and better for the business, as has been proven time and time again. There's a reason the phrase "cheaper to throw hardware at it" is kinda a thing in our industry. It took Facebook a LONG time and many hundreds of developers before they needed to create HipHip/HHVM.

Even at a small startup, my team of 6 costs over $1MM/yr while our two dozen or so EC2 instances and other AWS resources cost less than $25k/yr. Hell yes I'm going to throw hardware at it.

Re: Ask HN: What Technologies to Learn in 2020?

#338
post #76

Learn how to really use a relational database, relational data modeling, and SQL. Not knowing of their capabilities may lead you to unnecessarily complicating your tech stack. You can go a really long way with just this domain of expertise. From there, do the same with whatever key-value store interests you (for me, it's Redis). Python isn't known for high performance but when a django web app uses a cache and relati…

Using Python for high-performance anything is a bad choice. You will quickly bottleneck at the code execution speed, even if it's just to query some cache. If you don't agree, make a simple "hello world" endpoint and see how many req/sec you get. Then compare to Rust / Java / C++ / Go. It will be radically different.

Someone already has, and frankly Python does just find for a large class of problems. Also, "high performance" is a poorly ambiguous term.

https://www.techempower.com/benchmarks/#section=data-r18&hw=...

https://www.techempower.com/benchmarks/#section=data-r18&hw=...

Re: Ask HN: What Technologies to Learn in 2020?

#339
post #336
post #76

Learn how to really use a relational database, relational data modeling, and SQL. Not knowing of their capabilities may lead you to unnecessarily complicating your tech stack. You can go a really long way with just this domain of expertise. From there, do the same with whatever key-value store interests you (for me, it's Redis). Python isn't known for high performance but when a django web app uses a cache and relati…

What topics/ideas would say someone needs to understand in order to really understand relational databases? Also, can you recommend any resources?

I don't have any good resources on the data modeling side, but on the SQL side the PostgreSQL manual[0] is really good. Even when I'm working with an Oracle database, I often find myself looking at the PostgreSQL documentation.

[0] https://www.postgresql.org/docs/12/index.html

Re: Ask HN: What Technologies to Learn in 2020?

#340
post #269

Earlier quoted context omitted.

What resources do you recommend for learning relational databases and key value stores really well?

Relational: Jennifer Widom's Stanford MOOC is often highly recommended. https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/abou...

Yup. In terms of the amount of practical benefit it's turned into, it's got to be the best online course I've ever taken.
Post reply on HN