赞
踩
一、新手怎么快速入门算法基础——【0基础学习算法】
二、如何拔高算法技能,8周达到面试水准——【面试拔高】
三、没有项目经验,系统设计怎么学习——【学习系统设计】
(ps:都是我从业多年总结的高效学习途径,希望给现在迷茫的你们带来一点帮助,非广!非广!!非广!!喷子退!)
✔食用人群:不会Java/Python语言,没有算法基础,想要转码
对于0基础同学,我的建议是直接找一个专业的机构系统学起来,这样的好处在于少走弯路,节省时间成本。其次是更有助于前期知识体系的梳理,打好理论基础。
这里推荐你们听一下业内好评颇高的令狐老师专为0基础小白开设的《算法基础班》,这门课的优点在于没有任何门槛,就算你是非CS专业不会写代码,理解起来也毫无压力。
https://xg.zhihu.com/plugin/b6d2cf2c4c28518b62cd4ef0d03b0773?BIZ=ECOMMERCE这个算法班是国内专业为IT人士提供的线上服务,北大名校工程师在线教学,从语法一直讲到算法和数据结构,快速帮你补足算法底层逻辑。
我还特意问了一个程序员朋友,说这个课程老师讲的很专业细致,口碑在圈内不错。
学习编程单听课是很难实现的,亲身练习是必不可少的。这里的老师首先会为你一步步讲解基础知识+算法思路,然后学习伪代码,并教你学会输出真代码,让理解变得轻松许多。
https://xg.zhihu.com/plugin/b6d2cf2c4c28518b62cd4ef0d03b0773?BIZ=ECOMMERCE(#我的白嫖经验:只需我们注册一下,再点免费听课就可以在线听课了,真的是免费的~7月刚好更新了课程,快去学起来~)
题目是这样的:给一个整数数组nums,将该数组升序排列。
《算法基础班》里面首先给到的算法思路的解答是这样的:
但是,考虑到小白的算法思路总是很模糊,老师会先用伪代码讲一遍思路。
先明白了逻辑思路,了解题目要考察我们什么知识点,循序渐进的从理解到操作,再用coding的形式表示出来,可以说是手把手教我们入门了。
我们刚开始学习,就老老实实根据上面这样的“理清思路→伪代码→输出code”流程多走几遍,慢慢就能熟练上手了。
这个过程需要我们多看老师互动讲解分析,加以同步练习,相信不久我们就能掌握算法基础,达到代码运行逻辑和实现细节。
https://xg.zhihu.com/plugin/b6d2cf2c4c28518b62cd4ef0d03b0773?BIZ=ECOMMERCE这个课程新用户注册就可以报名免费试听前几个章节的内容(不白嫖后悔系列~),感受一下老师如何在短短的5周时间内以“互动+直播+随堂习题”的形式教会我们从0建立基本的算法知识体系。
✔食用人群:有基本的算法认知,想在短时间内提高算法&数据结构能力,冲刺大厂面试
现在很多公司招聘都会考察算法。对于招聘来说,算法是区分应聘者编程功底最直接的方式。有些从业者只会“删减改查”,这样的人在算法面试题上就被打回原形。
那么对于算法&数据结构已经有了一定基础经验,想要更加强化算法能力,短期内冲刺国内大厂面试的同学,可以听听专为求职者算法面试冲刺开设的《北大算法课2022》。
https://xg.zhihu.com/plugin/944890fc0ed8d0b78b8deae215686709?BIZ=ECOMMERCE(#我的白嫖经验:只需注册一下,再点免费试听就可以听课并领取资料包了~)
课程是由北大ACM金牌令狐老师主讲,从他多年面试官的经验上,总结出90%国内大厂算法面试高频考点内容,以及如何短时间攻克medium+hard题型。
这归功于老师团队总结了一套算法刷题模板,其中大厂面试最常考的题型都能套用,只需背会模板就能应对面试了,可以说是难得的“作弊小抄”了!
这套模板就在《北大算法课2022》当中,感兴趣的同学可以去听一下(ps:新用户注册试听就能领取了~),同时课程分享了具体怎么用模板更好,bugfree等超全干货。
代码撰写不规范,或是代码块不够简洁清晰,建议背一背这份代码模板,第一节课里面就可以直接领取~链接我放下面了,记得报名后查看。
https://xg.zhihu.com/plugin/944890fc0ed8d0b78b8deae215686709?BIZ=ECOMMERCE不光是解题模板,里面还有国内大厂历年真题,老师会逐一讲解其中的考点和高频题型,学会同类型的解题思路,面试碰到亦能从容不迫。
✔食用人群:面试大厂,缺乏项目经验,快速突击学习
大厂常考的系统设计题有:短网址系统设计,新鲜事系统设计等,但即使项目同样,大厂面试官的侧重点也大不一样。
阿里:会看重你是否能把问题考虑的全面,并带领团队执行。所以拿到题目要有逻辑地思考,切忌刚拿到题目就想着给方案,最好是可以和面试官沟通好,条理清楚的提供方案,绝对加分
字节:考察很重要的一个方向是项目架构和性能优化。真题出现过:如何防止超卖,设计一个高可用,高伸缩的缓存系统,可以自己体会一下
Google:强调团队沟通和创造性,尤其忌讳个人主义。若你能够一边跟面试官聊,一遍挖掘对方的需求何想法,最后从多个维度分析并提供解决方案,这轮就稳了
系统设计的范围确实覆盖的比较广,如果没有一个答题套路,又不懂得向面试官提问的话,面试是很容易跪的。
基于这一点,九章团队老师总结了一套针对《系统架构设计》4S分析法,即使完全不知道的问题也可以按照这个方法一步步去回答。
https://xg.zhihu.com/plugin/05cb57bfecd593bdee7ab3d6385de95f?BIZ=ECOMMERCE(#同样只需注册报名就能免费体验这个课程了,快去听给~)
这个“4S分析法“覆盖了16大面试常考系统,资深架构师归纳总结大厂设计面试的评分标准,在配套这个万能4S分析法,题题通用。
所谓4S分析法中的4S是指:Scenario(场景),Service(服务),Storage(存储),Scale(扩展)。
Scenario 场景:需要设计哪些功能,到什么程度?
Service 服务:将大系统拆分为小服务
Storage 存储:数据如何存储与访问
Scale 升级:解决缺陷,处理可能遇到的问题
在这一步,你需要询问面试官:需要设计哪些功能(也可以自己想),需要承受多大的访问量?
首先可以把Twitter的功能一个个罗列出来,很显然你无法在45分钟的面试中完成所有功能的设计,所以需要筛选出核心功能(Post a Tweet,Timeline,News Feed,Follow/Unfollow a user,Register/Login)。
然后有的面试官可能会问你系统承受的QPS大概是多少?需要考虑并发用户,读频率(Read QPS)以及写频率(Write QPS)。记住重要的是你的思考和计算过程而不是计算结果。
所谓服务可以认为是逻辑处理的整合,对于同一类问题的逻辑处理可以归并到一个服务中。这一步实际上就是将整个系统细分为若干个小的服务。
根据第一步选出的核心功能,我们可以将推特拆分成如下的几个服务:
接下来就是4S分析法中最重要的一部分——存储。根据每个服务的数据特性选择合适的存储结构,然后细化数据表结构。
系统设计中可以选择的存储结构一般有三大类:数据库系统,文件系统,缓存系统。确定存储结构后,我们需要细化数据表结构,可以通过画图展示数据存储和读取的流程。
这一步主要分两部分,一个是优化,包括解决设计缺陷,更多功能设计以及一些特殊情况如何处理;另一个是维护,包括系统的鲁棒性和扩展性,比如有一台服务器/数据库挂了怎么办?如果有流量暴增,如何扩展?
https://xg.zhihu.com/plugin/05cb57bfecd593bdee7ab3d6385de95f?BIZ=ECOMMERCE关于这一步更多的内容,可以来看《系统设计System Design 2022》,现在新用户注册报名前两节免费开放,快去白嫖。
1、如果你是算法基础薄弱,想转码CS专业,建议你从《算法基础班Python/Java》学起。(学习周期:5周)
https://xg.zhihu.com/plugin/b6d2cf2c4c28518b62cd4ef0d03b0773?BIZ=ECOMMERCE2、如果你有一定算法&数据结构基础,近期准备国内大厂面试,建议你通过《北大算法课》提高专业能力。(学习周期:4周)
https://xg.zhihu.com/plugin/944890fc0ed8d0b78b8deae215686709?BIZ=ECOMMERCE3、如果你没有项目经验,想跳槽加薪,推荐你学习《系统设计System Design 2022》这门课程,手把手教你解题方法。(学习周期:5周)
https://xg.zhihu.com/plugin/05cb57bfecd593bdee7ab3d6385de95f?BIZ=ECOMMERCECopyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。