查看原文
其他

如果我大一的时候能看到就好了。

why技术 2023-10-26

你好呀,我是歪歪。

在知乎上看到一个问题:

https://www.zhihu.com/question/492545174

这段时间刚好一些准大学生们也开始陆陆续续的收到录取通知书了,即将进入大学,步入新的人生阶段。

我个人认为,在这个人生阶段中,最重要的点之一,就是能意识到:大学,主要靠的是自学。

谁能尽快的从高中填鸭式的学习模式中跳出来,切换视角,开始有计划、系统性的进行自学,谁在毕业的时候就更有优势。

因为当一个学生有这样的觉悟之后,他就会主动去寻找资料。当他去主动寻找学习资料的时候,专业的大门,才算为他正式打开。

也许,你是在寻找资料的过程中,在浩瀚无垠的网络世界里面,偶然间翻到了这篇文章,你我萍水相逢,我只能送你一句:同学,请直面你的现状和野心,放下你的焦虑和浮躁,请面向简历学习,请面向工资编程。

回到前面提到的知乎上的提问,歪歪歪师傅分享一个这个问题下的高赞回答。

对于其中的观点,我基本上都是同意的,和而不同,美美与共。


这个问题下面的答案,但凡有出现了如下关键词

C/C++,《C++ primer plus》,ACM,《算法导论》,国外名校课程(CSAPP,mit的分布式,cmu数据库),高数线代,编译原理,源代码

请直接忽略!

那些回答太过于理想化,学习以上内容,耗时巨大,难度极高,和实际编程太远,对找工作的提升并不显著,简单说就是性价比不高。

本人本科时也被误导得很深,大一就买了《算法竞赛入门指导》,毫无疑问吃灰了。本人舍友买了《算法导论》《C++ primer plus》,他也是一页也没有看过。

大家不要本末倒置了,学代码的目的就是为了找工作赚钱,而不是为了看书获得成就感。有些人是博士毕业才开始转码的,从头学这些东西,时间上根本耗不起;就算是计算机科班,自学这些大部头,对个人的自控力、自制力要求也极高,能做到的寥寥无几。

首先声明一下,本人选资料/推荐路径的逻辑:

1,优中选优。个人经验,给别人推荐学习材料,给自己找学习材料,一定要少,千万不要高估自己的自控力,千万不要罗列一堆,除非是自学大神,否则根本不太可能学完

2,能看视频,就不看书。不知道为什么这么多人喜欢推荐看书,回想高中时期,没有几个人是靠自己啃书本学成大神的,大多数还是靠上课,报补习班听讲来学习的。视频效率高于书本,这是必然的。

3,重视代码实践。计算机是实践学科,纸上学来终觉浅,只有动手敲代码才能学好。

4,先学实用的技术,再学用处不大的计算机基础知识。计算机太多太杂了,而且技术进步很快,盲目学底层用处不大。

5,一切面向找工。90% 的人,学计算机是为了高薪,只有找到工作才能赚钱,所以本文完全面向找工。

下面是具体步骤

第一步:编程初体验

何为编程,先要有面向过程编程的思维,再要有数据结构的基础知识,再就是有面向对象的思维概念。这些东西,各个语言都是相通的,也是编程的地基。

而学这些最好的教程,就是伯克利 CS61B。

伯克利的 CS61B,是基础的入门编程课,讲授数据结构和算法,学完了编程能力超过 80% 的 985 CS 毕业生!

要知道这个课程语言是 Java,Java 可以说是现在最火热的开发语言,学透了 Java 找工作不成问题。

而且 CS61B 的 labs 也是其中最精华的部分,跟着一步一步的做,不要偷懒,做完了编程能力绝对够了.

第二步:确定技术栈

这时你需要自学大量实用的技术了,而不是在那里自学什么操作系统 OS,数据库的实现,还有什么分布式 distributed system

  • 走前端就学习 JS,JQuery,Vue/React/Angular
  • 走后端就学 Spring,学数据库
  • 走 Data 就学数据库+Python
  • 走 MLE 就自学国外热门的 AI 网课

这些才是和工作联系最紧密的,这些技术的工作岗位也是最多的。很多 CS 毕业生,大学四年过去了,连一个前后端的项目都搞不定,是不是很搞笑?

这时候做几个 project,好写在简历上,为你进一步到公司/实验室实践打好基础。

网站推荐 Udemy,bilibi,freeCodeCamp 其他好的平台也欢迎同学们补充

第三步:实践出真知

去公司实习,比你自己闷在家里面闭门造车,效果好得多。你自学没有人监督,98% 的人都坚持不下来。去公司实习,可以领工资,增加你学CS的信心;可以认识更多的人,增加人脉;可以理解公司的流程,了解公司技术栈,对应的查漏补缺。

更关键的是,实习可以丰富简历。等实习结束,你的简历上可以写个实习经历了,不是比很多大学生课内 project 厉害吗?没有实习,很难获得全职;没有小厂实习,很难获得大厂实习;这都是一步一步来的。

做科研同理,去实验室搬砖,每周都有组会,督促你每日学习进步,时间久了说不准可以发论文了。同时还可以和导师取得相应的联系,出国推荐信也有了着落。

