《我编程,我快乐(3~5章)》读书笔记

本读书笔记由Markdown编辑器编辑完成。

第3章:执行

(P47~P78)

除非你特别幸运,不然只凭聪明,或者只凭你是最新技术的专家,是找不到工作的。你为之工作的公司是要盈利的,你的工作就是帮助这个机构实现这个目标。

雇主付给我们报酬是要我们创造价值,我们必须要把书本上的东西付诸实践。在成功的道路上,你的能力在没有得到实践之前不能带你走太远。冲过终点的才是最终的胜者——即那些完成工作的人。

把一件事情做完的感觉是很美妙的。一旦你找到了心里的那团火,你就不想停止了。

19. 就是现在

“帕金森定律”—— 工作会自动膨胀到占满所有可用的时间。

帕金森定律是一种经验观察——不是一种无法逃脱的宿命。即使是人为制造的一种紧迫感,也足够使你的效率提高两三倍了。

如果你把自己做的项目当做是一个竞赛,那你就可以更快地完成工作。开始行动,不要总是安于现状,要做推动者。

练习:

查看你的工作日志,找出那些在上面挂了很长时间的任务,那些让你头疼的工作。找出其中一项可以在你日常工作的空隙时间完成的工作。把一项以前需要数月完成的工作,在一周内做完。

20. 读心术

他有一种神秘的能力能预测出你要让他做什么,而这些事情甚至连你自己都没想到呢。

他能先知的秘密就是他做的事都是我之前已经表达过想要做的事情,只不过我表达这种想法的方式很微妙,甚至连我自己都没意识到我说过这话。

你不仅可以把读心术这招用在你的经理身上,也同样适用于应对客户。

管理员工和项目是一项具有挑战性的工作。那些可以独立带领项目朝着正确的方向发展的员工是非常可贵的,经常加班加点工作的经理们和客户们非常珍惜和感谢这些员工。

读心术用得好,会赢得人们的信赖——这也是你职业的发展方向。这项技术是值得开发和加强的。

练习:

在你开始下一个项目或者维护下一个系统时,做些笔记,记录下你认为用户和经理想要让你做的事情。有点创造性,试着从他们的角度来看这个系统。当你记录下这些有可能会被提出的不太明显的功能之后,想一想如何才能最有效地执行它们。想想用户在短时间内想不到的边缘功能。
当你接到工作任务时,看看你的命中率怎么样?看看之前思考的方法能否用得上?

21. 每日成绩

计划和跟踪工作成绩,对我们每个人都有益。

对于大部分值得去做的工作而言,做那些细致和有目的性的工作的员工更容易变得出众。

制定目标(每日、每周或者无论什么你能做到的)并且记录下可以彻底改变你工作中表现的工作内容。

经常记录工作成绩可以确保你不会停滞不前。这种思维方法和工作会成为一种习惯。

练习:

记录下,每天你的团队都是忍受的那些吹毛求疵的小问题。
你现在做的项目中,哪些工作是可以自动完成,而你却在手动完成?记录下来。
给自己20分钟,记录下所有的想法,不管是好的还是坏的。列出你最感兴趣的5项任务。瞄准清单上的5项任务,依次做出点成绩来。

22. 别忘了你在为谁工作

“确保你的目标和工作与你公司的目标一致。”

我们需要与公司的目标一致,也就是说,努力确保自己能够对公司的业绩有影响力。但是,说真的,以我们所掌握的信息,很多人都不知道我们应该如何做。只见树木,不见森林。

或许想要直接对公司业绩造成影响就像是想把大海里的水煮沸,是不可能完成的任务。所以,我们需要一个更加独立的视角,把整片大海的海水分解成一个一个可以煮沸的小水坑。

可以从你的团队开始。这个团队可能很小而且任务单一。你知道团队的问题是什么,也知道这个团队正在努力改进的问题就是提高工作效率、增加收益、降低错误等。能给你答案的最佳人选就是你的经理。

在结构良好的环境中,经理的目标,就是整个团队的目标。解决了经理的问题,就是解决了整个团队的问题。

你做的事情可能很小,但是却是在为完成整个公司的目标出力。那个 这就是你工作的目标,也是你工作的意义所在。

好经理的职责不是“做替补”,即了解整个团队的工作应该怎么做,在出现难题的时候就自己上。好经理的职责应该是为团队设定优先级,确保团队具备完成工作的一切需要,保证团队保持干劲和工作效率,并促使团队最终顺利完成工作。整个团队的工作干得出色,就证明这个经理的工作非常优秀。

如果说经理的工作是了解和设定工作的优先顺序,而不是亲自去做所有的工作,那么你的工作内容就是去做这些具体工作。你并不是在帮经理做他的工作,而是做自己份内的事情。

记住你是在为谁工作。你不仅按工作的要求来调整自己,还应该使工作与你自己的需求一致。如果你还可以做到日事日毕,那么你的工作就会朝着好的方向发展了。

练习:

计划一次与经理的会面,目的是了解经理对整个团队下个月、下季度及来年的目标。问问他你能做些什么。然后,检查自己的日常工作是否与这个团队目标一致。以这些目标来决定你工作的动向。以这些目标为基础,把你的工作排出先后顺序。

23. 安分守己

但是,难道我们不应该有雄心壮志吗?如果那些投资者没有雄心壮志和目标,那还会有微软和通用这样的公司吗?

比起只专注在目标上的做法,专注于现在的工作会使你离最终目标更近。专注于现在的工作,你就会享受日常工作中的每一个小成功;你工作干得很出色,当出现难题的时候,你就会被人当做专家一样请来解决这个问题。在一个具有凝聚力的团队中,你会成为不可或缺的一员。这种感觉都会让你感到喜悦。但如果你总是头脑不清醒,做白日梦,那就会错失这些成功的喜悦。

你会一直在等待那个巨大的成功,却无视每天工作中的那些小成功,但其实正是这些小成功赋予你工作的价值。

专注于现在的工作,不仅会让你更加快乐,也会让你身边的人更加快乐。你的同事、上司和客户都能感觉到。你的工作业绩会反映出你的态度。客观地来讲,放弃你想要成功的期望可以提高你的能力,让你走向成功。

你和你的客户是密切相连的,和你的领导以及那些决策者也是不可分割的,他们会在短期,甚至是长期对你的职业产生重要的影响。

