# Programming Languages Covered in the Fundamental Programming Section

> Explore the Fundamental Programming section of cs-self-learning covering Java Python C++ Rust and OCaml plus general concepts. Master core programming skills today.

- Repository: [Yinmin Zhong/cs-self-learning](https://github.com/PKUFlyingPig/cs-self-learning)
- Tags: overview
- Published: 2026-03-02

---

**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.

```java
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.

```python
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.

```cpp
#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.

```rust
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.

```ocaml
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.md` at 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.