JuniorTree

Back

Start CodingBlur image

一直以来有很多朋友对我的Coding技术感到十分好奇,一方面我并非计算机或者信息工程相关的专业出身;另一方面又能和群里面的各路大神侃侃而谈,我并没有感到自己的技术很不错,或者受过专门的训练,我的算法学得很烂,相反,我一直自嘲自己是一个“野路子”,因此我想把我自己做开发的一些经历和想法写下来,也希望对同样想了解计算机的你一些启发

需求是最好的老师(The Necessity)#

科班教育往往是自下而上的,我在物理系光电信息专业读过一年的时间,大一的时候刚好上了C语言程序设计的课,老师教你写代码,但是除了作业里面的各种循环和判断,我们几乎不知道我们写出来的代码到底有何作用,也不知道能不能做出一个真正有意义的产品

我觉得我的需求是自上而下的,我刚开始接触 Coding 是因为我有一个很急切的需求,当时我想下载一个网页我全部照片,如果仅仅是用鼠标右键的方式,效率太慢,为了解决这个问题,我尝试去学习了「爬虫」,这时候,技术不是目的,而是手段,这种为了达成目的而不得不学的紧迫感,是学校里给不了的

你需要感知到自己生活中存在哪些需求,比如说我想把我写的东西展示给大家看,你可能需要自己建一个博客;你可能想使用摄像头快速地去数显微镜里面的线虫,你可能需要用YOLO做识别;你可能觉得校园网每次都要登陆有点麻烦,你可能要自己去抓包,然后写脚本…

这些都是日常中可能存在的需求,技术的本质是让生活变得更加便捷,出于这一点进行考量,我们其实有很多文章可以做

从模仿到复用的进阶 (The Pattern Recognition)#

刚开始做Coding的朋友经常会有一个误解,觉得代码都必须一行一行自己写的才算是真正懂了,但其实,直接拿别人做好的东西也是一件很常见的事情,这绝对不是贬义词

我写的第一份爬虫代码也并不是自己从头开始写的,我是找了个B站的视频,然后一行一行敲下来的,虽然当时我也不知道这代码有啥用,但是最终跑通了,我很开心

另外一个就是我尝试建立了一个自己的博客,我当时用的是可视化面板,我也是第一次接触Linux,对命令行很不习惯,然后用一种叫做「容器化」的很傻瓜式的技术,基本上就是复制粘贴,完全不知道什么意思

但是在这个过程中,在“不知道为啥”的情况下,我成功把服务跑起来了,给我积累了很强的“手感”,我知道咋分辨这个教程是精品教程还是垃圾教程,知道如何排查信息,如何查看日志

自己亲自动手去做实验,这个过程的经验积累是迅速的,哪怕你服务没跑起来,但是你至少知道这样不行

正向反馈循环 (The Feedback Loop)#

生物学学里面有一个词叫叫做「正反馈调节」,写代码的魅力之处在于「即时反馈」,你敲下一行代码,就能马上看到效果,甚至是部署一个可以服务于你自己和朋友的网站,这种成就感会让你想:“既然能跑个博客,我是不是也能跑个私有云盘?是不是能跑个自动化脚本?”

建设性的不满 (Constructive Discontent)#

一个非常重要的分水岭在于,你想把它“做完”,还是“做好”

在这个圈子里,很多停留在“脚本小子”阶段的人,他们的心态通常是:“这教程能跑通吗?能跑通就行,不能跑通我就换一个教程”一旦跑通了,他们的探索就结束了

技术的进步,往往在于对于现状的不满,比如我用WordPress建了一个自己的博客,我请朋友来访问,朋友和我抱怨说加载页面转了有半分钟才访问进去;又或者你自己觉得你这个博客的主题不太好看,你想要个猛男粉,结果原作者给你个青青草原色

因为上述原因,所以你开始研究系统的底层逻辑,为什么慢,我要怎么改代码

  • 是因为 VPS 的线路不好?(开始研究 CN2/GIA,TCP 拥塞控制,BBR 算法)
  • 是因为静态资源太大?(开始研究 CDN,对象存储,Gzip 压缩)
  • 是因为数据库查询太久?(开始研究 MySQL 索引,Redis 缓存)
  • 这个主题是什么东西写的?(是 Vue 还是 React,是 Jinja2 还是 EJS)

