Hacker News new | ask | show | jobs
by MagicPropmaker 2641 days ago
Is it even possible? Or do you basically have to relearn what you missed in Computer Science over the last 6 years.

It reminds me of what Dijkstra said about people raised on BASIC in the 70s:

> It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

2 comments

My progression was BASIC > Pascal > (insert a bunch of procedural/OO langs and scripting langs)> .NET > Ruby > coding Ruby in a FP style > Elixir.

So basically procedural > OO > functional.

I will say the hardest transitions (where "hard" is still less hard than, say, understanding everything about how a SQL join works) were from .NET to Ruby (and even THAT transition was mostly hard because I was going from "Microsoft ecosystem" to "open-source ecosystem" without having Java on my resume), and from Ruby to Elixir (syntactically similar, semantically night-and-day). But clearly it's possible... and I'm a Dijkstra fan!

OTOH, one of the best ways to learn something is try to use it on a language that doesn't support it. Back when I was a kid, I tried translating a Pascal quicksort from a textbook into BASIC. Those old BASIC's didn't support re-entrant functions, so I ended up having to implement my own stack. I didn't understand re-entrancy and recursion before that exercise; but certainly did afterwards! A similar later experience with a game engine in assembly language taught me a lot about object orientated designs.