4 ms·
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.
- kerneloftruth 5y agoYou should reconcile these: "I have always felt like the schooling system is not a place for me to thrive" and "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" Given these two statements, and the struggles you're going through -- why not reconsider/rethink the first statement? You don't have to pursue a degree, but some formal education might actually help you.
- adentral 5y agoThank you very much for the comment. I will contemplate my decision when it comes to formal education. Also what I particularly found intriguing is "You don't have to pursue a degree, but some formal education might actually help you." It's true that studying college from start to finish is not the only option.
- smoldesu 5y agoI'll try to state this without bias, which feels a little difficult (but feel free to read into this however you like): If you started with iOS development, it's not very hard to believe that you struggle to pick up fundamental paradigms of computing. Apple has long been about abstracting things away from the user, and over time that philosophy has started to spill over into the way they treat development too. Some people love it because it makes it so they don't need to learn the boring stuff, and other people despise it because you never get to solve truly interesting problems and are ultimately at the behest of a multi-trillion-dollar corporation. One thing is certain though: you aren't getting the full picture. SICP is about expanding your mind as a developer, which is a painful process that most people don't notice as they learn to program over extended periods of time. Not understanding it doesn't make you dumb, it's just particularly heady stuff that's intended to stick in your brain. There's a reason why people treat SICP like a bible; it's an allegorical exploration of computer science, not necessarily rooted in raw truth, but more intended to help you realize the awesome scale of the modern computer and the people who program it. Being humbled by that book is just part of the process.
- 5y ago