数据结构论坛

首页 » 分类 » 定义 » 建议收藏程序员摸爬滚打近一年,为你总
TUhjnbcbe - 2023/4/6 20:19:00

00后程序员摸爬滚打近一年,为学弟学妹们总结出了以下7条人生建议(建议收藏)

专栏收录该内容

订阅专栏

前言

各位学弟学妹们大家好,我是一名出生于千禧年的00后程序员,因为个人极特殊原因,现已毕业并在职场中摸爬滚打一年。在社会近一年的不断探索中,让我明白了很多人生哲理,看透了很多人间现实。借助这次分享,我梳理了以下几个方面的主题内容,希望对你们有所帮助,在前往优秀的道路上少走弯路。

文章目录

1、重视底层基础能力

2、学会打造自己的知识体系

3、将学过的东西忘记,剩下的便是教育的本质

4、养成阅读的习惯,输出倒逼自己输入

5、努力破圈,这个世界本就存在信息差

6、积极培养各方面的兴趣爱好,少玩或者不玩游戏

7、越努力,越优秀的人,谦虚好学

总结

总理今年在记者会上谈起基础研究问题时说到"不管你将来从事什么职业,有什么样的志向,一定要注意加强基础知识的学习,打牢基本功和培育创新能力是并行不悖的"。这句话在IT行业尤其适用,不管是不是科班出身,每一个程序员都应该花时间了解和学习计算机科学相关的基础知识。

你是不是也曾觉得数据结构和算法,跟操作系统、计算机网络一样,是脱离实际工作的知识?可能除了面试,这辈子也用不着?我曾经也这么想过,因为在未真正走出社会之前,思想一直处于封闭的状态。后来阅读了很多别人写的文章,才猛然发现这种想法是错误的。

我举一个大多数学生都会经历的一个例子,校招的时候,参加面试的学生通常没有实际项目经验,公司只能考察他们的基础知识是否牢固。社招就更不用说了,越是厉害的公司,越是注重考察数据结构与算法这类基础知识。相比短期能力,他们更看中你的长期潜力。

近几年很多公司发展得异常的迅猛,以字节跳动为例,更是时不时开放大量hc,有的热门岗位缺人,招实习生不要求有任何的技能,进去直接一对一有导师帮你带你,招聘需求只有一个,有扎实的计算机基础。

再举一个小争哥在《数据结构与算法之美》中谈到过的一个例子。一个腾讯T4的技术大牛,在区块链大潮之前,他在腾讯工作了10多年,长期负责手机QQ后台整体建设。他经历了手机QQ从诞生到亿级用户在线的整个过程。后来他去了微众银行,有一天老板让他去做区块链。他用了不到半年时间,就把区块链的整个技术脉络摸清楚了。现在,他是微众银行的区块链负责人,微众科技创新产品部的老总。你说厉害不?你可以花半年时间就能精通一个新的领域吗?为什么他就可以做到?

最重要的就是基础足够扎实。他曾经跟我说,像区块链、人工智能这些看似很新的技术,其实一点儿都不“新”。最初学编程的时候,他就把那些基础的知识都学透了。当面临行业变动、新技术更迭的时候,他不断发现,那些所谓的新技术,核心和本质的东西其实就是当初学的那些知识。掌握了这个“规律”之后,他学任何东西都很快,任何新技术都能快速迎头赶上。这就是他快速学习并且获得成功的秘诀。

基础知识就像是一座大楼的地基,它决定了我们的技术高度,而要想快速做出点事情,前提条件一定是基础能力过硬,“内功”到位。在这一点结束再送给大家一句很扎心,同时也很现实的话:“技术宽度决定了你是否能够进入一家公司,技术深度这决定了你offer的等级”,这也就不难解释了为什么我们的同学能找到工作,但薪资却不是很高的原因了。所以,同学们,请务必重视底层基础能力!!!

大数据发展至今,早已不是一个新兴的词语,大数据的应用已经无处不在。

在学校学习的时候,我眼中的大数据仅仅只是对“大数据生态圈”中的一些常用组件的理解和使用,对于“大数据”究竟在企业中是如何发挥作用的,也只停留在一些不成熟的“企业项目”上。以前,我知道Hadoop在广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如HBase,Hive,Spark,Zookeeper,Kafka,flume…出来工作之后,随着不断深入的了解,我才发现原来大数据的世界远比我想象中的要精彩。

被阿里一手在国内带火的实时流处理引擎Flink,Fackbook开源的分布式SQL查询引擎Presto,第一个由国人主导的Apache顶级项目“Kylin”,高性能实时分析数据库Druid,还有很多Kudu,Iceberg,ClickHouse,Hudi,Cancal等等就不一一列举了。总之,给我的感觉就是很多技术在不断的迭代更新,你必须保持敏锐的嗅觉,并及时跟进学习,才不至于落后太多。

而这么多技术,对于像我这样的初学者,肯定是没法瞬间消化的。那我是如何学习的呢,这里边用到了我小标题所谈到的“学会打造自己的知识体系”。

先来介绍一下什么是“知识体系”?

所谓“知识体系”,指的就是把大量却不同知识点,系统、有序、指向性明确地组合成某种类型的知识架构。