所以我真的很推荐你去找一个实际存在的问题去解决,最好的方式就是你自己去建一个博客,然后写文章,然后把网址发给你的朋友看

一旦你开始不满足于“照抄作业”,你就会发现现成的 Docker 镜像可能不满足你的需求,于是你开始写自己的 Dockerfile;你发现别人的脚本逻辑有 Bug,于是你 Fork 下来自己修

这就是从“消费技术”到“创造技术”的跨越,优化优化再优化,折腾折腾再折腾

本质上就是一个对现状不满足,要一直折腾的情况

氛围编程 (Vibe Coding)#

最近有一个非常流行的概念叫做Vibe Coding,中文翻译过来叫做「氛围编程」,将程序员从繁琐的语法(Syntax)中解放出来,专注于逻辑和设计(Semantics)

有不少朋友问我,说让我推荐学一门语言

如果你是首师大的理科生,你要不是物理系的,大概率是会上一门程序设计的课,然后会让你学Python,就我个人感觉而言,我觉得这门课有点水,像在背字典,学会了 for 循环的 10 种写法,但不知道拿它来干嘛

其实现在掌握哪门语言其实已经不那么重要了,重要的是想法,你得多接触一些好玩的项目,你得会用AI,你得知道我应该用什么技术去解决什么样的问题,比如说我想做一个博客,那我可能会考虑使用Next.js+TailCSS+Vercel(我相信如果你一点基础也没有,我说的这段话是啥你都不懂),如果你连这些解决问题的基本方法都不知道,那我觉得你就算学了很多门编程语言其实也没太大意义,等到你当前语言的生态不能满足你的项目需求了,你自然而然会去尝试别的语言,尝试另外一种生态

在 AI 时代,“知道有什么”(Knowledge Breadth)比“知道怎么写”(Implementation Detail)更重要,因为 AI 可以帮你写代码,但 AI 目前还很难帮你做技术选型,或者说它给你的选型有可能完全不适合你的项目,如果你不知道 Vercel 的存在,你可能会傻傻地去买服务器、装 Nginx、配置 SSL,浪费大把时间,你的核心竞争力在于你的“技术视野”和“品味”

编程语言仅仅只是工具,写爬虫?Python 库多,用 Python;写高并发后端?Go 协程强,用 Go;写前端?没得选,JS/TS,编程语言中其实也不存在说这个语言能干,这个语言不能干的情况,绝大多数决定语言的使用场景和它的生态有关系

你是因为需求走到了这里,而不是因为你“只会”这门语言,AI 极大地降低了语言切换的成本(Language Switch Cost),我现在经常用 Cursor 或 Claude Code 写我不那么熟悉的语言,只要我的逻辑是对的,AI 就能帮我把“方言”翻译对

在 Vibe Coding 的模式下,**自然语言(Natural Language)其实变成了最高级的编程语言,**你描述清楚:“我要一个响应式的博客头部,左边 Logo 右边导航,手机端折叠”,这其实就是代码

解决问题的快乐 (Pleasure of Finding Things Out)#

这句话其实源自我们物理系的老登费曼说的,原话是:“The pleasure of finding things out.”

Vibe Coding 时代的乐趣,反而回归了最本真的「表达欲」, 当AI把语法负担都卸掉了,编程重新变成了「描述想法→看见想法成真」的游戏,你不再需要先成为C语言大师才能谈创意,你像导演讲戏一样描述需求,代码就生成了,每个人都是这场革命的参与者和创造者

作为非科班出生的我,反而会觉得 Coding 是一件还算有趣的事情,因为我不用去深究算法,不用把这个当作任务,也许某天我感觉这个有意思,我还会特意去看一看

当那个 Bug 被你揪出来,或者当你终于搞懂了 Nginx 的反向代理到底是怎么把流量转发给你的容器时,那种“我搞懂了”的瞬间,那种“原来世界是这么运行的”的通透感,是会上瘾的

我也希望你能感受到和我同样的乐趣

Start Coding
https://www.juniortree.com/blog/coding-with-me
Author liueic
Published at 2025年11月28日
Comment seems to stuck. Try to refresh?✨