Low Level System Design [An interview perspective]

所在平台: Udemy

课程主页: https://www.udemy.com/course/low-level-system-design-an-interview-perspective/

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:低层系统设计 [面试视角] 课程概述: 软件工程面试通常集中在编码和软件设计技能上,主要分为算法和设计两个环节。算法环节测试候选人的基本编码能力,着重考察数据结构和算法的应用;而设计环节则考查系统设计技能,包括高层设计(HLD)和低层设计(LLD)。低层设计又称为面向对象设计(OOD)或面向对象分析与设计(OOAD)。从实习生到高级软件工程师,顶尖公司在面试过程中至少会有一个轮次专注于系统设计。对经验不足的候选人(尤其是3年以下经验者)来说,低层设计尤为关键,因为他们通常不具备高层设计的知识。而具有3年以上经验的候选人可能面临混合的高层和低层设计面试。 本课程《低层系统设计》聚焦于设计的低层面。提升面试表现的唯一途径是大量练习类似的问题。本课程根据研究整理了面试中最常见的问题列表,这对面试和一般问题解决及应用设计都很有帮助。每个问题都会被详细拆解和讨论,包括: - 明确问题陈述,消除歧义; - 解释与问题相关的术语,阐明期望; - 绘制类图作为编码的路线图; - 以优雅的方式编写代码,帮助用户从自上而下的方向思考问题; - 讨论代码优化及其权衡; - 展示测试用例构建,以帮助考生理解良好测试用例的重要性及其对应用的影响。 所有内容都遵循行业最佳实践,同时在面试期间如何合理利用时间,以及应对问题卡壳的策略也会间歇性提及。课程中的编码主要使用C++,但代码在很大程度上是语言无关的。 此外,课程中的视频提供手工制作的英文字幕,当学生在口音上有困难、背景噪音较大或想详细记录讲解内容时,这些字幕都非常实用。 学习后收获: - 能够更好地应对低层设计面试; - 能参与相关设计讨论; - 编写更好的代码; - 有条理地将问题拆解并独立解决。 保证收获: 如果你理解本课程中提出的所有问题,将不会对解决低层设计问题感到恐惧。你能够提出正确的问题,对任何设计都能充满信心。

课程评论(0条)

课程详情

Software Engineering interviews focus on the coding and software designing skills in an interview. These are fondly known as Algorithm and Design rounds respectively. The Algorithms round check the raw coding skills of a candidate, by the application of Data Structures and Algorithms mostly practiced in school, while the Design round tests the System design skills, which can be High Level Design [HLD] or Low Level Design [LLD].Low Level Design is also known as Object Oriented Design [OOD] or Object Oriented Analysis and Design [OOAD]. From interns to Senior Software Engineers, top companies dedicate at least one round in the entire interview process for system design. For candidates having less than 3 years' of experience, Low Level Design plays the most crucial role because these candidates are inexperienced, hence not supposed to have knowledge of High Level Design. Candidates having experience of more than 3 years usually face the system design interviews with a mix of both HLD and LLD.This course Low Level System Design focuses on the low level aspects of the design. The only way to get better at interviews is by practicing lots of similar problems. In this course, based upon my research, a list of most frequently asked questions in interviews is compiled. Not only is this useful for the interviews, but also for general problem solving and application design.Every problem is broken down and discussed in a comprehensive manner:Making the problem statement clear of any ambiguity. Terminologies related to the problem are explained and expectations well laid out.Class Diagram construction serves as a road map for coding the problemThe coding is done in the most elegant manner such that the users learn to approach the problem top-down. This is important because even if the class diagram is in place, it's imperative to know the sequence of class construction in program, for a smooth experience.Wherever applicable, the code is optimized further. Trade offs related to optimization are also discussed.At last, test case construction is shown to make the candidate wary about writing good test cases, and their impact on the application.All this is done while following industry best practices. Proper time utilization during the interview is also talked about intermittently, and ways to deal with a situation when the candidate is stuck at a problem for a long time. The coding is done in C++ but the code is language agnostic to a great extent.The course also sports Closed Captions [English Subtitles] for all the videos. They are hand-crafted, not auto-generated. This feature is helpful when the student is having problem with the accent, there's a lot of background noise present, or when you want to make detailed notes from the explanation.After taking this course, youWill be in a better place to face LLD interviews.Can participate in design discussions related to such problemsWrite better code than beforeHave a proper theater to break the problem into pieces and deal with them independentlyGuaranteed TakeawayIf you understand all the problems presented in this course, there won't be any fear of solving LLD questions. You'll be asking the right questions about the problem, and will be confident to jab at any design.

课程标签

0人关注该课程

主题相关的课程