程序员的自我修养-读后感

文章目录

以下为读书笔记:

第一章 谈职业生涯

写给年轻人的10点启示

1.正确地认识自己

2.比一般人更加努力

你周围所看到的那些天才(身边的优秀程序员)只是在你没看到的时候花了更多时间工作或者学习而已,当你也坚持这么做时,你也会变得和他们一样优秀。

3.适时建立个人权威

我经常听到一些程序员抱怨自己的职业生涯毫无起色,或者在工作了几年之后就担忧自己遇到了瓶颈。其实,造成这些的原因往往是他们已经习惯了听命于人,而缺少自己的观点和主张,久而久之便成了那个在他人眼中可有可无的平庸之人.这一切的前提是你通过不断努力积累了自己的实力,并在恰当的时候去展现它。

4.遵循最佳实践

技术每年都在不停的发展,要想适应这种变化,建议学习那些最佳实践,去理解软件领域最本质的东西,通过理解和实践那些优秀的软件开发思想,能让你对软件开发理解的更深入.

5.保持好奇心并乐于探索新事物

好奇心可能是那些优秀程序员与普通程序员之间最显著的区别之一.

6.抛开代码与人沟通

如果忽视与人的沟通,会对职业发展很不利.

7.和优秀的人一起工作

8.生活,睡眠,旅行

我们应该明白工作,技术,写代码并不是我们存在的意义,生活才是.我们需要懂得生活,并学会生活.

•旅行:去任何一个新的地方都可以称之为旅行,旅行不是为了放松,因为你需要坐飞机、开车、走路,这些都会使你产生压力,但你仍需要去旅行,因为这能让你发现和感受新的东西,而这些是从电脑屏幕上无法获得

9.相信自己的天赋和创造力

天赋和创造力不是与生俱来的,需要不断地培养和发掘它们.

方法论:

  1. 阅读优秀的书籍
  2. 记录和收集自己转瞬即逝的好想法
  3. 尝试动手,光想是没用的

总结

如果上面提到的其他建议都对你无效的话,那么就请坚持第2点建议吧“比一般人更加努力”,因为它将成为你最大的竞争优势。

那些程序员们后知后觉的职涯经验

1.你的薪酬与工作量无关

你的薪酬其实取决于很多因素,技术能力、经验资历、工作量等,但最本质的却是,你对公司是否重要,换句话说你是否容易被取代。

所以,不妨摆正心态,正确认识到自己在公司中的位置,努力修炼内功,让自己变得越来越重要,相信你的薪资也会随之提升的。

2.尽可能持续做一件事

既然你对于公司的价值来自于你的不可替代性,那又该如何有效提升它呢?我的建议是尽可能持续做一件事这既是指技术上的积累,也是指你能完整或较长时间参与同一个项目或开发一个产品。虽然,有时候你所做的工作并非是你个人所能决定,但你仍需要有意识地去主动把握那些能让你持续积累技术或项目经验的机会

参与10个项目,不如完整参与一个项目。持续做一件事是要你把每一件事做透、做好,而不是蜻蜓点水,浅尝辄止。

3.唯一不变的就是变化本身,培养自己持续学习的能力

作为程序员,我们又应该如何应对这些变化呢?我想说,你很难去改变所处的环境,或是阻挡那些变化的大趋势。你所能做的恰恰是培养自己持续学习的能力.

对于程序员来说,所谓的100小时定律同样重要——花100小时学习或修炼一门新的技术,往往就能超过一般人很多。你需要提升自己快速学习的能力,当你学得越多,往往就能够学得越快,因为知识之间总是存在关联性

4.你的声誉很重要

声誉本身与很多方面有关,但对于年轻程序员或是刚刚毕业的菜鸟来说,除了那些经常挂在嘴边的诚实守信、踏实肯干等之外,有一点特别重要,那便是严谨。因为它往往是判断一名程序员是否具备优秀潜质的重要因素

严谨的程序员对于分配给自己的任务会认真理解,对于自己的产出会仔细检查,这些都能大大减少工作中的出错概率,给团队或公司中的其他人留下良好的印象。你可能需要很长的时间来建立自己的声誉,而一次因不够严谨所导致的错误,就可能让你彻底失去它。养成严谨的习惯,将使你终身受益。

5.理解沟通的意义

我们开发的所有功能都是为了解决某种问题,如果没有对问题有深入的理解,就不可能写出正确的程序.这时候就要去跟用户沟通,去真正理解他们所希望解决的问题.这就是沟通的意义

