支持原创       https://mp.weixin.qq.com/s/_SsBWq6m2D_6hUab89LIpw

撤离一线城市工作已经接近一年时间,工作环境发生变化,让我印象深刻的应该是公司周围同事的工作状态。身处环境氛围的改变让我略感恐慌,总结一篇文章我认为好的程序员应该是什么样的,写出来提醒自己。

(图片来自网络见水印)

技术能力

技术是一个程序员吃饭的本钱,你可以什么都不擅长,不擅长沟通、也不擅长表达更不擅长管理,但是作为一个以技术名义拿工资的人,具备对应职位应有的技术能力这个是一定不能改变。

初级工程师能按照设计文档很好的完成工作,中高级工程师能提出自己的设计思路、实现想法并且高质量完成工作等等。那种平时不太活跃但是能凭借自身能力把自己工作做好的人给我的感觉其实也非常不错。

对一个人能力的要求是会随着职位、时间的变化而更加严格,所以一个人在同一个公司干满1年、3年或者5年,公司对他的期望肯定会不一样。

我觉得某些公司淘汰部分年龄大而能力没跟上的员工完全合符情理。因此,后面提到的持续学习、提升自己也是我认为一个好的程序员应该具备的素质。

这里的技术能力是技术综合素质的描述,并不限制于你必须掌握多少门编程语言、会用多少框架解决多少业务、又或者精通多少设计模式、手撸什么什么算法之类的。

它体现在多个方面,写代码能力、思考能力、抽象能力、设计能力等等诸如此类的我认为都算。抛开先天因素,这些能力都可以通过后天训练得到相应的提升。

单从写代码来说,不管什么级别,我以为一个好的程序员应该适当保持码代码的频率。

我现在的职位是技术经理,但是实质上我估算我半年的代码量(包括实际工作中和工作之外)比项目组中其它任何一个人都多。编程这个东西,长时间不摸键盘,真的会生疏。

能接受新事物,持续学习

一个好的程序员应该能接受新的事物,这里不限于技术,还包括其它思想、观点、现象等等。对未知事物保持好奇心,促使自己去探索、学习,从而提升自己。

程序员的经验都是靠慢慢学习积累而成,我们身上大部分技能都是在离开学校之后才掌握。

如果自己的工作内容本来就相对固定,再加上缺乏学习进步的意识,那么一年两年之后的你跟现在的你几乎没有什么区别,唯一不同的就是年龄又大了一两岁,竞争力又下降了几个百分点,再想想5年、10年之后会如何?

而一直保持学习习惯的人,从内到外都能得到提升,自身技能不仅能够突破日常工作的要求,又由于有源源不断新的知识输入,平时在沟通、交谈之时也会更加自信。再或者实在哪天干得不爽了,拍屁股走人也是相当有底气。

仔细想想,有多少人想跳槽但又对自己无论能力还是经验都缺乏信心,始终忍声吞气地呆在同一个公司,既不涨薪也不升职的?

有的人就会说了,我年龄大了,除了工作之外还有非常多的事情要做,哪来时间精力去学习新的东西?

说这种话的人大多数可能都没从内心认识到保持学习的重要性,我认为一个好的程序员应该把持续学习当作生活中的一部分,就像你每天要睡觉、刷牙洗脸一样,为什么你每天刷牙洗脸有时间?

因为你觉得不刷牙洗脸出门会很难堪,那么学习也应该是一样的道理。不管是中国古人说的“活到老学到老”还是我们敬爱的乔帮主说的“stay foolish, stay hungry”,我觉得都是非常适合各行各业每个人,当然也包括一个好的程序员。

一些公司招聘满30岁的简历直接不看,这并不是歧视,从概率上讲,它能够提高合格人才招聘命中率。

勤于总结

前面说到的两点我认为是成为一个好的程序员的基础条件,那么这里说到的“勤于总结”其实是对“持续学习”的一个补充,算作是如何学习的一个方法。

无论是自己通过某种渠道学习到的新知识,还是工作中碰到过的疑难杂症,我觉得都有必要进行适当的总结,总结的过程就是梳理、反思的过程,帮助我们加深认识,增强记忆。

