新手程序员避坑指南:99%的入门选手都犯过这些错误,你踩过几个?

--

会编程就能成为一名软件工程师吗?

实际上,写程序并没有想象中的那么难。但是,会编程只代表你掌握了这门语言的使用方法。写出清晰易读、可扩展可迭代的代码,才是高水平的体现,也是让你从众多求职者中脱颖而出的利器之一

今天我们就来跟大家分享10个编程新手最容易踩的“坑”,希望能够帮助大家在早期就树立正确的“代码观”,让你的编程之路升级更快、“bug”更少!

以下常见错误,排名不分先后。

01 写代码前缺乏规划

高质量的代码从来不是一蹴而就的。它需要经过思考、调研、计划、疯狂写、测试、改进一系列周而复始的过程,百转千回,方能炼成。

新手最常犯的错误之一就是拿到任务,没有任何调研和计划就开写

小程序或许还行得通,如果是一个非常大且复杂的项目,后果就非常可怕了…

02 写代码前过度规划

凡事过犹不及。永远没有一个完美的计划,计划也总是在变化。

所以开始有一个大体的规划后,就要开始想怎么着手去写代码了

在过度计划和计划不足间追求一个动态平衡,才能写出最优代码。

切忌一下子把一个大程序中所有的feature一步一步全部考虑周密。

在写代码的过程中,你需要随时准备添加,删改feature以及debug,保持高度灵活性。计划重要,但开始写更加重要

03 不关注代码质量

混乱代码基本等同于垃圾。编程的本质是和别人交流关于问题的解决方案,力求清晰简洁。

一些写代码的时候需要注意的小细节:

  • 注意缩进和大小写
  • 每行别超过80个字符
  • function长度别超过10行
  • 变量名能够不言自明,不易混淆
  • 大多数时候,短代码比长代码好

有一句俚语说得好:“写代码的时候可以这样想,维护你代码的家伙是一个知道你住在哪里的暴力精神病患者。”

很形象是不是?

04 想到一个方案就开写

刚开始编程时,新手往往想到一个方案就开始写,很少考虑这个方案的时间空间复杂度或者潜在的错误

面对一个问题,如果你没有想到多个解决方案,很可能的原因是你并没有真正理解这个问题。

程序员的工作重点并不是找到一个问题的答案,而是找到一个问题最简单的答案

这里简单的意思是这个方案可以正确解决问题,同时又简单易读懂。

这个时候需要开阔思路,去google一下其他方法,综合评定下,选一个可以解决问题并且最简洁的。

05 不使用封装

封装,简单理解就是把一系列的数据放在一个类中。不用封装常常会造成严重的系统维护问题。

新手程序员,很难按照直觉建立一个类,或者决定类里面放什么。

如果你想做一个简单的修改,却发现很多地方也要进行相应地修改,这意味着你很可能一开始的架构就出现了问题,犯了新手错误。

总而言之,用专业术语来说就是你的代码需要高聚合性和低耦合性

06 让现有程序更乱

在一堆已经很乱的程序里面找到正确位置并且添加新的feature,类似于向乱成狗窝的房间里随手扔进一个新东西 — — 这只会乱上加乱,并且你也找不到新东西放哪了。

正确的做法是先把现有的整理干净,然后再往里面填加新东西。一些错误的做法包括:

  • 仅仅为改一行而复制粘贴一整段代码
  • 不用配置文件
  • 用没必要的if条件语句和临时变量

针对上述第三点,请看下面的例子

改动前代码:

把不必要的if条件语句稍加改动,代码就清晰多了:

07 不写测试

如果不写代码进行自动化测试,比如说在搭建Web应用过程中,一般你会每写几行就刷新一下,看一看程序效果。

手动测试并没有什么错,但是更多要考虑的是,怎么让测试这部分自动化。毕竟作为人类,每次更改代码后,难免会有忘记去重新测试的时候

所以简单来说就是,人做人该做的事情,电脑做电脑该做的事情

“以测试为目标编程”并不是一句空话,甚至你可以在写程序之前先想想怎么设计测试程序。

08 没找对工具

锤子可以将一个钉子砸进墙里,但却不能把螺丝拧进墙里。不能说仅仅因为你喜欢用,或者你这把锤子在亚马逊上五星好评,你就非要用它做它并不能胜任的事情。

新手需要多了解现在手头上工具的优缺点和局限性,然后多去了解,多去学习新工具,力求用最合适的工具最高效的干活。

09 不理解代码问题会造成数据问题

新手开始往往不会想到数据和代码之间的这种关系, 有bug的代码很可能持续带来数据一致性的问题

为避免此类问题,可以选择用多层数据验证方式,在前后端,网络传输和数据库这些地方都加入数据验证。

如果无法办到这些,要至少使用数据库级别的约束,比如说:

  • NOT NULL
  • UNIQUE
  • CHECK
  • PRIMARY KEY
  • FOREIGN KEY

10 对Code Review持怀疑态度

新手常把Code Review当成是批评,所以往往会比较抵触甚至害怕代码审查。

如果你也是这样的态度,那可就大错特错了。实际上,Code Review是一个很好的学习过程

一朝为程序员,终生都将是代码学习者。所以,你需要接受这个过程并学会享受其中。

很多时候,Code Review会教给你很多之前不懂的东西,请用积极热情的态度去迎接你的reviewer,把代码审查看作是一项宝贵的学习资源吧。

本文编译自:https://medium.com/@samerbuna/the-mistakes-i-made-as-a-beginner-programmer-ac8b3e54c312

原文作者:Samer Buna

E/N/D

点此了解来Offer课程详情:

来Offer软件工程师旗舰核心课程

来Offer全栈开发项目实践课程

来Offer人工智能与数据科学强化课程

关注来Offer,关注北美一手留学求职咨询!

来Offer(www.laioffer.com)是硅谷最具实力的高科技在线教育和职业培训机构,通过提供高水平的IT培训课程和就业指导,帮助学员进军硅谷一二线科技公司。自2013年以来,来Offer已将4000+名中国工程师送入Facebook, Google等硅谷一线公司。

--

--

来Offer(LaiOffer)
来Offer(LaiOffer)

Written by 来Offer(LaiOffer)

Develop technical knowledge. Improve programming skills. Build your career in software engineering.

No responses yet