Programming Languages Covered in the Fundamental Programming Section
The Fundamental Programming section of the PKUFlyingPig/cs-self-learning repository covers five specific programming languages—Java, Python, C++, Rust, and OCaml—alongside a General sub-section for language-agnostic concepts.
The PKUFlyingPig/cs-self-learning repository serves as a comprehensive roadmap for self-taught computer science students. Within the docs/CS学习规划.en.md file, the Fundamental Programming section (titled "Programming Fundamentals" in the source) provides curated language tracks, each paired with university-level courses to establish a strong coding foundation across multiple paradigms.
Core Programming Languages in the Fundamental Programming Section
General Programming Concepts
The roadmap begins with a General sub-section that covers universal programming concepts independent of any specific syntax. This section provides language-agnostic resources for understanding fundamental computational thinking before committing to a particular language stack.
Java
Java appears as the first language-specific track, recommended through MIT 6.092 Introduction to Programming in Java. This object-oriented language introduces static typing, class-based architecture, and memory management through the Java Virtual Machine.
public class Main {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
Python
Python is featured as an essential language for beginners and experienced developers alike, supported by CS50P, UC Berkeley CS61A, and MIT 6.100L. Its readable syntax and extensive libraries make it ideal for learning algorithmic thinking, data manipulation, and rapid prototyping.
print("Hello, Python!")
C++
C++ resources include Stanford CS106B/X and CS106L, focusing on systems programming, data structures, and algorithm implementation. The roadmap emphasizes C++ for understanding manual memory management, pointers, and performance-critical application development.
#include <iostream>
int main() {
std::cout << "Hello, C++!" << std::endl;
return 0;
}
Rust
Rust represents the modern systems programming track, specifically through Stanford CS110L Safety in Systems Programming. This language teaches memory safety guarantees without a garbage collector, offering an alternative to C++ for systems-level work.
fn main() {
println!("Hello, Rust!");
}
OCaml
OCaml rounds out the list via Cornell CS3110, providing a functional programming perspective. This track emphasizes immutable data structures, pattern matching, and type inference, contrasting sharply with the imperative and object-oriented approaches of the other languages.
print_endline "Hello, OCaml!";;
Source Location and File Structure
All language recommendations and course links are defined in docs/CS学习规划.en.md within the Programming Fundamentals section (lines 144-168). The file organizes content into clear subsections for each language, providing direct URLs to course websites, lecture recordings, and assignment repositories.
Summary
- The Fundamental Programming section covers Java, Python, C++, Rust, and OCaml, plus a General category for language-agnostic concepts.
- Each language pairs with specific university courses (e.g., Stanford CS110L for Rust, Cornell CS3110 for OCaml).
- The roadmap emphasizes diverse paradigms: object-oriented (Java), scripting (Python), systems (C++/Rust), and functional (OCaml).
- Complete course listings and links are maintained in
docs/CS学习规划.en.mdat the repository root.
Frequently Asked Questions
Does the Fundamental Programming section recommend a specific first language?
The roadmap does not mandate a single starting point. However, Python and Java appear earlier in the document and pair with introductory courses like CS50P and MIT 6.092, positioning them as accessible entry points for beginners before advancing to systems or functional languages.
Where can I find the complete list of courses for each programming language?
All course links and descriptions are contained in docs/CS学习规划.en.md within the Programming Fundamentals section (lines 144-168). The file provides direct URLs to course websites, video lectures, and hands-on assignment repositories for each language track.
Why does the roadmap include OCaml among the fundamental languages?
OCaml represents the functional programming paradigm through Cornell CS3110. Including it alongside imperative and object-oriented languages ensures learners understand multiple programming models, which proves essential for advanced computer science topics such as compilers, programming language theory, and formal verification.
Are there code examples provided in the repository for these languages?
While the roadmap itself primarily links to external courses, the recommended courses (such as Stanford CS106B for C++ or MIT 6.100L for Python) provide extensive hands-on programming exercises and starter code. The repository serves as an index to these resources rather than hosting the curriculum directly.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →