
Originally Posted by
Loren Pechtel

Originally Posted by
Gun Nut
It's about passion... If you are passionate about something, you can sit in front of it for extended periods of time. Like all skills, time = expertise.
That's it.
One advantage of programming is that unlike any other computer-related skill, it never really changes much. Sure, there are thousands of iterations of programming languages and techniques at various levels... but they all use the same skill... about starting with a new language for a veteran programmer, its just vocabulary... the grammar is all pretty much the same.
By the way, modular programming is nothing by goto's... calling a function? you are "going to" a section of code and then "return"ing. responding to a triggered event? that's a goto... the higher level, object oriented, languages obfuscate it, but that is what is happening.
The biggest part of learning a new language is learning it's library.
These days it seems like a developer's biggest challenge is learning the idiosyncrasies of the framework they're working in.
If you're moving from .NET to Java for instance, actually coding small problems and features would be easy enough, but Java comes with a different set of tooling that would have a bit of a learning curve.
Or if you're getting into JS land with stuff like React and Angular the problem is that the frameworks are completely unintuitive until you actually read the documentation. One can't know vanilla JS and then automatically write React.
And some c-based languages like Ruby in the Rails framework aren't actually as intuitive when moving from something like Java or .NET.
Any competent programmer can write a generic algorithm to solve basic problems, but a good brunt of a programming job is doing things that need to be told or found, not figured out.