通过这个知识架构,我们可以更好地理解某些问题,解决某些问题。而与之相对的,则是碎片化的知识点。

也就是说,“知识体系”好像蜘蛛网那样,能把不同的知识点,有规则地串联起来,从而塑造出我们看到问题、理解问题的思维模式;就算把其中一些知识忘掉,我们因此拥有的独立思考能力,也得以帮助自己继续工作和生活。而碎片化知识,只能“头疼医头脚痛医脚”那样,一旦脱离具体的应用环境,就毫无用处了。

你可能看到这里还是一头雾水,那是因为我没有告诉你如何落实下来去做这件事情。

比如你想学习数据结构与算法,你就可以在一开始的时候,先明确自己学习的目的是什么,是找为了应付面试,还是只是想单纯提升自己的算法能力,那么你可能在查找各种资料。

但后面你转念一想,自己作为初学者或者非算法工程师,没必要学习所有的数据结构和算法。在询问了学长学姐如何应对BAT的算法笔试题,决定掌握这个10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。然后有目的,有针对性的去学习,这就是属于你搭建自己知识体系的过程。

当然,建议“知识体系”的这个过程并不简单,一般都需要经历以下六步,这里就不一一展开,想要更加深入了解可以自己去做进一步的了解。

美国教育学家斯金纳曾有过一句名言:我们将学过的东西忘得一干二净时,最后剩下的东西就是教育的本质了。所谓“剩下来的东西”,其实就是自学的能力,更是举一反三或无师自通的能力。

在大学生活中,我们能接受到的教育很少是面向工作,面向就业的。而真正走入社会,走进企业,你会发现很多时候你是无法用所学的那一点知识来解决的。这就需要我们不断的去学习,去试错,去总结。

在大学期间,学习专业知识固然重要,但是最重要的还是学习独立思考的能力,培养“举一反三”的能力。这样,等到你们毕业的时候,方能适应瞬息万变的未来世界。

说个我一直都在做的事情。我特别喜欢用各种各样的“云笔记”软件,尤其是阿里内部一直在使用的“语雀”。我每做完一个项目,都会在语雀创建的知识库下,写一篇项目复盘。包含项目整个流程,自己具体参与了哪些事情,遇到了哪些问题,如何解决了,还有哪些待改进可以优化的地方。这些我都会记录的很详细,一方面是因为我认为及时的复盘能够让我对于这一个阶段自己做的事情能够梳理一遍,脉络更加清晰,在以后需要面试的时候也能够找准复习回顾的地方。另外也可以作为文档,让更多想学习,新加入的小伙伴们快速了解一个项目。

所以大家千万不要仅仅局限于老师所传授的知识。如果你现在闭上眼睛好好想想,自己除了专业课的内容还学到了些什么,如果想不出来,那确实该好好反思一下了。

养成阅读的习惯,这点非常重要。我们大多数人的认知实际上非常有限,必须要通过更多的阅读来实现自我认知的提升。现在你可以想象一下,如果把你所知道的所有知识转化成为文章的形式进行输出,我相信不用几十篇文章就可以将你榨干。当然,这里的阅读不是让你去刷抖音,快手这样的“碎片化阅读”来打发时间,而是让你静下心找个安静的地方自己看书。

列一些我看过的书,如果是大数据基础入门,我建议看看冰河老师的《海量数据处理与大数据技术实战》,想熟悉并研究完整数仓体系;可以看看硅谷的《大数据分析.数据仓库项目实战》,想深入研究用户画像;可以看看赵宏田老师的《用户画像方法论与工程化解决方案》;想了解数据中台,可以看看耿立超老师的《大数据平台与原型实现》;学习架构思维,清楚架构师需要具备哪些方面的能力,可以看看《架构师的自我修养:技术,架构和未来》;想看励志成功类的书籍,推荐《绝非偶然.撬动星球的头部效应》…

为了证明我不是在吹牛,晒一下我日常翻阅的书籍。

下面这个是我最近在看的一本励志与成功学的书,记录了21位知识星球头部大咖们的发展史。

如果你坚持不下来,我建议你可以也可以通过输出倒逼自己输入的方式,强迫自己不断的学习,充实自己。

过不断的输出,在增强自己写作水平,提升认知的同时,也确实帮助到了不少的读者,很多不乏,高校的研究生,还有工作了多年想转行,找我咨询建议的朋友。可能我的阅历还不如他们,但是我总是会竭尽自己所能,去帮助他们。

如果你也能做到坚持输出,日积月累,你就会惊喜的发现,自己的阅读理解能力,写作水平都得到了显著的提升,甚至开始有了一点小小的影响力。这个时候,你一定会感谢自己,这是通过阅读写作带给你的一笔无形的财富,谁也拿不走!

这个世界本就存在信息差,相信这个观点大部分人都不会认同。有人会想:现在家家都有电脑手机,全世界发生什么事情,我能不第一时间知道!但事实真的是这样吗?在信息爆炸的潮流中,人们眼里的视野会变得更小,出现信息茧房的现象。

信息茧房是指人们

1
查看完整版本: 建议收藏程序员摸爬滚打近一年,为你总