I'm sorry, but believe it or not, not all professional skills can be remotely acquired without a kind of human transference of intangible, personable skills. Education in higher academia is about much more than the acquisition of particular facts--it's a culture, practice, and way of life. Critical ideas are meant to be discussed in person, ruminated on, and debated in real, highly dynamic discussions. Real life work environments, especially in software companies, are ones in which critical, GROUP brainstorming dynamics are particularly important, because oftentimes the answer doesn't lie in the answer key in the back of the book, but rather as a result of a group process of rumination, guess, check, and revision.