6.你的右脑将是你成功的关键

一些非技术能力是获得成功的关键,比如写文档和做ppt的能力,演讲的能力,说服别人的能力

7.不要轻易说简单或不可能

不要轻易做出过于绝对的判断,要经过分析和论证,用不被人误解的方式进行有效表达,这样你提出的观点才能让人信服.

8.你不应该总是单打独斗

不要总是单打独斗,要学会在团队中协作,并尽可能让优秀的人围绕在你身边,这将扩展你的能力范围,让你变得更加强大。

如果你真的希望做出一些具有影响力的东西,那么光靠个人是很难实现的。你需要和团队中不同角色的人进行合作,有时候你需要说服别人,有时候你则会被别人说服。在这期间,你可能会因为被否定,而受到挫折,这种感受容易让程序员们产生挫败感,但这却是你成长的机会。

9. 你的能力显而易见

程序员的能力来自于大量的编码实践,以及持续学习的能力和勤于思考的习惯。任何自作聪明,不懂装懂,以及投机取巧在明眼人看来都只会是东施效颦,显得如此微不足道。

总结

坚信那些你所坚信的东西,你会变得越来越好

三、如何招到一名靠谱的程序员

你需要用尽可能简练的文字来描述项目的背景,你在项目中承担的角色、参与项目的时长,你用到的技术,以及你在项目中的亮点等信息。优秀的程序员们往往善于归纳,并能够一针见血地发现问题或把一个问题说清楚。

你的个人技术博客等都会给你加分,因为这说明你对所从事的工作有着极大的热情,并愿意在业余时间去学习和提高自己。

请谈谈你在这个项目中遇到的最大困难或挑战是什么,你是如何解决的。
从面试者对上面这个问题的回答中,我能够很好地判断他是否有较强的独立解决问题的能力,而我认为这是除技术能力之外,程序员最应具备的能力。

四、每个程序员都应该了解的一件事:学会自我营销

其实在我看来,他们所谓的这些秘籍,都可以归纳为一种能力,那就是自我营销。只有具备了这个能力,你才能脱颖而出获得成功,这一点对程序员同样适用。

你需要明白,你写的代码可能毫无用处,直到人们理解你在做什么,人们对你所做的事情感兴趣,人们为你所做的感到兴奋和激动。

为什么要学会自我营销

自我营销往往能够有效地放大你所做的努力,并且在你成功的道路上起到催化剂的作用。尽早地获得成功对于我们这一代程序员来说异常关键,因为这个世界上有许多与你一样努力的人,但有些人在最佳的时间点获得了成功,而另一些人虽然也通过努力达到了相同的能力,但错过了那个正确的时间点,从而走上了一条完全不同的道路。

一名程序员如果能够尽早意识到自我营销的重要性,并有意识地锻炼和运用这种能力,那将对你的事业产生有益的帮助。

提升自我营销能力的方法

  1. 读与技术无关的书

我尤其鼓励大家去读那些与技术无关的书籍。程序员不善于自我营销,其中一个重要原因是他们自身所掌握的知识体系太过于单一,很难跳出技术范畴与人交流,并引起别人的兴趣和认同。你可以读任何历史、经济、人文、艺术类的书籍,它们都能够帮助你丰富自己的知识和思想,使你变得更加全面和完善,而这反过来,又能帮助你建立信心。

当然,你还可以读一些优秀的人物传记,从他们身上你可以获得成功或失败的经验,并且完善你自己的人格

  1. 会写文档

文档质量的高低是衡量一名程序员是否优秀的重要标准之一。即使你离开了公司,你所写的文档很可能还会保留很长时间,被很多后来者阅读,而你的声誉也是在这一次次的阅读中构建的。

优秀的文档能够让人们对你产生信任和好感,相反,质量差的文档则会使你的声誉受损。

如果,你并不想仅仅是一名程序员,那么你只需要在潜意识中埋下一颗“自我营销”的种子,让它跟随着你慢慢成长,相信我,你的未来将会因此产生很大的不同。

五、程序员的烦恼

你不应该总是陷入在那些处理杂事的循环往复之中,跳出来,创造更好的方式去解决它们才是应对之策。

当然,如果公司真的看不到一点希望,而你又不是创始成员的话,那么选择离开无可厚非。但参与创业的过程对你来说仍会是一份宝贵的经历,是你应该加倍珍惜的。

六、提给年轻程序员的职涯建议

1.尽早确定你想做的事

