Topics include: Computers and Computation, Algorithms and Tractability, Systems and Networks, Artificial Intelligence and Machine Learning, Programming Languages and Compilers, Cryptography and Security, Graphics and Vision, Human Computer Interaction, Network Science, Human Computation, and Robotics.
Computer science is considered as part of a family of five separate yet interrelated disciplines: computer engineering, computer science, information systems, information technology, and software engineering.
Operating systems As such, computer scientists should be aware of how kernels handle system calls, paging, scheduling, context-switching, filesystems and internal resource management. A good understanding of operating systems is secondary only to an understanding of compilers and architecture for achieving performance.
Take a look at this blog post by Steve Yegge (formerly of Amazon, now at Google):
It goes into some detail about the the five most important concepts that developers should be required to know:
You definitely should understand the Big-O notation and Big-O estimations of algorithms - what it is, how it is used, why it is important, how you compare two algorithms given their Big-O estimations, how you build Big-O estimations for the simple algorithms.
I find it a little funny that you're looking for computer science subjects, but find wikipedia too academic :D
Anyway, here goes, in no particular order:
Some concepts that helped my development (intellect and code):
These are whole domains of discrete math, but a serious introduction is required for CS:
Although lectures and articles by Mark Jason-Dominus are often directed to Perl hackers, I think any programmer would benefit from his clear presentation and real code, especially in Higher Order Perl.
I would say nowadays an understanding of Object Orientated Programming is a must, even if you don’t need to use it day to day.
From this I would also say understanding the most common patterns can also help.
I see several good CS concepts identified but little talk about Math.
I suggest that you look into discrete mathematics. It has a wide range of useful problems starting with logical proofs which help you write conditions in code. Graph theory and combinatorics also help with complex problem resolution and algorithm optimization.
While we are on the subject of math, linear algebra is typically a prerequisite for advance computer graphics classes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With