精明的程序员——重复的工作

精明的程序员——重复的工作

什么样的工作是一份好工作?

虽然还在读书,距离工作还很遥远,但是经常会思考这个问题。

偶然间看到一个视频,是白岩松在江西的一所大学的演讲。白谈到一个观点,大概内容是这样的:

一个清洁工,一个比尔盖茨,为什么这两个人的工作挣的钱差别就那么多?并非人与人之间的地位就有差别,工作也没有高低之分。根本原因在于你要在一个领域有自己的不可替代性。说白了,就是做同一件事,没有你就是不行。

我一直很赞同这个这个观点,是的,清洁工和大老板之间的地位没有差别。然而,可以胜任清洁工作的人实在太多了,只要手脚健全基本就没问题了,但是老板的职位却并非如此好当的。虽然也有很多其他的原因(比如运气成分)决定着一个人的薪酬水平,不过我还是很喜欢这个观点的,因为它使人朝着领域专家的方向去努力,而非成天去抱怨怀才不遇。

但是,我渐渐开始不太满意这样的结论了。不错,一个领域的专家,有着很强的不可替代性,但是一份工作是否真的能够使你满意呢?薪水是很重要的成分之一,但并非全部。工作可以让你养家糊口,但它带给你的乐趣更为重要些。

我想说的,不是如何选择自己喜欢的行业的问题,而是如何爱上你现在的职业。因为很多人都是在高考填报志愿的时候就已经注定他是个程序员(或者其他职业)了,少数人会选择转行,但是会遇到很大的挑战。我们高考的年龄还比较小,所以“爱一行而干一行”的人很少,反而“干一行而爱上这一行”才是解决问题比较好的态度。

我觉得,一份工作,是否会让你长时间持续对它充满兴趣,关键是看它的重复性。如果重复性越高,你将会很快对它失去兴趣;反之,如果一份工作中充满了创新和挑战,那么你对它的兴趣会保持比较长的时间。

本科认识一个学长,他的成绩非常优秀,能力也出类拔萃,如果说一个年级要评出一个大牛那比然是他。那时他刚刚博士毕业,并且果断地选择留校。我当时问他为什么留校而不选择去企业挣更多的钱。他答道:“在学校可以做自己想做的事情。”没错,就是这个简单的理由。我看到那个实验室很多有意思的创新,小玩意,新点子,在嵌入式领域或者人工智能领域有一些都是前所未有的创意,那全是出自他手,这样的工作真的很有意思。再想想我的那些本科毕业就去企业工作的同学们,工资都是比较体面的,但是很多人都是做一些边缘的工作。常常有同学跟我抱怨说当初读研多好,现在天天写脚本跑测试,真没有意思。我想,这也是多数人愿意去做研发,而少数人才愿去做测试的原因吧。(测试很重要,请勿有偏见)

做测试已经很不错了。我们经常会看到不少重复性及其高的职业。比如车间工人,公交司机,或者售票员,再或者邮局银行等前台服务员,他们工作了几年甚至十几年,对同一个动作重复了无数次。我觉得这样的毫无变化的重复会让人变得无趣,失去活力,没有创新,它消磨着人的灵性。(额。。。说的太严重了,但是我想不出更好的词语来表达)所以我见到的以上行业的人大多都是容易变得暴躁,且常常保持着不耐烦的态度。

