聊聊程序员的软技能

聊聊程序员的软技能

最近读到一本有意思的书,叫《软技能-代码之外的生存指南》,这是一本相当跨界的书,内容除了介绍了技术人的职业发展之外,还涉及了自我的营销、学习方法、生产力、健身、甚至还包括理财。应该说,每一个章节都是非常有意思的,值得每一个程序员学习的内容。


《软技能》一书的内容分为以上这些章节,我也按这些章节讲讲自己的感悟吧。

职业

职业一章介绍了程序员的面试,晋升,离职,远程办公,自由职业,以及创业。不管做什么事情,专业性总是第一要点。就像书中写的那样,我们应该成为「专业人士」,这就要求我们对所做的工作始终精益求精。这其实与行业无关,职业精神在任何行业都应该俱备。

在程序员这个行业,我们的职业精神在于追求代码的美,这包括架构的可扩展,命名的规范,合理的注释,合理的设计模式。但其实,我们最最欠缺的职业精神是:按时发布产品。

我们总有无数的借口:未知的技术挑战,没有遇到过的 Bug,产品需求的变更,相关联调人员的问题,但是好的程序员,总是能够在各种风险发生时,通过自己的努力保持按时上线。

在这一点上,越是大公司的程序员,反倒由于大公司病的影响,职业精神就越差。

自我营销

100 个程序员里面,有 99 个不会营销,这还是乐观的说法。而我就是那个稍微会点营销的人,我从中享受到的红利已经多得超过我实际的付出了,弄得我自己都不好意思。我常常给别人说,我不是大牛,我只是喜欢分享而已。

不过话说回来,一般喜欢分享的人水平都差不到哪儿去,为什么呢?因为他如果分享的内容有问题,就会被人指出来,那么他就会很快得到纠正。他如果分享的内容没问题,就会被高手看到找上门来交流,那么他就多了一个高水平的相互学习讨论的人。所以对于分享者来说,分享行为总是好事。

在中国如何做自我营销呢?基本上做到两点就可以了:

  1. 写技术博客。
  2. 发技术微博。

写技术博客好难啊怎么办?可以从翻译国外博客开始。

发技术微博好难啊怎么办?可以从转发技术微博开始。

看看 JSPatch 的作者 bang,人家从 10 年前就写博客了,能写不好吗?

切忌把时间花在混各种圈子,包括 QQ 群、微信群、各种技术论坛,这对自我营销效果基本没有,而且还很花费时间。

学习

很多人问我:「唐巧,我参加完培训班找不到工作怎么办啊」,因为移动互联网的泡沫,今年 iOS 新人太多,我也不知道怎么办,但是学习肯定不是参加完培训班就结束了的。

程序员必须具备自我学习的能力,而自我学习的能力第一步,就是书中第 27 章讲的「学习如何学习」,我们把它叫做元学习吧。一个学习者,应该俱备一种通用能力,就是遇到一个新知识的时候,能够有一套方法,能够迅速地学习掌握这门新知识。

在这个快速变化的时代,编程语言以及开发生态都在不停迭代升级,像 iOS 开发更是经历着从 Objective-C 向 Swift 的巨大迁移。处于时代中心的我们,没有元学习能力,如何获得竞争力?难道你工作之后,还要给企业老板说:我要请三个月假报一个培训班,学习 Swift ?

回到刚刚说到的问题,如果你参加完培训班找不到工作,只有更加努力地多积累 iOS 开发知识,尝试让自己的能力变得更强,可以尝试自己接个外包,或者自己写一些开源组件,或者找一份实习,都是一些可能的方法。iOS 新人的市场竞争非常激烈,除了自己比别人花更多时间和精力之外,没有什么捷径。

生产力

作者介绍了许多办法提供自己的工作效率,里面也提到了我以前介绍过的番茄工作法:番茄工作法 - 简单易行的时间管理方法

我自己对于生产力的理解在前两天的 iOS 开发中的上帝模式与农民模式 文章中也提到了,效率方面的生产力,其实都是提升自己的农民模式。

本书中提到的任务分解,计时,培养习惯都是不错的实践方法。

理财

本章中我们看到了一个外国程序员对于买房和期权的理解。我个人感觉和中国的国情还是有一些差距。

在中国,我和小伙伴们在过去 5 年中很遗憾地发现,工资还没有房价涨得快。身边好几个朋友经历了自己买的房子暴涨几百万的情况,还是挺吓人的。

期权方面,国内的国情和国外也不一样,小道信息的作者 Fenng 最近似乎也在这方面遭遇了一些困惑,我其实之前也在这方面遇到一些问题。关于期权,稍后我也会另外撰文分享我的观点。

健身

有人说程序员是最适合当老公的,因为社会关系简单,薪水高,死得早。。。。

健身这件事情被无数人挂在嘴边,却坚持不下来。其实这件事情还是看个人对于延迟满足感的控制,像我前段时间,就坚持了四个月健身,不但学会了自由泳,而且达到了一次游 1000 米。我现在 1000 米的成绩是 29 分钟,我打算继续坚持下去,每个月减少 1 分钟。

精神

作者在本章中讲了一些积极的人生观,嗯,其实就是鸡汤。身子虚的同学可以补补。

最后

送书活动来啦,为了庆祝人民邮件出版社异步社区成立一周年,iOS 开发与异步社区联合发起评论赠书活动。此活动同时也要感谢人邮的杨海玲老师的支持。