我们会发现那些成功的人,往往是那些有着坚定目标,并持续努力的人。

尽早确定自己想做的事情,意味着你可以获得比其他人更多的时间去努力,我们不是天才,所以我们所能达到的成就往往与时间成正比.

2.10000小时定律

无论你在哪个领域,只要能坚持为同一目标持续不断地努力,花费超过10000小时进行练习和钻研,那么你也一定能够成为该领域的杰出人才,并成为他人眼中的异类.

3.提高工作效率

对于提高工作效率,我有以下两点建议:
•加快工作节奏。
•借助工具完成工作

4.简明的沟通方式

沟通时,要突出重点

5.PKSS与持续学习

PKSS:指在周六和周日进行比拼.

人的差别在于业余时间.

每晚抽出2个小时,周末抽出4-6个小时来阅读,学习,思考,坚持数月,你便会超过周围的人.

6.学会控制情绪

  1. 做到对事不对人
  2. 学会换位思考,要有同理心
  3. 通过别的方式宣泄情绪,比如与朋友聊天等等

那么如何才能提高自己的情绪控制能力呢?一个简单的方法就是做到对事不对人。当你对某一件事非常气愤时,首先,你需要问问自己发火有没有用,如果答案是否定的,那么为什么不静下心来想想怎样去解决问题呢,其次,你需要有同理心,多站在对方的角度和立场考虑问题,即我们常说的换位思考,你会发现很多时候对方不是故意为难你和与你作对,而是也有他的考量和存在的现实问题;最后,你也应该有一些自己的情绪宣泄方式,比如,与朋友聊天、练习书法、看电影等,都是不错的释放方式。

7.让最优秀的人围绕在你身边

8.善于归纳与表达

9.掌握英语

10.睡眠使你更加强大

第二章 谈实践与认知

下面就是我认为对于提升程序员思维有所帮助的几点建议,虽然不做展开,但相信每个程序员都会认同吧:
•长期不间断地编程实践。
•持续地学习与借鉴(参考)。
•学会反思,并像专家一样思考。

突破程序员思维

1.透过技术发现问题的本质

多年的开发工作,使程序员们不自觉地首先想到如何用技术手段去解决问题,然而,真正优秀的程序员一定善于透过技术发现问题的本质

我想这就是我们突破程序员思维的第一步,也是最容易实现的一步吧。说到方法,我最常使用的是反复地追问一件事的原因,比如刚才这个例子,最终我们找到的原因只是系统没有给用户一个友好的提示,导致用户错误地认为系统并没有处理他的请求,而尝试反复点击。因此,我们的解决方案也与之前团队程序员们所提出的完全不同,只需花上几分钟,给系统加上一句友好的提示就行了。

2.像专家一样给出意见

如果你对一个问题有充分的理解,并具有足够的信心,那么你就应该站出来像专家一样给出自己的意见,这会让你显得与众不同。如果你每次提出的意见都被证明是正确的,那么不需要多久,你也会被大家认同为是一位真正的专家了

3.杂学并从中获得不同的视角

通过大量地学习编程之外的各种知识来完善自己的知识体系,并从中获得不同的视角,才能更好地理解用户的需求,才能做到看清问题的本质,并像专家一样给出意见.

4.找回创造力

其实,有很多方法都能让我们找回创造力,关键是你是否愿意坚持那样去做。而我的方法也很简单,每天进行阅读,每周写一篇博客记录自己想到的东西

另外,我也有一本小本子用来记录那些转瞬即逝的想法,虽然有些看起来是那么不切实际,但我都会把它们记录下来,没事的时候就去翻翻,这个过程中我可能会得到一些不错又可行的新点子,然后,我再尝试着花些时间把它做出来。虽然,它们中的大部分都不会产生什么实际价值,但我知道下一个优秀的创意或想法,可能就来自于它们。

总结

突破程序员思维并不是要摒弃它,而是帮助我们以更加全面的视角去思考和解决问题

如何成为一名优秀的全栈工程师

好奇心——对任何工作都抱有好奇心,并愿意不断学习和改善是那些优秀工程师的共同特性。

我要说的是,对于将持续学习作为一种生活习惯的人来说,学习新东西并不会成为一种负担,反而是一种乐趣。

当机会到来时,请将它视为挑战,不要排斥它。

为什么每个程序员都应该学习使用命令行

我也经常鼓励身边的程序员们去编写自动化脚本,让自己从重复性的工作中解脱出来。

