编程入门先学什么语言?别急着看排行榜,先看这3个指标

🔑 关键词:编程入门,零基础学编程,编程先学什么语言,Python入门,自学编程

📖 摘要:零基础学编程到底先学什么语言?这篇不跟风比语言排行榜,而是用「反馈回路长度、报错可读性、能不能快速做出东西」三个指标来选。附 Windows 装 Python 的坑、venv 虚拟环境、pip 清华源、VS Code 断点调试的具体命令和实测数字。

先说件丢人的事

图片

2021 年 3 月我在京东买了本《Python编程:从入门到实践》第 2 版,69 块 8。拿到书当天晚上就开始装 Python,结果卡到第三天才在终端里打出第一行 Hello World。中间出的问题现在想想特别蠢——先在 python.org 下了个 3.9.1 的安装包,装完在命令行敲 python 没反应,后来才知道 Windows 默认把 Microsoft Store 的别名开着,得手动去「应用执行别名」里把两个 python.exe 关掉。再后来又因为在 CMD 里粘了 PowerShell 的命令,反复报错,我一度以为是我电脑坏了。

我想说的是,没有一篇讲「编程入门先学什么语言」的文章告诉我这些。所有文章都在比 Python 和 Java 谁工资高、谁前景好,但对我这种连 PATH 是什么都不知道的人,语言根本不是第一道坎。

选语言这件事,被高估了

后来我带过七八个想学编程的朋友(是现实里认识的,不是网上那种),我发现一个规律:卡住的人里,九成卡在环境和调试,只有一成卡在语法本身。语法真不难,for i in range(10) 谁看两眼都会。难的是你不知道为什么装完了跑不起来。

所以有了我的第一个反常识观点:新手选语言,别盯排行榜,要看「反馈回路长度」。你改一行代码,到你能看见结果,中间隔了几步?

我列几个具体的:

  • Python 3.12,官网 Windows 安装包 28MB 左右。写 print(1+1),存成 t.py,终端敲 python t.py,回车。中间 0 个编译步骤,2 秒看见结果。
  • JavaScript:浏览器按 F12 打开 Console,直接敲 1+1 回车。比 Python 还快,因为连文件都不用存。
  • Java(JDK 17 安装包 160MB 左右):javac Hello.java 再 java Hello,两步。而且类名必须和文件名完全一致,大小写错一个字就编译不过。
  • C:gcc hello.c -o hello 再 ./hello,看着也简单。但你要是漏了 #include <stdio.h>,报错能刷满一屏。

反馈回路越短,你越容易撑过前两周。就这么个道理,但真没人跟你讲。

图片

第二个指标:报错信息你能不能看懂

这点我觉得比语法还重要。新手学编程,本质上是在学「怎么从报错里找线索」,而不是背关键字。

同样是「变量名拼错了」这个错误:

Python 会告诉你 NameError: name 'usreName' is not defined,然后 Line 12,还会用 ^^^^ 把那行给你标出来。

C 编译的时候如果你打错的是函数名,运气不好直接给你一句 Segmentation fault (core dumped)。11 个字符,没了。新手看到这个基本就放弃了,因为他连去哪查都不知道。

JavaScript 在浏览器里会说 Uncaught ReferenceError: usreName is not defined at index.html:23,还能点进去看到具体哪一行。

Java 报错最长,但它至少会告诉你 cannot find symbol 并标出位置。

所以如果你是纯零基础,我真心建议前 30 个小时别碰 C 和 C++。不是它们不好,是它们的报错对新手太不客气了。

图片

第三个指标:随手能不能做出东西

这个指标决定你有没有正反馈。我认识一个哥们,学了 4 个月 Java,跟着视频敲了 2000 多行,全是 public static void main 里一堆 System.out.println。他跟我说「感觉很空」。这就是反馈太弱。

我现在给新手布置的第一个练习从来不是「打印九九乘法表」,而是「写个脚本,把你手机导出的聊天记录 txt 统计词频」。为什么选这个?

  1. 聊天记录是真的,几万行,有感情,你会在意结果。
  2. Python 里 37 行就能写完,核心就一句 Counter(所有词).most_common(20)。
  3. 跑出来第一名往往是你和某个朋友聊得最多的词,比如「哈哈哈哈」出现了 3421 次。

