我在这个编程的世界里摸爬滚打了15年。
构建过复杂的系统,调试过成千上万行代码,还指导过不少有志成为开发者的新人。可以说,这行业里的酸甜苦辣我都尝遍了 —— 从让人欣喜的成就,到让人抓狂的错误。
在我的编程生涯中,我培训了很多初学者程序员,也编辑过大量的代码来修复它们。但让我不得不吐槽的是,有些错误简直就像家常便饭,每次看到都让我想把键盘砸个稀巴烂。
这篇文章可不是单纯为了发泄(虽然,相信我,我真的需要)。它同时也是给所有编程新手的一份指南 —— 无论是自学成才的码农、训练营毕业生,还是敲开软件开发世界大门的大学生们。
如果你刚刚踏上编程之旅,那这篇帖子就是你的秘籍。避开这些坑,否则可能会拖慢你的进度,或者让你未来的同事们抓狂。
1. 没有足够的练习
这一点最让我心烦,因为编程可不是一朝一夕就能掌握的技能。
它就像是演奏乐器 —— 你不会突然有一天醒来就变成了吉米·亨德里克斯那样的吉他大师。
刚入职时,我被分配了一个简单的CRUD应用项目。我以为很简单,毕竟我在线上看过了很多教程,写这个应该没问题。
结果,我错了。
当我坐下来开始编写代码时,才发现自己陷入了冒名顶替综合症。我只是一带而过地看过代码,从未真正练习过。最后我在那个项目上磕磕绊绊,花了比预期更多的时间才完成。这就是我学到的第一课。
编程需要花费大量时间去练习、尝试和犯错。然而,我见过太多初学者在看了几篇教程后就期望写出完美的代码。
解决方法: 练啊练,不停地练。
从小处着手 —— 写些基础程序,玩转循环,给自己设置一些小项目挑战。我还记得在学校做的第一个系列程序,输出的结果简直像魔法一样神奇!
-
Hello World 程序
-
奇偶数序列
-
斐波那契数列
-
打印弓箭图案
-
简单的输入输出序列,等等。
2. 不理解就复制粘贴代码
哦,这一条真的让我想对着虚空大喊!
不看代码的作用就直接从 Stack Overflow 复制粘贴,这不是编程。我也犯过这样的错误,当时代码运行得挺正常,也就五分钟吧,然后就崩溃了。当团队领导问我这段代码是干什么用的时候,我愣住了。他很生气地说:“如果你不知道它是怎么工作的,你怎么指望能修好它?” 那一刻,我尴尬得无地自容。
这就像是照着食谱做饭却不知道自己在做什么。
有时候菜看起来味道也不错,但如果出了问题,你就根本不知道哪里出了差错。
又像是抄别人的数学作业,却不明白解题过程。
考试那天会怎么样?
解决方法: 在粘贴任何代码之前,请先做这件事。
逐行阅读代码,试着向自己解释它的功能。如果做不到,那就别用它。
我曾经这样做过 —— 在每段粘贴过来的代码上方写上简短的注释,描述其作用。
这样逻辑就会慢慢渗透进你的大脑。
3. 害怕调试
这里我要坦白一件事:刚开始编程时,调试对我来说简直就是噩梦。
还记得刚结束培训的日子,我面对一个满是红色错误信息的报告程序,导师让我去调试并修复它。我当时慌了神,感觉自己好像失败了,不适合当程序员。
但我深吸一口气,心想我甚至还没去看那些错误是什么。这时我才意识到,我害怕的并不是错误本身,而是担心在同事面前显得无知。
于是我按下了调试按钮,一行行地检查代码,查看变量值。原来是嵌套循环中的一个未处理异常。那一刻,我感觉自己像个胜利者。
随着时间的推移,我发现调试就像解谜一样 —— 它不是惩罚,而是游戏的一部分。
初学者常常看到错误信息就傻眼了,把这些当成个人失败的标志,而不是通向解决方案的线索。如果你逃避调试,那你就是在错过提升技能的机会。
解决方法: 我是这样做的。
带着好奇心接近调试。
快进几年,当我正在处理一个非常繁琐的Web应用程序时,代码没有报错,但行为不符合预期。我把这视为侦探破案般的挑战。经过几杯咖啡和眼睛手指的麻木之后,我找到了问题所在 —— API 中的一个小小拼写错误。
这个bug教会了我耐心的价值,并且我的经理对我的坚持和解决问题的心态给予了赞赏。他还说:“我们需要更多像她这样的人,把bug和错误当作机会而不是障碍。” 最终,我还是适合当程序员的。
你可以从简单的方法开始,比如打印变量以检查它们的值,或者使用调试工具一步步跟踪代码。每解决一个bug都要庆祝一下。
调试不是敌人;它是你最有价值的老师。
4. 不将任务分解成更小的部分
请记住这一点。
世界上最高的建筑哈利法塔,也是由一块砖一块砖砌起来的。
有一次,我被要求每天早上创建销售报告并发送给部门主管和销售负责人。我紧张得好像自己要为公司的销售负责一样。第一次编写的代码乱七八糟,因为我试图一次性搞定所有事情。
一位资深开发者建议我把任务分解成更小的部分。所以我首先专注于获取正确的销售报告和数据,接着是将其下载到仪表板,最后连接到邮件服务器并实现每日邮件调度。结果提前一天完成了任务。
初学者往往一头扎进去,写一大段代码,然后奇怪为什么什么也不工作。
编程已经够难的了 —— 别再给自己添堵了。
解决方法: 把任务拆分成小块。
比如说你在做一个计算器,那么就先写一个加法函数。
然后是减法。接着是乘法。
每一个小的成功都会激励你,并使更大的任务变得易于管理。
5. 不备份自己的工作
这种事情发生过太多次了。
我见过初学者覆盖之前的代码,更糟糕的是,因为他们没有备份,整个代码都丢失了。
讽刺的是,这些家伙往往是到处复制粘贴代码的人。但在关键时刻,他们却忘记了这个技能!
我总是会在多个地方保存我的工作,特别是那些布局复杂的程序,其中涉及大量的格式化。有时候,即使你只更改了一个坐标,这些布局也会变得一团糟。在这种情况下,你可以轻松地恢复到之前的版本,节省大量的时间和烦恼。
丢失代码的感觉就像一桶冰水浇在头上。但是这是完全可以避免的。
解决方法: 总是保存你的工作副本。
可以使用Git这样的版本控制工具,但如果觉得太复杂,那就从简单的方式开始。
在对代码进行重大修改之前,复制文件并用版本号或日期重命名。
相信我,你未来的自己会感谢你。