Personally I don't think people should be learning frameworks in school except for elective classes. CS is so vast that there is more than enough foundational knowledge to learn without going into specific tooling.
Learning Java in your second year seems like a problem though unless you mean the class used Java but was focused on teaching other topics like data structures/algorithms/garbage collection.
As others have pointed out below, programming is becoming more of a blue-collar field - so maybe lambda is headed in the right direction. That being said, I really liked the academic side of CS! I feel like nobody ever wants to talk about CS theory, ever. Even teachyourselfcs[1], with it's focus on teaching computer science, has no recommendations for a theory book at all. I loved reading Sisper, Automata Theory was my favorite course in college.
I also feel like having a CS education is valuable because you get a chance to learn about low level things that you'll probably never touch in your career, but it's useful to know. I liked learning about logic gates, how a computer is built, how a compiler / interpreter works, the theory behind a computer, etc. I feel like once you know the low-level side of things, you can move past blue-collar type of coding and really create interesting projects. It just sucks that no employer really cares if you know about that stuff. They only really care about projects you've made yourself outside of class (preferably using a framework). None of my classes taught me to do that, and it's hard to do a side project when you're focusing on doing homework.
I apologize for the rant. I'm really happy for you fspacef. I thought about quitting my degree several times. I never got CS on the first try, it took me until 2nd semester of my sophomore year to really "get" programming. I barley passed calculus and I had to retake my algorithms class. I'm happy that you were able to find another solution when college didn't work out. I guess... I'm just jealous - haha.
I've always had ideas for projects or softwares I'd like to build but I'd always hit a roadblock that I couldn't learn my way around on my own. This felt frustrating time and again as I felt like I had bits and pieces of the stack but no way to put them together.
I should also add that half of the time in Lambda's curriculum does go to learning CS theory. Lambda has given me a structure and syllabus that has accelerated what I would have probably learnt through college just at a slower rate. The idea that it takes 4 years to learn this stuff seems so arbitrary in hindsight. I do also believe college has it's value and now if I go back I would go deeper into other passions such as Economics or Political Science.
Also I don't think you should be regretful, if you have the time there are part time courses that you could do in another (related) fields example UI/UX or maybe learn another type of programming (mobile vs web, android vs iOS). Good luck!
I am interested in knowing more about this. Could you expand on why you don’t think any of those books are theory? If it isn’t too much to ask can you mention why each one of the books recommended for the different areas aren’t “theory”?
As I mentioned in my original comment, I barley passed Calculus. CS Theory is still math, but just... without numbers. The class felt more like solving puzzles, if anything. Writing proofs and doing homework was fun. I regret renting the book, I'm thinking of buying it just to work on the exercises within.
Will be adding Sipser to my reading list.
I was always a self learned programmer who made projects in python for fun so I was really excited when I first got to college thinking that I'd be able to make the projects at scale that I wanted to.
But as freshman year ended I realized the department at my school for the most part was stagnant and focused excessively on the theoretical side of CS. Forget learning new frameworks we were still talking about Java at the end of the second year. This was really frustrating as I felt I had lost lot of my creative energy and started to hate coding itself. Thanks to the strength of my prior work and some connections I managed to get interviews for dev internships at some really good startups. I completely crashed and burned. I was not prepared to code under pressure or walk through my solutions with someone watching. I was really disheartened from the experience and contemplated switching majors and giving up on tech as a whole.
7 weeks into Lambda now I can create a pretty sophisticated iOS app, use custom APIs and manage sync with a database backend. I've managed to learn Swift and become decent at reading ObjC which I'm sure I can get better at with time. Most importantly though I feel like I can learn anything or at least logically approach any technical problem and I'm so ready to hit up the interviewers whom I feel I disappointed for a second chance.
Doing this program is no joke, and definitely not for everyone. I find myself coding, reading docs, watching videos for 10 hours everyday and at least 4-5 hours on weekends. From the get go I realized what you put in is what you get out. However the instructors do such a good job of keeping the feedback loop small for what you learn in class to the projects you build that it keeps you motivated to implement the next feature and keeps you hungry to learn more.