具体怎么写?微信聊天记录导出成 txt 后大概长这样:2024-03-15 21:03:22 张三。下面这段我实测跑 3 万行只要 0.4 秒:

import re
from collections import Counter

text = open('chat.txt', encoding='utf-8').read()
words = re.findall(r'[一-龥]{2,}', text)
print(Counter(words).most_common(20))

注意 encoding='utf-8' 一定要加。不加的话 Windows 默认 GBK,直接给你 UnicodeDecodeError: 'gbk' codec can't decode byte 0xe5。这个坑我踩过不下五次,每次都要愣一下才想起来。

教程驱动和问题驱动,差在哪

图片

这是我觉得最值钱的一条。

教程驱动:打开 B 站搜「Python 零基础教程」,200 集,跟着敲。敲完感觉懂了,一关视频让你从零写,大脑一片空白。因为你记住的是「第 3 行该敲什么」,不是「这个问题该怎么拆」。

问题驱动:你先被一件具体的事卡住。比如我想把 800 张照片从 IMG_0001.jpg 批量重命名成 2024-05-01-旅行-001.jpg。你搜「python 批量重命名」,5 分钟抄一段,改成自己能用的,跑通了。这一下你顺便学会了 os.listdir、f-string、for 循环、字符串格式化。而且这些东西你不会忘,因为你是为了解决问题学的。

所以我现在判断一个新手能不能学会,就看他有没有一个「自己的问题」。没有的话,先去找一个。

环境这块,三条硬建议

第一,装 Python 的时候务必勾上 Add Python to PATH。这一步没勾,后面九成的命令行报错都是它引起的。实在忘了,重装比修复快,真的。

第二,从第一天就用虚拟环境,别嫌麻烦。命令就三行:

python -m venv .venv
.venv\Scripts\activate      # Windows
source .venv/bin/activate     # Mac / Linux

图片

为什么?因为全局环境装多了,各种包版本互相打架,numpy 要 1.26 但 pandas 要 2.0,最后你只能重装 Python。这事我干过两回,第二回是在半夜十二点。

第三,pip 慢就换源,一行命令:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

从默认源装 numpy(大概 60MB),我这儿实测从 6 分钟降到 40 秒。

编辑器别纠结,但第一周就要学断点

新手最爱问 VS Code 还是 PyCharm。我的答案:先 VS Code。

PyCharm 专业版一年 199 美元,社区版免费但功能砍了不少;打开一个项目内存占用经常 1.2GB 以上,老笔记本直接风扇起飞。VS Code 加 Python 扩展包(Python + Pylance),内存大概 300MB。

但更重要的是:第一周就学会断点调试,别一直 print。

图片

怎么弄:装完 Python 扩展,点左边那个带虫子的三角图标,选「运行和调试」,再选 Python File。在你觉得有问题的行号左边点一下,出现红点。按 F5 启动,程序停在那儿,左边「变量」窗口里所有值都看得见。

我 2022 年之前一直用 print 调试,一个循环打 20 个 print,输出刷了 3000 行,找都找不着。学会断点之后,同类问题我大概省了一半时间。

别信时间表

最后说个可能得罪人的。网上到处是「21 天精通 Python」「30 天转行程序员」。我个人的观察是:每天真正投入 45 分钟左右(不是刷视频看别人写代码,是自己敲、且卡住过),坚持 90 天,你能到这个水平——

能用 Python 写 100 行以内的脚本解决日常问题;能看懂别人写的 300 行代码大概在干嘛;遇到报错能自己去搜、去读、去试,而不是张口就问人。

这就已经超过大部分「学过编程」的人了。真的。

至于「精通」,我干这行到现在 4 年,还是不敢说精通。所以那些 899 的课,先别买。你花 899 买的不是知识,是你自己不会搜资料的焦虑。

要我说,如果你不知道自己想做什么,先学 Python;想做网页,学 JavaScript。其他的,等你写完 500 行代码再想。

🏷️ 标签: