不想去成为一个伟大的程序员,只想成为一个具有良好习惯的优秀程序员。
前言
之前看了本《软技能:代码之外的生存指南》,虽然书中的内容提到的点到现在很多都有坚持在做,不过书中对程序员必备的软技能的归纳还是很不错的,不管是对于大学生、初入职场的菜鸟还是职场老手都是有一定帮助。
正文
对于优秀的软件开发者来说,埋头写代码绝并不应该是工作的全部,我们可以将开发人员生活分为事业、思想、身体和精神四个方面,然后去分析应该具备的软技能。
I. 职业
人际交往能力:远比你想象的重要
- 如果你还是觉得自己的工作就是写写代码,那你最好要三思。作为一个软件开发人员,你的工作就是与人打交道(其实几乎所有的职业都是这样)。
- 如何学会与人打交道?
- 每个人都希望感到自己很重要;
- 永远不要批评,用表扬代替批评
- 换位思考
- 避免争吵
破解面试之道
- 通过面试的最快捷的方式是让面试官对你怀有好感,达成该目标有很多方法,其中大多数可以在面试之前完成。如了解面试官,之前就想办法和公司的人建立联系,如有自己的知名品牌/博客等。
- 别忘了试验,即便你现在对换新工作毫无兴趣,为了获得面试经验,你也要去面试。练习得越多,你在真正面试时也就越游刃有余。
职业选择
-
雇员:
- Pros: 稳定,从业之路比较轻松,带薪假期。
- Cons: 缺少自由,收入封顶。
-
独立咨询师
- Pros: 更大的自由度,可以持续做新项目, 赚钱潜力。
- Cons: 但需要自己寻找业务,打理一切事物的开销,从“为一个老板服务”变成了“为许多老板服务”。
-
创业者:
- Pros: 完全自由,巨大赚钱能力,做你想要的工作,没有老板
- Cons: 风险很大,完全依靠自己,需要很多技能,可能需要长时间工作
-
进化之路:雇员(学徒思维) --> 独立咨询师/创业者
专业VS通才
- 在一个专业方向上拥有专长尽管选择面窄了,但其实往往更容易获得极好的机会。
- 走“专业化”道路与具备广泛的技能并不矛盾。
请勿陷入对技术的狂热中
不拘一格是要点所在,没有理由去强烈坚持自己选择的技术就是最好的,而轻视甚至无视其他技术。保持开放的心态,你会发现更多机会为你敞开大门。
II. 自我营销
创建大获成功的博客
- 打造成功博客的最大秘诀有且仅有一个: 持之以恒
- 如果每天写一篇博客且坚持好几年,想不成功都难。
- 强烈建议至少以每周一篇的速度更新博客。
- 除了持之以恒之外还应该确保你写的都是高质量内容。
- 别担心,不需要一开始就追求完美,起步的时候可能会很糟糕,但随着不断尝试贡献出优秀的内容(不是将自己脑子里的东西随意丢到网页上,不考虑格式和结构,且还有一大堆拼写错误),你的博客品质会越来越高。
博客写什么的终极问题?
- 解决这个问题的最好办法是提前头脑风暴出各种不同的想法,随时更新可能的博客主题的清单,这样你总是保持一堆话题可供选择。
- 同时,不要太担心文笔如何,不要太在意别人的想法。有时候你只是要写一篇博客让自己的博客有内容,仅此而已。
核心目标:为他人提供价值
- “如果你能帮助足够多的人们得到他们想要的东西,你就会得到自己想要的东西。”
- 如果你表达的和传递的信息不能帮到其他人,那么每个人都将会无视你。
- 把你的工作成果的90%都做成免费的,当你免费给人们提供实际价值时,回报更大。
善于运用社交媒体
- 聚焦于构建稳定的受众群体,并逐步提升活跃度。
- 持续不断地在自己的社交媒体上给别人分享和提供有价值的内容,那你必定会赢得尊重和声誉。
- 使用诸如Buffer的社交媒体管理工具高效管理所有社交账号。
演讲,报告和培训
- 公司内的机会
- Code Camp/Meet up等相关团体的主题分享
- 进阶:开发者大会,做培训, YouTube, Udemy等
著书立说,吸引追随者
在有了足够的基础之后的进一步追求。一个人通过写书可以收获极大的信赖,如果你也想被看做业界值得信赖的人,你也应该写本书。
百折不挠,越挫越勇
收起自己脆弱的自尊心,勇敢走出去,你必须学会如何无惧自己被别人看做傻瓜,别害怕让自己出丑。
III. 学习
如果你想学习一些东西,最好的方法就是付诸于实践。
十步学习法
1 ~ 6 是第一模块,只需做一次
- 了解全局: 这样你才能弄清自己到底要学什么,找出最好的学习方式。
- 确定范围: 将宏大主题缩小并聚焦到一个特定范围内,尽可能保持专注。
- 定义目标: 目标要具体化,比如可以利用C#语言的主要功能写出一个小的应用程序,我可以用HTML5 在网上为我自己创建一个主页,展示我的简历和我的代表工作。而不是”学习C#语言基础知识“,或者”知道如何使用HTML去构建一个网页“
- 寻找资源: 尝试收集到多种多样的资源帮助你学习,这在当下的互联网时代很容易做到。
- 创建学习计划: 比如可以参考在第4步中找来的图书的目录,循序渐进。
- 筛选资源: 浏览找到的全部资源,刷选出品质最高的。
7 ~ 10 是第二模块,需要循环往复
- 开始学习,浅尝辄止:既不要在知之不多的情况下就盲目开始,也不要在行动之前准备过多,行动太晚
- 动手操作,边玩边学:无需了解全部内容,不用担心结果,勇敢探索吧!
- 全面掌握,学以致用:在8的过程中积累了问题,再带着问题进一步深入理解主题。
- 乐为人师,融会贯通:把知识交给别人,是唯一检验你确实掌握了知识的办法,同时也是查缺补漏的好方法。
发现自己的知识短板
工作上遇到短板时,人会本能地倾向于掩饰自己的短板,而且我们又总是太忙,忙到无暇去填补他们,于是短板一直都在。长期下去往往导致为了掩饰短板我们反而花费了更多的时间和精力。
要学会及时找出自己的短板,并且刻意地通过努力消除短板。
IV. 生产力
一切始于专注
缺乏专注,任务会被拖延很长一段时间。
在开始一项任务之前,确保你已经做好一切可以让自己免受干扰的措施,不管是内部干扰还是外部干扰。
生产力提升计划
找到适合自己的方式制定季度计划,月计划,周计划和日计划,可以使用诸如Trello类似的软件。合理地安排休息和休假也是必不可少的。
番茄工作法
严格使用这一方法,高效地追踪自己一天内完成了多少个番茄钟,并未每天完成的番茄钟的数量设定目标,这样才能真正发挥番茄工作法的魔力。
定额工作法
例如:
- 每周跑步3次,
- 每周发布一篇博客,
- 每周完成50个番茄钟的工作。
一旦做出”承诺“,就必须不遗余力地完成自己设定的任务,除非身体丧失工作能力,否则没有任何情况可以阻止你去完成任务,这也是”定额工作法“的核心。
多任务并行
- 为什么多任务并行一般都很糟糕?因为多任务并行时很容易打破专注力,而不在专注模式下时,很容易会拖延时间,结果反而降低了效率;
- 批量回复邮件,微信,短信,电话效率更高。
- 真正的多任务并行:将一项不费脑经的任务和需要精神专注才能完成的任务结合起来,如听着音乐打字,体育运动或开车时听Podcast。
时间是怎么被浪费掉的
- 戒掉电视。
- 每天批量处理邮件和社交媒体活动。
分解任务:如何吃掉一头大象?
- "要吃掉一头大象,每次吃一口。"
- 每个大型任务都可以分解成不计其数的更简单更小型的任务。比如写书时,无非就是把每篇拆分成很多小的章,每章也就1000 ~ 2000字。
- 同理,写一个大型的程序,无论多么庞大和复杂,都可以被分成一行行的代码,因此只要能写好单行代码,你就能写好任何应用程序。
努力工作的价值
如果真想富有成效,你就不得不学会工作的时候既聪明又努力。光有聪明是不够的,在所有的情况下,我们面对的现实就是,没有一件事情是轻而易举的,如果真想要成为成功人士,你就不得不在有些时候通宵达旦。 要想实现目标,要想发挥出自己的全部潜力,唯一的途径就是自愿咬紧牙关、硬着头皮、开始工作。
任何行动都比不采取行动好
还是那句话,”Done is better than perfect.“
V. 理财
- 要想在财务上获得成功,就必须学会如何投资,别无选择,复利是最强的武器。
- 房地产市场是一个长期来说稳定且回报率较高的投资方向,值得好好研究。可以从较小的,低售价的公寓开始。
- 在同等收入的情况下,尽可能地减少开支,其实就相当于增加了收入。
- 在保证白天工作的同时尽可能地去寻找更多的实现被动收入的机会,早日实现更多的被动收入现金流。
VI. 健身
程序员应该坚持锻炼身体,在你身体健康时便不会受到例如生病这些造成的产能低下以及身体出现问题对生活造成影响。
VII. 精神
精神是这个世界存在着对一股很强大的力量,它能带领我们走上成功之路,把我们推向成功。
文章每周持续更新,原创虽短,确不容易,欢迎大家点赞关注,一起交流技术一起提升成长。