0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员怎样成为技术达人

工程师人生 来源:网络整理 作者:工程师吴畏 2018-11-12 11:53 次阅读

作为程序员,身边总是有牛逼的前辈、后辈或者同辈。牛逼的人总是让人羡慕。比如自己苦搞一天的 BUG ,头发快抓掉完了,人家扫上两眼,改一行代码,问题就解决了;比如自己干了十年开发,薪水还不到 10K ,人家才毕业就签了 16K 的合同;比如我要天天辛苦加班工作还干不完,人家嘛事儿不干每天就喝喝咖啡,结果写出来的软件居然比我的稳定多了好用多了。这样的事情太多太多,怎么办?

陈胜起义时说:王侯将相宁有种乎!

作为程序员,面对牛逼的同类,其实我们也可以愤而追之:大丈夫当如是也!

有梦想有追求总是好的,关键是,如何才能牛逼起来耶?

程序员的分类

早上翻看陆其明陆老师翻译的Jeff Atwood的书《高效能程序员的修炼》,里面有一篇文章,名字是《程序员的八种境界》,讲得很好,受益匪浅。不过我打算从另外一个角度为程序员分一分类。

来自古老的儒家经典《论语》的说法:

生而知之者,上也;

学而知之者,次也;

困而学之,又其次也;

困而不学,民斯为下矣。

博主鲁钝,不知道谁能生而知之,我本人是困而学之,而后学而知之。一切从自我出发,窃以为困而学之、学而知之这两类,都可以牛逼起来。有兴趣的话,可以评估一下自己是哪种类型的。

10000个小时法则

迈阿密大学的 AndersEricsson 教授写过一篇论文——《有目的的训练在专业人才培养中的作用》(The Role of Deliberate Practice in the Acquisition of Expert Performance),介绍了他在研究“最好的音乐家”有什么共同点时的发现:卓越的音乐家的练琴时间,没有一个人小于 10000 小时。

2008 年,畅销书作家 Malcolm Gladwell ,将这篇论文写进了他的新书《异类:成功人士的故事》(Outliers: The Story of Success)。

Malcolm Gladwell 概念化了原始论文的结论,宣称存在一个“ 10000 小时法则”(10000 hour rule),即成功至少需要 10000 个小时的投入。

你造吗,这本书出版后,成为《纽约时报》畅销书排行榜的第一名。

10000 个小时法则背后的思想是:真正决定一个人成就的,不是天分,也不是运气,而是严格的自律和高强度的付出。

看到这里你可能以为博主扯淡又扯远了……其实不是的,刚开始而已,真正扯的在下面。

我想很多人看过古龙大师的《边城浪子》,里面的主角是傅红雪,傅红雪的绝技是拔刀术。我靠,简单吧。苍白的手,漆黑的刀,刀过人亡,血还没见着刀又还鞘了。这就是傅红雪的拔刀、收刀之术,关键在一“快”字。天下武功,唯快不破。傅红雪的刀,已超越了速度的极限。

可是你造吗,傅红雪是癫痫症患者,资质也仅仅是中等,比起叶开,那是差了一大截,比到处留情的楚香帅,也差了一大截。关键是,傅红雪永远看着都那么苦逼:在苍茫的关外,握着刀,拖着腿,背负着于己无关的血海深仇,在“一入万马堂,刀断刃,人断肠”的歌声里寻觅不是仇人的仇人。

这下扯大发了,其实我想说的是,捡来的孩子傅红雪,资质平庸又身有残疾,结果却炼成了举世无双的刀法,其秘诀非常之简单,卖油翁一言概之:无他,惟手熟尔。要知道,傅红雪被不是妈妈的妈妈每天逼着练一本残缺到只有拔刀式的白家刀法,苦逼地每天拔刀两千次以上,拔了十几年,你试试,要是你拔刀拔十几年,不疯掉的话肯定也能炼成个无影刀什么的。

傅红雪是另一个 10000 小时法则的实例。

我很喜欢狄龙的扮相,钟大帅哥嘛……

爱是众妙之门

我在前面介绍了“ 10000 小时法则”,当然那只是一个必要条件,不是充分条件。我以为要想让 10000 小时法则有效,还有一个条件。

安·兰德说过:

为了将事情做好,首先你得喜欢做这件事,而不是喜欢这件事情的结果,那仅仅是第二位。

