Dear Hacker News,<p>I'm a university student who is interested in leaving school early. I feel that I can learn most of the material more easily on my own, and the high cost is sending me into a lot of debt. But I'm hesitant to just leave for a number of reasons. I'm not sure of my chances of getting the kind of job I'm looking for without a Bachelor's degree. I'd like to do a startup, but I don't have much cash and I would have student loans to pay back. And on top of that, my schooling has been somewhat abnormal, which could complicate things. Any advice?<p>About me: I'm currently 18 years old, with a couple of thousand dollars in the bank, but with nothing but a laptop to my name (not even a car). I left high school at 15 to attend Bard College at Simon's Rock (http://www.simons-rock.edu/), a liberal arts school specifically for early college students. I did well there; I took a lot of CS courses, kept a 3.8, and was the founding president of the Turing Club. At Simon's Rock, you typically either go for two years, get an AA, then transfer, or you stay for the full four years and write a thesis. I opted to transfer, since I thought a degree from somewhere more well-known would be more useful.<p>So this year I'm at the University of Edinburgh. I was admitted as a 2nd year student, which was somewhat disappointing, but partially made up for by the school's one-extra-year Master's program. The school has an excellent curriculum, which is the main reason I chose it, but it's expensive for non-EU students, and I've found the actual classes to be mostly useless as I can learn the material on my own more easily.<p>As for my qualifications/experience: Probably most significantly, I've been programming for ten years now. I've mostly done small projects and stuff on my own, so there's not much work on the internet that I can point at for examples, unfortunately, but I do have some things I'm in the midst of cleaning up to post online.<p>I've got experience in a fair number of languages and paradigms. My go-to language is Python, but I'm comfortable in Haskell, C, Java, Javascript (plus HTML/CSS), and Scheme (as well as MIPS assembly). I also have some experience with Ruby, C++, Io, Smalltalk, Lua, and Forth. I've coded a bunch of stuff over the years, including toy VMs, programming languages, games, web stuff, various "system" prototypes (user interfaces and the like), higher-order programming libraries, one-off math stuff, and the occasional script.<p>As for school courses, I've done data structures and algorithms, theory of computation, formal and natural languages, functional programming, software engineering, and computer organization and systems (twice, actually, due to transfer weirdness). Outside of CS, I've done math through linear algebra, discrete math and counting, a few years of writing/philosophy/literature courses, as well as physics, German, linguistics, Buddhism, electronic music, political ideologies, and economics & technology. Plus probably a few more I'm forgetting.<p>My favorite parts of computer science are models of computation and human-computer interaction. You can probably tell I'm a language nut from the list above; this is of course closely related to my interest in models of computation. While the "pure" models like the lambda calculus et al are cool/useful, what I'm really interested in is ways of coherently combining different models in an effort to make expressing complex computational ideas more naturally.<p>And that obviously ties into human-computer interaction. But beyond languages and models of computation, I'm also interested in system and interface design. The two are, again, closely related; while system design incorporates more non-human components, both are about creating useful, efficient, and complex interactions while maximizing ease-of-use and minimizing bloat. I think we're witnessing a revolution on the human level of interface design, with new input modes (touch, motion-sensitive input, etc.) and new form factors (especially portable, location-aware devices). And I think that there is an overhaul of large-systems design coming as well; we've moved further and further away from modular designs like those in Unix and Smalltalk, but we're going to have to reinvent them in order to really draw the potential out of our many-devices always-connected world.<p>Hopefully that gives you a picture of the sort of things I'm interested in and of my situation. In general, I'm really just interested in working on a useful product which makes peoples' lives easier, from webapps to system code; but the more of the above stuff it included the more I'd be interested, and the better I'd probably be at it.<p>So I guess I'm not looking for a single answer, so much as some advice. But if it helps: How would I go about getting a job that suits me, especially without a Bachelor's and with frustratingly few connections? Would it be a just terrible idea to quit school at this point? Obviously it's hard to judge whether I could handle a startup, but assuming I could, how could I make it work with minimal cash and student loans to pay?