有关程序员的七条人生建议
1、重视底层基础能力
总理今年在记者会上谈起基础研究问题时说到 " 不管你将来从事什么职业,有什么样的志向,一定要注意加强基础知识的学习,打牢基本功和培育创新能力是并行不悖的"。这句话在 IT 行业尤其适用, 不管是不是科班出身,每一个程序员都应该花时间了解和学习计算机科学相关的基础知识。
你是不是也曾觉得数据结构和算法,跟操作系统、计算机网络一样,是脱离实际工作的知识?可能除了面试,这辈子也用不着?我曾经也这么想过,因为在未真正走出社会之前,思想一直处于封闭的状态。后来阅读了很多别人写的文章,才猛然发现这种想法是错误的。
我举一个大多数学生都会经历的一个例子,校招的时候,参加面试的学生通常没有实际项目经验,公司只能考察他们的基础知识是否牢固。社招就更不用说了,越是厉害的公司,越是注重考察数据结构与算法这类基础知识。相比短期能力,他们更看中你的长期潜力。
近几年很多公司发展得异常的迅猛,以字节跳动为例,更是时不时开放大量hc,有的热门岗位缺人,招实习生不要求有任何的技能,进去直接一对一有导师帮你带你,招聘需求只有一个,有扎实的计算机基础。
再举一个小争哥在《数据结构与算法之美》中谈到过的一个例子。一个腾讯 T4 的技术大牛,在区块链大潮之前,他在腾讯工作了 10 多年,长期负责手机 QQ 后台整体建设。他经历了手机 QQ 从诞生到亿级用户在线的整个过程。后来他去了微众银行,有一天老板让他去做区块链。他用了不到半年时间,就把区块链的整个技术脉络摸清楚了。现在,他是微众银行的区块链负责人,微众科技创新产品部的老总。你说厉害不?你可以花半年时间就能精通一个新的领域吗?为什么他就可以做到?
最重要的就是基础足够扎实。他曾经跟我说,像区块链、人工智能这些看似很新的技术,其实一点儿都不“新”。最初学编程的时候,他就把那些基础的知识都学透了。当面临行业变动、新技术更迭的时候,他不断发现,那些所谓的新技术,核心和本质的东西其实就是当初学的那些知识。掌握了这个“规律”之后,他学任何东西都很快,任何新技术都能快速迎头赶上。这就是他快速学习并且获得成功的秘诀。
基础知识就像是一座大楼的地基,它决定了我们的技术高度,而要想快速做出点事情,前提条件一定是基础能力过硬,“内功”到位。在这一点结束再送给大家一句很扎心,同时也很现实的话:“技术宽度决定了你是否能够进入一家公司,技术深度这决定了你offer的等级”,这也就不难解释了为什么我们的同学能找到工作,但薪资却不是很高的原因了。所以,同学们,请务必重视底层基础能力!!!
2、学会打造自己的知识体系
大数据发展至今,早已不是一个新兴的词语,大数据的应用已经无处不在。
在学校学习的时候,我眼中的大数据仅仅只是对“大数据生态圈”中的一些常用组件的理解和使用,对于“大数据”究竟在企业中是如何发挥作用的,也只停留在一些不成熟的“企业项目”上。以前,我知道 Hadoop在广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如 HBase,Hive,Spark,Zookeeper,Kafka,flume… 出来工作之后,随着不断深入的了解,我才发现原来大数据的世界远比我想象中的要精彩。被阿里一手在国内带火的实时流处理引擎 Flink,Fackbook开源的分布式SQL查询引擎 Presto,第一个由国人主导的Apache顶级项目“Kylin”,高性能实时分析数据库 Druid,还有很多Kudu,Iceberg,ClickHouse,Hudi,Cancal 等等就不一一列举了。总之,给我的感觉就是很多技术在不断的迭代更新,你必须保持敏锐的嗅觉,并及时跟进了解学习,才不至于落后太多。
而这么多技术,对于像我这样的初学者,肯定是没法瞬间消化的。那我是如何学习的呢,这里边用到了我小标题所谈到的“学会打造自己的知识体系”。
先来介绍一下什么是“知识体系”?
所谓“知识体系”,指的就是把大量却不同知识点,系统、有序、指向性明确地组合成某种类型的知识架构。
通过这个知识架构,我们可以更好地理解某些问题,解决某些问题。而与之相对的,则是碎片化的知识点。
也就是说,“知识体系”好像蜘蛛网那样,能把不同的知识点,有规则地串联起来,从而塑造出我们看到问题、理解问题的思维模式;就算把其中一些知识忘掉,我们因此拥有的独立思考能力,也得以帮助自己继续工作和生活。而碎片化知识,只能“头疼医头脚痛医脚”那样,一旦脱离具体的应用环境,就毫无用处了。
你可能看到这里还是一头雾水,那是因为我没有告诉你如何落实下来去做这件事情。
比如你想学习数据结构与算法,你就可以在一开始的时候,先明确自己学习的目的是什么,是找为了应付面试,还是只是想单纯提升自己的算法能力,那么你可能在查找各种资料之后,画出了下面这一张图 。
但后面你转念一想,自己作为初学者或者非算法工程师,没必要学习所有的数据结构和算法。在询问了学长学姐如何应对BAT的算法笔试题,决定掌握这个10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。然后有目的,有针对性的去学习,这就是属于你搭建自己知识体系的过程。
当然,建议“知识体系”的这个过程并不简单,一般都需要经历以下六步,这里就不一一展开,想要更加深入了解可以自己去做进一步的了解。
3、将学过的东西忘记,剩下的便是教育的本质
美国教育学家斯金纳曾有过一句名言:我们将学过的东西忘得一干二净时,最后剩下的东西就是教育的本质了。所谓“剩下来的东西”,其实就是自学的能力,更是举一反三或无师自通的能力。
在大学生活中,我们能接受到的教育很少是面向工作,面向就业的。而真正走入社会,走进企业,你会发现很多时候你是无法用所学的那一点知识来解决的。这就需要我们不断的去学习,去试错,去总结。
在大学期间,学习专业知识固然重要,但是最重要的还是学习独立思考的能力,培养“举一反三”的能力。这样,等到你们毕业的时候,方能适应瞬息万变的未来世界。
说个我一直都在做的事情。我特别喜欢用各种各样的“云笔记”软件,尤其是阿里内部一直在使用的“语雀”。我每做完一个项目,都会在语雀创建的知识库下,写一篇项目复盘。包含项目整个流程,自己具体参与了哪些事情,遇到了哪些问题,如何解决了,还有哪些待改进可以优化的地方。这些我都会记录的很详细,一方面是因为我认为及时的复盘能够让我对于这一个阶段自己做的事情能够梳理一遍,脉络更加清晰,在以后需要面试的时候也能够找准复习回顾的地方。另外也可以作为文档,让更多想学习,新加入的小伙伴们快速了解一个项目。
所以大家千万不要仅仅局限于老师所传授的知识。如果你现在闭上眼睛好好想想,自己除了专业课的内容还学到了些什么,如果想不出来,那确实该好好反思一下了。
4、养成阅读的习惯,输出倒逼自己输入
养成阅读的习惯,这点非常重要。我们大多数人的认知实际上非常有限,必须要通过更多的阅读来实现自我认知的提升。现在你可以想象一下,如果把你所知道的所有知识转化成为文章的形式进行输出,我相信不用几十篇文章就可以将你榨干。当然,这里的阅读不是让你去刷抖音,快手这样的“碎片化阅读”来打发时间,而是让你静下心找个安静的地方自己看书。
如果你坚持不下来,我建议你可以也可以通过输出倒逼自己输入的方式,强迫自己不断的学习,充实自己 。
在比较早的时候,给我们讲大数据课程的授课老师建议我们可以把自己所整理的干货笔记放到CSDN博客上,以至于那段时间,很多包括我在内之前从未有过写博客意识的同学们变得异常的积极,天天都在写博客。但随着这一股新鲜劲的过去,很多同学觉得写博客是一件浪费时间的事情,便将自己辛苦经营的“沃土”荒置了。而我应该属于是极少数的那几个人中的一个,认为写博客能够给自己带来长期宝贵的价值,而一直坚持到了现在。现在粉丝早已过万,阅读量已经过两百万,还获取官方大数据领域优质作者,博客专家的认证。如果没有长期写作的毅力,这些是短期是不太可能获得的。
另外,通过不断的输出,在增强自己写作水平,提升认知的同时,也确实帮助到了不少的读者,很多不乏985,211高校的研究生,还有工作了多年想转行,找我咨询建议的朋友。可能我的阅历还不如他们,但是我总是会竭尽自己所能,去帮助他们。
如果你也能做到坚持输出,日积月累,你就会惊喜的发现,自己的阅读理解能力,写作水平都得到了显著的提升,甚至开始有了一点小小的影响力。这个时候,你一定会感谢自己,这是通过阅读写作带给你的一笔无形的财富,谁也拿不走!
5、努力破圈,这个世界本就存在信息差
这个世界本就存在信息差,相信这个观点大部分人都不会认同。有人会想:现在家家都有电脑手机,全世界发生什么事情,我能不第一时间知道!但事实真的是这样吗?在信息爆炸的潮流中,人们眼里的视野会变得更小,出现信息茧房的现象。
信息茧房是指人们关注的信息领域会习惯性地被自己的兴趣所引导,从而将自己的生活桎梏于像蚕茧一般的“茧房”中的现象。
曾有有知乎大V做过一个调查,收集了很多的案例,发现很多人获取外界的信息是通过微信群和抖音......
想想看,这些人的认知,都被微信和抖音里那几个大V框住,煽动你的情绪,给你的怒气充值,这是多可怕的一件事情。
确实,人的精力有限,很多事情他可能压根一辈子都不知道,也可能知道了但没掌握,但机遇一直都在,这跟“你永远赚不到自己认知外的钱”是一个道理。在大时代发展的浪潮里,大部分人看不到大的机会,很少人思考未来,极少人能看穿未来。因为格局不够,只能随波逐流。
信息差可能是认知、消息、资源等,你甚至可以理解就是搁在供给与需求的大山,挡住了彼此需要的人们。
当下信息革命的核心就是减少信息差,例如豆瓣,将对电影、书有共同品味的人汇集到一个平台,让影迷、书迷可以跨越地理、时间的限制,对喜欢的书籍,电影进行讨论。豆瓣没有创造电影、没有创造书,他唯一做的就是降低影迷、书迷交流的阻碍。
例如爱奇艺等视频网站,作为内容发行渠道的,他更好地满足用户观看视频的需求,相比于电视台,他的时间更为自由、能容更为丰富,对用户选择的阻碍更小,能更有效的减少信息传播的阻碍,所以用户可以选择的视频网站会逐渐取代用户只能被动接受的电视台。
类似的例子非常多,说了这么多,只是希望让大家懂的“信息差”的存在不可怕,可怕的是你被“信息差”限制住了思维,认知 。
如何打破“信息差”,我不会在这里详细展开说,但是可以提供几个思路 。
- 多接触不同领域的人
这点非常好理解,就像你现在的身份是一名学生,你日常接触最多的也是学生,老师。在这个阶段,你指望着能从别人哪里获取到更多其他圈子里的消息,不太可靠。你可能需要做的,就是多去认识一些其他圈子里的人,至于通过什么方式,是你该考虑的事情。
- 多尝试不同的角色
这里所说的不同角色,有点照应标题中所说的“破圈”。千万不要把自己仅仅局限在一个身份,认为我现在的角色是一个学生,我的任务就是学习。那我想问,等你的身份切换成“码农”,任务仅仅就是工作,何时才能财富自由?话糙理不糙,我不想展开太多,我直接抛出一个结论,当你真正成为斜杠青年,在不同领域都有所涉猎,你一定会惊讶的发现,打开了一个认知的世界,这里面或许就有你,可以争取到的机遇 。而如果你从不尝试,当某天机遇真的来临,你也只能眼睁睁看着它从你面前飘过,却又无可奈何。
6、积极培养各方面的兴趣爱好,少玩或者不玩游戏
在这个浮躁的社会,充斥着大量的“垃圾信息”,我们要学会过滤掉无用的消息,将有限的时间和精力放在能够带来长期价值的事情上。因此我建议在业余时间,可以积极培养各方面的兴趣爱好,例如我一直热衷的事情:阅读和写作。考虑到互联网工作性质的原因,长期久坐势必会导致身材发福,也建议大家没事的时候多健健身,跑跑步,注重身材的管理。这实际上也是一种变向的自我投资,回报就是让你拥有一个更加健康的身体,和更全面的综合能力。
关于玩游戏,我并不是反对大家去玩,而是不建议,不提倡通过游戏的方式来使自己达到一种放松的状态。我很早之前也会玩游戏,但后面发现游戏带给人的刺激,快感都是临时的,麻木的。跟刷短视频一样,在你稍不注意时收割你宝贵的时间。等时效一过,你就感觉不到充实,甚至会有些许“愧疚感”。因此从未玩过联盟,吃鸡的我,彻底将游戏给戒了。
当把游戏和一些不良的习惯戒除,你可能会惊讶,原来自己有这么多的时间可以利用起来,做自己想做的事情,这本身就很有意义。对于我来说,有了更多的时间看书,有了更多的时间花在写作输出上,有了更多时间去经营自己的社群,与读者粉丝交流,有了更多时间去社交,接触更多优秀的人,向各行各业的前辈们取经 。相信坚持下去,你会对生活充满热情,对未来充满期待,整个人的状态也会变得更积极主动,这是你把时间花在“玩游戏”,“刷短视频”上所收获不到的。
7、越努力,越优秀的人,谦虚好学
从我去年开始做“公众号”,坚持阅读,持续输出开始,我的人脉圈像是打开了一扇巨大的窗户。我有幸结合了很多的公众号号主,也通过文字链接到很多慕名而来的“读者粉丝”。我发现了一个共同的特点,就是越努力,越优秀的人,越谦虚好学。有很多技术号主,文章质量真的特别高,更新也特别勤快,经常凌晨四五点起来写文章。
同样是做技术分享,往往能被不同风格的号主玩出不同的花样:有人立志打造编程技术宇宙,用通过讲故事的方式,通俗易懂的将一个个技术点介绍清楚;有人喜欢通过动画+图解的方式,将一篇篇晦涩难懂的算法介绍的清晰透彻;还有人通过图解计算机网络而被大众所熟知 ..... 这样优秀的号主朋友有很多,有时候一比就会发现自己跟其他人确实存在不小的距离。在我看来想要持续不断的输出高质量的文章,一定离不开背后的不断阅读,不断请教,不断尝试,所以我也一直将这些优秀的号主作为我奋斗的目标 。还有很多比我经验丰富很多的朋友,在向我请教问题的时候,仍然以“老师”相称。虽然我也只是一个刚踏入职场不久的“小菜”,但是也能感受到大家请教问题时的诚意,同时也更乐意去回答他们提出来的问题。
总结
我在不到一年的时间里,能总结出上面这些经验,离不开平时喜欢总结复盘的习惯,希望大家在看完之后,通过我分享的一些内容,能帮助到自己去完成一些“蜕变”,成为更优秀的自己。当然我还有很多干货限于篇幅问题没有详细介绍,例如如何唤醒在舒适区蛰伏的天性,去做有长远有价值的事情;如何集中精力去做好一件没有回报的事情,实现影响力的变现;如何面临不同的境遇,培养异常值,组合型思维.... 如果你感兴趣,欢迎找我讨论。
最后我想引用极客邦科技总裁,极客时间创始人池建强老师的话结束这篇文章:
每个人的一生都会遇到很多边界,有些边界可以突破,有些则不能。那些无法突破的边界就是你的极限,而划分边界的标准就是“阈值”。每次突破阈值之后,人生轨迹就会发生剧烈变化,其间需要你做出很多思考和判断,直到最后找到自己的极限 。
生活就像酿葡萄酒,你不能总是用葡萄汁兑水来应付。酿出自己的那杯美酒,过好自己的生活,同时向世界传递你的讯息,就可以了 ......