程序员的自我修行——如何越走越长

简介: 程序员的自我修行——如何越走越长

程序员,一个多么让人“敬仰”的职业。而程序员作为新一代的回归自然的“猿人”,也是属于新一代的第三类人种,程序员这个职业在外界眼中就是“人傻钱多死得早”的代名词,因为“高薪”的诱惑,不少其他行业的兄弟,转行做了程序员,而且近几年各种大大小小的培训机构如雨后春笋般遍地开花,越来越多的其他行业的从业者都在往程序员这一行业转,相信作为程序员的你身边多多少少都会有几个同事是从其他行业转行过来的。


而在21世纪这个信息化、网络化快速发展的今天,获取信息和知识的途径越来越广泛,在这个快速发展、节奏紧张的社会,作为一个程序员应该具有哪些素养才能够帮助程序员进一步的提升与进步呢?下面walking作为一个程序员在此做一个个人分享。


扎实的专业技能


这是作为程序员最基本的职业素养,如果专业技能掌握的不够牢固,那就是技术不到家,作为程序员应该感到惭愧。最基本的,比如我们Java开发者吧,最起码把这个Java的常用的API要熟练吧,这是毋庸置疑的。不然你怎么写代码,怎么开发呀。不要觉得我说的在这一点是废话,这不,walking最近就看到一个同事写出了这样的代码


@GetMapping("/getUserCount")publicMap<String,Object>getUserCount(){Map<String,Object>result=newHashMap<>();Stringkey="users_set";Jedisjedis=jedisPool.getResource();Set<String>smembers=jedis.smembers(key);Iterator<String>iterator=smembers.iterator();intcount=0;;while(iterator.hasNext()){iterator.next();count++;}result.put("count",count);returnresult;}

这段代码仅仅是为了得到使用redis的set结构保存的用户ID的count数,这位同事怎么写的呢,从redis里拿到所有用户ID的set集合,然后用java的方式--迭代器遍历集合,再count++计算set中元素个数。看到这,你有什么想法呢?明明很简单的一行代码,却搞的这么麻烦,到底是为什么?不还是技术不到家吗?redis的api不会也就算了,java的set集合的api再不懂就说不过去了吧?所以扎实的专业技能是程序员的基本素养,否则写出这样的代码只会让人贻笑大方。


保持良好的编码习惯


不但要专业知识扎实,代码规范程度也很重要。知名互联网公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。正所谓“规范大于约定”,良好的编码习惯将会让你受益终身。阿里的一套Java开发手册让无数公司追捧,闻名国内外。详看:下载 | 阿里Java开发手册嵩山版。


团队精神和协作能力


团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。


文档习惯


文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。


需求理解能力


程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。


模块化思维能力


作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。


测试习惯


测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。


学习和总结的能力


程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。


作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:1、 需求分析能力 2、 整体框架能力 3、 流程处理能力 4、 模块分解能力 5、 整体项目评估能力 6、 团队组织管理能力


保持程序思维


作为一个程序员而言,程序员的思维可谓是超人类的思维,因为我们面对产品提出的需求时要用一个程序的大脑去思考,去想如何控制电脑做出我们想要完成的事情,如何用最简单、最优的方式去实现这个功能。那何为程序思维呢?那就是“源于程序,终于程序”,但是不脱离程序,要做程序中的散文诗人。程序员的思维只有从不断的练习中去感悟,去思考,去总结,去完成。比如产品经理突然有一个想法想做一个论坛,问你们谁能做,你怎么应对?下面的视频带有一定的娱乐性质,但是希望大家能够多联系,多总结,去挖掘自己程序的潜力,有一天可以做到:根据problem反射出answer或者根据answer反射出problem的时候就是程序员思维出来的时候。【视频在公众号】


不断的学习的精神


