I've been thinking about the same problem for a while, and I'm also a self-taught developer that looks way towards sociology. I have a little different spin on the main hurdles of doing programming. With proper tools and the right mindset, the entire goal of the organization process is that you DON'T have to think and hold 100 things in memory at once. It works okay for some problems, but any problem with a sufficient complexity (like, say a full rich website with lots and lots of features) will be nearly impossible to work with if everything was intertwined.
I find the hardest park of programming is getting over hurdles as they come up, over and over and over again. It takes a while to get over fear of small failure. Also, if you're constantly reanalyzing and have a perfectionism streak you can be paralyzed quite frequently. Have you run into the same problems?
Exactly! I would say that complexity is the biggest problem form me. It makes it impossible to keep the whole mental model in my memory and I need to reanalyze and rebuild it constantly depending on the part of the problem that I am trying to solve right at the moment.
I find the hardest park of programming is getting over hurdles as they come up, over and over and over again. It takes a while to get over fear of small failure. Also, if you're constantly reanalyzing and have a perfectionism streak you can be paralyzed quite frequently. Have you run into the same problems?