总结的方式有很多,个人觉得最好、最靠谱的应该是写博客(文章)发表出来让大家能看到,有人看到就有可能提出质疑,有质疑就会出现辩论,有辩论就会有新的认识,而不管最初的质疑正确与否。

如果质疑是对的,那么我们会改正自己的错误;相反如果质疑是错的,那么通过辩论我们会更加相信自己最初的观点。

所以我认为这个过程是永赚不亏的。

博客总结另外一个好处就是能够训练自己的书面表述能力,将脑子中的一个问题、方案能够正确详细地转换成有条理、图文并茂的文章,我认为这也是一个好的程序员应该具备的能力。

很多东西看似懂了、会了其实大多数时候并不是真的懂了真的会了,非常有可能是你想当然。

书写博客是一个表达的过程,就像你将一个事情从头到尾讲给一个陌生人听一样,如何让人快速听懂是门技术活,将脑子中的东西写出来,你很可能会发现有些地方之前想的是错的,而有些地方还可以改进。

俗话说“好脑子不如烂笔头”,说的是再好的记忆力都不如将东西写在纸上,因为记忆力再好时间长了可能还是会忘记。

而我认为“写出来”还有另外一个好处,那就是反思自己的想法是否真是对的。

大部分人并不是天才,习惯性总结能帮我们缩小与天才之间的差距。一个好的个人博客能给自己带来非常多的潜在价值,对自己的职业发展也会有相当大的帮助。

一般应聘时如果简历上注“***优秀博主”,我觉得面试分数会增加一大截,比起那些简历上大段大段的项目经验更加有效果,这个道理其实跟你有一个贡献、活跃度很高的github一样。

我认为好的程序员应该有一个活跃度很高的博客,或许你的技术方向比较小众,博客关注人数并不高,但是没有关系,只要你长期保持“写”的这个过程就是有效果的,能坚持1年、5年、10年甚至20年。

勤于总结这个东西大部分时候是需要靠自己主动有这个意识,如果想让某个人的行为去影响周边的人也去做这件事情,我觉得成功的概率其实并不高,而发自内心认识到它的重要性更能起到作用。

所以,如果有看到这篇文章的朋友,主动抓紧时间行动起来吧!

沟通、表达也很重要

程序员一般给人埋头干活、不善交流的印象,大部分时候确实如此,但我认为一个好的程序员应该具备相对较好的沟通、表达能力。

这其中又分两种,一种是口头表述能力、一种是书面表述能力。

面对面口头沟通能力的重要性自然不必说了,如何在上级面前将自己的想法完整清晰地表达出来、如何在会上给大家传输自己的思路让每个在座的人都能听懂等等。

那么什么是书面表述能力呢?工作中其实大部分时候并不具备面对面沟通的机会,更多时候是通过类似邮件、文档、即时通讯工具等等进行交流,如何将一个抽象的问题转换成书面文字(图表)又能让别人轻易看懂同样也是一门技术活。

参加工作7年,自认为有一个还算靠谱的经验,就是能从一个从未见面的人写的文档材料中看出这个人是个什么水平,哪怕他写的内容我不是很擅长甚至完全看不懂。

面对面沟通能力是我目前比较欠缺的,我也在尽力寻找场合来锻炼自己,希望借此来弥补自己相对较弱的方面。

我认为改变自己需要两方面的因素,一个是外部环境一个是内在意识,其中个人更相信后者占更大比重。

所以,这里说到的认识到自己缺点并寻求解决方法和前面提到的习惯性总结都应该是出于自我意识。

有一些文章作者抱怨公司、领导或者同事的,如果换作是我,我更愿意第一步从自身找原因,当然了,不排除确实是外部问题,如果真是这样,我会如何面对后面我也会说到。

另一方面,提高书面表述能力的一种有效途径除了前面说到的多写之外,还应该多看别人写的东西,模仿是最常见的学习手段,同样适合书写。

另一点我觉得适当推销自己也算是沟通表达能力的一种,好的程序员千万不要迷信“酒香不怕巷子深”这句话。

当然推销自己也是在做好本职工作的前提下,适量、适度地向别人展示你有这个能力,其实并不会让人反感。

