
parallel programming and concurrency but couldn't understand why?
Let's experiment: spread a programming task across large teams. in project A each programmer work on their area but may also change other's code. Programmers also depend on the progress their colleagues' make. in project B each programmer works on their own code with inputs and putputs well defined. There is no dependency on other programmers. Even if you did not work in both scenarios (project A & B), it is probably easy to imagine how both projects could progress.
how immutable data structures add to speed?
immutable data structures add to reliability.
what do we gain by writing everything as functions and pure code(without side effects)?
pure code gives consistency and allows to split larger programs into parts without fear for end result.