首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >这些知识决定了程序员的上限……

这些知识决定了程序员的上限……

作者头像
DevOps时代
发布于 2019-11-14 08:56:51
发布于 2019-11-14 08:56:51
8290
举报
什么是程序员?
  • 码农、程序猿、程序媛
  • 使用程序实现价值
  • 程序=数据+算法
  • 软件=程序+软件工程
  • 程序员=工程师?

程序员金字塔

程序员知识结构

  • 面试造火箭,工作打蚊子
  • 会什么是你的下限,能够会什么是你的上限
  • 越底层的东西越决定上限

学习欲望

杜绝1年工作经验重复N年

  • 如果自己遇到这种问题会怎么解决,与资料中的解决方案相比优劣如何?
  • 别人为什么会想到这种解决方案?
  • 自己是由于经验欠缺还是技能点欠缺才导致没有想到好的解决方案?
  • 解决这类问题的根本思路是什么样的?

学习能力

不是懂得多,而是学得快

  • 知其然更要知其所以然:技术以深度优先
  • 类比现实:对现实世界的模拟
  • 更好地接受信息:建立自己的知识体系;阅读并记笔记,纳入知识体系
  • 深度思考:阅读书籍
  • 动手实践、频繁练习:项目驱动型学习;主动思考
  • 自我总结:完善知识体系;笔记、博客、分享
  • 持续学习:逃离舒适区;学到老,活到老

如何学习新技术

如何阅读源码

  1. 阅读该技术的架构文档,了解其总体架构和组成
  2. 根据总体架构,将源码文件以模块或者上下层级进行分类。
  3. 从未阅读过的模块中选择最独立(依赖性最小)的模块代码读起。
  4. 阅读此模块的功能介绍文档。
  5. 阅读此模块的源代码:运行程序,断点调试。
  6. 一边阅读一边整理调用关系图。
  7. 转到第三步。

参考官方文档或者经典书籍

计算机思维

  • 冯.诺依曼体系:程序存储,顺序执行。
  • 二进制存储:用比特解决问题
  • 位运算:位运算的高效
  • 逻辑分支:条件判断、循环、迭代、递归

个人规划

  • 长期规划:职业规划;高瞻远瞩
  • 短期规划:具体技能、晋升、学习方面的规划;优先级排序

基础学科

  • 物理:电路原理;量子计算机
  • 数学:工程优化;线性代数;微积分
  • 英语!!:阅读英文文献;计算机术语

计算机组成原理

计算机的硬件组成和运行原理

  • 冯诺依曼体系、摩尔定律、阿曼达定律
  • 数据的机器表示:原码、补码、反码、浮点数/定点数
  • 指令系统:复杂指令集、简单指令集
  • 存储器:分类、缓存
  • CPU: 流水线、伪共享、缓存
  • IO设备:IO总线、DMA、中断

计算机操作系统

屏蔽计算机硬件的中间层

  • 作业调度: 调度策略、优先级
  • 进程管理:进程和线程、进程间通信
  • 存储管理:内存、虚拟内存、文件系统、页、页缓存
  • IO管理:IO设备读写操作
  • Linux操作系统

计算机网络

单个计算机之间的互连

  • TCP/IP协议栈:四层/七层
  • TCP连接状态
  • TCP与UDP的区别
  • HTTP协议、RESTful规范
  • 网络安全
  • 下一代互联网:IPv6、物联网、5G

编译原理

将代码转换成机器可理解的二进制,有助于实现DSL

  • 词法分析、语法分析
  • 类型检查
  • 运行时环境、中间代码
  • 代码生成、代码优化

数据结构和算法

程序=数据+算法

  • 基本数据结构:数组、链表、栈、队列、哈希表
  • 最大堆、最小堆:TopN问题
  • :平衡二叉树、B树、B+树、红黑树
  • 跳跃表: 简单可实现
  • 经典排序算法:快速排序、归并排序、插入排序、冒泡排序
  • 经典查找算法:顺序查找、二分查找
  • 高级算法:贪心、分治、回溯、动态规划
  • 大数据处理:Bitmap、Bloomfilter、Hyperloglog、MapReduce、MPP

