I am on the opposite end of this. The older I get the more I see the value of rote memorization.
Just taking the time to actually learn what the standard library of the programming language you are using provides can dramatically increase your productivity. The same with important libraries you are using. Yes, it is too much to memorize everything but just knowing what actually is there will help you a lot. You can not search for something you don't know exists.
I also really love working on solo projects because I tend to memorize the general shape of the code I am working on. This makes me so much more productive. I might not remember every single line of code in detail but will have a pretty clear idea of the shape of the program. This means I can plan new features or doing refactors in my head and see if they would work. I don't need to sit in front of the computer. I can do the hard mental work while taking a shower or going for a walk and can type in the code afterwards.
Well, memorizing algorithms lets me know what is possible sure, but memorizing the actual api methods and arguments seems like a colossal waste of time for my specific circumstances. If it’s possible in one language it should be possible in another. I haven’t ever reused _exactly_ the same stack twice in my career, so it seems hard to optimize for the exact incantations rather than lazily find out what is in the library vs community packages. Looking them up is cheap enough, and I save shower time for high level thinking about what kinds of programs could be useful.
I agree, knowing all details of the language/framework you're using is the key to amazing productivity. In IT terms you could compare it with the performance gains you're getting from holding data in cache instead of querying them on demand over the network.
However it isn't always possible. Nowadays a typical dev team uses 10 different frameworks or more, and after a couple of years some of them will have changed.
The problem with rote memorization is that it makes life a pain when something changes from under your feet, you have to unlearn and relearn which takes double the effort. However, it's good to rote memorize more static info and references, tables of contents and so on. The rest I leave it to use, what is referenced multiple times becomes permanent.
I tried this when I was learning Go; I just took a few hours (if that) to write really low-level code by hand, instead of doing what I usually do and copy / paste code from somewhere else and edit it. It helped me memorize basics like creating a slice or map and things like that, and improved my confidence in the language by a lot in a short amount of time.
I should do that more often with whatever I work with. However, my current job is so random (lots of odd jobs left right and center in between ad-hoc meetings and interruptions) I have no need for it.
Just taking the time to actually learn what the standard library of the programming language you are using provides can dramatically increase your productivity. The same with important libraries you are using. Yes, it is too much to memorize everything but just knowing what actually is there will help you a lot. You can not search for something you don't know exists.
I also really love working on solo projects because I tend to memorize the general shape of the code I am working on. This makes me so much more productive. I might not remember every single line of code in detail but will have a pretty clear idea of the shape of the program. This means I can plan new features or doing refactors in my head and see if they would work. I don't need to sit in front of the computer. I can do the hard mental work while taking a shower or going for a walk and can type in the code afterwards.
Anyone else work like this?