I'm a senior software developer, and have a Masters
Degree in Computer Science.
To say that one can become a proficient coder in 2 years,
is like saying one can become a lawyer in 2 years.
The complexity of the code is directly related to the
inherent complexity of the problem being coded.
It can take a lot longer than 2 years to become a good
operating system developer.
But, you could learn visual basic in a matter of weeks...