I came here to tell OP to spend the time learning something like Terraform because it is not a trend or a fad, has wide adoption by the enterprise, gets them closer to the metal in understanding how everything works and will almost definitely help them in their career. I've instead found a flame war with someone presuming a person's age and preceding to talk about how much better they are ... oh HN why does it always…
Ask HN: What Technologies to Learn in 2020?
381–390 of 441 posts
Re: Ask HN: What Technologies to Learn in 2020?
#382Sorry 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…
I really enjoy Flask too. I remember back when I updated my Build a SAAS App with Flask course[0] for Python 3.7.x when it was originally coded to support Python 2.7.x and 3.4.x, and it took like 15 minutes. Also updating Flask to 1.1 from 0.9.x took around 2 hours but that also involved updating ~20 top level package dependencies at the same time, so most of it had nothing to do with Flask specifically. It was more…
Re: Ask HN: What Technologies to Learn in 2020?
#383really learning postgres with https://theartofpostgresql.com/
trying out typescript on a side project
and migrating one project from heroku to docker + terraform
Re: Ask HN: What Technologies to Learn in 2020?
#384Learn 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…
Re: Ask HN: What Technologies to Learn in 2020?
#385Kotlin is my new favorite language. You should give it a try. Fighting syntax noise, clutter, boilerplate and redundant repetitive work is a big chunk of what define a modern language, and at this, Kotlin is probably the best. It will make you more productive AND happier. BTW using new languages that have relatively poor ecosystem (go, rust, swift, elixir) is a far riskier choice than people believe. Having a poor li…
Re: Ask HN: What Technologies to Learn in 2020?
#386Re: Ask HN: What Technologies to Learn in 2020?
#387Earlier quoted context omitted.
Writing good test plans and building testable code is actually a skill with some underlying theory. It's just not usually taught that way.
There's no theory behind testable code. Mathematical theory exists only for formal methods. There's a bunch of made up patterns and techniques for writing testable code though. Most of these techniques are actually bad. Dependency injection with mocks is the one I hear about the most and it is also the worst possible way to organize your code. Do not write your code using this pattern... the complexity of this patter…
> Dependency injection with mocks is the one I hear about the most
Correction, you don't happen to know the theory. Nor is it a mathematically super complicated theory. It's not a replacement for formal methods. The heuristic I use is "formal methods as far as can be straightforwardly done, tests thereafter."
It boils down to how to choose what elements of a parameter space to run experiments on so you can reason by induction with some confidence. I teach it as "boundary and bulk". If I have a parameter that is a list, then the boundary (empty list, one element list, two element list) needs to be probed carefully but in most cases the bulk (fifty element list vs fifty one element list) just needs a couple of samples. Then factorial designs to combine parameters. You reduce the combinatorial explosion of factorial designs by splitting parameters via formal methods. You reduce things like external service dependencies to this something susceptible to boundary and bulk using Parnas's trace assertion method.
From this point of view, writing testable code is a statement about controlling the complexity of test plans. Things like instead of having a function take a few representations, make it only take a canonical representation and provide adapter functions. For example, if you have a function f(t0, tn) that takes two timestamps, you could have t0 and tn be seconds since epoch, offsets relative to now, or some kind of text date format. If f accepts all three, then you have a test plan of size 9*N. If it accepts just seconds since the epoch, you have N + 2 (for the adapter functions). This kind of calculation provides concrete statements about making code more testable.
Re: Ask HN: What Technologies to Learn in 2020?
#388Earlier quoted context omitted.
> Molecular biology of the Gene I really, really wish this book would stop being recommended. It doesn't teach any biology, just a lot of random facts disconnected from reality about a fictional average eukaryotic cell. Nowhere in it do you build an intuition about working with biological systems.
Sorry I meant Molecular Biology of the Cell. I think it's meant as a reference more than anything else. Bio is like ML in that it moves very quickly, so there is the need for constantly updated evergreen texts.
Re: Ask HN: What Technologies to Learn in 2020?
#389Earlier quoted context omitted.
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 d…
Anyone can pick up the syntax of the language. The ecosystem surrounding the language is a different story. I might be able to pick up Swift in as little as two weeks that doesn’t mean I could be a competent iOS or Mac developer. The same applies to Java and Java + iOS. The number of shops that still care about native desktop software has been dwindling weekly. Why would someone hire a developer who has no history of…
Is it? If you're being hired to worked in a particular setting, the choices from that ecosystem have probably been made. If there are really new abstractions that's one thing, but that's rarely the case. If you're being asked to make choices in a new ecosystem, that's different. But I think you also over estimate the depth of these ecosystems.
> Why would someone hire a developer who has no history of the ecosystem that the company is targeting over one that has the same experience and knows the ecosystem?
Lots of reasons. Social/emotional intelligence? Salary requirements? Proximity? And that's all assuming that you can find someone with the same experience that knows the ecosystem.
Re: Ask HN: What Technologies to Learn in 2020?
#390Is it actually always a good idea to keep yourself up-to-date with the hottest tech stacks? We picked up the first angular, because of the “keep up mantra”. That turned out to be a complete waste of resources when the second version released. I’m not saying that it can’t be valuable, but these days we build 70% of our stuff with python, Django for web with a minimal amount of JS because it turned out our clients actu…
> When I look at the job market in my region of Denmark, almost every job is for JAVA, C# or PHP. No-one is hiring for Rust, graphql, go or any of the other hipster languages / frameworks. Udviklings- og Forenklingsstyrelsen has a huge project written in Clojure, ClojureScript and R and they're hiring all the time.
I mean, JAVA is popular but there wasn’t a single kotlin job in 2019.