什么是程序员?码农、程序猿、程序媛 使用 程序实现价值 程序=数据+算法 软件=程序+软件工程 程序员=工程师? 程序员金字塔
程序员知识结构
面试造火箭,工作打蚊子会什么是你的下限,能够会什么是你的上限 越底层的东西越决定上限学习欲望杜绝 1年工作经验重复 N年 如果自己遇到这种问题会怎么解决,与资料中的解决方案相比优劣如何? 别人为什么会想到这种解决方案? 自己是由于经验欠缺还是技能点欠缺才导致没有想到好的解决方案? 解决这类问题的根本思路是什么样的?学习能力不是懂得多,而是学得快 知其然更要知其所以然:技术以深度优先 类比现实:对现实世界的模拟 更好地接受信息:建立自己的知识体系;阅读并记笔记,纳入知识体系 深度思考:阅读书籍 动手实践、频繁练习:项目驱动型学习;主动思考 自我总结:完善知识体系;笔记、博客、分享 持续学习:逃离舒适区;学到老,活到老如何学习新技术
如何阅读源码阅读该技术的架构文档,了解其总体架构和组成 根据总体架构,将源码文件以模块或者上下层级进行分类。 从未阅读过的模块中选择最独立(依赖性最小)的模块代码读起。 阅读此模块的功能介绍文档。 阅读此模块的源代码:运行程序,断点调试。 一边阅读一边整理调用关系图。 转到第三步。 参考 官方文档或者经典书籍计算机思维冯.诺依曼体系:程序存储,顺序执行。 二进制存储:用比特解决问题 位运算:位运算的高效 逻辑分支:条件判断、循环、迭代、递归个人规划长期规划:职业规划;高瞻远瞩 短期规划:具体技能、晋升、学习方面的规划;优先级排序基础学科物理:电路原理;量子计算机 数学:工程优化;线性代数;微积分 英语!!:阅读英文文献;计算机术语 计算机组成原理 计算机的硬件组成和运行原理 冯诺依曼体系、 摩尔定律、 阿曼达定律 数据的机器表示:原码、补码、反码、浮点数/定点数 指令系统:复杂指令集、简单指令集 存储器:分类、缓存 CPU: 流水线、伪共享、缓存 IO设备:IO总线、DMA、中断计算机操作系统屏蔽计算机硬件的中间层 作业调度: 调度策略、优先级 进程管理:进程和线程、进程间通信 存储管理:内存、虚拟内存、文件系统、页、页缓存 IO管理:IO设备读写操作 Linux操作系统计算机网络单个计算机之间的互连 TCP/IP协议栈:四层/七层 TCP连接状态 TCP与UDP的区别 HTTP协议、RESTful规范 网络安全 如今的互联网:IPv6、物联网、5G编译原理将代码转换成机器可理解的二进制,有助于实现DSL 词法分析、语法分析 类型检查 运行时环境、中间代码 代码生成、代码优化 数据结构和算法 程序=数据+算法无论你在哪里。技术的提高都是靠自己。现在是互联网时代,即使你在深山,你依然与世界同步。
欢迎关注公众号:“前端逸辰”,获取更多前端知识精粹和学习社群:
回复 学习路径,将获取笔者多年从业经验的前端学习路径的思维导图
Vue、React、小程序、Node
网友评论