小白如何快速入门算法?分享初学者从入门到大厂算法面试全攻略(盲目leetcode刷题不可取)... - Go语言中文社区

小白如何快速入门算法?分享初学者从入门到大厂算法面试全攻略(盲目leetcode刷题不可取)...


知乎首发,超全学习算法&数据结构干货:0基础入门算法面试提升指南!不废话,直接上干货!

★本文将从以下3个方面告诉你:

一、新手怎么快速入门算法基础——【0基础学习算法】
二、如何拔高算法技能,8周达到面试水准——【面试拔高】
三、没有项目经验,系统设计怎么学习——【学习系统设计】

(ps:都是我从业多年总结的高效学习途径,希望给现在迷茫的你们带来一点帮助,非广!非广!!非广!!喷子退!)

7cdf9a138d184aff5f3eccd31c847cd2.png

一、新手怎么快速入门算法基础——【0基础入门】

✔食用人群:不会Java/Python语言,没有算法基础,想要转码

对于0基础同学,我的建议是直接找一个专业的机构系统学起来,这样的好处在于少走弯路,节省时间成本。其次是更有助于前期知识体系的梳理,打好理论基础。

这里推荐你们听一下业内好评颇高的令狐老师专为0基础小白开设的《算法基础班》,这门课的优点在于没有任何门槛,就算你是非CS专业不会写代码,理解起来也毫无压力。

xg.zhihu.com/plugin/b6d

这个算法班是国内专业为IT人士提供的线上服务,北大名校工程师在线教学,从语法一直讲到算法和数据结构,快速帮你补足算法底层逻辑

16a2bd420b43af9d40f7bd8a305f7bb3.jpeg

我还特意问了一个程序员朋友,说这个课程老师讲的很专业细致,口碑在圈内不错。

学习编程单听课是很难实现的,亲身练习是必不可少的。这里的老师首先会为你一步步讲解基础知识+算法思路,然后学习伪代码,并教你学会输出真代码,让理解变得轻松许多。

xg.zhihu.com/plugin/b6d

