4 ms·
Usually I’d suggest picking up a small project and shuffling between books and working on that project. Say read about the language fundamentals and then try to
by elorm 9y ago
Usually I’d suggest picking up a small project and shuffling between books and working on that project. Say read about the language fundamentals and then try to build up from there.
However this doesn’t really work when you’re switching to a different paradigm. When I switched to Haskell, I realized that even the way you think about things must change and diving into a project just isn’t the way to do this. You’ll keep stumbling the entire time if you bring your imperative mindset with you and attempt to leverage off them to get a quick start.
If you don’t have some functional programming experience under your belt, first spend some time familiarizing yourself with the language history and try to figure out why some design choices were made. Try and soak up as much theory as you can by getting the best books on the language. This is much slower but you have to bear in mind that sometimes you have to unlearn several things that may be considered a bad practice in the previous languages you’re familiar with.
I try to treat learning a new programming language like learning a new human language. I know quite a few and it’s always easy to fool yourself into thinking that once you know the syntax and grammar for a similar language you can port them over to the new language. You’ll be surprised to know some languages don’t have some words at all based on their culture and have no way to express something that is easy to grasp in English.
So long and short, history and some theory about the language first, then dive into a small project, pick up another book along the way and then more theory.
- deadcoder0904 9y agoI make this mistake a lot. When learning new language, I think just learning syntax is enough. I had to forget PHP to work with Node, as Node is asynchronous & when I was working with PHP it was synchronous. Just couldn't get my head around async code. Very helpful insights.