程序员要保持不断的学习与进步,因为程序员界的新的技术层出不穷,在新的技术中去注意自己应该掌握的知识点,学习并且利用就是最好的竞争力,如果作为程序员知识储备不深,或者固步自封永远停留在自己的世界里而沾沾自喜,不去主动接触、学习并掌握新知识,那么你迟早会被淘汰。可以从哪里得到更多的新的技术呢:1)github 2)各大论坛 3)博客网站 4)培训机构 5)程序员你懂的墙外的东西


有人会说:平时上班那么忙,哪有时间学习啊?伟大的文学家鲁迅曾经说过:时间就像海绵里的水,挤挤总是有的。你把刷视频、玩游戏、发呆的时间拿来学习不香吗?没时间是你懒惰的借口!


保持头脑灵活


作为程序员要不断去参加一些益智类的项目,来保持自己的大脑的活性。久坐和长时间面对电脑给自己的精神压力和身体压力是非常大的,保持一个大脑的活性有助于我们的学习,研究,更有利于我们心脑血管的健康,这样对我们的生活会有更进一步的提升空间。比如,玩一玩益智类的小游戏,适当的玩一玩开拓自己的大脑;再比如去找找算法题做做都是可以的。walking身边就有一些大龄程序员,在与其对接的过程中,发现一个小问题他就要想半天,甚至是告诉他之后还不是很明白,很明显脑子反应慢了,不灵活了。老话说的好,脑子越用越灵,不用就生锈了。


充足的睡眠和持之以恒的锻炼


对于程序员来说,加班是常事,但是良好的生活作息可以让我们得到更好的工作效率,充足的睡眠是保证我们工作效率的第一开端。哪怕我们工作再忙,切记一定要保证充足的睡眠。持之以恒的锻炼源于运动,运动是生命之本。有很多人工作后,1-2年内就发胖,大肚子浑身赘肉,作为程序员更容易这样,长期的伏案工作,吃完就坐在电脑前,缺乏运动,加上不注意饮食,暴饮暴食,长此以往身体就会越来越差,糖尿病,高血压,脂肪肝…这样的疾病就会找上门。我们要每天给自己一定的时间去锻炼,去流汗,去释放,这样我们才可以在家庭生活中成为一个强者。美国程序员是世界的领先水平,凡是在美国的白领,仔细看看都是身体健康,体能充分的人。


保持良好的心态


程序员更要保持良好的心态,不然你写代码写文档就和容易出错,不要带情绪上班,保持一个平和的心态,佛系应对工作。如果有一个良好的心态,可以更加好的去解决bug,bug对于程序员来说是最耽误时间,最影响心情的一件事情,即使是有了bug也不要太着急,告诉自己急也没有用,当下之际是找出bug快速解决它。。walking身边的同事就发生过这样一件事,两个前后端的同事合作做一个功能的开发,测试阶段bug不断,到上线前还在解决,结果两个人就互相埋怨,起初还是随口说说,最后甚至大大出手互相辱骂,伤了和气,后来均被劝退。所以无论我们面对工作,还是生活都要有一个良好的心态,只有良好的心态我们才可以走的更远。


时常规划自己的人生


程序员的职业生涯比起其他的职业是要更加的短暂的,新生的程序员是层出不穷的,他们思维活跃精力充沛,能吃苦能加班,相对于30多岁以后的你如果还不考虑转型的话,是和他们拼不过的,所以我们要时常有一种危机意识,做好自己的职业规划。


作为程序员的我们,可以强化自己的专业技能做技术经理,技术专家,技术顾问,架构师等,也可以转型去做管理,或者也可以创业等等,脑袋里面一定要时常规划自己的人生路线,否则很难走到最后。


一定明白自己想要什么,是一辈子做底层的程序员敲代码吗?那不会被淘汰吗?如果想升职做技术大牛,那就应该把自己的技术功底打扎实,从刚工作甚至是大学时代就规划好自己将来要做到什么样的技术程度,不断的积累经验掌握技术原理,解决问题,而不是等到30岁以后工作有可能有危机的时候才去着急,为时已晚。规划越早越好,并不断的去实践达到一个个目标。

