如何学写程序 别当作一进门就得拿着一本大部头啃着“函数指针”和“闭包”过日子。写代码这事儿,跟拼乐高不一样,你不需求一次性把城堡砌全,只要今天搭好一块砖,明天就能拆下来看看如何搭更高的塔。大量人怕,怕写出来就是屎山堆,怕每一步都踩错。
实际上大可不必,写程序更像是在搭积木,你只管往上添块,至于下面如何搭、会不会塌,那是设计的时候稳着想,不是运笔的时候急。 刚启动你就得明白,代码不是文学,是逻辑的子弹。你不需求文笔优美,只要你逻辑通顺,别人就能看懂。还不如纠结变量名是不是优雅,不如先保证它能跑。大量新手死在这里,当作为了显得“高级”,就把自己困在复杂的命名里。
实际上 simplest 的代码最有力。试着把 `get_user_input()` 改成 `get_input`,要么干脆 `input()`,反正能调就行。当你能用两个字把功能说清楚的时候,你的代码就已经有了灵魂。 别急着用 IDE,别想着写个复杂的求解器。你认定自己在写代码挺了得,那只是出于你盯着几行代码看了半小时,你当作你在思索算法,实际上你只是在模拟仿真。真正的编程,是你扔下电脑,拿着纸笔,明天早上起来就能看那会儿,心里有个数,知道目前这步该往哪走。当你发现用代码写出来,那个顺序和之前画出来的图一模一样时,那种自信才true。 数据结构这东西,别把它想得忒深奥。数组、链表、树、图,听起来像一堆名词,实际上就几类东西。你不用背死定义,你只需求知道它们在啥情况下好用。
比方说,做推荐系统,你有啥用啥;做游戏关卡,你试试打怪,卡关就用链表;做网页加载,你就用 `fetch`。别为了炫技去造复杂的结构,有时候一行 `console.log` 就是最好的数据结构。 调试是程序员的天赋,也是必经之路。别指望编译器能给你打补丁。
要是程序报错,先别慌,停顿三秒,看看是不是你自己多写了个括号,要么把那一行注释删了。大量毛病是出于你在想“完美”的代码,而不是“能跑”的代码。报错信息是你的老师,它告诉你哪儿错了,你就顺着它的指路走。
哪怕它告诉你错了,你也得学会如何接住这个毛病,而不是把它当成敌人。 协作不是你的敌人,是你的工具。团队里有人写前端,有人写后端,有人管需求。你别把自己当成唯一的英雄,也不要指望别人能帮你写核心逻辑。学会提问,学会拆解任务,学会用代码沟通。别人不会帮你对齐代码风格,但愿意用文档、用注释、就连用邮件告诉你他们想干嘛。把需求拆解到你只需求写一行代码就能搞定,这比一万句“我想把功能实现出来”有用多了。 最难的地方往往不是技术,而是心态。你会遇到各种怪的 bug,代码会莫名其妙地崩溃,这会让人发疯。但请记住,报错是常态,发疯是短暂的,而修好代码是常态。当一个程序运行正常,你看着屏幕上的绿色输出,那一刻你会释然。
那些深夜改代码的累得慌,挺快就会被这种成就感填满。 最终,别怕犯错。写代码就像学步行,摔倒了拍拍土持续走,摔在泥坑里更不关键,关键的是拍拍土,再走下一步。你不需求写出完美的代码,你只需求写出对的代码。当你启动享受让机器为你做点小事的时候,你会发现,原来不用全懂也能挺酷。 写程序没捷径,但没前提。你愿意花工夫去理解逻辑,愿意去调试那些让你头疼的报错,愿意去尝试把想法变落地,那你这辈子都不会悔得慌。代码是思维的延伸,当你学会把它写出来,你就学会了如何和人沟通。