University student graduating soon and (hopefully) headed to academia.
What areas of Computer Science deal extensively with low-level system design? For example, I've done a bit of assembler/interpreter building and really enjoyed kinda "brute forcing" through C to get everything working smoothly.
I ask specifically about Computer Science and not Computer Engineering or Electrical Engineering because my poorfag state university doesn't offer those programs
None, really. This is almost entirely a topic of computer engineering, not computer science.
>>8309708
>low-level
>C
pick one
>>8309708
>really enjoyed kinda "brute forcing" through C to get everything working smoothly.
This is the wrong way to do anything language related and it is also the reason we have so many dumb security problems. Learn about formal language theoretic security and then write a compiler in Haskell.
>>8309708
Embedded systems programming
>>8309785
This is going to sound dumb but I'm very tired of using the super theoretical approach in every CS area. I know its a personal thing (that's incredibly brought on by weariness to study discrete math). Perhaps I'd do well to just grin and bear it
>>8309795
can you study that at the graduate level?
>>8309820
>super theoretical approach
aka logical qualifiers and proof by induction
>>8309837
Induction is annoying but I'm more concerned with the reliance on Algebra and some Graph Theory. I've already taken math up to the Real Analysis level, I'm just tired of that approach.
>>8309719
Found the CS major dropout
>>8309988
found the /g/fag who thinks C is coding with the raw circuitry
>>8309740
You'll have like two courses that kinda cover it. discrete math and computer architecture/organization.
>>8310022
I've taken both of those courses and the professor that taught them was a gigantic asshole. He's retired now though.
>>8309820
>can you study that at the graduate level?
Idk about programming, but embedded systems engineering is pretty big and totally available at graduate lvls
>>8309708
>>8309820
Generally speaking extensively low-level things are more of CE/EE territory. Embedded systems are mainly CE/EE too.
However compilers, operating systems, optimal assembly, etc. is very much CS. Even in CE that's the CS part. They just have a better understanding of hardware and overall design.
>This is going to sound dumb but I'm very tired of using the super theoretical approach in every CS area
Actually it seems to me that you would actually prefer working/doing things compared to staying in academia, because what you're doing is more practical engineering which puts your CS knowledge to use.
On the other hand the CS side of things which deals with compilers is theory. How to represent something so we can infer a lot of stuff from it. Studying algorithms, methods on how to parallelize code, decide whether something is equivalent in certain cases, do optimizations by realizing certain constraints are in effect etc.
Compared to this Assembly is simply the last step which implements the idea on a specific cpu. What kind of pipeline that cpu has from the compilers standpoint is entirely an abstract model. Deciding which assembly instructions to choose when they do the same thing coupled with this problem is the real deal.
>really enjoyed kinda "brute forcing"
The point of CS is exactly the opposite of this. You learn CS so you don't need to brute force. It seems to me that you didn't learn your CS properly.
It would be good for you to take an engineering class where you learn how to build complex things from the ground up and think about the big picture.
You should connect the different parts learned in CS and take a proper compilers class and/or read a book.
Take a look at LLVM and how it optimizes so you can get insight into how a real compiler works. Many CS PhDs around there, because it's all theory.