Live data from Hacker News

Ask HN: What Technologies to Learn in 2020?

news.ycombinator.com

341–350 of 441 posts

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

#341
post #214

Earlier quoted context omitted.

Not OP, but I think there is a reason for it, although I do agree it might have been better phased. Assuming Good intention, ( Which I think OP is ) sometimes it is a little hard for people under certain age to understand certain things. It is simply a reflect on our stupidity that when we were young, we too were also singing, praising and hyping all the shiny tech. And we were burnt by it. So it was more like a sugg…

Yes, I might have phrased it better, but the intention was that at a younger age, you perhaps didn't yet have to upgrade a legacy projects with semi-obscure tooling where the original developers have long left; or have had to hack your code in a dirty way because the team leader might have read about e.g. an experimental frontend framework and a DB system that is in alpha status, but still orders the team to use it (…

> Yes, I might have phrased it better, but the intention was that at a younger age, you perhaps didn't yet have to upgrade a legacy projects with semi-obscure tooling where the original developers have long left; or have had to hack your code in a dirty way because the team leader might have read about e.g. an experimental frontend framework and a DB system that is in alpha status, but still orders the team to use it (to show the company that he/she is using cutting edge tech), so 80% of the time you're just figuring out how to get the system running instead of actually creating value for the project.

You're conflating age with experience. Yes, somebody that's younger is likely to have less experience, but the two words are not interchangeable. Their link is definitely not strong enough to begin guessing peoples' ages based on their level of expertise.

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

#342
post #281

Earlier quoted context omitted.

Yes, I might have phrased it better, but the intention was that at a younger age, you perhaps didn't yet have to upgrade a legacy projects with semi-obscure tooling where the original developers have long left; or have had to hack your code in a dirty way because the team leader might have read about e.g. an experimental frontend framework and a DB system that is in alpha status, but still orders the team to use it (…

Yes. In the Parcel and WebPack threads I was reminded shiny new things often have edge cases that are unknown, not well known or known with no solution ( yet ). And I simply dont have the time and energy to deal with those, much better to wait for it to mature before jumping in.

If someone has worked on 20 projects, they have encountered edge cases, undocumented behavior, or incomplete implementation few enough times to believe 'it's just this framework / library / language.'

When you've worked on 100+ projects (and accumulated a few pathologically obtuse, worst-case horror stories), you realize it wasn't bad luck, but those landmines inevitably lurk in every younger stack.

Maybe you get lucky and don't step on one. But that doesn't change the overall risk based on their existence.

As Torvalds said in the spinlock back-and-forth: it looks simple, until you're looking back over two decades of patching edge cases that you never saw coming without the benefit of hindsight.

And having that experience makes you look forward very differently.

(At least where production, must-work code is concerned. Go nuts with toy / personal / experiment projects!)

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

#343

Earlier quoted context omitted.

How is this something to learn? It's more of something to try. Anyone who can write code can write tests and anyone who can write tests can writes tests before they code. It's trivial. Instead learn formal methods. Learn how to prove your code correct for all cases rather then verifying your code for one test case. This is learning and it won't be rehashing what you know like tdd. Formal methods is brutally hard.

The concept of correctness by proof, rather than by spraying tests at the code and hoping, is a shift of perspective, but it doesn't have to be brutally hard and doesn't require going all the way to direct application of formal methods (which is often impractical). I encourage people to go partway in the right direction. Instead of telling me your test coverage, tell me how you can prove that the core algorithm of yo…

I don't mean to say that it's hard in the sense that you can't learn it. I mean it's hard in the sense that it's like you're learning programming from scratch again.

It will be a very different and much more challenging path then learning another framework/language which is what most people just do over and over again.

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

#344

Earlier quoted context omitted.

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.

It’s not about what you need to get the job done. It’s about what you need to be employable.

But any functionality from third party modules carries with it dozens of other dependencies.

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

#345

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?

Do you know how much hardware you can buy for the fully allocated cost of one developer?

In reality how many companies in the world have hundreds of thousands of dollars a month in servers?

Why not choose a high performance language? Maybe it’s easier to find developers in a certain language, maybe the developers are cheaper for a certain language or it may have a better ecosystem.