所以,请安分守己。

要有雄心,但不必路人皆知。
Be ambitious, but don’t wear it on your sleeve.

练习:

一周内不去想你的职业目标。写下你当下工作的目标。别去想下一步要做什么,想想你想从手头的工作中得到什么,你又能做出怎样出色的成绩?制定一个既有战略性又具实用性的计划。以完成当前工作为目标,用一周的时间来执行这份计划。

24. 今天我能把工作做到多好?

在遭遇最艰难的系统问题的逾期仍未完成的任务时,这种兴奋的陶醉情绪使我保持清醒,工作非常有效率。为什么在没有压力的时候,我们就无法如此狂热地工作呢?

你能把一分无聊的工作变得有趣吗?如果你倒过来看这个问题,答案就是显而易见的。你为什么会觉得这份工作无聊?为什么不能一开始就觉得它是有趣的呢?你喜欢的工作和憎恶的工作之间有什么不同?

那么,在每天的工作中我们又如何挑战自己,发挥创造力来应对这些平凡的工作呢(我们80%的时间都是在做这些工作)?

试试把这些无聊的工作做到100分,感觉怎么样?比如,你讨厌做单元测试热爱编程,但不得不去写自动化测试代码,这让你感到十分厌烦。那你可以努力让你的测试做到完美。这样的目标,会让你在工作中有怎样的改变?

对于单元测试这个环节来说,怎样才称得上是完美?这和测试覆盖率有关。完美的测试覆盖率是指所有实码的功能都能测到。完美的单元测试同时也是无暇的、可维护的。

“我今天能把工作做到多好?”你发现你会更喜欢自己的工作,你的工作也会喜欢上你。

练习:

与你的同事展开竞赛,竞赛的内容就是这些无聊的工作任务,看看谁能把这些工作做到最好。

25. 你的价值是多少?

你有没有认真地思考过,公司雇用你到底投资了多少?你知道公司付给你多少薪水。可还有其他的呢?福利津贴、间接管理费用、培训等,这些不会显示在你的工资中。这笔钱肯定大于你的基本工资。

难计算的部分是:你一年能产出多少效益?你对公司盈利产生的积极影响是什么?既然公司每年在你的身上投资了12万美金,那反过来,你又给公司创造了多少?你为公司节省了多少开支?你为公司又创造了多少营业额?

这些数字是不是也是你工资的两倍?

这个问题是很难找出答案的,因为我们很难把工作中的每个部分都与公司盈利关联起来。确实是这么回事。你为一个公司工作,如果你不能为这个公司创造某种真正的价值,那在你身上的投资就是浪费。我们都认为涨工资是理所当然的,这其实是个陷阱。

我还记得当我刚刚开始有这种想法的时候,自己都有些神经质了。每过一个月,我就会问自己“我这个月创造了多少价值?”后来发展成每周问自己一遍,之后是每天都会问自己“我今天实现自己的价值了么?”

你可以把这个问题变得更具体一些,就是问自己你又新增加了多少价值?可以问问你的上司,如何最好地把它量化。有想把它量化的想法就是好的。你怎么做才能帮助公司节省开支?如何提高整个团队的工作效率?考虑一下使用你们软件的终端客户。

一旦你开始考虑这些问题,你会非常惊讶地发现你可以找到很多的机会。现在,就开始行动吧。把这个数字记在脑海里:2倍的薪水。在达到这个目标前,千万不要放弃。

练习:

大多数公司都会设立回报率线,在这之下,就不会进行投资。进行投资必须是在确定的时间内并有确定的回报率,否则就不会进行投资。这个数字被称作“最低预期资本回报率”。
找出你公司的最低预期资本回报率,用它来衡量你的工资。你是不是一项好的投资?

26. 一桶水中的鹅卵石

事实上,一个员工的离开很难对公司造成很大的影响,即便是这个员工处于非常重要的职位,造成的影响也会非常小。对公司来说,你就像一桶水里的一块鹅卵石。当然,因为有这块鹅卵石在,水平面线会上升一点儿。你完成工作,做好本分。但是,如果你把这块鹅卵石从水中拿起来,然后再观察这桶水有什么变化——你基本上是看不到变化的。

我们都需要觉得自己做出了某些有意义的贡献。但是我们太沉迷于做自己,却忘了身边有很多人和自己一样。公司里的每个人都不自觉地沉迷于自我,大家也只是从自己这扇窗户来审视自己的工作。这样想:如果你明天离开公司,对公司造成的影响(平均来讲)与其他同事离开没什么区别,或者还不及他们离开的影响大。

永远不要高枕无忧,他一遍又一遍地重复这句话。他说自己每天早上起来都会提醒自己要清楚地知道说不定哪天自己就被公司解雇了。他会说,可能就是今天。

这是他的观点。谦逊不仅仅是我们需要发扬的一种美德。谦虚能让你更加清楚地审视自己的行为。你越是成功,就越有可能犯下重大错误。当你得到很多肯定的时候,你就会很少质疑自己的决定。你使用的方法屡试不爽时,你可能就会忽视可能会有更好的方法。你开始变得傲慢。人一旦傲慢,就会产生盲点。越认为自己无可取代,就越有可能被别人取代(你在公司存在的意义也就越小)。

感觉自己无可替代是一个不好的征兆,特别是对软件开发人员来说。如果你是不可取代的,这或许只是意味着你做工作的方式和别人不一样。尽管我们都希望自己有某种特殊的天赋,但是基本上没有一名软件开发师是无与伦比、盖世无双、无可替代的。

为了让自己无可替代而采取的自我保护的花招造成了你与公司(以及你的同事)之间的敌对关系。在这种关系中,你已经没有立足之地了。

这样说来,想要让自己不可替代,就要建立一种友好的工作关系。我们每个人都不是不可替代的。清楚知道这一点,并努力工作,恰恰会让自己与众不同,并且无意间为自己创造了更多的机会。

而且,如果你是可以被取代的,那么就没有什么可以阻挡你迈向下一个更好的工作了。

练习:

主动与你的团队成员和团队领导分享你所做的工作。确保团队成员可以很容易看到这些说明。定期重复这一练习。

27. 爱上维护

每个人都想要建立新系统,没人想维护旧系统。我们想要制造出一种充满活力的工作环境,所以如果我们想朝着正确的方向前进,就必须要注意新的雇员想要什么。