(#我的白嫖经验:只需我们注册一下,再点免费听课就可以在线听课了,真的是免费的~7月刚好更新了课程,快去学起来~)

★举个课程的例子:

题目是这样的:给一个整数数组nums,将该数组升序排列。

《算法基础班》里面首先给到的算法思路的解答是这样的:

3e93d8bfc65700d70600ab0c6b99d28e.jpeg

但是,考虑到小白的算法思路总是很模糊,老师会先用伪代码讲一遍思路。

74f8fc0784312a891ccdc2c9bf69b18e.jpeg

先明白了逻辑思路,了解题目要考察我们什么知识点,循序渐进的从理解到操作,再用coding的形式表示出来,可以说是手把手教我们入门了。

我们刚开始学习,就老老实实根据上面这样的“理清思路→伪代码→输出code”流程多走几遍,慢慢就能熟练上手了。

这个过程需要我们多看老师互动讲解分析,加以同步练习,相信不久我们就能掌握算法基础,达到代码运行逻辑和实现细节。

xg.zhihu.com/plugin/b6d

这个课程新用户注册就可以报名免费试听前几个章节的内容(不白嫖后悔系列~),感受一下老师如何在短短的5周时间内以“互动+直播+随堂习题”的形式教会我们从0建立基本的算法知识体系

63091887ebf16114dafbaafc37c5272f.png

二、如何拔高算法技能,8周达到面试水准——【面试冲刺】

✔食用人群:有基本的算法认知,想在短时间内提高算法&数据结构能力,冲刺大厂面试

现在很多公司招聘都会考察算法。对于招聘来说,算法是区分应聘者编程功底最直接的方式。有些从业者只会“删减改查”,这样的人在算法面试题上就被打回原形。

那么对于算法&数据结构已经有了一定基础经验,想要更加强化算法能力,短期内冲刺国内大厂面试的同学,可以听听专为求职者算法面试冲刺开设的《北大算法课2022》。

xg.zhihu.com/plugin/944

(#我的白嫖经验:只需注册一下,再点免费试听就可以听课并领取资料包了~)

课程是由北大ACM金牌令狐老师主讲,从他多年面试官的经验上,总结出90%国内大厂算法面试高频考点内容,以及如何短时间攻克medium+hard题型。

33ab76254335a5e0ade07043134af0e0.jpeg
注:越红的考的可能性越大,灰色部分一般出现概率较低

这归功于老师团队总结了一套算法刷题模板,其中大厂面试最常考的题型都能套用,只需背会模板就能应对面试了,可以说是难得的“作弊小抄”了!

039de143bfa7c90849be71b609f5c8b4.jpeg
刷题模板大全

这套模板就在《北大算法课2022》当中,感兴趣的同学可以去听一下(ps:新用户注册试听就能领取了~),同时课程分享了具体怎么用模板更好,bugfree等超全干货。

代码撰写不规范,或是代码块不够简洁清晰,建议背一背这份代码模板,第一节课里面就可以直接领取~链接我放下面了,记得报名后查看。

xg.zhihu.com/plugin/944

不光是解题模板,里面还有国内大厂历年真题,老师会逐一讲解其中的考点和高频题型,学会同类型的解题思路,面试碰到亦能从容不迫。

15ca03411527c8fb804d714e8de77c8b.png

三、没有项目经验,系统设计怎么学习——【掌握方法】

✔食用人群:面试大厂,缺乏项目经验,快速突击学习

大厂常考的系统设计题有:短网址系统设计,新鲜事系统设计等,但即使项目同样,大厂面试官的侧重点也大不一样。

fe6ec65522e238e175b2e0480f1330ea.jpeg
大厂系统设计评分参考
阿里:会看重你是否能把问题考虑的全面,并带领团队执行。所以拿到题目要有逻辑地思考,切忌刚拿到题目就想着给方案,最好是可以和面试官沟通好,条理清楚的提供方案,绝对加分
字节:考察很重要的一个方向是项目架构和性能优化。真题出现过:如何防止超卖,设计一个高可用,高伸缩的缓存系统,可以自己体会一下
Google:强调团队沟通和创造性,尤其忌讳个人主义。若你能够一边跟面试官聊,一遍挖掘对方的需求何想法,最后从多个维度分析并提供解决方案,这轮就稳了

系统设计的范围确实覆盖的比较广,如果没有一个答题套路,又不懂得向面试官提问的话,面试是很容易跪的。

49b12ee76918db4fa93681f10a28aa32.jpeg
九章算法——4S分析法

基于这一点,九章团队老师总结了一套针对《系统架构设计》4S分析法,即使完全不知道的问题也可以按照这个方法一步步去回答。

xg.zhihu.com/plugin/05c

(#同样只需注册报名就能免费体验这个课程了,快去听给~)

这个“4S分析法“覆盖了16大面试常考系统,资深架构师归纳总结大厂设计面试的评分标准,在配套这个万能4S分析法,题题通用。

752566b121a7bd25f86f5d9e59ee347a.jpeg
16大系统类型

所谓4S分析法中的4S是指:Scenario(场景),Service(服务),Storage(存储),Scale(扩展)。

Scenario 场景:需要设计哪些功能,到什么程度?
Service 服务:将大系统拆分为小服务
Storage 存储:数据如何存储与访问
Scale 升级:解决缺陷,处理可能遇到的问题

64ada0e200e36959801e9020e2936e73.jpeg
4S分析法

接下来,我们结合4S分析法来具体回答:如何设计一个推特?

第一步:Scenario 场景

在这一步,你需要询问面试官:需要设计哪些功能(也可以自己想),需要承受多大的访问量?

首先可以把Twitter的功能一个个罗列出来,很显然你无法在45分钟的面试中完成所有功能的设计,所以需要筛选出核心功能(Post a Tweet,Timeline,News Feed,Follow/Unfollow a user,Register/Login)。

然后有的面试官可能会问你系统承受的QPS大概是多少?需要考虑并发用户,读频率(Read QPS)以及写频率(Write QPS)。记住重要的是你的思考和计算过程而不是计算结果。

第二步,Service服务

所谓服务可以认为是逻辑处理的整合,对于同一类问题的逻辑处理可以归并到一个服务中。这一步实际上就是将整个系统细分为若干个小的服务。

根据第一步选出的核心功能,我们可以将推特拆分成如下的几个服务:

31741073835e255401f1d87e600ebbf6.jpeg

第三步,Storage 存储

接下来就是4S分析法中最重要的一部分——存储。根据每个服务的数据特性选择合适的存储结构,然后细化数据表结构。

ce8f5a017defe743f6aa56a3a59616b1.jpeg

系统设计中可以选择的存储结构一般有三大类:数据库系统,文件系统,缓存系统。确定存储结构后,我们需要细化数据表结构,可以通过画图展示数据存储和读取的流程。

第四步,Scale 扩展

这一步主要分两部分,一个是优化,包括解决设计缺陷,更多功能设计以及一些特殊情况如何处理;另一个是维护,包括系统的鲁棒性和扩展性,比如有一台服务器/数据库挂了怎么办?如果有流量暴增,如何扩展?

xg.zhihu.com/plugin/05c

关于这一步更多的内容,可以来看《系统设计System Design 2022》,现在新用户注册报名前两节免费开放,快去白嫖。

94ed4a1e5e3d3b5c8ed6bd37e1bf75f8.jpeg

写在最后

1、如果你是算法基础薄弱,想转码CS专业,建议你从《算法基础班Python/Java》学起。(学习周期:5周)

xg.zhihu.com/plugin/b6d

2、如果你有一定算法&数据结构基础,近期准备国内大厂面试,建议你通过《北大算法课》提高专业能力。(学习周期:4周)

xg.zhihu.com/plugin/944

3、如果你没有项目经验,想跳槽加薪,推荐你学习《系统设计System Design 2022》这门课程,手把手教你解题方法。(学习周期:5周)

xg.zhihu.com/plugin/05c

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/JiuZhang_ninechapter/article/details/125675963
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2023-01-02 16:29:35
  • 阅读 ( 276 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