编程的意义

编程是一项技能

编程是去解决问题

编程是在表达,也是在创作

编程是为了留下痕迹

第三章 谈个人发展

•不会停止学习的脚步:认为自己不够聪明才会通过不断学习去提高自己。而一旦你停止了学习的脚步,你将无法得到那些能够让你变得更加优秀的方法和技能。

诚实地面对自己的错误非常重要,这意味着你或者你的同伴能够及时地去修复错误,而这对你、对团队、对项目都是最有益的。每一次的失败也会成为一次自我提升的良机,造成失败的原因是什么?如何有效地避免失败?通过及时反思,并果断采取措施,那些失败将成为你获得进步的最佳途径。

三、专家与普通人的区别在于觉察力

同样的,在编程领域,专家与普通人的区别也在于是否能够更好地解决问题,而解决问题的关键又在于程序员身上的敏锐觉察力。我们平时的学习、实践并不仅仅是为了积累所谓的经验,更重要的是培养自己独特的觉察力。从阅读一本书,写一段代码,做一次讲演,写一篇博客到旅游、烹饪等,善于思考的人总能从中获得更多的启发和灵感,这也使得他们能在工作中轻而易举地发现那些最优的解决方案,而不是像普通人那样绞尽脑汁却始终不得要领,久而久之他们便自然而然地成为了大家眼中的专家。

九、你也可以写出优秀的技术博客

下面是我经常采用的写作步骤:
①确定一个要写的主题。
②在网上寻找到那些能够帮助你完善观点的参考资料。
③列出文章的提纲。
④根据提纲完善内容。
⑤反复修改,直到文章通顺易读(有时我也会找人试读,并听取他们的意见)。
⑥给文章配一个好的标题。
⑦发布你的文章。

三、我眼中的技术干货与湿货

大多数人都喜欢干货,因为“读一篇文章,学到很多东西,然后自己也能……”,我们总是抱着这样的想法去读那些带有醒目标题的文章,而它们中的一些也确实能让人们产生共鸣,觉得文中提到的观点或方法对自己非常适用,一下子好像从中受益良多。你或许还会给文章点赞、转发朋友圈,并收藏起来,想着日后再读。然后呢,这篇文章或许能在你的脑中逗留一段时间,或许它还能成为你与他人交谈时的谈资,但可能也仅此而已,你并不会再去深入思考,也不会真的去加以实践,渐渐地,这篇文章在你的记忆中变得越来越模糊,直到消失不见。那些被你读过的干货,又有多少成了你自己的东西,那些你存着以后再读的文章,又有几篇真的会拿出来再读呢?
年轻人喜欢干货,因为他们急切地渴望成长,那些所谓的技术干货就是他们眼中的高效助长剂。我的身边也有一些这样的年轻程序员,他们非常努力,每天都花大量的时间去阅读网上的各种技术干货,当与他们谈论技术时,他们也总是能够头头是道地讲出一大通新鲜的技术名词,可一旦回到现实工作中,却可能连一些最简单的问题都无法处理好。这不由让我联想到,大棚里的蔬果总有着漂亮的外形,但说到口味和营养,却仍是那些在自然环境下经过风吹日晒,在雨露滋养中生长的会更胜一筹。程序员也是一样,**一味追求干货以期获得快速的成长,只会让你如过度施肥的植物般,很快遇到瓶颈而失去持续成长的动力。**湿货在我眼中就像阳光和雨露,它们可能来自于那些大师、专家或者像你我这样普通人的经验、感悟或方法,或许看上去并不能直接带给你什么,但在这些湿货的滋养下,你却能在无声无息之中提升自己的思维、觉察力、感悟力,而这些正是帮助你去消化那些干货的有效润滑剂。

你并不需要每天刻意去网上寻找那些湿货,因为湿货是需要时间、环境和心情去体会的,往往在你觉得最舒服的时候,去获取它们才是最有效的。而我也有一些自己的方法:

演讲:闲时我会看TED的演讲,除了技术相关的,我也看一些与人文艺术有关的演讲。从这些各个领域的人身上,我获得了很多灵感,也使我发现了不同的兴趣。除了技术你还应该去发现不同的兴趣爱好,这会使你变得更好。

对我来说,写作是一个将自己还没消化的干货反复咀嚼变成湿货,然后再加工成能够让更多人接受的干货的过程。无论你写些什么,坚持下去,你会发现写作能够推动你去深入理解更多问题。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kaihuishang666/article/details/106559318