如何渡过小白期,不再当菜鸟程序员?( 二 )


遵守代码规范在新手的意识里可能没有代码规范这个词 , 但是这个确实是从新手走向进阶的必经之路 。
不同的语言的规范是不同的 , 比如说JAVA和go当中流行驼峰命名法 , 所有变量都是驼峰的 。而Python可能只有类名是驼峰的 , 普通变量和包名倾向于全小写用下划线分割 。当然代码规范并不仅仅是命名规范而已 , 还有很多很多的规范 。比如中间件的使用规范、多线程的开发规范、数据库的使用规范等等 。

如何渡过小白期,不再当菜鸟程序员?

文章插图
 
为什么我们要遵守这些规范?因为我们的开发工作并不是实现功能就完事了 , 以后还需要拓展和维护 。遵守规范不仅可以不给以后的自己以及他人埋雷 , 更重要的是可以让自己的代码质量更高 , 更加专业 。而且一些规范当中往往是藏着道理的 , 为什么套接字、线程以及数据库连接都需要维护一个“池”?这里面肯定是有门道的 , 不然为什么大家不怎么简单怎么来?我们在遵守这些规范的时候也能便于我们更好地理解各个场景当中的原理以及细节 , 这也是技术实力的一部分 。
当然我们一开始未必能做得很好 , 但代码规范并不是很困难的事情 , 从我们有这个意识到做到遵守规范并不需要很多时间 , 但是带来的收益却是非常丰厚的 。之前在前公司 , 有听说过过因为代码风格太差被老板给了差绩效的事情 , 我觉得挺冤枉的 , 可能就是一时疏忽给老板留下了差映像 , 如果当时写代码的时候能注意一点 , 完全可以避免 , 代码有些太大了 。
会用不等于懂了如果你是应届生 , 那么当你毕业进入职场 , 你必然会面临一个适应的问题 。别的我们不提 , 单单只说技术方面 。我们势必需要快速学习一些我们之前没有见过或者是不了解的技术 , 来应付工作当中的任务以及挑战 。
这个是非常正常的 , 我想绝大多数程序员在刚毕业的时候都经历过 , 我自己也不例外 。刚毕业的几个月是最辛苦的 , 我们需要承担很大的压力 , 对于转变之后的生活也不是完全适应 。但当几个月过去 , 我们适应了生活 , 学会了一些基本的技能可以应付或者说胜任当下的工作之后 , 一个潜在的陷阱就到来了 。
有一些人会不知不觉地停止学习 , 因为他已经足够应付工作了 。在工作当中他会有一种在这个领域我当下会的技能已经足够了的错觉 , 有些人甚至会因此觉得其他资历更深的同事也不过如此 , 似乎并没有比自己多会多少东西 。我当初就是这样 , 因为我发现我工作当中用到的东西玩的非常溜 , 用起来得心应手 。我一度有些膨胀 , 觉得自己已经算是一个经验丰富的程序员了 。直到后来有一次面试 , 被问到了一个常用的工具的技术细节 , 我张口结舌一句话也说不上来 , 我才发现 , 自己知道的只是皮毛而已 , 甚至连皮毛都算不上 。
当然我们工作当中对很多技术的要求都只是会用 , 你会用就够了 , 这并没有问题 。我也并不觉得每一门我们用到的技术都需要去刨根究底 , 但我们需要对我们的实力有清醒的认识 , 哪些是勉强会用的?哪些是真正了解掌握的?哪些是需要掌握但是只是勉强会用的?
能够想明白这些问题可以让我们保持一个清醒的头脑 , 对自己的当下的处境以及长远的发展目标都会有一个清楚的认识 。
积累知识而不仅是经验新手或者是小白有一个特点就是往往更加依赖经验而不是知识 , 举个例子吧 。比如新手后端经常遇到的问题之一就是maven package失败 , 很多人解冲突的办法就是mvn clean & mvn install 。也就是清空重新建立 , 因为大部分情况下这个命令可以解决问题 。所以很多新手就记住了这个命令 , 每次遇到maven失败就这么来一次 。
如果这个命令解决不了呢?这些人可能会换个命令试试 。如果常用的解决问题的命令都试过了还是不行呢?这些人可能就僵住了 , 觉得这个问题解决不了了 , 得请大牛来看了 。
这里的核心问题是新手积累的是经验而不是知识 , 他们只是简单机械地把出现的问题和解决方法做映射而已 , 并不是从原理和核心层面理解问题出现以及解决方案生效的原因 。那么带来的结果就是 , 积累到的只是经验 , 下次能解决问题不是因为学会了问题的解决方法 , 也不是理解了这一块技术内容 , 只是单纯地记住了而已 。这显然也是一种伪成长 。


推荐阅读