Ask HN: How to best acquire theoretical computer science knowledge?
https://news.ycombinator.com/item?id=6345368I didn't know what I wanted to do before going to college at Penn State. I just knew that I had to go to college. I was always interested computers so I ended majoring in Information Sciences and Technology. About halfway through when I actually got to take some programming classes I discovered that I had a passion for software. I went to my counselor and inquired about switching over to CS. Unfortunately, almost nothing from my major would transfer and I had to pretty much start over. As someone paying for college myself this really wasn't an option. I continued on with IST in the Design and Development option.
I ended becoming the first employee at Bay Area startup. They were a bit desperate and I convinced them I could make their Android apps. I did and they are both highly rated. I also made one of my own that ended up getting featured on Google Play and receiving a lot of press. I have a bit of knack for it but I am so bored with GUIs and UIs. I want to work on harder problems and not just use other peoples libraries. The problem is that my lack of knowledge limits my thinking. I want to fix this. I am torn between going back to school for another BS in CS, pursuing a MS in CS, or teaching myself from things like MIT Open Courseware and Udacity.
I am not really worried about getting a job. This is about gaining knowledge. Although having a "real" CS would certainly help keep me from being pigeon holed as an app developer and open a few more doors. I do think that going back to school would be the quickest route to gaining the knowledge I want. I am just worried that I wouldn't get into a top school and I don't know if I should try to do a BS, MS, or just take classes. I really don't want another $50k in debt either. Especially when things like the Georgia Tech online MS CS is coming out for $7k.
So, what is the best way for a proven and largely self taught developer to take their knowledge to the next level?