相关文章
|
22天前
|
程序员
代码与生活:技术感悟中的哲理
【10月更文挑战第20天】 在编程的世界里,我们不仅仅是在编写代码,更是在塑造一种生活方式。本文将探讨如何将编程思维应用到日常生活中,以及这种思维方式如何帮助我们更好地理解世界和自己。通过具体的例子和深入的分析,我们将看到,编程不仅仅是一种技能,更是一种生活哲学。
31 0
|
2月前
|
机器学习/深度学习 人工智能 算法
编程之路上的启示与反思
【9月更文挑战第16天】在编程的海洋中,我们每个人都是一艘航行的船。有时顺风顺水,有时逆流而上。本文将分享一段个人的技术成长之旅,从初心到迷茫,再到自我发现,最终找到属于自己的航道。通过这段旅程的反思,我们将探讨如何在技术的洪流中保持初心,不断进步,并对未来做出明智的选择。
|
设计模式 算法 程序员
代码能力,程序员自我修养之基石
提高代码能力不是一蹴而就的事,需要我们不断努力,通过持续学习和练习、参与开源项目、阅读优秀的代码、与他人合作、提升解决问题的能力等方式,提高自己的代码能力,为自己为公司创造价值。
228 0
代码能力,程序员自我修养之基石
|
人工智能 前端开发 JavaScript
没想到真有此书!!!《一个程序员的自我修养》
最近在看程序员的自我修养 (豆瓣),作者陈逸鹤,一本写给程序员的思考书,其实市面上类似题材的书也不少,比如我看过的另外两本内外兼修:程序员的成长之路 (豆瓣)、程序员必读的职业规划书 (豆瓣),我只是后悔自己看的太晚,很多道理明白的太晚,要多看看此类书,给自己寻找点方向感和动力,我也一直在努力践行书中的一些方法和认识,本文是此书的第一部分内容的归纳,希望对你有帮助,感兴趣的朋友可以买来此书详细学习。
|
架构师
架构师的自我修养
软件架构,指从宏观角度说明一套软件系统的组成和特性。 架构设计与需求分析,概要设计,详细设计最大的区别在于“宏观”二字。要去架构师必须具有大局观,从全局角度思考问题。
184 0
架构师的自我修养
|
存储 中间件 Java
《程序员的自我修养》
从程序员的群体基数,自我成长,职业发展,开源文化等多方面介绍程序员这个“物种”,希望能够对刚刚进入或即将进入这个行业的同学有所帮助。
1562 4
《程序员的自我修养》
|
人工智能 运维 Cloud Native
程序媛如何自我突破?
很多时候人们是被自己内心的偏见所打败的。作为一名程序媛,保持一种对世界、对人生的不同看法,可以帮助我们树立自己的参照系,不被外部轻易左右。或许我们无法像一些伟人那样打破、推动如此重大的社会认知,但是我们坚持去做,就能实现更高的人生价值。
程序媛如何自我突破?
|
搜索推荐 程序员
程序员的自我修养
程序员的自我修养 10
163 0
程序员的自我修养
|
设计模式 算法 Oracle
成为优秀码农的十二项自我修养
  业界有着这样一个普遍的误解:要成为一名优秀的程序员,就必须掌握许多种编程语言和工具。实际情况是这样吗?也许下面给出的十二条建议会让您或多或少地改变对此的认同感。   1.研究数据结构   计算机科学家Niklaus Wirth曾经有过一个著名论断: “数据结构+算法=程序”。 可见,数据结构是计算机程序的基础,它们就像构造房屋的砖头一样。实际上,数据结构决定了程序将如何快速有效地解决问题。一旦使用了正确的数据结构,您的程序方案会变得既简单,又省时。
111 0
|
架构师 程序员
论程序员的自我修养——我在阿里干了十年开发
究竟是努力重要,还是选择重要?资深阿里技术人毕玄师兄有着自己的见解。
2809 0