反观有些人,在那里死磕 ACM,磕了半天也没啥奖,保研出国都捞不着,最后不是挺可悲吗?正确的路线应该怎么走?

  • SDE 路线:自学技术栈 -> 小厂实习 -> 国内外企/大厂实习  > 美国大厂实习 -> 美国 SDE 全职
  • MLE 路线:自学AI网课 -> 实验室做科研  -> 国内算法岗 -> 美国MLE实习  -> 美国 MLE 全职
  • 科学家路线:自学 AI 网课 -> 实验室做科研 -> 名校 CS PhD -> openAI 等大厂的 Research Scientist

第四步:全力备面试

leetcode 被说了无数遍了,如果你 CS61B 学好了,算法题是不难的。如果要面试找工作,grind75 的 list,直接刷 2 遍就可以的,有不会的就网上搜视频讲解!

但是不要本末倒置了,工作中基本上用不到算法题的。

国内面试有时候还有八股文,这个有了实际的工作经验,项目经验,同时学过了 61b,八股文就是水到渠成的。然后再看看面经查漏补缺,全力备战校招。

以上路径,就是最优解。

相当于把打怪升级的路子,手把手教给你了。你要是卷王,喜欢闭门造车,那你大可以死磕《算法导论》《编译原理》。你要是普通人,走我说的路径,是让你最快获得 CS 工作/阻力最小的方法

---分割线---

PS:国内 CS 的教学,纯纯浪费时间,不要指望国内本科能教你啥,即使是清北复交。(还记得清华雨课堂吗,还记得清华小学期 Python 深度学习网络吗)

PS2:数据库,计算机网络,操作系统,编译原理,这些有点概念就行了,国外大作业都是让你自己实现一遍加深理解,其实不是必须的。有这个时间先学前后端,去大厂实习反而更好

PS3:cmu 的数据库,是让你自己动手写数据库,只有去数据库公司实习工作才用得到。mit 的分布式也是面向大厂 infra 岗位的。

PS4:大学计算机学的,大学物理,高数,汇编语言,微机原理,对编程找工作一点作用都没有

PS5:评论区太多人是学生思维了,他们说这样学成了技校,把我也看笑了。他们总是高估自己未来的努力,仿佛自己穿越回去,就能每天学习 12 小时,把这些大部头全部啃完一样,但是我明确的告诉你,不可能的。

PS6:很多人说你这样会基础不牢,问题是我没有说不学这种 cmu 数据库这种大部头,而是先学有用的技术。等你有了工作,那些大部头在业余时间精进就好了,而不是在你还没有工作的时候就搞那些

PS7:很多人对“基础”有蜜汁崇拜,仿佛打好了基础就可以秒天秒地一样,然而事实却完全相反。计算机是一个变化很快的领域,不同技术栈的基础也不一样。机器学习深度学习这些,出来了不过 10 年,假如一个人要走算法岗的,那他学 30 年前的《算法导论》《C++ primer plus》,完全是浪费时间,懂吗

PS8:很多人说我这些没法写操作系统,没法写数据库,我只能说没有仔细看文章。我说的技术栈,并不是仅仅是前端后端。

你要去写游戏,要去做数据分析,要去写 C++,去做 quant researcher,做分布式,HPC,数据库,编译,验证,硬件相关,做 quant dev,读 PhD,完全可以,每个方向的发力点都不一样,要学得技术,努力的方向,完全不一样,在哪里盲目学《编译原理》,完全是脑子进水了。

PS9:还有人说基础学的好就不会被裁员的,太过于学生思维了,夏虫不可语冰

PS10:很多人说要打基础,我的路线是培养纯码农,我也只是笑笑。本人的路线,最专注的就是编程能力代码能力。本人本硕都是计算机的,因为代码能力不行,错失了/没有好好利用很多实习机会/科研机会/上课的项目,借着 cs61b 和 Udemy 的视频打好编程的底子,以后干啥都行!

荒腔走板

周末看了《八角笼中》,写了一篇观后感:《生如野草,不屈不挠!掌声给到王宝强!》,就当是荒腔走板了吧。

一到周末整天都窝在家里,没啥可说的。

主要是成都这一周太热了,令人窒息的那种热,白天的时候完全离不开空调,没有任何想要出门的想法。

周末的时候,我和 Max 同学都是傍晚时分的时候才会下楼出去走走。而出去走走的全部动力也是来自楼下的那一碗吃起来很舒服,放的料很足的水果冰粉。

原计划这周末是至少跑一个 15 公里的长距离,也因为天气原因在第 10 公里的时候停下来了。

大热天的跑步本来就是一件危险的事情,在我一直压着心率跑的前提下,体感还是不太好,所以果断的调整了目标,及时停下了脚步。

以前,我总是说“坚持不住的时候再坚持一下”。

现在我也会说“适时的放弃,是对自己的负责”。

嗯,这么看来,我确实是成长了,不管是跑步上,还是生活中。

··············  END  ··············

推荐👍看完我的头好痒啊!

推荐👍这个源码,肯定有BUG!

推荐👍68行代码实现Bean的异步初始化,粘过去就能用。

推荐👍我试图通过这篇文章,教会你一种阅读源码的方式。

推荐👍一个普通程序员磕磕绊绊,又闪闪发光的十年。

你好呀,我是歪歪。我没进过一线大厂,没创过业,也没写过书,更不是技术专家,所以也没有什么亮眼的title。

当年高考,随缘调剂到了某二本院校计算机专业。纯属误打误撞,进入程序员的行列,之后开始了运气爆棚的程序员之路。

说起程序员之路还是有点意思,可以点击蓝字,查看我的程序员之路

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存