沟通表达能力能让程序员在职业发展道路上走得更好,一个好的程序员当然不会甘愿一直呆在团队底层。尽早合理地训练自己沟通表达能力,保证自己在程序员这条“不归路”上走得更远。

正确看待自己的付出

有人的地方就是江湖,程序员呆的地方也一样。

我认为一个好的程序员应该可以正确看待自己的付出、合理维护自己的利益。

程序员也是人,好的程序员同样是人,辛勤付出必然是期待相应的回报,但是这个前提必须是客观看待自己工作产生的价值。

“客观看待工作产生的价值”这本身就是一个很困难的事情,因为你和公司的标准太容易不一样了,如果这个标准差得太远,那么跳槽无疑是最好的选择,要让公司改变那是相当困难,委屈自己那也是煎熬。

我认为公司和员工是一个相互依赖的关系,只有公司发展和员工当时职业发展刚好匹配上了,这种关系才是最牢靠的,各取所需。之后各自互相成长,谁淘汰谁都有可能,所以坦然面对,不必恐慌。

不管是之前当小弟还是现在团队leader的角色,我一贯的做法是先把事情做好。把工作做好做完美这个是前提,其它事情都好说。

在我个人意识中,把能决定我职位、薪资的人都看成赞同这个观点的人,如果TA确实是这样的人,那么正合我意;相反如果TA不是,那么离开也不是什么坏事。

另一个可能遇到的情况是公司政治斗争,这个东西真的避免不了,你不想主动涉及也有可能被动参与。我个人觉得即使处于这种环境也应该做好自己的本质工作,适当表明自己的态度,该争取时就争取。

如果一个好的程序员死于内部政治斗争,我觉得也挺可惜。

关于梦想

写这段话的时候感觉有些犹豫,毕竟这跟是不是好程序员没什么关系,而且像我这种29的大叔还写这种关于梦想的鸡汤文字,很多人可能看不下去。但是思索再三我觉得还是有必要写一写,就当作是自我激励。

梦想一直是让人保持清醒、不随波逐流的东西,我觉得人生任何阶段谈梦想都不可笑,儿时有长大后成为科学家的梦想,青年时有找到自己另一半终结单身狗幸福终老的愿望,中年时照样可以有那种一想起就会让你振奋不已的东西。“

年少一切未定,随时会变,大喜大悲,从工作到爱情,都不知道第二天会是什么样子。分手吃碗面,天崩地裂,精神饱满哭一夜。

所以充斥了背井离乡、颠沛流离这样的字眼,一回头满城灯火,每个路口丢了一具自己的尸体,不管你愿不愿意,都波澜壮阔。

年纪大了,日成明朗,好像几年也做不了一件事,因为每件事都是人生最重要的决定,动不动一锤定音,不想再伤筋动骨”。

可是啊人生看似数十年,但在人类历史长河中不足一提,三十岁、四十岁更不算什么。愿你三十四十仍像二十岁一样,虽不再大喜大悲,但仍能笑看人生。