设计模式

软件可复用、可扩展、可维护。善用而不滥用。

  • 面向对象SOLID设计原则:单一职责、开闭原则、里氏代换、接口隔离、依赖倒转
  • 常用设计模式:单例模式、工厂模式、代理模式、适配器模式、观察者模式
  • 常用框架中的设计模式:Spring

来源:本文转自公众号 后端技术杂谈,ID: servertalk

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps时代 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
终于有人把Java程序员必学知识点整理出来了,令人有如醍醐灌顶
无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)
愿天堂没有BUG
2022/10/28
2640
终于有人把Java程序员必学知识点整理出来了,令人有如醍醐灌顶
AI时代软件工程师职业还将存在多久?
现代软件工程师的职业,本质上是靠吃着冯诺依曼(von Neumann)架构的红利而存在(感谢祖师爷赏饭吃)。我们不过是计算机指令与数据的搬运工,通过写代码,把字节从二级存储搬到内存,然后又搬到寄存器,再搬到中央处理器,最后又把运算结果搬回去。后来有了网络,于是又多了把字节从这台计算机搬到那台计算机的工作。
Onegun
2023/12/27
4770
AI时代软件工程师职业还将存在多久?
2021 最新Android常见知识体系,HR:“这些全部精通薪资任你开!”
构建一个属于自己的知识体系,能够让我们学到的知识体系化。让自己清楚哪块是自己的知识盲区,哪块已经构建起根基。然后根据实际情况,有针对性的进行模块学习。让自己成为一个合格的Android工程师。
Android技术干货分享
2021/02/01
1.4K0
2021 最新Android常见知识体系,HR:“这些全部精通薪资任你开!”
程序员学习 CPU 有什么用?
在上一篇文章里,我们聊到了计算机的冯·诺依曼架构,以及计算机的五大部件:控制器、运算器、存储器、输入设备和输出设备。在现在计算机体系中,CPU 是整个计算机的核心,主要包含控制器和运算器两大部件。
用户9995743
2022/12/22
1.4K0
程序员学习 CPU 有什么用?
Java进阶之路——从初级程序员到架构师,从小工到专家
怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题。希望这篇文章会是你看到过的最全面最权威的回答。
凯哥Java
2019/06/28
7080
一套用了 70 年的计算机架构 —— 冯·诺依曼架构
上一篇文章里,我们讨论了可计算问题与图灵机的计算机模型。在理解了图灵机模型后,我们将从和图灵同时代的另一位计算机科学家提出的 “冯·诺依曼架构” 开始,正式开始计算机组成原理的核心内容。
用户9995743
2022/12/22
2.3K0
一套用了 70 年的计算机架构 —— 冯·诺依曼架构
Android中级面筋:开发2年的程序员如何短期突击面试?跟着这几步去准备,大厂也不远了
本篇文章给大家分享一下笔者面试的一些感受和经验,因为笔者目前不到两年的工作经验,所以本篇文章定位为1-3年的Android开发工程师。当然本篇也适用于校招,但3年以上估计面试要求会更高一些。
Android技术干货分享
2021/05/06
7300
Android中级面筋:开发2年的程序员如何短期突击面试?跟着这几步去准备,大厂也不远了
十面阿里,屌丝程序员的逆袭之路前言
前言 《十面阿里》本屌现今四年开发经验;前前后后为进阿里面试十次(阿里旗下——蚂蚁金服,天猫的offer都被hr因学历而被拒,最后的菜鸟面幸运的被录用,拿到P6offer,真正的“十面”阿里!)。 本
美的让人心动
2018/06/14
7170
紧急应对金三银四跳槽季,那些想要换个场地的程序员可以在Android市场行动起来了!
又要交房租了,工资怎么还不发?每个月总觉得钱不够花,工资总是跟不上消费,什么时候能涨个工资呢?
Android技术干货分享
2021/02/26
6170
紧急应对金三银四跳槽季,那些想要换个场地的程序员可以在Android市场行动起来了!
一份Java程序员进阶架构师的秘籍,你离架构师还差多远
Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量、连接池,线程池。
慕容千语
2019/06/11
7010
再不跳槽,真晚了
从时间节点上来看,每年的 3月、4月 是一年中跳槽的黄金季! 以 BAT 为代表的互联网大厂,无论是薪资待遇、还是平台和福利,都一直是求职者眼中的香饽饽,“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里,进大厂,是绝佳机会,也是大部分小伙伴的第一选择! 很多想进大厂的朋友都在问,该怎么备战 2022年春招? 为此我专门找了一份《Java进阶学习+面试宝典》分享给大家,内容涵盖:计算机基础、Java、JVM、spring、算法、微服务、分布式、大厂面经、技术脑图等等...共1400+页
程序猿DD
2022/03/24
7060
Java进阶之路——从初级程序员到架构师,从小工到专家
本文主要讲述了如何从一名初级程序员成长为一名优秀的技术管理者。首先,作者通过自己的经历,分享了在技术管理过程中遇到的问题和解决方法。接着,作者介绍了在技术管理过程中需要具备的技能和素质,包括领导力、团队协作、沟通能力、学习能力等。最后,作者提供了一些成为优秀技术管理者的实践建议,包括制定计划、分配任务、持续学习等。
Java后端工程师
2017/12/17
2.7K0
处理器“三国鼎立”:从CPU、GPU到DPU
当2020年10月份,NVIDIA在其GTC 2020大会上大张旗鼓的宣传DPU之后,整个行业热了起来,大家都在问:什么是DPU?DPU到底能干什么?DPU和GPU有什么区别?号称数据中心三大处理器之一的DPU,“何德何能”与CPU、GPU并驾齐驱?
SDNLAB
2021/07/27
4.4K0
处理器“三国鼎立”:从CPU、GPU到DPU
程序员要怎么学习
“怎么学习”这个问题,从上幼儿园开始就在接触,到现在工作,也是一直在学习,子也曾经曰:学而时习之。
马拉松程序员
2022/04/26
2910
程序员要怎么学习
从Java程序员到架构师,从工程师到技术专家,迷茫之路
怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题。希望这篇文章会是你看到过的最全面最权威的回答。
慕容千语
2019/06/12
8960
一名【合格】前端工程师的自检清单
前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快是其他技术所不能比拟的。
ConardLi
2019/05/23
1.1K0
面试又挂了:大厂面试到底更看重学历还是技术?来看看大佬的说法
嗯,我的学弟学妹们也是一样的,都是普通二本。但是和我不同的是,现在的社会越来越浮躁了,浮躁的让人沉不下心认真做事,让人忍不住去想各种有的没的。
全栈程序员站长
2022/09/06
9970
面试又挂了:大厂面试到底更看重学历还是技术?来看看大佬的说法
转:成为Java高级程序员需要掌握哪些?
1、Core Java,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了
技术zhai
2019/02/15
7020
前端技能自检
前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快,是其他技术所不能比拟的。
grain先森
2019/08/05
3.3K0
前端技能自检
面试被吊打,是因为你的知识体系零乱!值得收藏的全方面覆盖Android知识结构总结
2017年初Android市场饱和的传言一度甚嚣尘上。2018年经济寒潮,2020年疫情打压下,众多大厂和曾经风口上的互联网企业也不得不裁员自保,通过小程序、前端渲染以达到原生的实现。
Android技术干货分享
2020/12/28
8040
面试被吊打,是因为你的知识体系零乱!值得收藏的全方面覆盖Android知识结构总结
推荐阅读
相关推荐
终于有人把Java程序员必学知识点整理出来了,令人有如醍醐灌顶
更多 >
目录
  • 程序员金字塔
  • 程序员知识结构
  • 学习欲望
  • 学习能力
  • 如何学习新技术
  • 如何阅读源码
  • 计算机思维
  • 个人规划
  • 基础学科
  • 计算机组成原理
  • 计算机操作系统
  • 计算机网络
  • 编译原理
  • 数据结构和算法
  • 设计模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档