Ok, several things here...
1) I wouldn't dive right into Assembly, even though it is kinda considered a low-level "root" language (basically a step above 1's and 0's). The purpose of starting out with an "easy" high-level language like Python is so that you can learn the fundamentals of programming (creating variables, using objects, using logic paths, loops, program flow, calling functions/sub-procedures so you can re-use one snippet of code instead of writing it every time you want to use it, etc) without getting so frustrated by the archaic syntax of the language. Start with Python, get your feet wet. Or, start with some BASH scripting...make a script to do some stuff on your computer. I think you can d/l a book from the repo's called "abs-guide" (Advanced Bash-Scripting Guide). Check it out and do some Bash scripting, whcih uses some C-like programming syntax. Once you have the fundamentals down, then switching to another programming language is pretty easy...it's just a matter of learning the nuances of its syntax then.
I understand your logic here, though. Like quitting something cold turky, you want to dive right into the deep end of something to get right into. But you're looking at the "foundation" wrong. Don't start with a "foundation" language...start with learning the "foundation" concepts. Once armed with concepts, you'll be able to tackle most any language.
2) In recent years, more and more universities are starting to branch out their Computer Science degrees into other things, like systems engineering, database architect, hardware engineering, etc.
To me, it sounds like you like optimizing things, so you might want to look into a degree in Human Interface Design. It's sometimes called different things, but it basically focuses on optimizing the user interface so it's intuitive and gets things done. You can read
this to get an idea of what it's about. While a hardware engineer degree kinda crosses electrical engineering with computer sci, an HID degree kind cross computer sci with psychology, because you have to be able to study users and see how they'd use the device to make the interface better.
Like medicine, more and more computer sci work is specializing, so you might want to get a Bach. in Computer Sci, then branch off into an area that piques your interest. I'll warn you now, though, that some colleges are kinda teaching "fluffy" computer sci...IE: they focus all on Java programming and stuff, which is ok, but Java tends to do a lot of the garbage cleanup for you...IE: it does all the memory management for the variables you set, etc. It's not like learning C programming which involves tracking pointers and memory allocation and such on the hardware interaction level. If you're gonna go into any kind of comp sci college, I'd definitely check out their classwork and ask to speak with some dept rep's first before signing on to the degree program. You don't want to spend $40k to get a comp sci degree just to be able to write "I know JAVA" on your resume.
Bookmarks