《软技能:代码之外的生存指南》笔记

前言

知道这本书,正是我完成毕设,又不能去实习这种尴尬的时候(直到发布这篇文章的时候,我还没去实习),想着怎么计划未来一两年的学习方向和大致的发展方向(笔者还是很想读研,只是因为家里的环境不适合)。遇到这本书,感觉像是一位经历了很多的大哥,用他自己的经历,告诉我未来可以怎么生存,而不仅仅是单纯地学习技术。
因为笔者还没有毕业,可能视角比较狭窄,有兴趣的朋友可以去找找这本书,希望各位有所收获。
(因为这本书也比较厚,里面几乎全是干货,所以需要分章节来展示)

职业篇(上)

主动管理职业生涯,想清楚:要做什么——什么时候做——以及如何义无反顾。

  1. 把自己当成一个企业去思考,将各位雇主当做是“软件开发企业”的客户。当然,你可能只有一个客户,所有的收入都从这一个客户来。所以,当我们想要发展第二副业的时候,就是拉拢客户的时候了。

  2. 当我们把自己当成一个企业时,可以想:作为一个企业,我的产品是什么?怎样迭代产品才能使我的产品更好?要怎么做营销把产品卖出去?所以需要做到:

    • 专注于提供什么服务,以及如何营销这项服务;
    • 想方设法提升服务;
    • 思考可以专注于为哪一特定类型的客户或行业提供特定服务;
    • 集中精力成为一位专家,专门为某一特定类型的客户提供专业的整体服务。
  3. 如何设定一个目标并执行呢?首先,得有一个大目标;其次,得设计路线。将路线设计好之后,接下来就是怎么达到一个个较小的目标了。

  4. 定期追踪并更新自己设定的目标,必要时还需要调整,即使复盘,可以按周、月、季和年设定目标。

  5. 软件开发人员写出来的代码,其实首先是给人看的,其次才是给计算机读的。改善人际交往能力真的很重要,我们的工作其实几乎就是跟别人打交道。

  6. 每个人都希望感到自己很重要,所以最好先主动给尊重他人的礼遇。如果不能保全他人的自尊,那么就永远不可能赢得别人的尊重。

  7. 永远不要批评别人,特别是想激励团队鼓舞士气的时候,用表扬代替批评是最好的。

  8. 试着思考对他人而言什么才是最重要,什么才是他们需要的。尝试从对方的心态出发提出建议,阐明为什么采用你建议的方法会更加有效果。

  9. 如果因为“该怎么做某事”时与他人发生分歧,在很多情况下,需要确定分歧点是否值得去拼命维护(衡量维护的代价),特别是在知道他人也已经入坑的时候。在小事情上,任何放弃立场或承认错误的机会对你而言可能没什么大不了的,但对别人却可能是举足轻重。

  10. 如果要去一家公司面试,在技术水平都差不多的开发人员在竞争一个岗位的时候,决定胜负的最大因素就不是技术能力,而是让面试官有好感。

  11. 为什么内推是一个找工作重要的方式呢?因为如果被他人推荐去面试,会有推荐人的社会公信力做背书,且推荐人的声誉与面试官的交情,有一部分就延伸到了作为应聘者的身上。想尽办法与公司内部人员建立联系,而且必须要证明,在技术上确实可以胜任工作。同时,如果能说服面试官相信你非常能干,不会被困难阻挡,那么他们不仅会喜欢你,而且更有可能会录用你。

  12. 无论是在找工作,还是给自己保留选择的余地,应该做的第一件事就是确保自己仍旧保持技术能力,确保自己一直阅读技术书籍和博客文章,并会花些时间提升自己的技能。也可以未雨绸缪,扩展自己的社交网络。也别忘了实践,积极去获得面试经验。

  13. 软件开发者对应的职业选择有很多种,主要有这三大分类:

    • 雇员:收入稳定、从业相对轻松、带薪假期、还有五险一金,但是缺少自由且收入固定。
    • 独立咨询师:不再为特定的单一雇主工作,而是服务于一个或多个客户,如外包赚外快的程序员。做独立咨询师有更多的自由时间,而且可以持续不断地做新项目,赚钱潜力也很大,但是需要自己去寻找业务,搭理一切事务的开销,为多个老板服务。
    • 创业者:软件开发创业者用自己的软件技能开发自己的产品、拓宽自己的业务,如up主、公众号作者等等。好处是完全自由、有巨大的赚钱潜力、自己是老板、可以做自己想做的事情,但是风险很大,而且完全需要自己的摸索,不仅可能需要长时间的工作,而且还要身兼多职。
  14. 选清楚自己的专业方向,如果只是说“我是Java工程师”,那只是告诉别人你是用哪种工具来进行开发。所以需要整理清楚自己的专业类别,如前端开发的设计和实现用户页面,后端的实现业务规则和逻辑,还是做底层的数据库或底层操作开发。一些开发人员的专业化水平很深,已经成为了某个具体平台或框架的专家。这些开发人员的潜在客户稀少,但由于他们的专业化水平,他们能开出很高的时薪。一般专业领域方向有:

    • Web开发栈
    • 嵌入式系统
    • 特定的操作系统
    • 移动开发
    • 框架
    • 软件系统
  15. 怎么选择专业呢?这里提供了些技巧:

    • 在现在或以前的公司有什么技术痛点吗?你能成为专门解决这些痛点的专家吗?
    • 有没有一种特定的工作是无人能做,或缺乏经验丰富的人?
    • 在各种会议上和用户组中哪些话题最常出现?
    • 哪类问题你回复的最多?

    当然,如果你学富五车,精通多种语言,那么也可以从专业化开始,再拓展分支。

  16. 公司与公司之间也是不同的。

    • 在小公司和创业公司中,个人需要承担多种职责,需要灵活地进行角色转换,个人对于工作的影响比较大,而且回报潜力大。但是也因为个人承担的职责多,会有没办法安静地坐下来写代码的缺点,而且工作的影响大,也就意味着其他人会关注到你的工作,稳定性差。
    • 在中等规模的公司,工作稳定且加班少,但是也因为变化很慢,没有什么机会使用前沿技术。
    • 大公司中有完备的流程和规范,而且培训机会也多,有足够的资金去做一些较前沿的项目,有机会参与大型且有影响力的项目。但是人多的地方就是江湖,所以也会充斥着官僚主义作风,而且人多的项目,个人也这只是负责代码库的一小部分,很难获得关注。
  17. 作为软件开发人员,能去软件开发公司就去,因为以软件开发为生的公司会更重视自己雇用的软件开发人员的价值。不过,每家公司都不一样,究竟哪个工作环境适合自己,哪种企业文化适合自己,还需要自己来定夺。

  18. 如何在公司里脱颖而出?有三个方面:

    • 承担更多的责任
      • 负责不受重视的项目;
      • 帮助团队里的新人快速成长;
      • 负责文档制作流程,并保证及时更新这些文档;
      • 愿意承担没有人愿意去做的工作,并将其简化或自动化。
    • 引人注目
      • 每天都记录自己的活动日志——把这个日志以周报的形式发送你的上级;
      • 提供演讲或培训——选择一个对你的团队有用的话题;
      • 发表意见——只要在会议上就这么做,或者只要你能得到的机会就这么做;
      • 保证“曝光度”——定期与老板会面,确保你经常被注意到。
    • 自学
      • 不断增加自己的技能和知识,学习新的技能和知识;
      • 知识提升得越快,能掌握的东西就越多,随之而来的机会也越多;
      • 不要只是学软件开发,如果把目标设定为更高级别的岗位甚至是行政岗位,还需要学习领导力、管理和商科的相关知识。
      • 千万不要忘记分享自己学到的东西,外部曝光有助于你建立自己在该领域的权威地位,也让你看你来对所供职的公司更有价值。
    • 成为问题的解决者
      • 成为永远能为各种问题找到解决方案的人,要成为勇于执行这些解决方法以获得成果的人;
      • 能解决别人无法解决或不愿解决的问题,无论在哪家公司,都能轻而易举地成为最有价值的人。
    • 关于政治
      • 在多数机构中都有办公室政治,需保持警惕,但不应在玩弄政治游戏上投入太多时间;
      • 尽管无法完全避开政治,但至少应该知道会发生什么,哪种人需要避开,哪种人永远不要有交集。
  19. 努力地成为一名专业人士。专业人士会严肃对待自己的责任和事业,愿意做出艰难的选择去做自己认为是正确的事情——往往还要自己承担代价。专业人士会遵守自己的原则,专注于正确完成工作,不惧怕承认自己错了,不会文过饰非,勇于承担责任,并且专业人士为自己的工作设置了很高的质量标准,你可以期待他每一天都持之以恒坚守标准。

  20. 成为一位专业人士,养成良好的习惯是必不可少的。如果想成为一位专业人士,需要培养自己的专业习惯,如每天在开技术会议之前,准备好自己的发言。还需要有时间管理的习惯,如知道每天必须要做什么工作,并且能估算出每项工作大约要花多长时间。

  21. 作为一名软件开发人员,我们经常需要面对技术和道德上的困难和挑战,但是作为一名专业人士,需要有不可逾越的底线,坚守底线可能会被炒鱿鱼,但最起码,能睡个好觉。专业人士必须对工作的优先级做出艰难的抉择,需要评估需要完成的工作,判定优先级后再开始工作。如果真的碰到这种情况了,可以去做被要求做的,但千万不要再让自己陷入这种境地。如果身受这样的情况,请尽快脱身。存点钱,甚至去找下一份新工作,一份不会要求你做很多道德上的抉择的工作,或一份你觉得更有价值的工作。

  22. 作为一位专业人士,必须不断改善和提供自己的工作品质,或许不能一直达到自己的预期,但随着时间的推移,持之以恒地坚持下去,终究会达到自己设定的标准。想成为专业人士,就要致力于持续不断地完善自身的技能,学习更多与专业相关的匠艺,确保自己制定并执行了学习计划,拓展自己的技能、学习新东西,这将有助于你做得更好。最好了解自身的强项是什么并且充分发挥自己的优势,专业人士对自己的能力和弱点有着良好、精准而又客观的自我评价。不要沾沾自喜,永远对努力成为更好的自己心存渴望。

  23. 想要成为一位自由职业者,跟老板说一声要辞职就行了。但是在考虑辞掉工作之前,需要对你成为自由从业者有一个切实可行的计划。你必须想方设法积攒足够多的收入来支撑自己,直到新生活步入正轨。所以,在辞职之前,先在业余时间启动你想创建的业务,等能从这项业务中产生足以维持生计的收入时,再转为全职,是相对妥当的。

  24. 为自己当老板看起来是一件很爽的事情,但是为自己工作的麻烦在于,没到正式辞职的那一刻,你永远不知道为自己工作是多大的工作量。所以,以副业的方式开始创业之旅,小有成就再全职投入,这样能够让自己知道为自己工作以后每天需要工作多长时间,对自己实际承担的工作量有一个符合实际的预期。通过在业余时间创业,同时保有全职工作,就会知道每天工作很长时间是什么感觉,这样即使创业失败,仍然还可以依靠工作以获取收入。

  25. 当然,在开始做兼职项目之前,要仔细检查当年入职的时候同意了哪些条款。如果劳动合同中规定任何工作成果都属于公司,那需要跟法律人士协商一下,看看如何妥善解决这种情况。如果真的有这种情况,可能事情会变得棘手,最好提前做好准备。可以列出自己做过的事情,详细记录自己进行兼职项目时所用的时间和资源。

  26. 成为自由从业者,不怕自己技术不够硬,就怕没客户。那么该怎么开始呢?获得客户的最佳方式是通过你已经认识的人,认识的人更加信任你,需要让他们明确知晓你到底能为他们做什么,你能解决什么问题。而在做副业时候,需要达到为这份副业分配的时间已经饱和,无法再接受其他工作,不得不回绝掉一些人,如果做不到这一点,最好别想着全职了,填满每周40小时的工作量远比填满10~20小时艰难。

  27. 如果认识的人不需要你的服务,那么还有另一种营销方式,它唯一的缺点就是:需要耐心和勤勉的工作。它就是吸引式营销,这种营销方式基本上是让潜在的客户主动送上门,而不是你去找他们。你要做的事情就是免费提供有价值的东西。吸引式营销唯一的问题就是起效时间略长,个人必须有足够丰富的内容来吸引足够多的潜在客户来充实自己的工作渠道。这也是现在就开始着手暂时别辞职的好理由。长远来看,吸引式营销能给你带来更多的业务,也能让你更容易提高自己的时薪。

  28. 在做雇员的时候,有部分成本由企业承担,但作为自由从业者,所有的成本都需要由自己承担,所以如果想要维持作为雇员时的生活水平,你的时薪水平应该是作为全职雇员时的两倍。还需要知道自己按照什么价码收费才能谋生,需要根据市场来判断定价,或者更高一点。这么做的重点不在收费标准本身,而是你的工作对你的客户而言是否物有所值。当然,如果你的营销策略是基于自己的服务可以为客户节省大笔开支或提高他们的业务,你就可以根据自己的服务为客户带来的价值来定价。

  29. 如何创建自己的第一个产品?人类创造出的每个产品都是为了解决某个特定的问题。没有要解决的问题的产品毫无意义,毫无意义的产品也就不会有用户,也就意味着不会赚到钱。所以。无论一个产品要解决何种问题,以及哪些人群有这个问题,必须在创建产品之前就要明确识别。如果想开发出一款产品,第一步应该是筛选出一组特定的受众,他们也是你的解决方案的目标用户。如果你想让自己的产品也能同样成功,首先打造一个成功的博客,使用博客、演讲、视频和其他媒体来发展自己的受众。接下来,一旦有了受众,你就能够向这些受众销售你的产品。

  30. 当你明确了产品的受众,并且明确了如何使用它解决用户的问题,在开发产品之前还需要通过测试市场来验证,你的潜在用户是否真的愿意为你的产品买单。有一种做法(拉勾网课也有这么用),就是将要创建的产品先广而告之,看看有多少人会来买,然后再决定要不要继续做下去。

  31. 当然,创业初期不要贸然辞职,要从小处着手,作为副业开发你的第一个产品。如果想要了解更多,可以看看Eric Ries的《精益创业》(The Lean Startup),从中获取一些关于如何创建小企业,以及如何起步的想法。

你可能感兴趣的:(读书笔记,程序人生,其他)