您的位置:首页 > 职场人生

程序员的职业素养——成长之路,如何成长?

2017-08-01 09:56 232 查看

程序员的职业素养

承担责任、不行损害之事、不破坏软件功能、职业道德

做我一个负责人的程序员,我们需要对程序负责,也是相应的对自己负责。编写程序时,认真谨慎;测试代码时,小心细致;自己的部分出现问题时,勇于承担责任,不推卸,不隐瞒(代码之道,版本控制,想来隐瞒也是无处说起),此为承担责任,对代码负责。有可能你是在做外包,也有可能你在一家小公司,郁郁不得志,愤恨上天不公,人生之不平等,但是细细想想,你是否做到了对代码负责?不因外包,公司大小,个人喜爱与否而对待代码不认真,不谨慎;或是混吃等死,不学习,不用功,从不从自身找原因?如何对自己负责?程序员职业素养——对代码负责,其实也是对自己负责!代码因你而完整,而获得生命。你因代码而成长,而更强。程序员,本就该与代码同在。

确信代码可以正常运行(一定要测试并保证测试通过) 大量单元化测试(自动化)

为何说一定要测试并保证测试通过?(其实测试不通过代码貌似也没意义啦~哈哈哈哈) 言归正传,从前都一样,认为代码在页面上功能跑几遍,通过了便没问题了。嗯,确实如此。(神经病啊~)但是,肯定不止如此,懂代码肯定懂计算机,所以大家其实都懂计算机,那么肯定都知道机箱与机箱之间也是不同的,有的更是天壤之别。


再看下图



并不是为了跑题去说机箱走线,只是用一个明显的例子来为大家展示糟糕的代码与完好的代码之间的区别。虽然代码就像走线一样,呆在机箱里,能用不就行了。

这样就又说回第一点了,对代码负责,对自己负责。什么样的代码,跑起来都是好代码。但是有的代码能活100岁,还能不断拓展新能力,而你的只能活到17岁半,成年都不行,更不要提新能力。

所以其实测试很重要,这个测试并不是前文所说的功能测试,而是单元测试,对每一个功能进行系统的完整的测试,(并非说跑功能便会出现功能错误的情况)而是通过单元测试,对每一个功能做到系统的拆分和了解,那么对于代码的完整及架构设计能起到无法想象的作用。好比机箱内的线,你对每一条线都进行了系统的测试,那么你自然了解它应该放在哪里,如何用最便捷,更好看,更易于以后的二次,三次开发及维护。

对于单元测试相关,其实我十分推崇TDD测试驱动开发(Test-Driven Development),上述也是借鉴TDD的思想,所以如果你想更进一步,其实我推荐你去看看,甚至只是了解(《程序员的职业素养》中其实也有不断的提到TDD及它的理念)。或许你并不会真用TDD,但是我想它的理念一定会让你有所得。

了解学习相关知识

引自《程序员的职业素养》



①.GOF——《设计模式》

②.S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。

| 简写 |全称 | 翻译 |

| ————- |:————:| —– |

| SRP | The Single Responsibility Principle | 单一责任原则 |

| OCP | The Open Closed Principle | 开放封闭原则 |

| LSP | The Liskov Substitution Principle | 里氏替换原则 |

| ISP | The Interface Segregation Principle | 接口分离原则 |

| DIP | The Dependency Inversion Principle | 依赖倒置原则 |

③.Scrum 迭代式增量软件开发过程,通常用于敏捷软件开发

坚持学习

摘自《程序员的职业素养》

读书,看相关文章,关注博客和微博,参加技术大会,访问用户群,多参与读书与学习小组。不懂就学,不要畏难。如果你是.NET程序员,就去学学Java;如果你是Java程序员,就去学学Ruby;如果你是C语言程序员,就去学学Lisp;如果你真想练练脑子,就去学学Prolog和Forth吧!

读书,为什么放在开头第一个?因为读书是最重要的一件事情,书本上的东西都是死的,不如视频生动,不如提问解答来的更细致,但是书籍带来的却是视频和提问所无法能及的。视频和提问当然不能说不好,但是却不能让人记忆深刻,一本笔记,终究只是笔记,缺少相关的东西(情景,实例,甚至问题)书上写写画画,写的画的都是自己的,时而回头温习,再无不通之处。书更是让你学会思考,学会自己去寻求答案,而不是听别人说出来的(说的不错,但是肯定没自己得来的深刻)。

看相关文章,关注博客和微博。其实现在来说,应该还要加上一点:创建一个属于自己的GitHub账号,那里的资源你无法想象。书籍带来的是学习能力以及扎实的基础。文章,博客,微博,源码等等带来的就是让你避开实际编程中无数个大大小小的坑,并交给你老一辈程序员的老练经验。

访问用户群。大大小小的程序群我加过的也不少,所以这里有几点就必须要说下,

如果你想加入一个优质的程序群,那么先看下群主或者管理是否有名字是 XX培训机构—X老师这样的昵称,有的话请记住千万别点(培训机构拉皮条的).

当你加入一个好的群之后,应该怎样呢?该闲聊闲聊,但记住永远不要把问题解答的希望寄托在群里,不是说群不专业,而是首先群里真正愿意回答问题的人很少(一部分为了学习,大部分水里潜着等着问问题),有也不一定能够第一时间回答你。这里就要说另外一点:

善于使用搜索工具,就说百度,发现很多新手其实并不是真的会用百度,这个其实是个很重要的学问,会大大影响到你解决问题的效率。

这里有一篇对百度应用的专题博文(并不是我写的)

http://blog.csdn.net/xiaohai798/article/details/47660173

大家可以一看,个人感觉很不错

所以看到这里,大家会很疑惑,既然如此,为什么还要加群呢?每天看看博客文章什么的不是美滋滋。那么重点来了,加群不是为了提问,而是为了解决他人的提问。每天看看博客文章确实没错
4000
,也能学到很多东西,但是博客太多太多,质量也是参差不齐。但是群里面的提问不同,都是碰到的实际开发中遇到的问题,或者哪里发现的奇怪问题,当你看到问题,并开始着手去解决它(或许你并不会,也是第一次遇到这个问题,但是如上所说其实很多人不会用百度,那么只要你真的用心去百度找相关,百分之九十九的问题都是可以解决的,毕竟这么多年真能有程序上的问题再被第一次碰到也是很神奇了。),那么我想你肯定能学到东西,嗯,很多很多东西。

程序员,最好是不要局限于一种语言,其实这么多语言,很多东西都是想通的,当你学会了Java你再去学习其他语言,肯定不会是十分艰难的事情,但是你学习的过程中感受肯定是不同并且是有所收获的。(当然,前提是你的老本行已经可以撑着你去做其他很多事情)。

重复练习

以一个简单的算法main做热身练习(ex:排序、素数筛查)。(我去这有什么难的哟,50道经典Java题。我一道不落,全都会做。)嗯,那你真的厉害。其实都是些简单的基础题目,所做也只是为了练手而已。并不是说为了凑代码量什么的,而是真的让自己时时刻刻保持一种在编程中的感觉。让自己习惯于编程,甚至让编程成为一种生理反应。

通读《程序员的职业素养》有以上所想所感,如对你有用,万分荣幸;如有何不当之处,欢迎交流指正。

邮箱:465205538@qq.com

——Fance Tsui
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息