4

Why Mutable Developers are Essential for Learning New Paradigms

 3 years ago
source link: https://hackernoon.com/why-mutable-developers-are-essential-for-learning-new-paradigms-qt1r3101
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Why Mutable Developers are Essential for Learning New Paradigms

@vnbrsVinicius Brasil

Software developer in love with Ruby, Rails and Elixir.

The class you have been waiting for. It is your programming class in school and the professor offers you plenty of interesting and essential words: objects, classes, constructors, inheritance. You love programming! And that’s programming, right? Well, that’s one way of structuring your program. And a very thought-provoking way, as object-oriented programming feels quite natural to most people.

0 reactions
heart.png
light.png
thumbs-down.png
money.png

Later on, you got a job to work with Erlang, this programming language that you certainly did not learn in your classes. Erlang is a functional programming language. It’s not that is better or worse than Java or C++. It’s just different as it has a different paradigm. The thing is you have no classes, no constructors, no methods, no inheritance, and all the concepts you had learned as simply “programming”. You try to use the same techniques you know but it just seems off.

0 reactions
heart.png
light.png
thumbs-down.png
money.png

You have to start thinking functionally. Not imperatively. Not object-oriented. This asks for a mutable mind. A mind that will have to sometimes shift between paradigms and understand fully all the differences between them. Immutability is a central concept of functional programming, but a mutable developer, that is up to change, is essential for learning a new paradigm.

0 reactions
heart.png
light.png
thumbs-down.png
money.png

Here are some tips for you to consider when learning FP:

0 reactions
heart.png
light.png
thumbs-down.png
money.png
  1. Understand that a different paradigm means problems are solved differently
  2. Master the concepts before jumping into libraries and frameworks. First-class functions, high-order functions, purism, recursion, immutability, type systems
  3. Learn functional languages such as Erlang, F#, Clojure, Haskell to help you apply the concepts into multi-paradigm languages, such as JavaScript
  4. Don’t rush to learn the most complex topics as functors, monads, currying
  5. Apply basic concepts to your day-to-day code gradually. Immutability and purism are two functional-thinking concepts that you can use in Ruby or JavaScript. That can make the code more testable, deterministic, and easier to read

The process to learn functional programming can be daunting and slow as new concepts are involved. It is not like learning Ruby from a Java background.

0 reactions
heart.png
light.png
thumbs-down.png
money.png

It actually is like learning how to sail a boat knowing how to drive a car. It is completely normal to struggle at first, but mutate your mind to resiliency and always keep learning.

0 reactions
heart.png
light.png
thumbs-down.png
money.png

Also published at https://dev.to/vnbrs/functional-programming-asks-for-a-mutable-developer-355l

0 reactions
heart.png
light.png
thumbs-down.png
money.png
4
heart.pngheart.pngheart.pngheart.png
light.pnglight.pnglight.pnglight.png
boat.pngboat.pngboat.pngboat.png
money.pngmoney.pngmoney.pngmoney.png
Share this story
Join Hacker Noon

Create your free account to unlock your custom reading experience.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK