最上层的思考框架往往是一些哲学问题,无非就是保安经常问你的那三个问题:
-
你是谁?
-
从哪来?
-
到哪去?
还有类似的 WWH:
-
Why? → 目的、理念
-
What?→ 定义、概念、现象或成果
-
How? → 具体操作方法、措施
那么对于我们程序员来说, 我们把上面的三个问题转换下就成为:
-
这是啥玩意?
-
解决什么问题?
-
怎么解决的? 思想 → 流程 → 实现
比如产品经理给你一个需求,套用这个框架,你可以问他:
-
WHY?为什么要这个做这个功能? 它可以给用户带来什么价值? 或者说能给公司带来什么收益? → 没价值,就没有做的意义
-
WHAT & HOW ? 什么样的用户会用到这个功能,他们在什么场景下使用,他们又会怎样使用它?实现这个功能就只有这种方式吗?还有没有其他方案? → 可以衡量这个功能是否有经过认真思考的,是不是合理
再比如面试招人为例,把上面的三个问题转换下就成为:
-
你觉得你现在处于什么水平?有哪些不足
-
你的目标是什么?想加入什么样的团队?
-
你有什么计划?
这个思考框架,虽然简单,却可以受益终生。
原则
接下来是在思考框架指导下的原则。 这些原则相比思考框架要具体一些,是针对特定领域的思想指导,在处理某个特定领域的问题时会更有用一些。
比如面向对象设计的 SOLID原则为例:
-
S 单一功能原则: 认为“对象应该仅具有一种单一功能”的概念
-
O 开闭原则: 认为“软件体应该是对于扩展开放的,但是对于修改封闭的”的概念。
-
L 里氏替换原则: 认为“程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的”的概念。
-
I 接口隔离原则: 认为“多个特定客户端接口要好于一个宽泛用途的接口” 的概念
-
D 依赖反转原则:认为一个方法应该遵从“依赖于抽象而不是一个实例” 的概念。依赖注入是该原则的一种实现方式。
还有KISS(Keep It Simple ,Stupid)原则等,小编就不展开来说了,小编说一个个人比较受用的原则:DRY(Don’t repeat yourself)原则,更好理解、或者说更有实践性。
DRY 原则简单说就是识别你的重复代码,思考,然后重构它。
如果你在编程时养成了这种习惯,你会发现你的代码自然而言会有比较良好的结构,同时也可能符合上述各种原则一些特征(实际上它们本来就是交叉和相通的)。
或者说,经过 DRY 原则下的刻意训练,你会形成一种编程品味( 敲黑板,这也是大厂考点)。
具体的最佳实践
再往下更具体,这是在原则指导下、经过实践总结出来的最佳实践/设计模式。 可以用于指导解决具体的领域问题。最佳实践通常是别人实践总结出来的,对我们来说是站在巨人的肩膀上,是捷径,让我们可以少走点弯路。
举大家比较熟悉的例子,最典型的莫属于面向对象的《设计模式》它就是属于这个层次的知识,设计模式就是在 SOLID 原则指导下的具体实践:
小编整理了知识体系的形成,也整理了前端面试题资料,直接点击这领取。学习是要有方法要有积累,每天一点的进步,一点的改变,最终的受益就是你自己。
由于篇幅原因就没有列举资料题目,需要完整版前端面试题资料的小伙伴们,直接点击这领取就可以了噢。喜欢这篇文章的留下你们的点赞+评论支持小编,最后想说的是:加油,未来可期!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
算法刷题
大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。
写在最后
最后,对所以做Java的朋友提几点建议,也是我的个人心得:
-
疯狂编程
-
学习效果可视化
-
写博客
-
阅读优秀代码
-
心态调整
csdnimg.cn/img_convert/c582a01373152bb4cd38bc6ad5cc8027.png)
写在最后
最后,对所以做Java的朋友提几点建议,也是我的个人心得:
-
疯狂编程
-
学习效果可视化
-
写博客
-
阅读优秀代码
-
心态调整