时间: 2024-10-25 19:16:23

聊聊程序员的软技能的相关文章

《The most important non-programming skills for programmers(程序员的软技能)》

文章标题: The most important non-programming skills for programmers(对程序员很重要的软技能) 作者主要从11个方面进行了阐述,总结了一些对程序员来说比较常用的"编外"技巧,接下来我会大致介绍一下,并且附上自己的心得 1.Empathy(移情) 选鞋要合脚,在条件允许的情况下,明晰自己要做的会在哪些方面造成积极的效果,哪些方面会造成消极的效果,从完全相反的两面考虑问题,是最简单的防止出问题的方式.在移情中,作者举了信息安全.带宽

【软帝学院】七点java程序员进阶必备技能

程序员进阶很慢?七点java程序员进阶必备技能,让你少走弯路 一.架构师筑基必备技能 阿里面试更多的内容是架构师基础内容,比如并发编程的AQS.CAS等,多纬度提升架构基础,并发编程高级进阶,JVM性能深度调优,网络编程与高效IO,深入Tomcat底层,Mysql深度优化实战,架构师必备Linux 二.分布式方案及团队协作工具 分布式环境下应该知道的分布式系列问题: 分布式事物解决方案 单点登录解决方案 分布式任务调试解决方案 Maven企业级实战 Jenkins分布式构建实战 Git版本管理

为什么开源可以提高程序员的编程技能?

为什么开源可以提高程序员的编程技能? 记住开放源代码在你参与进去的时候效果最佳.代码更改在大多数项目中都是受欢迎的,但是有很多出力的方法.测试开源代码和文件错误报告:帮助完成文档集:写教程和如何做的例子:参加对话--或者仅仅只是帮助传播.每一件事都能带来改变,并且越多的人参与进来越好! 我已经写了很多年的软件.最近我意识到,我越涉及(致力于,结合于等)开源技术,我写出来的代码就更好.这不由地让我疑惑起来:难道里面有什么相关性或因果关系吗? 阅读代码能让你变得更优秀 我在编程生涯的早期就明白我阅读

Git算不算程序员的必备技能?

点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书. --异步小编 Git的背后有着一个非常精彩的成功故事.2005年4月,Linus Torvalds因不满当时任何一个可用的开源版本控制系统,就亲自着手实现了Git. 时至今日,如果我们在Google中搜索"git version control"这几个关键词,都会看到数以百万计的返回结果.Git已经俨然成为了新型开源项目的一个标准.许多大型的开源项目都已经或正在计划迁移到G

聊聊程序员绩效那点事【转】

原文地址:http://www.cnblogs.com/cc011/p/5861244.html 刚入职场的时候,对于绩效的概念理解朦朦胧胧,到后面自己做PM,自己开始带团队,带团队以后开始接受公司相对正规的团队管理的培训,到阅读德鲁克的<卓有成效的管理者>,对绩效这个概念有了相对较为清晰的认识,所以在这篇随笔里,我会以自己的亲身体验来讲一讲我对绩效的认识. 1.TOP 1有意思的问题作为程序员怎么拿到高绩效?这个话题就好像问做什么赚钱的一样, 没有一个非常精准的答案但是有一些普适的道理.  

3年工作经验程序员应有的技能

每个程序员.或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来... 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章.这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的. 简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2B事业部的面试,成都web前端培训一共有面试了有6家公司(因为LZ不想请假,因此只是每个晚上去其他

聊聊程序员绩效那点事

刚入职场的时候,对于绩效的概念理解朦朦胧胧,到后面自己做PM,自己开始带团队,带团队以后开始接受公司相对正规的团队管理的培训,到阅读德鲁克的<卓有成效的管理者>,对绩效这个概念有了相对较为清晰的认识,所以在这篇随笔里,我会以自己的亲身体验来讲一讲我对绩效的认识. 1.TOP 1有意思是作为程序员怎么拿到高绩效?这个话题就好像问做什么赚钱的一样, 没有一个非常精准的答案但是有一些普适的道理.  a)超出预期: 所谓高绩效一般情况下是要超出期望才有可能,那么这个期望就是给你考评的老板或者主管的期望

想成为程序员,这些技能不能少

欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ 对于刚开始学习软件开发的新人来说,“必备技能”往往意味着一个长长的.标有重要度的学习列表,但是过长的列表通常会导致新人不知如何开始学习,压力倍增. 本文尝试列举出最重要的几个技能,也期望通过此列表能给新人一个比较明确的学习重点和路径. 深入学习一门编程语言 没有掌握任何一门编程语言,就不可能成为一名编程人员. 许多程序员试图在学习之初一次学习几种编程语言,以便应对他们第一份软件开发工作的需要.虽然我认为开发人员最终会学习多种

Study: 程序员的软实力

程序员,是有寿命的,编码是硬实力,其他的是软实力. 交流,要表达清楚自己的意思,要理解清楚他人的意思. 写代码,要模块化,有注释,测试先行,持续重构. 需要团队成员配合的工作,列表明确大家需要做什么-->讲解给成员听-->完善文档-->以一个例子测试整个流程-->批量操作. 整个任务的执行,只要做好控制点的把握,整个任务就不会有太大差别. 做任务,先搞清任务是什么,需求是什么,然后在网上搜索一下,大多都有可参考的理论支撑,不要自己瞎编乱造. 做事,有更好的解决方法,就实施它,别等,