DEV Community


Discussion on: Going From “Hello World” to Multithreading: How Much Time Does It Take to Learn Java?

siy profile image
Sergiy Yevtushenko

I'd also also add to the "core" list at least some of functional programming concepts:

  • immutability
  • functional composition
  • understanding of what is side effect, function purity and referential transparency
  • at least minimal knowledge of monads like Option and Either
  • basic understanding of operations on streams (map/reduce)

Java world is changing towards functional programming and omitting relevant concepts may make a big gap in knowledge. Also, these concepts easier to get before mind is stiffened :)