1) Increased capacity to express ideas
It is difficult for people to conceptualize structures they cannot describe, verbally or
in writing.
In the process of developing software, the language in which programmer develop
software limits on the kinds of control structures, data structures, and abstractions;
thus, the forms of algorithms they can construct are likewise limited.
Awareness of a wider variety of programming language features can reduce such
limitations in software development. Programmers can increase the range of their
software development thought processes by learning new language constructs.