想牛逼的程序员,不能仅仅盯着一个项目干完后的奖金吧,也不能老想着忙过这阵子就可以休息了吧,也不能盼着应用能 Run 就交差了吧……也不能老想着我学了 Scala 就能拿到 20K 的薪水吧……

牛逼的程序员很多是酱紫的:喜欢干,干得牛逼了,收益来了,机会多了。

要说你不喜欢一件事情,有时被逼着也能胜任,但要说你讨厌一件事又能干得出类拔萃,那我不相信,最好你也别让我相信——我怀疑你早晚有一天会人格分裂。

伟大的科学家爱因斯坦(晚年研究神学)说过:“兴趣是最好的老师。”这就是说,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验,而这种愉快的情绪和体验反过来又会促使他继续去求知、探索、实践。这样就产生了良性循环。“成为达人”的欲求就会推动着你不断前行。

你爱编程,享受做设计、写代码、解决问题的过程,再遵循 10000 小时法则,那你想不牛逼都难啊。

牛逼的方法论

前面是开胃酸汤,现在到正题了,我们来聊聊一个程序员,要如何才能一步一步慢慢牛逼起来。

编码

毫无疑问,你必须得编码,持续不断地编码,要达到一定的量。

量变会引起质变,但不是必然。

持续编码的结果有两个,一个是达到质变,水平不断提升;一个是重复重复再重复最终麻木。

要哪个?

回顾与思考

要想质变与提升,必须有目的地停下编码!

只编码,不走心,那是万万不行的。不走心的程序员很多,干多少年了水平还和初干时差不多,十年如一日。走心就不一样,走心一日如十年。

我们要周期性的回顾自己,看看以前的代码,分析下现在的设计,看看哪些可以改善,有多少种改善思路……这样就能看出以前的自己与现在的自己这两者之间的差距。如果你觉得自己以前的代码是翔,那恭喜你,你绝对提升了不少。

要回顾以前,还要分析现在。程序员还要经常梳理一下自己的状态,看看我现在都掌握了什么技能,在哪些方向和领域有所成就,再加上对过去的回顾,看看哪些是延续性的前进,哪些是无心插柳,哪些是冤枉路,哪些是意外之喜。这样就会对自己的能力边界有所了解,知道自己知道什么,也知道自己不知道什么,更重要的是,你会发现自己能把什么东西学好用好,还能发现自己为什么可以把这些东西学好,那样你就可以找到自己擅长的方向,做得更好。

回顾了以前,分析了现在,还要想想将来。在技术上,我要在哪些方向继续前行深入挖掘?这点非常重要。我们伫立现在,回首过去,仰望未来,这是上山的姿势啊。哈哈,上山好啊,值得期待的只有前方。

有人说上到山顶就只有下山喽……那,这也是真的,不过,顾城有首诗《避免》可以看看:

你说

你不爱种花

因为害怕看见花一片片的凋落

所以

为了避免一切的结束

你拒绝了所有的开始

作为有追求的程序员,我们不必这样担心吧。只管积累我们的 10000 小时去,只管思考如何有效地利用这 10000 小时去,不但过程是美丽的,将来也会是美丽的。

多学一点点

台上一分钟,台下十年功。那些牛逼的程序员,无一不是付出了比普通程序员更多的精力。

我们在开发时,会接触各种各样的新技术。有时因为项目时间原因,很多技术只能是走马观花的用,解决问题为目的,项目结束了可能就扔一边儿去了。但要想让自己有更大的成长,那我们就应该学多一点,用一分学两分,广里一分,深里一分,不能不求甚解一带而过。对于用过的技术,最好在当时,项目的间隙或者项目结束时,抽时间了解它的背景、长处、机理,让自己对用到的技术都有相当程度的了解。惟其如此,我们的知识面和技术深度,才会随着开发经验而不断递进。

实践新技术

选择或者学习一门新的技术,必须要实践。可以把它应用到工作中的项目,如果工作条件限制,那也要自己定义一个自己喜欢的项目,坚持使用你的新技术做下来。唯有实践,你的新技术才能理解得更为深刻。

知道有那么一门技术,与实际使用过,其间的差异可不止一点。

沟通

很多人觉得程序员比较难沟通,说程序员不会好好说话……你觉得呢?

我想说的是:要想成为牛逼的程序员,沟通一定要过硬!

程序员是干嘛的?不是写代码的,而是解决问题的。