人们都喜欢创造。创造出一个产品,就可以把它贴上自己的标签,感觉它是属于我的,我们可以在创造中表达自己的思想。我们认为完成项目是最可见的工作。建造新系统的人是能够得到荣誉的那个人。

尽管软件开发员都是具有创造力、热爱自由的人,但是整个编程“社会”却是有着等级制度的。程序员想要成员设计师,设计师又想成为架构师,等等。而维护工作太普通了,这个职位不像架构师那样可以拿出来在父母和大学同学面前炫耀。

然而,做项目的时候,公司会期待项目创造出效益。如果我们没能产出效益,那我们就失败了。公司的发展依靠这些效益,所以他们经常会严密地控制制造出来了什么东西,如何制造以及什么时间制造出来。突然之间,我们的这片沃土变成了一场军事行动——我们的每一步行动都受上述因素影响。

对于维护,通常如果一切顺利的话,客户基本不会过问维护人员的日常工作。修复错误、实现小的功能需求、维持系统运行——这就是你全部的工作。

只要你一直维持系统运行,并且对用户的要求及时做出回应,维护模式就是自由并且具有创造力的。你同时身兼项目领导者、架构师、设计师、程序员和测试员的工作。你可以随心所欲地发挥创造力,而这个系统的成功或者失败都需要由你来承担。

维护系统的时候,你也可以设计更可见的改进。

做维护工作还有一个不易被察觉的好处,维护工程师经常有机会和他的客户直接进行交流,会有更多的人认识你,你就有机会在业务上建立更广泛的支持者。你可以利用这个优势来更深入地了解业务的运作情况。

最讽刺的是,项目工作其实也是维护。只要项目团队写下来第一行编码,每个新增加的功能都是被嫁接在现有的代码基础之上。

如果是一名已经完全掌握维护工作、并且致力于把维护工作做得更好的工程师,谁又能比他把这项工作完成得又快又好呢?

维护也可以成为自由和创造的沃土。
Maintenance can be a place of freedom and creativity.

练习:

评估、改进、评估——在你所维护的所有重要应用程序和代码中,把所有可以评估程序质量的元素列举出来。从中挑选出最重要的特征,开始对它进行评估。

28. 8小时激情燃烧

围绕着极限编程有很多争论,其中一个争论就是它宣称程序员每个星期的工作时间不得超过40个小时。

Martin把一周40小时工作时间表述为“8小时激情燃烧”。也就是说,工作的时候不容一丝松懈,高度集中,以至于连续工作的时间无法超过8个小时。

在工作上,更少的工作时间可以有更高的效率。首要原因是根据极限编程理论,当我们疲惫的时候,思维就会变得没有效率。当我们彻底耗尽能量时,创造力和工作质量就会明显降低。在这种情况下, 我们就会开始犯下愚蠢的错误,结果是既浪费时间又浪费金钱。

大多数的项目都是一项长期工作。人们不可能按冲刺的速度跑完整个马拉松。增加工作时间,尽管在短期内大大增加工作成果,但是从长远来看,如果你为了多完成些工作每周加班加点工作80个小时,你可能会因此犯下大错误,但是修复这个错误的时间可能比加班的时间还要长得多。

你可以用看待金钱的方式来看待时间。当没有钱的时候,我的钱花得更加高效,最终结果都是一样的。

我认为有限的资源更加珍贵,我们会更加高效地利用有限的资源。当工作时间非常充裕的时候,工作的时间价值就会降低。如果有70个小时,那对你来说,每个小时的价值远比不上你只有40小时的情况。

你必须要工作和思考,我就剩8小时了!快!快!快!有严格的开始时间和结束时间,你就会自然而然地更加高效地安排时间。你会从一组需要今天就要完成的工作开始,将他们按照优先顺序排列,一次性攻克。

在没有努力工作的时候,工作就会成为一种折磨。我可能没完成某个具体工作,或者让工作堆积起来了。这时候工作就会跟着我回家,在我想放松的时候纠缠着我。如果你每天都投入地工作,就会发现工作不再跟着你回家了。不仅是你故意在下班之后不再工作,而且你的大脑思维也允许你休息。

好好规划你的工作时间。减少工作时间,你的收获会更多。当你离开工作一段时间后,才会更喜欢工作。

练习:

确保今晚睡个好觉。明天按时上下班。然后,回家放松。

29. 学习如何失败

程序员都知道在开发过程中越早发现软件的问题,软件就会更加完善。如果你做的软件没有定期向你抱怨,你就不知道危险的故障隐藏在哪里。

出现问题的时候,才是真正检测工匠手艺的时候。学习如何处理是非常重要的,但也是很难学会的。

工作中每个人都会犯错误。这是人类的天性。我们编程中的错误导致用户去查看栈跟踪。严重的设计错误使我们自己陷入困境。或者,更糟糕的是,我们向团队成员、经理和客户表述的都是错误信息。我们错误地宣称自己有能力做什么,或者当团队成员遇到技术问题时,我们无意间就提供了错误的建议,浪费了他们的时间。

因为我们每个人都犯错误,所以知道其他人也会犯错误,就不会对彼此犯下的错误品头论足。不过我们评论的是如何解决那些无法避免的错误。

**以下规则适用于解决技术、沟通或者项目管理中出现的错误。
(1)发现问题后第一时间提出,不要企图隐瞒错误。
(2)接受批评。
(3)提供解决方法。
(4)寻求帮助。就算是你对问题负全部责任,也不要让自尊心作祟,拒绝别人的帮助,这样只会使情况更糟糕。这个时候,如果你放下自尊,保持一种良好的心态接受团队成员的帮助,那么你工作的伙伴、经理和客户都会欣赏你的表现。很多时候,我们都会对造成的问题产生一种责任感,致使我们承担起过去的重担,结果是历尽千辛万苦却毫无成果,直到有人强制介入。**

公司对错误处理方式的不同,会产生不同的结果。问题处理得好,会使客户对其产品更加忠诚,甚至比碰到问题之前,更加信任这家公司。要是处理得不好,那就摧毁了客户的信任。工作中犯错误的时候,要时刻谨记客户的这一心理。

30. 说”不“

清楚知道自己无法做到却还依然做的承诺最不容易实现。

