Re:Ask HN: As a developer what are your aha moments?
by Doctor_Fegg on Tuesday September 08, 2020 @05:31AM
(#24406718)
> First, I’d like to say I think starting with Ruby/Rails is a bad idea.
It's telling that comments like this inevitably involve Rails, not plain Ruby.
Rails's "magick" is obfuscatory and at times counter-intuitive. Ruby, the language, is pretty straightforward. I wish more people spent time playing with Ruby before diving into Rails.
Re:Ask HN: As a developer what are your aha moments?
by temporallobe on Monday September 07, 2020 @08:25PM
(#24404083)
I agree on your sentiments about Ruby/Rails. Rails also applies the philosophy of convention over configuration, so newcomers can’t usually just intuit what’s going on — you have to know their
specific conventions, which also seem to change with each major release. And one of my pet
peeves about Ruby as a language is the optional use of parentheses for function definitions and calls, making it harder to read through code quickly. In C-style syntax languages, it’s very obvious at a glance where functions are being called. Not so with Ruby.
Re:Ask HN: As a developer what are your aha moments?
by greenleaf3 on Tuesday September 08, 2020 @04:04AM
(#24406197)
> Similarly, not trying to learn everything was a big deal.
This is one of my recent decision. Previously I would jump to every shiny frameworks and try to learn every fancy programming languages. This drained my energy so much I had to stop doing it. Instead I have decided to learn ubiquitous tools e.g math, algorithms and data structures, etc.
So with Ruby, I was just pattern matching—I never had an intuition of what lambdas were doing until I moved over to JS.
The Feynman Method was another aha moment. Learning how to learn, in my case, by writing down stuff in my own words as if I were teaching someone else was probably the most important thing. That helped me develop a much deeper understanding of important concepts.
Similarly, not trying to learn everything was a big deal. Don’t try to learn all the niche technologies you see in job listings expecting you need to know those things in order to qualify for the position. If you just do dozens of tutorials, you’ll end up knowing a lot of things very superficially. It’s much better to know a handful of ubiquitous, related technologies very well and have a strong foundation of programming fundamentals. Those things can transfer over to other technologies, when you need to pick them up.