解决问题才是程序员的职责。

要解决问题,离不开沟通。

客户会找你,市场会找你,产品经理会找你,UI设计师会找你,开发同事会找你,测试妹妹会找你,老板也会找你,女盆友会因为你的投入与执着爱上你也会在爱上你后因为这些而不断与你争执……

哪一样离得开沟通呢?

当然我不是说程序员要像销售、市场、营销等等岗位的兄弟姐妹们一样妙语生花,其实沟通最重要的是能听懂别人说什么,能把你想说的以对方能理解的方式说出来。至于是妙语连珠还是磕磕绊绊,是语言沟通、眼神沟通还是书面沟通,只要达到目的即可。

有人说我天生不爱说话,跟机器打交道才觉得踏实。其实这没关系,你要找到自己的沟通方式,看怎样才能让别人理解,也调整自己的聆听和理解方式,看怎样才能理解别人说的话。

怎样才能让别人正确理解你的话,怎样你才能正确听懂别人的话,这都需要不断的学习、练习,这方面有很多的书啊视频啊,可供参考。这没什么不好意思的啊,我认识一些朋友,觉得学习说话技巧是很不好意思的一件事儿,好像这样做就说明自己心怀鬼胎就多丢人似的。其实不必,我们的目的不是巧舌如簧地骗取别人的信任然后来谋取利益,我们的目的很简单,就是让别人理解我们也让自己理解别人。

理解沟通模型

沟通这事儿真是一门学问,虽然我在这方面一向鲁钝,还是想以我们程序员的方式,打个比方来说明一下沟通模型。

首先每个人心里都有一个 TCP Server ,监听到某个端口上,等待陌生人或者熟人或者半生不熟的人来访问。

其次呢,不同的人对自己的端口是否开放持不同的态度,OPEN的人就会监听到知名端口,比如80、21、7、13、22、23等等,这样别人就知道我们找这个 OPEN 的家伙说事儿该连接哪个端口。当然,只开放端口还不够,灵慧的人还会慢慢把自己的协议 SHOW 给别人,这样想找他聊天的人就可以遵循这个协议来说,事情就容易多了,双方就都能理解。

还有一些人呢,比较内敛,虽然内心很饥渴,希望别人找自己聊聊天谈谈心,可是不知道怎么把自己的端口开放给别人,或者出于某种原因隐藏了端口。比如他本来是监听到 21 端口上,走 FTP 协议,因为被别人通过端口扫描的方式黑了两次受了点不大不小的伤害,就小心地封掉了 21 端口,把自己的服务挪到了其它端口上,并且也不告诉别人。这就出问题了,别人找不到端口号,怎么和你沟通咧……

还有一些人呢,自己也不知道该监听到哪个端口上,不能有意识的训练自己,今天是 21 ,明天就 80 ,后天又走 37 了,结果不但自己混乱,跟他打交道的兄弟姐妹们也混乱:昨天这么说还挺融洽,今天再这么说他居然翻脸了呢!

这是我们每个人内心的 TCP Server 。其实每个人还有一个 UDP Server ,是为那些夹生的人或者拥有特别标签的人准备的。你可以知道我的 UDP 端口,但是你发消息过来我就不一定搭理你,被拆穿了我还可以说 UDP 协议不可靠,我没收到……。这两个 Server 就是我们每个人身上基本的沟通模型。

最后呢,如果你要想向别人说明你的意图并让别人按你的意图去做某件事,那就要花费精力去研究如何找到对方监听的端口、使用的协议。和 OPEN 的人沟通比较容易,访问 80 端口,走 HTTP 就行了,或者夜半三更翻蔷过去幽会也能成。而针对那些隐藏了端口和协议的,就要启用端口扫描这种神器,扫到端口,再抓包分析协议,成功的可能性总是有的,只不过费些力气罢了。

用这种模型来解释现实生活中的沟通问题,程序员们就可以释然了:啊哈,原来我给他说的事儿他老不反应,是搞错了端口或者走错了协议。

表达自己

理解了沟通模型,找到了对方的端口和协议,还有一个问题需要解决:你怎么准确地表达你的意图。