说“是”是个上瘾却具有毁灭性的习惯。这是个坏习惯,却伪装成好习惯。“能够胜任”的态度和歪曲某人的能力有很大的不同。后者不仅给自己造成麻烦,也会给你所承诺的对象制造麻烦。

因为你承诺说可以在月底前完成,我就对客户做出了承诺。这样说“是”虽然并不是恶意的,但和说谎没什么区别。

人们没有意识到说“是”并不总是正确的答案,“不”也不一定就是错误的答案。而我们都知道的确是这样的。毕竟,没人想得到错误的承诺。

如果我的团队成员真的无法完成某项工作时,有勇气说“不”,那当他们说“是”的时候我会更信任他们。敢于说“不”的人做出的承诺更可信,也更有分量。如果他们真的完成了自己承诺的目标,当他们说无法达到的时候,我不会质疑。

经常说“是”的人,要么就是天才,要么就是在说谎。后者通常占多数。

某个领域内真正的专家,对于他们不知道的事情,总是勇于承认。“我不知道”并不代表我不可靠。

做决定的时候,也需要同样的勇气。我不希望自己的雇员都是机器人。那个敢于说出问题所在并提出更好建议的人,才是我最信任的伙伴。

要勇于诚实。

练习:

记录下自己做出的每一个承诺。每天检查这个记录。每月检查这个记录——你做出的承诺中,有多少是实现了的?你又有多少次能做出正确的承诺?

31. 不要恐慌

英雄从不恐慌。

在最艰难的时候,我会恐慌。我把自己锁在屋子里,尽最大能力思考。我对这些问题分开独立思考,却没有想到应该要考虑全局。

惶恐给了我什么呢?消极地应对这些情况的益处是什么呢?什么都没有。惶恐带给我的就是在最需要我充分发挥自己能力的时候,我却无能为力。

想想我么为什么会慌张,可能会对回答这个问题提供些帮助。

我们惊慌是因为丧失了判断力。

我是如何学习不要惊慌的。当碰到问题的时候,我就产生了那种无助、充满压力的感觉而导致的惊慌,这个时候,我就拿自己与那个挫败的电脑文盲相比,然后嘲笑自己。我以第三者的身份来分析当时的境况,这时表面上看起来很难解决的问题突然间就变得简单了;看上不去不利的境况突然间也好像不是那么糟糕了。我常常发现解决问题的办法其实很简单,而且非常显而易见。

练习:

做一份关于恐慌的日记。
更好地分析自己的反应,说和做是两回事。写日记可以给整个过程创建一个结构。每天定时记录下使你惊慌的境况。每周回顾一次上一周的日记,观察每一个引起惊慌的情况造成的持续影响。这个状况值得惊慌吗?对这种境况最有帮助的反应应该是什么?
这样反复练习之后,你会慢慢发现当你惊慌的时候,会同时开始做这些分析了。当你能够在碰到问题的时候理智地分析引起惊慌的原因,惊慌就会黯然隐退,最终消失。

32. 说出来、行动、展示

从不做出承诺最容易导致一事无成。没有截止期限,你也就没有压力或者说是动力来完成某项工作,特别是当任务不是十分有趣的时候。

再差劲的经理也知道制定计划的重要性。当一天有很多事情要做的时候,有了计划就可以让你从混乱中理清思绪,攻克所有工作。

如果你没有完成这份计划上的所有事情,不要担心,继续把今天未完成的工作添加到明天的计划中(如果这些工作仍然需要完成),因为一天的工作量是有限的。这是个刺激过程。通过制定计划,你的生活就会由一连串小的胜利组成,每获得一个小胜利都会激励你去实现下一个成功。你会发现,这样做不仅让你能够清楚地看到自己到底做成了哪些工作,而且比起你毫无计划地工作,按照计划行事其实可以完成更多的工作。

当每天的计划按节奏完成之后,你可能就会想制定一周甚至是一个月的计划了。当然,你计划的时间跨度越长,你做计划的水平就应该越高。

一开始会很难,坚持住。就像所有的技术,熟能生巧,你和你的同事都会看到好的转变。

你应该与上司讨论你的计划。当你至少完成一轮计划之后,再开始讨论。重点是,在你的领导要求和你讨论计划之前,主动与他们交流。每周收到一封员工上周工作结果汇报和下周工作计划的邮件,不会引起经理的反感。经理们正希望员工能够主动发给他们这样的邮件。

做计划时要时刻谨记的是,出现在计划上的每一项工作必须要与后续工作相关,要么被完成、推迟、去除、或者被代替。坚持按照计划工作会给人留下一个积极的印象——在混乱中,不会遗漏任何一件重要的工作。

坚持这么做,有一天你的上司会发现你是可以掌握全局的。制定计划并按计划行事证明你不只是一个会编程的机器人,你是一个领导。

与大家交流你的计划还有一个好处就是:你做出的承诺会更具可信度。如果你不仅说出想要做什么,并且付诸实践完成了这项工作,你就会得到实干者的美名。有了信任就有了影响。

碰到问题的时候,这个团队制定出一份计划作为解决问题的方法。他们不是向上司抱怨,而是做出了解决问题的提案。

你的上司希望你具有独立感和归属感。制作计划、执行计划以及与上司就计划进行沟通都会帮助你找到工作的独立性和归属感。

《失败和模仿》——MIT, Patrick Collison.

第4章 推销……不仅仅是迎合

就算你的产品非常优秀,史无前例,但是如果你不宣传它,那就没人会去购买。众所周知——尤其是在软件这个行业里——最好的产品不一定就能在竞争中取得胜利。市场宣传更为重要。在职场中,也不要忘记这一金科玉律。

表面上看,宣传自己很简单。你的目标有两个:让别人知道你的存在,以及让他们知道,当他们碰到难题时,你是那个可以解决问题的人。

本章不仅可以帮助你让你的上司知道你的能力,而且还会帮助你拓宽行业视角。

33. 不要忽视感觉

你应该在乎别人的看法,别人对你的认识就是现实。好好解决它。

根本就没有绝对意义上的好与坏,至少在判断谁更具创造力,谁更有知识的时候,没有绝对的好与坏。

公司和人力资源部门都不愿意承担风险,所以他们企图用客观的评价方法来评价员工。有时候他们会使用“客观”的绩效考核系统。

