π₯ The Samurai's Path to Programming Languages π₯
I'll tell you about the division of programming languages based on a person's experience
(continuation in comments)
#top #go #nodejs #ts #rust #zig #c
# [ $davids.sh ] Β· message #196
π₯ The Samurai's Path to Programming Languages π₯
I'll tell you about the division of programming languages based on a person's experience
(continuation in comments)
#top #go #nodejs #ts #rust #zig #c
@ [ $davids.sh ] Β· # 713
This isn't about "choosing your first backend language," it's about reaching a Senior level in a language and wanting to move forward:
πΆπΎ The "Discovery" Category β Python / PHP / Java / C# / Ruby / Node.js / Scala / Elixir
These are the languages most people start with. They'll teach you development standards (some better than others, like Node.js), allow you to build your first small and medium-plus applications, but sooner or later you'll get tired of their clumsiness and outdatedness:
β Heavy runtime β Either no multithreading or cumbersome multithreading management β Lack of memory control β Long build times (statistically, 90% of people switching from Java discovered their second language while waiting for their Java application to build) β Lack of built-in tools
π¨πΎ The "Speed" Category β Golang / Haskell
This is the stack for speed, with a lean runtime and mandatory typing.
Here you can comfortably and easily write everything from mini-applications to distributed Highload systems and even databases.
π¨πΎβ𦳠The "Optimization" Category β Rust / Zig
When you're ready to sacrifice simplicity for speed (thanks to memory management).
π The "Death" Category β C / C++
When you're ready to sacrifice your soul for maximum optimization.
π€‘ The "Are You Fing Kidding Me?" Category* β Python / PHP / Java / C# / Ruby / Node.js
If you've gone through this whole journey and come back, you're either a genius or completely screwed.
@ user303817238 Β· # 718
It's not about "choosing your first backend language"
But what if it is about that?
@ [ $davids.sh ] Β· # 719
Here here
@ Leijona Β· # 729
I recommend C# even though I don't use it myself. I recommend it because all the material on architecture usually comes with examples in C# or Java (but C# more often). And from what I've observed, those who started with Node.js/TypeScript and somehow grew beyond the mid-level have a rough time with it.
@ [ $davids.sh ] Β· # 730
Yes, people who start with Node.js have a chance to be decent developers, but only if they fall into the hands of professionals (but this is true for any stack), which is why in 90% of cases the developer level is extremely low.
Java β I just have a personal hatred for it, C# β I even wrote in it once, overall, a very good language.
@ Leijona Β· # 731
Yes, on any stack it's important to find a source of correct experience, BUT on C# and Java it's much easier, even unconsciously, to get on the right path. You pick up a book on ASP.net and as a rule, they'll at least touch upon Clean Architecture, DDD, explain why a certain practice is good, and why another will lead to overposting, etc. In general, everything there is really aimed at enterprise. A lot of people from serious fields are willing to share their experience. Courses and books about Node.js are about micro-sites or how to make something work. Just technical details. I believe Java has had a too complicated fate: first it lagged behind, then they started to rush it, constantly passing it from hand to hand. Five years ago, it was unclear where to get this Java from (now it's simpler - temurin). That's why I say simply, in 2023, start with C#.
@ Leijona Β· # 732
(if you are self-studying from books, articles, and courses)
@ Leijona Β· # 733
... and to look at the source code of interesting, high-quality projects, it's also C#
@ Leijona Β· # 734
After adopting good practices, you will move on to other programming languages and platforms.