0基础如何快速入门算法?分享小白转码cs快速入门算法&数据结构指南!(盲目刷题不可取)...

知乎首发,全网超全算法&数据结构:基础新手入门/面试冲刺提升指南!不废话,直接上干货!

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

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

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

5db39ccfd060cfe485f3e71002b01738.png

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

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

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

这里推荐你们听一下九章算法专为0基础小白开设的《算法基础班》,这门课的优点在于没有任何门槛,就算你是初学者不会写代码,理解起来也毫无压力。

为什么说初学者首要学习Java和Python?

--原因在于:目前这两种语言占据了80%的市场需求,更符合我们的学习目的。

a891c7d5c65d068f5c17264853e7dacf.png
算法&数据结构的知识框架

这个算法课是国内专业为IT人士提供线上服务,北大名校工程师在线教学,从语法一直讲到算法和数据结构快速帮你补足算法底层逻辑,我还特意问了一个程序员朋友,说这个课程老师讲的很专业细致,口碑在圈内不错。

传统网课仅靠看视频掌握代码是很难实现的,配套练习是必不可少的。它这个老师会为你细致讲解基础知识+算法思路,学习伪代码,并教你学会输出真代码,让学习变得简单有趣。

xg.zhihu.com/plugin/b6d

★举个课程的例子:

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

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

677b9299824a37f89bb2861d496263e3.png

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

351d54a8f4c74ebb9562b8f919800c7a.png

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

5802045cdf48ea4b60029c3a6a281245.png

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

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

xg.zhihu.com/plugin/b6d

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

9d786cce111f542ad4ec7ba92041cec2.png

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

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

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

36f3d95c09416066773ab745a3d4042b.png
算法面试的考点大纲

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

xg.zhihu.com/plugin/944

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

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

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

e42f28b7550a8cb3e1d788a268dd852e.png
刷题模板大全

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

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

xg.zhihu.com/plugin/944

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

a917c16ef14008af3408b63a269f08d5.png

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

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

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

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

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

e41f41732ad6851fe4ff40f8304487d7.png
九章算法——4S分析法

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

xg.zhihu.com/plugin/05c

(新用户注册就能免费体验这个课程了,快去听给~)

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

7713637c634da864a15d48f1502d4983.png
16大系统类型

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

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

25399c92213dc0e2164f4ef2e599a7c8.png
4S分析法

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

第一步:Scenario 场景

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

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

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

第二步,Service服务

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

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

9bfd3c641a5363da3546fe572f2fc4fb.png

第三步,Storage 存储

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

c7c452d69bd09f3eb055d49a5ecdc98d.png

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

第四步,Scale 扩展

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

xg.zhihu.com/plugin/05c

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

335ec82f0f867e1f83e66be52f3224f9.png

写在最后

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

猜你喜欢

转载自blog.csdn.net/JiuZhang_ninechapter/article/details/125518088
今日推荐