事实上,对知识型工作者的能力以及他们的工作质量进行客观的评价是根本不可能的。因此,既然说公司(或者整个行业,职场或者任何地方)对你的评价是主观的,那就意味着对你做出的评价总是基于别人对你的感觉。

这不能仅仅归结为个人喜好。人们的角色不同,与你的关系也不同,就会导致他们评价你时的侧重点也不同,而出发点是如何让你们的关系正常运作。

感觉非常重要。你越早明白这个道理,并且能够控制别人对你的感觉,那你就能越快回到正轨上。

练习:

影响感觉的因素因人而异。
在人际交往关系中,你要弄清楚哪一因素对哪一种关系圈是重要的,这样你就可以给你周围的人留下可靠的感觉。想一想办公室里与你有着不同关系的人。把他们分组,并罗列出来。在每一项旁边记录下你的哪些特质会影响他们对你的感觉。依据实际情况,更换列表中的内容。在工作中,你会做出哪些改变。

34. 探险向导

项目经理和客户负责一些至关重要的事情,这些事情最终还是要委托给那些可怕的IT员工来执行。他们竭尽所能地推进项目的进展,但最终还是得任由程序员摆布。

客户肯定不是希望程序员能记住最新的设计范例,也不是程序员知道多少种编程语言。

他们寻找的是可以帮助他们完成项目的人。

你的工作就是做客户的IT向导,带领他们穿越IT世界里那些陌生的地带。当客户通过陌生地带的时候,因为有你,他们会感到舒服自在。

决定升职和人员安排的时候,你最有力的支持者就是一个无法离开你的客户。反之,想象一下如果你的客户认为你总是居高临下,后果又是什么?你的客户代表业务的需求,不要忘记你正是因为他们的这些需求而被雇佣的。

练习:

(1)自我检查。尝试站在不熟悉本领域知识的同事、经理和客户的角度,阅读你发给他们的邮件。
(2)跳过围墙——寻找一个自己知之甚少,需要依靠别人的境况。

35. 学会沟通,善于写作

程序员的沉默时代已经结束了。文字表述能力是非常重要的。

如果你的工作中要包括很多写作内容,那你最好要擅长写作。你的写作能力将会成为人们对你做出评价的依据。或许你是一名出色的程序员,但如果你不能很好地通过文字表述自己,那么在一个有空间距离的团队中,你就无法有效率地工作。

沟通,特别是以文字方式进行沟通,是你所有绝妙的想法必须要通过的瓶颈。你自己就是你要解释的内容。

练习:

(1)开始记录开发日记。每天写一点,记录你做了什么工作,解释你的设计决定,检查棘手的技术和专业决策。即使你自己是第一位读者(或者是唯一的读者),也要注意写作的质量,和能够清楚表达想法的能力。

36.到场

能够与上司和客户面对面地沟通是你的优势,不要浪费这个机会。

在工作中,近距离的接触是一种优势。

记住,要与人打交道。你必须要记住人类的天性是喜欢与人一起工作。

Learn about your colleagues.

练习:

(1)工作日某一天,强迫自己不发邮件。要打电话给对方或者到他的办公室面对面地与他交谈。
(2)与交流不够的同事、上司和客户,进行简短而有意义的交谈。

37. 适当的言语

14岁大的男孩对电脑游戏有浓厚的兴趣,但是千兆赫兹和每分钟的转数对他们没什么吸引力。

商业本身关注的是结果,经营者关注的也是结果。所以,如果不使用行业语言来推销你的成就是起不到作用的。众所周知,推销产品时,要使用消费者明白并且与他们相关的语言。

作为软件开发师,要把你所完成的工作放在你所服务的行业的框架里。你确实做了某些工作,但是这工作是什么?这项工作有什么用?怎样才能证明你所谓的成绩不是在浪费公司的时间呢?

练习:

(1)罗列出你近期完成的工作,并写出每项工作的商业意义。如果对某项工作的商业意义不甚了解,可以请教你的上司或者某个你能够信任的熟人。
(2)准备好你的“电梯演讲”,并将其牢牢记在心里。

38. 改变世界

作为一名软件开发师,你就必须带着任务来上班。你必须要做出改变,而这种改变不只是你自身或者是你自己工作的改变。你所做的改变必须要让你的团队、组织或者公司看得到。

你做这些事情是因为内心里觉得必须要这么做。你无法看着公司里的同事犯错误,却假装视而不见。你知道有更好的办法,你必须要改变现状。

当然,你做出这样改变肯定会引起某些人的不满。但只要你的意图是正确的,那就没关系。这种改变不要太突然太猛烈,但也不要总是小心翼翼,畏手畏脚。

如果你知不道要做的改变是什么,那你就没有在做任何改变。如果你没有主动让自己获得承认,那你就还没有获得承认。

练习:

记录下工作中你亲眼看到过的改变。想想哪些同事是带着任务在工作,哪些同事是最努力最有效率的。他们的任务是什么?
你能想到这些任务中哪些是不合适的吗?努力和狂热的界限是什么?

39.让人们听到你的声音

你思考近期职业目标的时候要长远一些,要比下一次升职更长远,甚至不能只考虑在你当前公司里的发展。

把目光放得更远一些。不要把自己局限在某一特定公司中的程序员——毕竟,你不太可能永远在一个公司里工作——因此,要把自己当做是某一个行业的人员。

虽然优秀是非常重要的,但是只是优秀还是不够的。这个行业,是由一个复杂且广大的人际关系网构成的。你认识的人越多,得到好工作的机会就越大。如果只把自己局限在现在工作的公司里,就会严重限制你形成新的人际关系网的机会。

还有什么比出版文章和公众演讲更好的方法让人们听到你的声音、记住你的名字呢?

从互联网开始:
(1)阅读网络日志。
(2)撰写自己的网络日志。
网络日志是训练场。要抱着为你最爱的杂志写专栏文章的态度,撰写网络日志。随着你写作技巧的增长,你也会越来越有自信。文章成功发表后,你的人际关系网也会随之扩展。写得越多,得到的出版机会也就越多,而这些又为公众演讲奠定了良好的基础。

所有这些让人们听到你的声音的方法中,最重要的一点就是要尽早行动,而不是一味地去想自己是否已经做好了准备。大部分人都会低估自己的能力。你一定有某种可以传授他人的东西。你永远也不会觉得自己已经做好了100%的准备,所以不妨现在就开始行动。