对于相当一部分程序员,这是个难题。有的人本身就寡言少语(我是这类的);有的人很厉害,与别人说话时脑子转得比别人快几倍,脑子里转的是长长的带上下文的句子,从嘴里出来后就成了嘎嘣脆的词语,还以为自己说过了别人都能理解;有的人写代码一二三四条理清楚,说话时就比较发散,正说股票呢忽然就转到APEC蓝上了;有的人比较羞涩,大男人说话却声若蚊蝇……总之各类情况都有,你见到的绝对比想到的多。

不管你属于哪一类,要想能顺畅地与人沟通,先要训练自己,让自己可以准确地表达。

我是不会表达的人呢,你看我洋洋洒洒长文千字,其实我不大会说话。不过我要说的是:如果你说不好,那就想办法先写好。

“写”这个事情,比说更容易让人条理清楚,因为写这个过程时间相对宽松,上下文简单,不像与人沟通那样你来我往还要时刻注意话外音整个过程比较复杂。所以,写,是一个很好的锻炼自我表达的手段。写作能训练你表达的准确度。

你可以通过写博客,写日志等等手段,把自己的想法表达出来。然后呢,过一段时间,你能通过写作来表达自己的了,再回头来影响说话,你把嘴上说的当作纸上写的,多练习练习,就能准确的表达自己的意图了。你看人家领导人讲话还需要先打打草稿呢不是,更甚之的还有念稿子的。

找到你的小伙伴

程序员干的是技术活,找到一个谈得来的小伙伴很重要,可以相互促进,消除登顶路上的寂寞。

胡一刀和苗人凤就是好伙伴,两人经常切磋,水平都很高。

可能你需要在不同的阶段找不同的伙伴,最好是找某方面比你牛的人一起研究技术,这样可以学到东西。

或曰:牛人为毛要搭理我撒……

“在你所有的能耐中,至少应该有一样是拿得出手的。不会做很多事情并不可怕,可怕的是没有一件事情能做好。”

要培养自己在某方面的长处,这样就可以互补喽。

其实有相当一部分程序员离职的一个原因是:在这个公司真的太寂寞了,都找不到一个可以讨论技术相互促进的人!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3591

    浏览量

    93592
  • 程序员
    +关注

    关注

    4

    文章

    949

    浏览量

    29761
收藏 人收藏

    评论

    相关推荐

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 109次阅读

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置有岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 156次阅读

    京东上万程序员都AI用它!

    对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自动驾驶”模式,不但减少人工接入、提高工作效率,更为企业抵御内外部各种攻击构建起一道坚固的安全屏障,确保业务的连续性和稳定性。 JoyCoder是京东云自主研发的一款辅助开发人员
    的头像 发表于 07-17 16:29 225次阅读
    京东上万<b class='flag-5'>程序员</b>都AI用它!

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    助力程序员告别困扰已久的梦魇-Bug

    程序员的噩梦是什么?不用怀疑,就是让你加班到崩溃的Bug!下面是经过业界大佬们“长期加班”积累的小妙招,助力你离早下班又进一步~一、定位Bug范围及性质要有效解决问题,首先要缩小范围,集中关注最近
    的头像 发表于 07-02 08:10 270次阅读
    助力<b class='flag-5'>程序员</b>告别困扰已久的梦魇-Bug

    大模型时代,程序员当下如何应对 AI 的挑战

    随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。 通用领域大模型的“泛化能力” 在过去的二十年内,AI 领域的大部分研究
    的头像 发表于 06-28 16:19 502次阅读
    大模型时代,<b class='flag-5'>程序员</b>当下如何应对 AI 的挑战

    阿里云发布首个AI程序员,引领应用开发进入“分钟级”时代

    近日,在备受瞩目的阿里云上海AI峰会上,阿里云向全球开发者们展示了其最新的技术成果——首个“AI程序员”。这款创新应用基于通义大模型构建,具备了令人惊叹的多项技能,包括架构师、开发工程师、测试工程师等,为软件开发行业带来了革命性的变化。
    的头像 发表于 06-24 10:36 618次阅读

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 388次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 782次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13

    诚邀报名 | GPT驱动的新程序员时代,开发者如何编程?

    模式,开发者们迎来了编程范式的全新变革。传统的编程不再局限于编写线性代码和优化逻辑,自然语言取而代之,成为了编程的新工具,这大大降低了开发的门槛。 如今,以ChatGPT、Copilot等为代表的AI工具,将全球的知识库和代码库都呈现在用户面前,只要有足够的想象力,每个人都可以
    的头像 发表于 12-11 22:20 514次阅读