首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当写代码变成一份苦力活

入门写代码其实很简单

目前来看,学习编程的门槛并不高。按道理说,只要掌握了搜索的技巧,关于你想要的资料在网上基本都能找得到,特别是关于编程的视频和文件更是俯首皆是。

一台能够上网搜索和下载文件的电脑终端,只要懂得识字、智力不出什么差错,普通人折腾三五个星期就能够上手,学习三五个月就可以开发出一款产品,信心再膨胀点就可以尝试接活干或者出去找工作了。

虽然这样说有点贬低了程序员行业的门槛,但现实的情况就是这样,毕竟现在写代码的要求比以前宽松多了,不强制精通汇编,不要求手写代码,有各种强大的集成开发编程环境作为坚强的后盾,持续提供API提示和代码自动补全功能,在编码中遇到各种千奇百怪的问题,在搜索引擎上基本上也能找到对应的解决方案。

更重要的是,得益于开源的倡导和发展,只要键盘上的CTRL键不沦陷,C键和V键永远跟随,那么铸就千万行级别的代码就指日可待,不管是拿来主义还是学习借鉴,心虚的我也只能承认从中受益不少。

读书和工作的差距

工作几年下来,开始感叹工作时写代码跟大学时写代码还是有很大的差距的,并且越发感到前期的这种工作方式会有反噬的可能,不及时地进行调整最后终究只能原地踏步甚至是陷入危机。

大学时写代码是为自己而写,同样有期限的要求、有人去催促,但老师的出发点是让你能够从中掌握和巩固知识,而工作时上级的催促是确保能够如期地交付成果。

老师之所以抓学习是看重学生写代码的质量和水平,上级抓效益而看重的是代码的功能和效果。对于工作来说,只要提交的代码能够正常执行,功能能够稳定使用,其他的就似乎显得不太重要了。

大学时可以花大量的时间潜心研究代码的实现方式,绞尽脑汁地去重构和优化代码,以改进代码的运行效率。工作的时候同样也是看重效率,但所要求的层面却是大相径庭,工作的快指的是产品的开发、测试和交付整个软件研发周期。

一条看似轻松的路

公司存在的意义是提供服务,存在的目标是获取利润,这是无可非议的。再好的产品如果没有市场,它和所诞生它的公司就注定没有未来。

所以当公司接到客户需求,然后制定计划要求员工在指定的日期完成产品的开发,这是再正常不过的事情了。毕竟它发薪资雇佣你来就是干这事的,员工为了完成任务需要承担一定的压力,尤其在遇到时间紧、任务重的情况时,承受的压力就更加大。

只不过作为程序员的我们,大多数人在需求评估后进行功能模块的编码实现时,不由自主的选择了一条轻松的路。

在遇到一些稍微棘手的功能实现时,我们总是习惯性地先在搜索引擎上找找看有无前人实现过,有幸地找到了就借鉴下现成的,如果开放了源码那就更好了,这样就可以毫不客气地搬来就用。

采用一些流行的框架时,我们只是一味地去用,而对支撑其功能的架构实现丝毫不感兴趣,对其设计数据结构和算法也不予理睬,它那么热门,肯定有其独特之处,可惜的是,我们只是到了能够派上用场这个程度就戛然而止。

同样的,我们在基于某个产品进行功能扩展时,习惯性地大面积调用已有的函数接口时,用起来甚是方便,但只是知其然不知其所以然,通常都是知道它用法和调用效果,却没有进一步思考这函数是如何实现的,为何入口条件要做如此的限制?如果自己实现又会怎样去实现?

就算我们在独立实现某个功能时,总是喜欢做轻松活,不愿意多花点时间考虑如何设计将会更高效,数据结构是否可以更加合理,而是放之任之,只要最终的效果达到要求就好了。

当编程变成一份苦力活

一切的工作都是以功能实现为首要目标,所以大多数情况下是产品的功能如期的完成开发,项目经理甚是欣慰,开发人员如释重负,最后得个皆大欢喜的场面。但这时程序员的心是虚的,他/她很好地完成了工作,但是自身的技术储备却没有得到相应的增加。

这对那些尤其看重培养开发技能的程序员来说是很受打击的,我们不生产代码,我们只是信息技术道路上的搬运工。当写代码竟然写出无聊、厌恶的情绪时,这时就需要警惕了,酿成这样的后果,这究竟是谁的错?

有开发人员就会抱怨:其实我也很想提升代码开发水平的,但我加班加点才艰难地赶在截止日期前将功能开发测试完,哪有时间去精进、优化代码?只要运行正常,没有出现严重的漏洞就已经谢天谢地了,还谈什么其他性能方面的标准呀。

但我想知道的是,我们究竟是什么时候让自己坠入这怪圈的?

警惕放任自流

软件开发自有一套完整的研发管理流程,而且在响应市场的变化中不断地优化迭代,以前看重 CMMI(软件能力成熟度集成模型),现在热衷于谈敏捷开发模式,不少公司已经开始采用 DevOps 以提高产品的交付速率。

但代码管理是一块比较细的层面,我们在谈代码质量的重要性,阐述代码审查的必要,但要真正落地实施时走的却是形式主义路线。

领导还未认真不重视这块这是其中的一个因素,他们有自己的理由,也许是出于效益方面的考虑,采取“先发展,后治理”的指导方针,但如果开发人员自身也放任自流,不约束自身写代码的陋习,那就是自己的责任了。

程序员的代码并不是凭空产生的,也是耗费了时间和心血,也希望能够得到他人的认可。但这一切的前提是程序员需要对自己的代码负责,如果写的代码连自己都看不过去,心中没有自己的一个标准,破罐子破摔地去制造垃圾,那就别怪别人没有给予起码的尊重。

我想任何一名程序员也不愿意一辈子在开发的岗位上一直重复做着增删查改的工作吧?而且如果未来软件足够自动化和智能化,编码的一部分工作很大可能也会被机器所取代,因为这种程度的工作毕竟是苦力活,说不定机器更能比人胜任这份工作呢。

重新看待写代码这事

写代码跟做世界上的其他事情并没有太大的区别,同样需要经历一个成长的过程,一样有明显的水平差距和等级区分,一样需要经受时间的考验和实践的磨练。

只是有些人安于现状止步不前,有些人不满于此积极进取,前者可以替代,最终不免沦为千千万万中平庸的一个,后者积极进取创造更多的价值,或多或少推动着这个世界向前发展。

我所能告诫自己的一句话是:想要在某方面有所建树,你必须投入大量的时间和精力在这方面,天才也不例外。这点最好要有心理准备。

这几年的编码工作中,总是习惯于缝缝补补,避重就轻,心里知道此举实为不妥,但碍于没有足够的动力,没有可以指点迷津的风向标,所以各方面的成长总是很慢。但不可否认这也是成长中的一部分。

写在最后

我觉比较可笑的一点是:我们开发产品的初衷想着提高使用对象(即客户)的工作效率,作为职场人员我们同样也在使用一些软件产品作为提高工作效率的工具,但最终的结果却有点舍本求末的味道。

工作不但不见得轻松下来,反而人忙得更加晕头转向。不仅我们如此,似乎整个经济市场、整个社会都是如此,就像是有一个无形的滚动巨轮在我们的身后追着来碾压我们,被迫无奈的我们只能疲惫着向前狂跑,而我们跑得越快它在后面就追得越紧……

但不管怎样,作为一名程序员,能够矢志不移地相信着“技术改变世界,技术引领未来”也是一件幸福的事情把?

图题:硅谷 第一季海报

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190203G00QKP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券