练习:

创建网络日志。
在电脑里,创建一个文本文件,列出一切可能的网络日志话题,这些就是你要撰写的专题文章。不要局限在宏大的观点上。尝试那些10到20分钟内就可以写出相关文章的小想法。当这个列表达到10项的时候,就停止。

为自己设定三个星期的期限。每天,从这个列表中找一个话题来撰写文章。不要过多的思考,就是写一篇关于这个观点的文章,然后在网络日志中发表,在文章中加入其它网络日志中相关文章的链接。

40. 创建自己的商标

创建商标分为两部分:认知和尊重。创立自己的商标,让人们认识它,然后确保与之关联的都是积极的特征。

不要忘记,你选择去做的事情会对你的名字产生持久的影响。既然我们现在很多互动都是通过网络上的公共论坛、网页和邮件列表来进行,我们的行为都会被永久地公开记录、缓存、编入索引并可被别人搜索到。

有一天你可能会忘记自己做过什么,但是Google却记得一清二楚。

竭尽所能捍卫你的商标。别让自己的行为毁了它的名誉。你的商标就是你的一切。

练习:

用Google搜索自己——阅读前4页的搜索结果。根据这4页的搜索结果,别人会推断你是个怎样的人呢?这些结果是否能看出你是怎样的一个人?你对这个结果满意吗?

41. 发布你编写的程序

如果已经有公司在使用你开发的软件了,那么找工作将是多么容易的一件事啊!

现在开源软件已经成了主流。随着IT行业开始了新的项目,长期以来的争论已经从“创建还是购买”转向了“创建、购买还是下载”。只要不是完整的应用程序,从小程序库到成熟的应用程序容器都可通过开源许可发布,并且成为实际的标准。

大部分开发此类软件的人,都是和你一样的人。他们晚上和周末坐在家里,由于热爱而不知疲惫地敲打着键盘。当然,也有一些公司资助的开源产品。但绝大多数的开源产品都是独立的开发师出于爱好开发出来的。

对开源软件有所建树是一种技术的展示。

尽管很多开发员这样做只是出于兴趣和享受过程,但诱惑因素还是存在的。或许这不是刻意为之,但是在这个过程中,他们将自己推向了市场。

先不说你可以为自己树立名号,对开源软件有所建树也展现了你对这个行业的热情。

练习:

选一个带有单元测试的开源软件。在代码覆盖分析器中进行单元测试。找到这个系统中最少被测试到的部分,并编写测试来提高代码的覆盖面。未经测试的代码往往是无法测试的。通过重构可以增强代码的可测性。将你所做的改变作为补丁提交。

42. 变为卓越的能力

传统上市场营销的四要素是:生产、价格、宣传和定位。

要想在人群中独占鳌头,唯一的方法就是确实卓越。

出色和好的含义肯定不同。通常,卓越的产品一定是好的。但是,好的产品却很少是卓越的。

卓越的意思是值得被关注。仅仅比你认识的软件开发员好,并不能使你成为卓越的软件开发师。仅在量上超过其他人,是不足以让你的声誉像病毒一样扩散开来的。如果要求某人谈谈对你的看法,或许她会说出很多你的丰功伟绩,但是卓越的意思是人们会主动地谈论你,而不是被动要求。

要想卓越,就必须和周围的人大相径庭。发布成功的开源软件、写书和撰写文章以及在研讨会上演讲都可能会提高你变得卓越的能力。你会发现所有提到的使你变得更加卓越的几点方法中,都是要去“做”某事。你可能是最聪明的或者最快的,但是只具有某种特质是不够的,必须要做点什么。

怎样做才能使你自己和你的工作成绩变得像那头紫色的奶牛一样引人注意呢?

仅仅做人群中最好的是不够的。要成为人们谈论的焦点。

练习:

从小事做起,但是要在你现在的项目或者工作中做一些卓越的事情。比如可以力争卓越的效率。用非常短的时间来完成别人认为一个星期才能完成的工作,即使加班也在所不惜。看看其他同事会不会对此作出评论。

43. 建立关系

事实是,非常出色的人是不会介意有人想要认识他们的。人们喜欢被别人欣赏的感觉,而且他们也愿意谈论他们所热衷的话题。没错,他们是专业人士、大师、领军人物或者是著名的作者,但是他们首先是人,人是社会动物,喜欢与人交流。

我认为,我们这些凡人和那些我们所仰慕的人之间最大的障碍就是我们自己的恐惧。与那些聪明、人际关系好、能教你东西或者可以帮助你找到工作的人结识,是取得进步的最好的方法,但是我们却没有胆量尝试与他们结识。

你可以面对面地建立这种联系,也可以在互联网上建立。持久的联系就是持久的联系。很多软件开发行业里最具影响力的想法都可以通过邮件甚至是线上即时交谈获得。

练习:

(1)挑选出你最喜欢的软件,并给它的开发者写一封邮件。对他开发的软件提出建议、问题或者其他可以与他建立联系的尝试。
(2)在你生活的城市里,找一位你敬仰的或者愿意向他学习的人。找一个可以碰到这个人的机会,主动开始于他交谈,即使这样做会让你感到不舒服。事实上,正是因为这样做会让你感到不舒服,所以你才要迈出这一步。

第5章 保持技术领先

在任何一个环节上花费过多的时间,都会有突然间就过时的危险。

44. 已经过时的技术

大多数人进入IT这个行业,都是因为这个行业中总是充满了变化,工作环境是令人兴奋的,总有新的东西要学习。

你的事业越是成功,你就越有可能习惯企业的现有模式,这就会使你变得极度脆弱,抵挡不住提出新观点的人。

当心!成功使人骄傲,骄傲会使人自满。像J2EE这样的潮流看似永远不会过时,但是任何浪潮都是要不就消失,要不最终被后浪推到沙滩上。长时间习惯于现有的潮流会让你毫无防御能力,完全不会去思考如果在没有J2EE的世界里,你又能做些什么。

随着技术更新换代的速度越来越快,任何人都无法跟上变化的速度。即使你掌握的技术是全新的,如果你没有开始学习下一个热门技术,那已经晚了。你可以领先于当今的潮流,却处在下一个潮流之后。在这样的环境下,时间是非常重要的。

