Tell HN: Trying to learn from SICP makes me cry
Hello HN,

I felt like I needed to vent somewhere while breaking from my SICP self-study session.

Just for some background, I do not have a college degree because I have always felt like the schooling system is not a place for me to thrive. I am 23 now and 3 years ago I have decided to learn programming on my own and I have been working as an iOS Developer for the past 2.5 years. Gradually I have come to realize that whenever I am getting stuck on something, it most likely stems from having no background in CS and having little to no information about how the computer, interpreters, compilers, programming languages etc. work. Neither I am able to solve algorithmic challenges - if I do try to solve them, it takes insane amount of time for me to get some understanding on how to approach the problem. Professionally speaking, while doing day-to-day iOS Dev agenda, no one even expects me to have some profound knowledge of CS concepts, as mostly iOS has been just a bunch of Apple Library calls, some networking and then layout, animations etc.

Having being immersed more and more into coding, I really would like to expand my knowledge and understand how the stuff in the background really works. My motivation here is to master this field to at least partly understand what I am doing and why I am doing things and also just out of pure curiosity, and also, frankly, being able to financially provide for my mom, that hasn't been as lucky as me to end up in such a privileged position and also for my (possible) future family - spouse, child/ren or other people in need. I might be wrong here, but I am convinced that having a solid theoretical and practical foundation would make me a better developer, having easier time time to learn other languages and technologies and would make me approach problems in a more efficient manner.

After reading through various forums and blogposts I have come across SICP as an important resource for understanding how interpreters, recursions, and functional languages work among other concepts. I have been going through that book for the past 2 months and currently I am in the middle of the second chapter. During my studying process I have also been watching lectures Berkeley CS61A lectured by Brian Harvey to not rely solely on text. Although I have skipped just several really math heavy exercises and have done the rest of them, learning from this book literally made me cry today. Most of the exercises, even the seemingly easy ones, take me immense amount of time to solve, making me demotivated and full of doubt and leaving me exhausted, in need of taking a day of break to continue further. I generally don't think my intelligence (in a sense of the speed of understanding complex concepts) is any good/high enough to keep on learning CS/programming. Little by little I am starting to doubt my abilities, whether I really should be doing programming, since I have such a hard time understanding things.

I do love programming, I do love learning new things and concepts, but I simply feel like I am not the right person to do it because my thinking is just way too slow/limited.

Having said that, I am genuinely very grateful and very privileged to be in this position, tackling these kind of problems, I do understand majority of the population has not been as lucky as me.

Thanks for reading this far and for those who are in a similar situation, I just want to let you know that you are not alone and I really do wish you can get through whatever you are struggling with study/work-wise.