程序员除了代码,还有哪些值得重视相关推荐

  1. 优秀 Java 程序员写代码的风格

    转载自 涨姿势 | 优秀 Java 程序员写代码的风格 今天突发奇想,对编码习惯和 编程风格 很感兴趣,于是乎,找了一下关于编程风格(Java篇)的资料,希望对爱好编码或者开始学习编码的同学有帮助! ...

  2. 程序员除了代码还应该有什么

    程序员除了代码还应该有什么 目录 程序员除了代码还应该有什么 前言 正文 职业方面的建议 自我营销的建议 学习的建议 生产力的建议 理财的建议 健身的建议 精神方面的建议 结束语 前言 看了<软 ...

  3. 一位工作8年程序员的成长感悟,值得深思

    一位工作8年程序员的成长感悟,值得深思 文|洪生鹏 01 刚毕业时,到一家软件创业公司上班,公司规模不大,加上领导只有6个人,主要做教育平台,那时待遇,1500元.(不怕你笑话,刚毕业时对薪资不敢期望 ...

  4. 每日一皮:资深程序员调试代码的样子...

    这就是资深程序员调试代码的样子 也就是说闭着眼睛也能处理bug 往期推荐 每日一皮:产品和开发在线上吵了许久... 每日一皮:软件从业人员表情图... 每日一皮:强大的sudo ... 每日一皮:周六 ...

  5. 程序员与代码的几种关系,每种都会被我们鄙视

    全世界只有3.14 % 的人关注了 数据与算法之美 程序员很大部分时间都在和代码打交道,所以程序员和代码之间的关系,在很多常人看来,是无法理解的,下面我们就来聊聊. 找到你仅仅是为了将你消灭掉 在程序 ...

  6. php强制关机代码,程序员关机代码是什么?

    程序员关机代码:1.定时关机,在运行中输入[at 22:00 Shutdown -s]:2.倒计时方式关机,在运行中输入[Shutdown.exe -s -t 3600]:3.自动关机,输入[shut ...

  7. 程序员与代码之间的搞笑日常,笑的人肚子痛

    一:程序员面试篇 面试官:"熟悉哪种语言". 应聘者:"JAVA". 面试官:"知道什么叫类么". 应聘者:"我这人实在,工作努力 ...

  8. py程序员写代码的习惯养成 防止想到什么写什么

    py程序员写代码的习惯养成 防止想到什么写什么 本例以一个爬虫项目为例 描述写代码的思路 架构注释 目标是明确:主线步骤 对起始页发起请求,获取数据根据获取的数据,构建请求url列表依次访问url列表 ...

  9. 程序员写代码的致命缺点

    Table of Contents 一.命名不规范 二.日志不规范 三.拒绝写接口和假数据 四.不写单元测试 五.先集成,再测试,再放弃. 六.理不清楚逻辑,边做边猜 七.不做方案 八.不关注性能 九 ...

  10. 程序员的代码为什么永远写不完?

    程序员和常人有着什么样的区别?是否所有的程序员都是天然呆?为何女性程序员的人数要远远少于男性?在本文中,我们将带着种种疑问深入探讨计算机程序员中的文化. 作者 | Jennifer Ouellette ...

最新文章

  1. TCP/IP 基础知识总结
  2. mysql 二级什么意思_MySQL二级等级考试归纳——PHP篇
  3. JVM 对象状态判断01
  4. java-jar jvm_使用Java流和In-JVM-Memory的超低延迟查询
  5. BSOJ 2423 -- 【PA2014】Final Zarowki
  6. 自由之战服务器显示登录失败,自由之战:生存的游戏一直登入不进去怎么办
  7. 使用Redis进行简单的数据缓存
  8. PHP获取产量地址,得到与PHP服务器RAM(get server ram with php)
  9. css3径向渐变详解-遁地龙卷风
  10. [python] ylgy攻略 用魔法打败魔法
  11. Oracle数据库备份到本地
  12. 更改计算机时间出现没有权限,win7系统修改时间时显示没有权限的解决方法
  13. export default (imported as router) was not found_一篇文章搞定as四大用法
  14. PCA主成分分析遥感影像融合
  15. ElementUI tree超出显示省略号
  16. 机器翻译 MXNet(使用含注意力机制的编码器—解码器,即 Encoder编码器-Decoder解码器框架 + Attention注意力机制)
  17. Android 搭建局域网服务器
  18. 长沙理工大学计算机赞教授,大学IT达人在全国大赛获金奖 刷新了湖南省最好成绩...
  19. (转)有个星座叫天平(一)
  20. 什么是Moodle?

热门文章

  1. 最新的互联网校招薪酬曝光
  2. FDTD Solutions v2.2 1CD+ASAP
  3. SSM搭建二手市场交易平台(一):开发流程与环境搭建
  4. telerik学习记录-RadAjaxPanel
  5. redis当成数据库使用,时间范围查询
  6. spring boot + ignite
  7. “困”在芯片里的小米、OV,为何集体踏上 ISP 芯赛道?
  8. 雨林木风刘杰娇:114 啦网址导航改版围绕用户需求与时俱进
  9. 【CF】Codeforces 1702F
  10. 「seetaface2」中科院人脸识别引擎seetaface2在Linux Qt上的配置教程