If I just needed a simple CRUD app and thought I could get a lot of cheap developers I might choose PHP (hypothetically) because I know PHP developers are cheap.

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

#346
post #168
post #93

A related question that I’ve been thinking about: What technologies/languages/tools/stacks can I learn now, that will still be relevant and useful in 2025, or 2030?

Java and Spring (Boot) I think it is unlikely that they will not still be relevant in 2025. With the recent improvements of the Java language and looking at the roadmap ahead, the Java language is looking more and more competitive. Java 14 looks very promising and I think that the improvements to come will ensure that the language will not become irrelevant, which many believed 10 years ago (myself included)

Spring Boot has been obsoleted by Micronaut.

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

#347

Earlier quoted context omitted.

How is this something to learn? It's more of something to try. Anyone who can write code can write tests and anyone who can write tests can writes tests before they code. It's trivial. Instead learn formal methods. Learn how to prove your code correct for all cases rather then verifying your code for one test case. This is learning and it won't be rehashing what you know like tdd. Formal methods is brutally hard.

>Anyone who can write code can write tests and anyone who can write tests can writes tests before they code. It's trivial. It's also trivial to create an absolutely brittle mess of a test suite. Building a solid, performant and reliable test suite is an art that, in my experience, the vast majority of devs do not seem to have much skill in.

A test suite is just a some code iterating across some test functions.

If you want you can add fancy scoping and contexts and assertion shortcuts go for it, but ultimately this is also trivial. I wouldn't spend too much effort in this area.

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

#348
For 2020, I am looking forward to shipping a couple of products for my "stealth mode" startup ;) - using boring stacks I know well PHP/CakePHP, Python/Flask, Java/Dropwizard with the ever reliable Postgres, and maybe Elasticsearch.

As for learning new skills; for the first half of the year I'm playing with Docker more, TUS for file uploads, Apache Pulsar for Pub/Sub, Armeria for building HTTP and RPC services (especially focusing on gRPC services), MQTT for IOT, building USSD apps and WhatsApp bots for different applications as they are increasingly popular around these parts (Africa).

The latter half of the year will focus on mobile development with Android, GraphQL, ML and hopefully get back into Computer Graphics with Processing.

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

#349

Sorry if offensive or presumptuous, I assume you are max. 30 years old? Being a freelancer the last 5 years (previously doing webdev part-time for 15 years) and having a couple of long-term side projects, I've been "burnt" enough that I've gotten tired of chasing shiny tech, just for it to become abandoned (e.g. bower, grunt, AngularJS) or introduce big breaking changes (e.g. some upgrade paths in PHP's Laravel or Sy…

It's important to know of the new tech, but I think diving deep into new tech just because it might seem cool now can be frustrating and inefficient long-term. There is no “long term” in technology. The best way on average to stay competitive is by keeping up with what the market wants. Sure it’s possible to start a project that is profitable or that you can get someone to acquire but statistically that’s like buying…

There's quite a long term. POSIX and Unix knowledge? Decades. Win32 API? Also decades at this point. SQL databases and relational modelling. Expressing things in procedural programming, in functional programming, in logic programming. Concurrent programming. Most of that stuff applies in whatever syntax the language of the day has overlaid. At this point when I had to pick up Ruby I basically went "so it's a single dispatch, class based imperative language and the surface syntax for the things I need is blah. Right, we're good." And C and variants of Pascal have been around for decades, too.

It's very easy to pick up details that aren't longterm skills, but with a little care you can make much of your skillset last a long time.

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

#350

why not something that doesn't seem to relate to your backend work at all, e.g. Dennis Yurichev's Assembler book will take you all of 2020 to finish :-) (aka "Reverse Engineering for Beginners"): https://beginners.re/RE4B-EN.pdf (see also HN discussion https://news.ycombinator.com/item?id=21640669 ) Erlang and BEAM is incredibly cool concept: https://www.youtube.com/watch?v=FonRzASOkZE I also really like Nim: https:/…

Anderson's 'Security Engineering' is a great read. It's a giant tome, but if you have a little bit of darkness in your soul, you will spend most of it giggling gleefully.
Post reply on HN