没错,这是有点像赌博。但是,如果你不参加,就一定会输。

向前看,清楚地知道你的技术发展方向,是盲目和有远见之间的区别。

练习:

每周找出时间来研究尖端技术。每周至少找出2个小时的时间来研究新科技,学习相关技术,并动手尝试。制作简单的应用程序。将你正在以当前技术做的项目,用新技术来做出新的原型版本,来理解它们的不同之处,以及新技术能够做些什么。
在你的日程安排中加入做这项工作的时间,一定要按时完成。

45. 你已经失去工作了

你已经失去工作了。可能每个月你还是领到了薪水;可能你依然在为你的公司创造价值;可能你还是可以使你的老板非常高兴。但是,你已经失去工作了。

所以,如果你的工作是编程,别把自己当成一名程序员。继续工作,但是不要满足于你的工作。永远不要把自己的身份定位于程序员,或者设计师,或者测试员。

有理想是好事,但不要对遥远的未来抱有太大的希望。如果你想要射中移动的物体,就不能瞄准这个物体本身,应该瞄准这个物体要移动到的位置。这个过程的路线不是一条直线,最好的情况是一条弧线,但大多数情况下它是一条曲线。

练习:

如果你是一名程序员,尝试以一名测试员或者项目经理的身份来做一两天你的工作。有哪些不同的角色是你从没考虑过要尝试的。把这些角色罗列出来,并尝试每天以其中一种身份来工作,看看自己是否适合。你可能看不出工作结果有什么不同,但是你会发现你工作的方式发生了变化。

46. 没有终点的道路

我们过于关注事件的结果,却忘记了全局。

基本上,我们大把的时间都花在了做事情的过程中,而结果基本上不会占用时间。举个例子,当你开发软件的时候,你的时间花费在整个开发的过程中,而不是在开发完成的软件上。

你的职业生涯也是一样的,最重要的部分不是晋升或者加薪,而是向这些发展方向努力工作的过程。

关注结果会使人忘记应该做好过程。糟糕的过程只能创造出糟糕的产品。

不仅糟糕的过程制造出糟糕的产品,糟糕的产品也会导致糟糕的过程。一旦你生产出的产品内部一塌糊涂,你的工作过程就会围绕它不断做出调整。产品的破窗会导致整个过程的破窗,这是一个恶性循环。

所以,不要总是不停地问:“我们完成了吗?完成了吗?”重要的是你穿越这条道路的过程,而不是这条路的终点。

47. 给自己做一份蓝图

一个使用中的程序是永远没有完成的一天的,除非它要退休了。你和你的职业也是一样的。除非你不想在这个行业干了,否则你就需要一份蓝图。如果微软认为Windows3.1已经完成了,那么现在我们所有人都只能使用Macintosh。Apache的开发师们要是认为他们的网络服务器达到1.0时就已经完成了,那么他们现在就不会引领这个市场了。

个人的产品路线蓝图是用来判断你是否在不断向前发展的依据。每天,你出入相同的办公室,从事大量相同的工作,周围的环境没有任何变化。所以,你需要在合理的范围内做出一些标记,当你达到这些标准的时候,你就知道你不是停滞不前的。产品的“功能”就是这些标记。

只有当你真正做出计划之后,才能看到下一个标记。

一份个人产品蓝图不仅可以帮助你一直处于正轨上,不断向前发展,还能够帮助你纵观全局,告诉你应该要做什么。它告诉你做出的每一次选择都是整个职业发展的一部分。有些选择可以共同作用,推动你的职业发展;但也有些选择缺乏关联性,跳跃性太大。

没有蓝图,你可能会迷失方向。

练习:

做出蓝图之前,先画出你曾经所处的位置,这会对你制作新的蓝图起到鼓励和启发的作用。清楚地列出你职业发展的时间表,标注出你从哪里开始,以及在每一阶段你的技术和工作是什么。注意在哪一个阶段你在持续进步,又在哪一个阶段取得了重大进展。当你展望职业发展的时候,把这份蓝图作为参考。

清楚地了解过去取得的进步,可以帮助你制定出更加实际的目标。制作出历史蓝图之后,要不断更新。当你不断向新目标前进的时候,这种方法可以很好地反映你的进步。

48. 要注意观察市场变化

做投资的时候,只投资不管理是行不通的。

如果你对当前的技能非常满足,当下一个热门技术来临的时候,你可能会无视它的出现。10年前,你可能会吃惊于带有垃圾收集的面向对象的程序语言会发展到如此之大,但是如果你细心观察了,是绝对可以看出迹象的。

你必须要时刻细心留意。注意技术方面的新闻——不管是商业方面的还是纯技术方面的。如果你能找到技术达人,观察他们热衷于什么,那你就能够大致了解到什么技术将会成为热门,或者预测出两年后的热门是什么。

练习:

明年开始尝试做技术达人,或者至少结识一位技术达人,与他建立紧密的联系。

49. 镜子里的胖子

我不知道自己长胖了还是变瘦了,是因为我天天都能看到自己。如果你每天都看着相同的事情,也同样很难看出它的变化,除非是突然间的改变。

职业也是一样。事实上你根本就不去观察注意。这就是问题所在了。每天你都看着相同的自己,一点变化也看不出来。你看起来和以前一样适应那个环境;你看起来和以前一样具有竞争力;你的技术看起来和以前一样处在时代尖端。

体重的波动可以通过磅秤来衡量。遗憾的是,作为软件开发师,没有磅秤可以用来衡量你的市场适应能力或者你的技术。既然没有这种衡量工具,你就必须要找到衡量的标准。

找到一个可信赖的第三方,是衡量进步的简单方法。一名良师或者一位关系好的同事可以比较客观地对你做出评价。你可以和他们谈论你作为一名软件开发师、项目领导、沟通者、团队成员等任何与你相关的能力。在通用公司,有一项被称作360度评估的方法,这种方法可以鼓励员工从同事、上司和客户那里得到回馈意见。作为雇员,这种方法可以很好地帮助你从不同的角度来审视自己。

做此种工作的时候,最重要的就是要弄清楚自己的盲点在哪里。只需要知道它们在哪里,而不需要你改正所有的盲点。弄不清楚这点,你对你的盲点还是会视而不见,这样就会对你产生不利的影响。

