您所在的位置:黄金城网上娱乐>彩票工具>吉祥官网注册账号·作为程序员,我遇到最难的不是写代码,而是“打架”
  • 吉祥官网注册账号·作为程序员,我遇到最难的不是写代码,而是“打架”

  • 吉祥官网注册账号·作为程序员,我遇到最难的不是写代码,而是“打架”

    吉祥官网注册账号,看到这个问题,从11年参加工作以来,已经做了9年的程序员了。从初期的php开发,到后来的java、python等语言的开发,经历过不同的语言的学习过程。从早期的工程师,到后期的高级工程师、资深工程师、架构师,还担任过项目经理的角色。从我的经历来说,对程序员来说最难的往往不是写代码。

    作为程序员,我遇到最难的不是写代码,而是“打架”

    首先,程序员学习一门新的语言或者新的算法,只要理解了语言的规则和算法的本质,只需要使用某种编程语言实现算法的实现即可,这也是大部分程序员都擅长的。程序员是一个很特殊的人群,让一个程序员去研究一门新的技术,往往能超过你的意料,对于他们痴迷的技术,甚至能够废寝忘食,我就遇到过我的同事为了解决问题,竟然到晚上才想起来自己没吃午饭。

    还有就是相当一部分程序员他们觉得,最容易的才是写代码,但是写代码也有写的好的和写的不好的,就像写作文一样,有文笔的人写出来的和普通人写的是不一样的。

    初级程序员

    初级程序员大多都是按照领导设计的方案把功能实现,一般都是数据库的增、删、改、查操作,期间即便是有代码实现上的难点,也不算是什么大事儿了,毕竟领导已经把大部分问题考虑到了。

    中级程序员

    中级程序员一般会参与需求分析、数据库设计等,此时会对程序的实现逻辑有一定的要求,会对代码做些优化,能做一定的代码重构,会按照一定的设计模式实现功能,但此阶段仍是敲代码阶段,不属于最难的。

    高级程序员

    高级程序员会处理一些业务上和技术难点的公关了,比如要设计一个从来没有人实现过的功能,这个过程是从0到1的过程,中间要考虑很多因素,比如需求分析、数据库设计、程序执行效率、并发控制、容错处理等等,这就要求程序员必须经验丰富、认真严谨才能做出来高并发、高可用的项目。

    其次,程序员擅长跟计算机打交道,不知道是不是跟计算机打交道时间长了,大部分程序员跟别人沟通都不会很流畅。你会发现,程序员跟程序员之间,有说不完的话,而程序员跟陌生人,往往没什么沟通的语言。程序员是一个不擅长沟通的人群,这也能明白程序员为什么经常会跟产品经理干起来。还记得平安的产品经理提出“实现手机主题根据手机壳颜色进行调整”的需求,最后跟程序员干架的例子吧。从程序员的角度来说,这明显是产品经理在刁难程序员,而产品经理的思维是:不关心能否实现,只关心大众的需求。

    作为程序员,我遇到最难的不是写代码,而是“打架”

    在比如测试抛来一个问题,程序员心底本能的反应就是:“哇哇,到底有没有看我写的运行教条件”。测试也不是省油的灯:“我就是按照你给的条件测试的啊,你想抵赖?就是你写的bug”,这么一来二去双方吵起来了。

    程序员最恶心的事,不确定的需求。

    你见过这样的业务人员/客户么?对方说:

    程序员最烦两件事:

    说了这么多,我认为程序员最难的不是写代码,对程序员比较难得是:做项目的程序员比较难的是理解客户的需求;对产品的程序员来说,比较难的是理解产品经理的需求。归根结底,对程序员最难的还是“沟通问题”。

    作者 | 思齐 | 蚂蚁开源社区大神,资深开发工程师