I was watching the youtube series on solving advent of code in APL and was blown away. I immediately checked this site to see if X == APL just to get a sense of what the hell is going on, but unfortunately it's not yet there yet.
Anyone got a favorite obscure language they could recommend?
Thanks for sharing, very interesting. I did day 2 part 1 in Befunge 93 which was pretty obscure and fun! I can definitely recommend playing around with it (even though it might not be so practical...)
This is my goto for learning any new language. Obviously better resources for each language exist individually (like beej's guide to c) but almost nowhere else on the web is there such a high density of good, solid guides
I attempted Advent of Code in 25 different languages last year. Learn X in Y was extremely helpful for picking up basic syntax etc. when trying to speed learn enough of a new language to get by each day.
(Made it to day 16 before Christmas Crunch kicked in, but it was a great challenge)
because they aren't Ivy League educated and world renowned professors who make millions working for Google. Those books prey on desperate people looking for a chance to break into one of the few industries left that provide a decent living
I think it's just unrealistic expectations about what learning is like, how long it takes, and what you do to learn.
In part, perhaps it's from the educational system which curiously enough isn't geared particularly well toward learning. It used to be geared toward the needs of teaching (which is not the same as learning), but lately it's been geared toward passing standardized tests. Someone going through such a system might be excused for thinking that the way you learn something is by cramming facts until you can repeat them once and then forgetting the whole thing because that test isn't coming back.
I think there're some good and positive reasons including:
1. If I'm going for a full stack interview soon, having a quick look/update would provide a good refresh before digging in deeper.
2. Someone wants to compare between different aspects/features of different languages, some quick learning would definitely provide a good sense of differences.
Most jobs forces people to do things as quickly as possible, and that results in trying to learn things quickly. I see nothing wrong as this is being part of adapting to the environment.
Tbh. For me it's like a personal and professional deadline. You expect to learn/to be good at something in a short period of time, while it's expected of you to deliver good quality (consulting, product, support or whatever it may be), and this "cannot" be done unless you know your shit.
Like mym1990 pointed out, no one likes to be new/bad at something, or maybe that's just me.
If the programming is merely a toolkit for something else, I want to be productive ASAP, with minimal distraction from the main goal.
Even if it is the main tool for the main goal, we still want to get there soon. And in this case, 'there' includes being able to get to levels of deeper mastery, so accelerated learning of the basics with minimal wheel-spinning helps.
OTOH, if it is a pleasurable hobby or pass-time, then sure linger for a decade with all the trivia, and enjoy the heck out of it!
Because they, correctly I think, subconsciously sense that programming could and should be much easier than it presently is. The ghost of Hypercard looms.
I don't get the premise. I click the C page [1]. X=c, but what is Y? If you're not going to tell me Y, then shouldn't the page be named "learn X quickly" or something similar?
I think the site's title is just a play on words and generalization of all of the technical books with titles like Learn X in 24 Hours, Learn Y in 7 Days, Learn Z in 30 Days, etc.
To add to this, it'd be nice to have each page with multiple Ys, so you could choose how in-depth you want to go. That's a big ask, though, and it's more of a hypothetical than an actual request
I always check learnxinyminutes, but it often seems to focus on syntax instead of an actual introduction to using the language.
I wish there was more about memory management, macros, maybe, generics, http handlers, parallelism, errors, or whatever actually makes language X worth learning. Almost like an overviewofxinyminutes.
It’s most useful if you’ve already learned at least one language with memory management, one with garbage collection, one with static types, one with dynamic types, and maybe one weird esoteric one. Then someone throws you at a project and says “oh btw it’s in Lua” and you’re like “OK, I’ll figure out Lua’s philosophy as I go, right now I need to know how to do array literals, functions and loops so I can get some work done.”
So basically, it’s best thought of as a tool to help intermediate level programmers parachute into foreign territory with some idea of where they’re going.
That's actually my point, learnxinyminutes seems to hide the approach details in favor of just showing syntax and assuming you already know how to think in the language you're looking up.
I don't care about syntax as much as I want to know how to think in this language. I'm sure my IDE will point out how to define an int32 for me.
Great resource. But also, it really raises the spectre of the possibility of programming being much easier than it is; we should all collectively question why "programming" hasn't evolved past (perhaps) pointless or near-pointless differences in syntax?
Is it easy? Yes and no. Adding together integers is easy. Running a loop is easy.
There are tremendous differences between programming technologies. Because the word “language” can distract you here.
What you say in French and German and English will be pretty much the same.
But many programming “languages” practically have very different runtimes, idioms, guarantees, caveats. For example in some all your data is immutable. Or take a look at the concurrency model of Elixir/Erlang/Go “processes” vs Java Threads).
Erlang has a preemptive scheduler for those “processes”. Try doing that in vanilla JS.
It’s not just syntax. Syntax is the surface difference but it doesn’t end there.
This is not to nitpick the posted website which is a great first step but it won’t tell you the whole story.
Another example is closures. Some languages don’t have them at all. Some languages allow modifying closed over variables. Some treat them as immutable constants (but still accessible to read).
Those are huge semantic differences with profound implications to how you approach problems and write code.
When comparing Programming technologies always think in terms of: how does it represent data, how does it move/share data between entities, how does it handle errors, what guarantees does it have.
Finally an inseparable part of any programming technology is the standard library, and nowadays the whole third party ecosystem of packages.
When thinking about what is different about say Python and Erlang I’d argue the least significant of that is syntax.
You won’t build machine learning models in Erlang and you won’t build highly-available, fault-tolerant, billion-user chat applications in Python.
And trust me not because of how the for loop looks.
Basically I follow this strategy: find the right language for the right task. And then I learn the language from bottom up. I immerse myself in its philosophy and its example and then I imitate that to solve my task.
Learning different grammars/syntaxes aren't the hard part imho. The hard part is learning new programming paradigms and how to write good code in X language given the features under the hood.
What makes a good Python programme makes a terrible/impossible C or Rust programme. It might not be hard to write Scala code like you might Java and have it run, but you're doing things distinctly wrong.
That's the sort of language-y stuff that's hard to teach in Y minutes imho.
I wonder if anyone could actually learn the basics of Big Oh notation from this. My students struggle with the concept, and I couldn't imagine this being sufficient for helping them get a deep or even cursory understanding.
The sad thing is everyone pushes so hard on understanding Big O, but yet in my 23 years of working since learning it, it's never come up beyond "you have some nested loops, that's gonna be a bad time". I'm glad it was introduced in college and that there is general awareness of it, but it seems like people stress it way too hard, especially in interviews.
Like, once you write a few functions you sort of just intuitively know the O runtime of the algorithm. Once you store a few things in memory, you intuitively know the O space of the storage. And when it breaks, you look for somewhere that you introduced n^2 and fix it.
Unless you're optimizing search algorithms, it almost never matters in practice. Even that double nested loop won't matter until you have a big dataset.
Have you ever used Lisp or a similar functional language? Understanding those helps to understand Lambda calculus. That and an advanced Math degree. :)
I once copied the following comment from another post here, I find it spot on:
"I’ve a few different approaches I take depending on the task (and if I’m honest, my mood or levels of motivation):
- a new programming language, especially something closer to a systems language, I have a standard set of things I’ll try to implement. Read/write a file. Turn a structured object into JSON, parse JSON to an object. Basic script that can be run from CLI, parses flags/args, reads stdin. Send a HTTP request. Implement the most basic web server."
Awesome! As a marketer-product-growth person, I wish projects like these were more common among marketers. With my "people" every good resource is a for profit endeavor and is paywalled lol.
Does anybody possibly know some awesome resource like this but for marketing-product-growth?
I was thinking about working on a something like this for growth principles and notion templates for SaaS. Just not sure the 100+ hours on that would be worth, if anyone would use it.
Don't open this site on mobile, it froze my browser thrice and I only managed to revert it to a normal state by force closing multiple times, clearing the cache and then opening a new tab from a homescreen shortcut.
Never had something like this happen to me before on this device.
Sometimes I wonder which site has been featured on HN homepage the most, and I think this (considering exact URL matching) would be ranking pretty high!
I personally never could get through these guides myself. I prefer to learn by banging at it till it work and then googling like a madman until eventually I find the most idiomatic way of doing something. Following the code smell so to speak. YMMV I'm very much a polyglot.
Anyone got a favorite obscure language they could recommend?
https://www.youtube.com/results?search_query=apl%20advent%20...