
大家好,欢迎来到 Crossin 的编程教室。
经常有同学问到我关于练手项目的问题,最典型的就是照着入门教程学完了,不知道该如何进一步提升编程水平。
今天 Crossin 就结合这些年指导学生的经验跟大家聊一聊,供各位参考。
1. WHO:谁需要练手项目?
可以说,所有编程学习者都离不开实践的过程。除非你只是心血来潮,仅仅想看下编程是怎样一回事,不打算去用它。否则,不管你是准备成为一名专业的开发人员,还是想在其他领域使用编程提升效率,只要你打算“真的”写程序,那就离不开练习。
2. WHY:为什么需要练手?
少数技能是“知道/不知道”的性质,比如某种工具软件的使用、某种机器的操作,只要经过培训就能上岗;大多数的技能是“熟练/不熟练”的性质,比如演奏乐器、驾驶汽车。编程亦是如此。你了解基础的语法、类型、常用的函数、模块,就好像你知道如何在吉他上弹出单音、和弦,这离演奏出一首曲子来,还差了大量的练习时间。
编程虽不用像乐器一样需要肌肉记忆,但你同样需要对常用“套路”的熟悉,才能在使用时信手拈来。另一方面,只有去面对实际的问题,才会倒逼你思考解决问题的“大局观”,如何流程化模块化地实现你需要的功能。
说到这,肯定有同学要说了:现在 AI 这么强大,几秒钟就能生成一段代码,几分钟就能搭好一个网站,那我们还需要费劲去“练手”吗?
答案是肯定的。AI 确实替代了“编码”的过程,但它无法替代你的逻辑拆解能力和架构判断力。如果你自己没有通过项目磨练出基本功,你甚至无法判断 AI 给出的代码是否正确,更别提在复杂的业务场景中去指挥 AI 了。练手,不仅是为了记住语法,更是为了让你拥有“审稿”的能力——从一个低效率的“搬砖者”,进化为一个高效率的“总监”。
3. WHEN:什么时候开始练?
尽管项目实践很重要,但也不宜过早,所谓“欲速则不达”。如果你还没有掌握编程的基础,就急于做出一个可展示的作品,往往事倍功半,说不定还带来挫败感,丧失继续学习的动力。我建议,至少你对基本的语法、类型,常用的数据结构如 list、dict 的使用,函数及参数的原理,字符串、文件、网络操作,如何使用模块提供的功能等方面都有所了解之后,再动手做项目。在此之前,把教程上的例程自己写一遍会更有效果。
当然,也不宜太晚。学会编程,但迟迟不动手,过一阵子这个技能就荒废了,等到下次想起来要用的时候发现又得从头学。很多人表示,我上学时候学过 C 语言,但依然写不出代码,就是这个原因。
4. WHAT:应该选择怎样的项目?
尽可能选择难度在自己当前能力上限左右的项目。太简单了对能力提升不大;太难了,步子太大,通常都是半途而废。偶尔会遇到有人问类似问题:我刚学 Python,我想做个自动驾驶程序,应该怎么做?这问题我回答不了,答案也没有意义,在你能力还不够的时候,即便答案放在你面前也是理解不了的。高出自己能力一点点,在过程中通过搜索、查阅、询问等方式解决问题,你的经验值才会得到增长。
除了合适的难度外,尽量从身边入手,寻找可用程序解决的问题。做一个你平常用得上的批量文件处理小程序,会比千篇一律的抓图片爬虫更有意思。这样的项目目标明确,最终更可能完成。
5. HOW:选好题后要怎么练?
从模仿做起,从核心功能做起。比如你要做网站项目,那就可以模仿一个知乎。开发时,不建议用瀑布式的开发模式一步到位,而是迭代式的开发,例如:1.先完成最基本的问答功能;2.之后增加点赞、排序;3.再增加评论功能;4.实现关注用户功能……迭代式开发可以让你更快获得阶段成就感。永远记住:完成比完美更重要!
当你慢慢已经可以模仿得像那么回事之后,不妨尝试下:1.深入细节,把一两个具体功能做到“像素级”复刻原版的程度;2.增加你自己的功能,甚至完全原创一个项目;3.把你的作品发给别人使用。当做到这几点的时候,你已经离一个程序员不远了。
6. AI:辅助还是替代?
在 AI 普及的今天,编程的方式发生了彻底的改变,原本复杂的代码可以用 AI 轻松搞定。
但作为一个编程的学习者、练习者,应当把 AI 作为你的“副驾驶”,而非“代写”。
要思路,不直接要代码: 当你选定项目却无从下手时,问 AI:“我想实现这个功能,大概需要分哪几个步骤?核心逻辑应该怎么走?”让它帮你拆解任务,然后你再去逐个击破。另外还可以让 AI 把这些生成文档,方便你对照学习和理解。
手写核心,AI 打杂: 核心的业务逻辑尽量自己磨出来。至于记不住参数的正则、繁琐的界面布局,交给 AI 快速生成。把精力花在刀刃上,能让你在练手时保持成就感。
代码审计,亲力亲为: 这是最关键的。AI 给你的每一行代码,你都得像审稿老师一样去揪细节。如果不理解代码就直接运行,那这个项目其实是 AI 练了手,你只是练了下“复制粘贴”。
AI 来找茬: 功能跑通后,把代码发给 AI 问:“哪里写得太啰嗦?有哪些潜在的坑?”这种对比式的复盘,比看任何高阶教程都管用,因为它是针对你当下的弱点在进行“专项训练”。
以上是我对于通过项目实践提升编程能力的一些经验和建议。欢迎留言讨论,也欢迎分享你在学习中的心得。
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~
本文分享自 Crossin的编程教室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!