在重复的工作里,也是可以寻找创新的,这样的人也很容易从自己的同事中脱颖而出。但是,不同的工作重复性有着天壤之别,人们又很容易被自己的工作性质所局限起来。对于那些正在决定找一份什么样的工作的人们来说,我的想法可以稍作参考。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
智能陷阱 智能陷阱 Netfilx去年推出了⼀部纪录⽚《智能陷阱 The Social Dilemma》,⽬前⾖瓣评分8.6分。 纪录⽚采访了众多互联⽹龙头⾏业的前⾼管或者核⼼技术⼈员,有位受访者为此和律师周旋了 ⼋个⽉。 他们⽆⼀例外都对互联⽹和社交媒体的发展感到担⼼和忧虑。 设计的初衷:获得注意⼒ ⼏乎我认识的所有⽗母都为孩⼦使⽤⼿机的问题头疼过。 可是除了说意志⼒不够不能控制⾃⼰外,有没有想过这种令⼈"上瘾"的感觉从哪⾥来? ⼈道技术中⼼创始⼈Tristan Harris总结技术公司每天都在做这三件事 技术公司每天都在做这三件事: 推荐⾜够多的视频和内容,保证⽤户滑动屏幕,花在⼿机软件⾥的时间更久⼀点。 策划不同的活动,吸引新的⽤户,同时让⽼⽤户邀请更多的朋友,实现⽤户的增长。 最后,有了⾜够的数据,就可以在⼴告上赚钱,⼤到开屏的⼴告,⼩到每个⽤户的精准⼴告投 放,还有⾃⼰的⼴告。 同时,纪录⽚还提到了⼀门所有的硅⾕⼈才都上过的课:劝服性技术,它就像是互联⽹时代的 魔术教程。 让⽤户在还没有意识到在做什么的时候,他们已经能引诱⽤户接下来的动作了。 什么意思呢? ⼤多数⼿机软件刷新⽅式是相似的,往下拉,最上⾯就是新的内容。再往下再刷新,⼜是新 的,每次都是,这在⼼理学上称为"正积极强化"。 Tristan形容道,就像赌城⾥的⽼虎机。 看起来出现什么是偶然的,你过去按⼀下就会有东西出来,但你不知道会是什么。 实际上,这些都是设计好的⼿段。 所有的受访者也都表⽰⾃⼰作为⼀个设计⼈员和程序员,即使知道背后运作的所有原理,也还 是会忍不住每20分钟拿起⼿机看⼀看。 计算机的处理能⼒从20世纪60年代⾄今增长了万亿倍,我们⾝边没有任何东西的创造翻新速率 能够与之相⽐。 我们的⼤脑,我们的⽣理机制也已经很久没有进化了,⼈们会被⼿机深深吸引住是⼀件再正常 不过的事情,因为它就是奔着我们的注意⼒⽽来。 令⼈"着迷"的社交 你⼏乎能在所有的⼿机软件上看到社交的影⼦,⽆论这款⼿机软件初始设计的功能是什么,它 最后都会添加上社交、交友、评论的功能。 不可否认这是⼀个贴⼼的设计,让我们可以交流⼼声,听到更多的声⾳和意见。 但同时它也是在利⽤⼈的社交本能。 斯坦福⼤学的Anna Lembke教授解释道,和别⼈联系,直接影响着奖赏通路中的多巴胺释放。 这是我们⼏百年来进化的机制,我们需要通过联系形成群居,建⽴关系。 社交媒体的出现优化了⼈与⼈之间的联系,这种联系不断地刺激着我们去刺激我们的多巴胺释 放。 同时,Anna教授也表⽰即便⾃⼰拥有再多的理论和经验,也还是和我们普通⽗母⼀样,每天在 提醒孩⼦们愉悦和痛苦的平衡,多巴胺短缺的状态和⼿机上瘾的风险。 这种⽆处可逃的社交媒体也让⼤多数⼈变得更在意别⼈的看法。 毫⽆疑问,我们是需要在意别⼈看法的,但是我们需要在意⼀万个⼈怎么看我们的吗? 需要每隔五分钟就获得⼀次社交认可吗? 社交媒体上的爱⼼、点赞、⼤拇指出现,最初是为了传播爱设定的,但很多⼈因此变得把⾃⼰ 的⽣活建⽴在获得完美感上。 ⽆法再公平地看待⾃⼰和他⼈,最终导致了⼼态的失衡。 除了被分散的注意⼒,还有这两个问题 2011年2013年⾥⼀个增长数据的出现,引起了所有研究⼈员注意。 每10万名少⼥中每年因为割腕或者⾃残进医院接受治疗的数据,在2011年前都是处于平稳的状 态。 在那之后,直线上升。 年龄再⼤⼀点的⼥孩,增加了62%。进⼊青春期后的⼈数增加了189%⼏乎是以前的三倍之多。 更可怕的是,⾃杀的⼈数也呈现出相同的趋势。 0-14岁的⼥孩,最开始的⽐率⾮常低,现在增加了151%。 15-19岁⾃杀的⼥孩与本世纪初相⽐增加了70%。 这个增加点指向了社交媒体,那些第⼀代从初中就开始使⽤社交媒体的孩⼦们。 这个增加点指向了社交媒体,那些第⼀代从初中就开始使⽤社交媒体的孩⼦们。 除此以外,很多⽗母是不是会有这样⼀种感觉,孩⼦花在⼿机上的时间越多越难沟通,是不是 在⽹上学坏了? YouTube前⼯程师Guillaume Chaslot,视频推荐算法的设计⼈员之⼀。 他表⽰所有我们看到的相关视频、感兴趣的内容,靠的都是算法推荐,但这算法并不如我们想 象得那么友好。 它是在⼏个兔⼦洞当中,找到哪⼀个兔⼦洞最贴近你的兴趣。然后,当你开始观看其中⼀个视 频,它就会不停地给你推荐下⼀个。 这个做法⼤⼤地增加了⼈们观看视频在线的时间,但与此同时也让所有的观点⾯临前所未有的 分化局⾯。 推荐视频的算法让每个⼈都在重复看同⼀个观点,在观看的过程中不断地强化⾃⼰的观点,给 ⼈⼀种全世界都和⾃⼰⼀样的感觉。 但是当我们打开⾃⼰朋友,或者⾝边⼈的抖⾳就会发现,各⾃的推荐内容差别是很⼤的。 互联⽹的出现让⼤家陷⼊了⾃⼰的"兔⼦洞"当中,不同的声⾳和意见越来越难听得见,也
重构(名词):对软件内部结构的一种调整,目的是在不改变"软件之可察行为"前提下,提高其可理解性,降低其修改成本.重构(动词):使用一系列重构准则(手法),在不改变"软件之可察行为"前提下,调整其结构. 两种定义都强调是在不改变"软件的外部行为"前提下,不改变"软件之可察行为"就是说让修改不影响外部使用程序(程序员),在个外部来看,程序的行为和结果没有任何的变化.重构只是对程序内部结构进行调整,让代码更加容易理解,然后更容易维护. 本书清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。 章节列表如下: 目录 第1章 重构,第一个案例1 1.1 起点1 1.2 重构的第一步7 1.3 分解并重组statement()8 1.4 运用多态取代与价格相关的条件逻辑34 1.5 结语52 第2章 重构原则53 2.1 何谓重构53 2.2 为何重构55 2.3 何时重构57 2.4 怎么对经理说60 2.5 重构的难题62 2.6 重构与设计66 2.7 重构与性能69 2.8 重构起源何处71 第3章 代码的坏味道75 3.1 DuplicatedCode(重复代码)76 3.2 LongMethod(过长函数)76 3.3 LargeClass(过大的类)78 3.4 LongParameterList(过长参数列)78 3.5 DivergentChange(发散式变化)79 3.6 ShotgunSurgery(霰弹式修改)80 3.7 FeatureEnvy(依恋情结)80 3.8 DataClumps(数据泥团)81 3.9 PrimitiveObsession(基本类型偏执)81 3.10 SwitchStatements(switch惊悚现身)82 3.11 ParallelInheritanceHierarchies(平行继承体系)83 3.12 LazyClass(冗赘类)83 3.13 SpeculativeGenerality(夸夸其谈未来性)83 3.14 TemporaryField(令人迷惑的暂时字段)84 3.15 MessageChains(过度耦合的消息链)84 3.16 MiddleMan(中间人)85 3.17 InappropriateIntimacy(狎昵关系)85 3.18 AlternativeClasseswithDifferentInterfaces(异曲同工的类)85 3.19 IncompleteLibraryClass(不完美的库类)86 3.20 DataClass(纯稚的数据类)86 3.21 RefusedBequest(被拒绝的遗赠)87 3.22 Comments(过多的注释)87 第4章 构筑测试体系89 4.1 自测试代码的价值89 4.2 JUnit测试框架91 4.3 添加更多测试97 第5章 重构列表103 5.1 重构的记录格式103 5.2 寻找引用点105 5.3 这些重构手法有多成熟106 第6章 重新组织函数109 6.1 ExtractMethod(提炼函数)110 6.2 InlineMethod(内联函数)117 6.3 InlineTemp(内联临时变量)119 6.4 ReplaceTempwithQuery(以查询取代临时变量)120 6.5 IntroduceExplainingVariable(引入解释性变量)124 6.6 SplitTemporaryVariable(分解临时变量)128 6.7 RemoveAssignmentstoParameters(移除对参数的赋值)131 6.8 ReplaceMethodwithMethodObject(以函数对象取代函数)135 6.9 SubstituteAlgorithm(替换算法)139 第7章 在对象之间搬移特性141 7.1 MoveMethod(搬移函数)142 7.2 MoveField(搬移字段)146 7.3 ExtractClass(提炼类)149 7.4 InlineClass(将类内联化)154 7.5 HideDelegate(隐藏“委托关系”)157 7.6 RemoveMiddleMan(移除中间人)160 7.7 IntroduceForeignMethod(引入外加函数)162 7.8 IntroduceLocalExtension(引入本地扩展)164 第8章 重新组织数据169 8.1 SelfEncapsulateField(自封装字段)171 8.2 ReplaceDataValuewithObject(以对象取代数据值)175 8.3 ChangeValuetoReferen

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值