The Challenges and Opportunities of Learning Programming
The Difficulty of Entering the Programming Field
In 2025, it's challenging to switch to coding or self-learn programming. To be a programmer today, a strong hardware background is often required. With an oversupply of candidates, it's not easy to get a chance without the right qualifications.
The Possibility of Success
However, everything is possible. Many people discover their interest and potential in computer technology later in life, even without a computer science background. If you're willing to learn, there are complete learning resources available.
The Importance and Approach of Learning Programming
The Necessity of Learning
Learning programming is essential. It has a certain threshold, but it's achievable. Some people show talent at a young age. For example, the speaker learned basic programming concepts from a small霸王 learning machine in elementary school.
The Difference between Learning Programming and Being a Programmer
Learning programming doesn't mean becoming a programmer. While being a programmer has a high threshold, anyone can learn programming. You can use it for various purposes like business analysis, creating automation scripts, or developing personal projects.
Three Principles of Learning Programming
-
Hands-on Practice: Whether in class or reading, always write code and configure environments yourself. Don't be afraid to experiment. Programmers often spend a lot of time dealing with new tools and frameworks.
-
Use AI Tools: When encountering problems like errors or syntax issues, first ask ChatGPT. If ChatGPT can't solve it, use Google or Perplexity. These tools are crucial for learning programming in 2025.
-
Practical Learning: The purpose of learning programming is to get things done. Build a good foundation, but don't overcomplicate things. Don't feel obligated to read an entire programming book from cover to cover. Focus on what you need first.
Recommended Learning Path for Beginners
Basic Courses
-
UC Berkeley CS 61A: An introduction to programming languages.
-
UC Berkeley CS 61B: Covers data structures and basic algorithms.
-
UC Berkeley CS 61C: Focuses on computer architecture. It's optional if you're short on time.
These courses are crucial for beginners and should be studied carefully, preferably with note-taking and hands-on practice.
Further Courses
-
CMU 15-213 (CSAPP): A comprehensive and in-depth course. The associated book is also highly recommended, although it's complex.
-
Operating System Courses: Such as UC Berkeley CS 6162 or the Harbin Institute of Technology's operating system course on Bilibili.
-
Database Courses: UC Berkeley CS 186 or any other database course on Bilibili. Also, get familiar with popular databases like MongoDB, Redis, SQLite, and PostgreSQL.
-
Compilers Courses: Stanford CS 143 or Nanjing University's compilers course on Bilibili.
AI - Related Courses
-
UC Berkeley CS 194/196: A seminar on AI agent - related topics.
-
Classical Machine Learning Courses: Coursera's machine learning course or Stanford CS 229.
-
Deep Learning Courses: Learn about CNN, CV, NLP, and reinforcement learning.
Essential Tools
-
Git: For version control.
-
Bash (Unix Shell): Useful for system operations.
-
Docker: For containerization.
-
Text Editors: Such as Visual Studio Code or Visual Studio for different programming languages.
Alternative Learning Options
Online Master's Degrees
Online computer science master's programs offer a cost-effective way to learn. They are official programs from universities, but some companies may not recognize them. The courses are relatively simple for computer science majors but valuable for non - majors.
Training Courses
-
Heima Training Course: A large-scale domestic training course with a lot of content.
-
Damiao Training Course: Known as the "Hengshui Middle School" of front-end training. It offers both online and offline courses. While all the content can be self-learned, the training course provides a structured learning environment.
The Importance of Practice
LeetCode
LeetCode is the top priority. It helps improve programming skills, data structure and algorithm analysis, and coding norms. Aim to solve at least 100 problems, and many people solve 300 - 600 problems.
Project Development
Start with simple projects from online boot camps. Build projects like Instagram, Twitter, chatbots, or applications using large language models. Deploy projects to cloud platforms like AWS, Azure, or Alibaba Cloud to gain full-stack experience.
Open-Source Contributions
Contribute to popular open-source projects on platforms like Hacker News or Twitter. This helps develop teamwork skills and shows your interest in the open-source community.
Internships
Internships are crucial. Try to get an internship in a good company in Beijing, Shanghai, or Shenzhen, even if it's unpaid. Internships provide real-world experience and are highly valued by employers.
Competitions
Participate in online or offline programming competitions. Winning awards can be a significant advantage when applying for jobs.
Learning AI Agents
The Importance of AI Agents
AI agents are very important in 2025, with many new job opportunities in this field.
Learning Resources
-
UC Berkeley CS 194/196: Watch the course on YouTube.
-
Research Papers: Read papers like Yao Shunyu's "react agent" and "SW agent".
-
Implementation: Build a simple AI agent using tools like LangChain or Python.
-
Model Context Protocol (MCP): Understand this protocol if needed.
-
Benchmarks: Familiarize yourself with benchmarks like SW E bench, LM arena leaderboard, ader benchmark, life code bench, and life bench to compare different models.
Model Comparison
-
Best Models: OpenAI's GPT - 3, GPT - 4, Claude 3.5/3.7, and Google Gemini 2.5 Pro.
-
Fastest Models: Some models offer high-speed performance, but their effectiveness may vary.
-
Best Value Models: DeepSeek RV3R1 and the upcoming R222 are cost-effective.
-
Open Router: Allows you to switch between different model suppliers and potentially get free usage.
Popular Projects
-
MetaGPT: A multi-agent software development project.
-
Auto Agent: A highly automated agent project from the University of Hong Kong.
-
Open Hands: An open-source version of Devin, with good performance.
-
Camel AI: A multi-agent framework by Li Guohao.
-
Auto Gen: A framework by Microsoft.
-
Client and Idle: Open-source SWE agent plugins.
-
Cloud Code: Cloud's closed-source SWE agent implementation.
-
Open Deep Research by LangChain: A reference for implementing something similar to OpenAI's Deep Research.
Commercial Projects
-
Cursor, Wind Serve, GitHub Copilot: Popular commercial programming assistants.
-
V0 bot.new, Lovable, Manus.ai: Other commercial projects in the field.
Conclusion
The field of AI is constantly evolving, and new things emerge regularly. After watching this video, continue to explore and learn on your own. If you have any questions, feel free to ask in the comment section.