要制定自我反省的时间表。不明确制定出自我反省的时间,你就永远不会去自我反省。首先要制定你的衡量系统,然后把它提上日程。这这项工作作为你工作生活的一部分,否则你是不会去做的。

练习:

(1)做一次360度评估。
找一些你可以信赖的人,包括你的同事、客户、上司和下属。
再列举出你认为作为专业人士需要具备的10项重要特征作为衡量标准。
(2)开始记日志。可以是网络日志,或者写日记也行。记录你在做什么工作,在学习什么以及你对这个行业的一些观点。
坚持记录一段时间之后,回顾前面的记录,现在你仍然同意当时的想法吗?那些想法现在看起来幼稚吗?你改变了多少?

50. 南印度捉猴陷阱

价值僵固——当你过于坚信某事的价值时,就会无法客观地来评判它,这即是价值僵固。

不是所有坚信的价值都是正确的。而且很多时候,在某种环境下是正确的事情,到另一种环境下就不一定是正确的。

每天我们都在工作中度过,在做职业选择的时候很容易就会产生价值僵固。之前认真做出的选择可能就是你职业走向没落之前你抓到的那最后一捧米。

练习:

(1)你的价值僵固是什么?在你完全不知情的情况下,哪些价值观在引领着你日常的行动。
(2)了解你的敌人——找出你最讨厌的技术,并用它来完成一个项目。
选择一个简单的项目,尝试用你讨厌的技术制作一个出色的应用程序。

51. 避免瀑布型职业计划

敏捷开发方式主张改变应该成为软件开发的一部分,且以节省开支和提高效率为基准,随时进行调整改变。

每当我遇到复杂的问题时,以一种容许反复改变的方式来解决问题会减轻压力,使我的工作更具效率。

非常重要的一点是,职业的改变不仅是有可能的,并且是非常必要的。你的职业道路也是一样的,树立远大的目标,但是要在实现目标的道路上,根据情况不断进行更正。从实践中学习,不断改变你的目标。

52. 每天有进步

正是因为问题的复杂性,在重大的问题面前,我们很容易就失去了动力,转而去关注那些容易衡量和解决的问题。这就是为什么我们经常延误了问题的解决时间,而这种拖延又导致了我们的内疚,这让我们感觉糟透了,结果就是再继续拖延。

秘密就在于无论你要改进的是什么,注意今天与昨天相比,是不是取得了进步。这样就能够充满激情地向着遥远的目标迈出真实的看得见的脚步。

远大的目标会使人丧失动力。所以,对于努力实现那些远大又有难度的目标,非常重要的一点就是不要总想着每天都要离最终目标近一些,而是应该想每天要比前一天做得更好。

通过持续可见的进步,我不再感到内疚也不再拖延时间。而内疚和拖延时间正是我们战胜重大困难的因素。
即使是一点儿小进步,你也应该感到高兴。小的改进会降低失败所要付出的代价。

最棒的是,这条箴言可以应用于非常具体的目标,比如完成一个项目或者更改软件。它也可以应用于非常高水平的目标。在改善职业发展的道路上,你今天是如何比昨天做得更好的呢?

如果在改善自己的道路上,每一天都比昨天多做出一点改变,你就会发现——拥有卓越的职业生涯——这个目标变得越来越容易达成,而不再像汪洋大海一样没有边际。

练习:

列出你想要做的复杂困难的改善——可以是个人问题也可以是职业问题。思考这个列表上的每一项,想想你今天能做点什么可以使你自己或者这项问题比昨天有些改善。明天,再看一遍这个列表。昨天和前天相比,你有什么进步?怎样做能使今天比昨天更进一步呢?

把这项工作安排到你的行程表中。每天早上用两分钟的时间来思考。

53. 独立

在大公司里,一个聪明的员工可以什么都不做,却依然能在公司里生存下去。大多数情况下,如果项目没有完成,由于中间经手的管理组织架构和人过多,根本无法找到问题到底出在哪里。

问题是,尽管公司的层层组织架构降低了运营风险,却也因此降低了工作效率。

解决方法是什么?学着独立!

你有技术,并且是经过自己不断磨练的技术。你知道自己的价值是什么。成为一名独立承包人是最终考验的一部分。没有任何组织结构可以成为你的庇护。你要直接对付你薪水的人负责。你所做的任何一件事都直接反映在你的工作业绩中。如果你犯错误了,没有任何人和你一起承担责任。只有你自己,你的专业和你的执行能力。

独立不是件简单的事情。这把你所有的技术作为一个专业来测试。现在你可能还没有做好准备。但你也没有必要做足这一切。把它当做是个人发展项目,在业余时间去推销自己。

另一种学着独立的方法。从大公司换个小公司工作,从一个老企业里换到新成立的公司。

全书完。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式编程笔记 嵌入式系统是指具有特定功能的计算机系统,它通常是由一个或多个微处理器或微控制器、存储器、输入/输出接口和其他硬件和软件组成的。因此,嵌入式编程是一种对这些嵌入式系统进行编程的技术,它可以实现系统的特定功能,如控制、通信、计算、监测等。以下是嵌入式编程中的几个重要概念与技术: 1. 硬件接口编程 嵌入式系统的硬件接口通常包括外设接口、存储器接口、时钟和中断控制器等。在编写程序时,必须了解这些硬件接口的相关知识,并使用相应的编程语言和工具进行编程。 2. 软件开发工具 软件开发工具是嵌入式编程中不可或缺的工具,它们包括编译器、调试器、仿真器和下载器等。其中,编译器能够将程序源代码转换为可执行的二进制文件;调试器和仿真器可以帮助开发人员调试程序的错误和问题;下载器能够将程序下载到嵌入式系统中运行。 3. 系统架构设计 在进行嵌入式编程之前,必须进行系统架构设计,选择适当的硬件和软件平台,并确定系统的功能需求和设计目标。这需要具备深入的硬件和软件知识,并采用一种系统工程方法。 4. 实时操作系统 实时操作系统是嵌入式系统中常用的一种操作系统,它具有实时性、可靠性和可扩展性等优点。在嵌入式编程中,使用实时操作系统可以简化编程工作,提高系统性能和可靠性。 总之,嵌入式编程是一项非常复杂和技术含量高的工作,需要丰富的硬件和软件知识和经验。开发人员应该不断学习新的技术和工具,以提高自己的技能和能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值