Granted, but while things like data structures and relationships come naturally to my mind, I am frustrated by the fact that I have to keep looking up syntax for particular loops or method calls.
A large factor in this situation is that I regularly jump between several different languages, but nevertheless, it is frustrating to have to pause my flow and look up things so regularly.
Perhaps it is a patience thing with my older age, but I find nowadays the biggest thing putting me off starting new projects is just all the sheer mundaneness of setting up repositories and working folders, getting third party assets together, configuring project management tools etc.
You would think that familiarity and practice would make these sorts of things automatic and fluid over time, but the opposite seems to be true.
It happens to me as well and i decided to do a few things about it:
1. Not switching languages that often anymore. Fullstack? Yeah i could hack around in JS, PHP and whatever but i'm trying to stay in my field java to become really good in it.
2. Not using code comletion much/often. I write often a class file from scratch just to exercise it. I write Classnames out, i sometimes write my own imports.
3. Repeat it: When i forget how to write a for each loop, i do it once, and delete the code the next second and just write it again, than a third time.
No one cares when i need 30 seconds longer to write that one loop and the next time it sits again or much etter than before.
Syntax is not programming. Programmers are usually reasonably good at remembering standard software structures, algos, architectures, and problem solving strategies.
But unlike human languages, computer languages have no conventions and they're misleadingly similar-but-different. So it's quite usual to forget Python syntax if you've been using PHP for a while, and vice versa. It's a very common problem.
It's not unlike trying to learn French and German but only practicing one for a few months at a time while ignoring the other.
Repetition and spaced reinforcement are essential for learning. Learning takes consistent, applied, reliable effort, preferably within a timed strategy. Start/stop practice won't do it.
I think Gladwell is an absolutely terrible science writer. He's good at writing books that sell, and good at creating the illusion of psychological insight. But if you want psychological tips that really work, don't go anywhere near his books.
> I am frustrated by the fact that I have to keep looking up syntax for particular loops or method calls.
Have you ever tried to deliberately memorize the syntax? Just repeating the same action for 10k hours doesn't make you an expert.
It's like how sportsman don't improve by competing constantly. They improve through deliberate practice. Work is like competing, you aren't trying to improve, you are trying to get stuff done.
A large factor in this situation is that I regularly jump between several different languages, but nevertheless, it is frustrating to have to pause my flow and look up things so regularly.
Perhaps it is a patience thing with my older age, but I find nowadays the biggest thing putting me off starting new projects is just all the sheer mundaneness of setting up repositories and working folders, getting third party assets together, configuring project management tools etc.
You would think that familiarity and practice would make these sorts of things automatic and fluid over time, but the opposite seems to be true.