0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员为什么要学习底层知识

工程师人生 来源:工程师吴畏 2019-01-17 14:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这两天每天中午午休前都会看一些《编程人生》。现在已经看了七八个人,这些人开始编程的时候,正好是计算机的起步期,所以对整个计算机的底层都比较了解。不知道这是不是这些人能够成为大师的一个必要条件,自己有没有必要在这方面努力一下。我想这也是很多程序员思考过的问题。现在分享一下我的思考,和大家一起探讨。——ps:这些人大部分在中学的时候就开始编程,而那个时候我们一般都正在为考试闷头学习,这个差距要我们现在来弥补。

好的,首先有必要澄清一下“底层知识”的概念,对程序员来说什么才是底层知识?

一般情况下,我们可能会认为底层知识就是操作系统,编译器,寄存器等等相关知识。我认为这个问题是相对的,而不是绝对的。这取决于程序员从事那个层次的开发工作。如果是一个c语言开发者,把这些知识归为底层知识也许很合理,但是对一个java或者更高级语言的开发者来说,有些不准确,或者不可以称为直接的底层知识。

我认为,所谓的底层知识,是指他编程或开发所依赖的平台(或者框架,工具)的知识。比如,对于java开发者来说,java虚拟机,以及它所用的框架等知识就是他的底层知识,而更底层的知识,姑且叫它间接的底层知识吧。

为什么要学习底层知识?

不学习底层知识可能不会阻碍你称为一个称职的程序员,但也许会阻碍你成为一个优秀的程序员。

了解底层的知识有助于解决问题,并且做出更好的设计。打个比方,就像庖丁解牛,他看到一个牛后,不止看到的是牛,而是由各个骨骼,经络,肌肉等模块组成的有机体——整个系统对你来说就是赤裸裸的,没有任何神秘的面纱。这样也许能够给程序员提供更多的安全感。

但是如果你编程所依赖的平台需要你去了解更底层的知识才能够解决问题,那么,他可能没有做好他应尽的职责。

底层知识从何学习?

《编程人生》中有一个人提到过,要敢于去“打开盒子”,看里面到底是什么。而我要补充的是,尽量去打开你身边的盒子。

现在开发有个特点,就是分工越来越明确,而且整个编程的知识体系结构也越来越庞大,我们面前的“盒子”很多,我们没有精力去把每个盒子都打开。学习底层知识就要从你最直接的底层开始学起。一方面,你在工作中会遇到类似的问题,有了需求,学习效率就会高很多;另一方面,你也有这方面的基础,学起了可能更加的水到渠成。

当你把你的底层知识征服了,你就有资本(基础,能力)去征服更底层的知识了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    955

    浏览量

    30785
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 420次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 473次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    如何在机器视觉中部署深度学习神经网络

    人士而言往往难以理解,人们也常常误以为需要扎实的编程技能才能真正掌握并合理使用这项技术。事实上,这种印象忽视了该技术为机器视觉(乃至生产自动化)带来的潜力,因为深度学习并非只属于计算机科学家或程序员。 从头开始:什么
    的头像 发表于 09-10 17:38 679次阅读
    如何在机器视觉中部署深度<b class='flag-5'>学习</b>神经网络

    跟老齐学Python:从入门到精通

    础的学习者介绍一门时下比较流行、并且用途比较广泛的编程语言,所以,本书读起来不晦涩,并且在其中穿插了很多貌似与Python 编程无关,但与学习者未来程序员职业生涯有关的内容。 获取完整文档资料可下载附件哦!!!! 如果内容
    发表于 06-03 16:10

    课程0元试听+项目案例免费领!618嵌入式/AI学习者狂欢!体系化课程 硬件学习套件,限时优惠!

    对于有理工科背景的学生/程序员来说,或对编程或硬件感兴趣的朋友,如果想转行或深耕技术领域,有两个方向非常值得选择:嵌入式开发和人工智能,也有人称为研发岗和算法岗。这两个方向不仅岗位多、薪资高、需求
    的头像 发表于 05-29 14:32 458次阅读
    课程0元试听+项目案例免费领!618嵌入式/AI<b class='flag-5'>学习</b>者狂欢!体系化课程 硬件<b class='flag-5'>学习</b>套件,限时优惠!

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    【「零基础开发AI Agent」阅读体验】+ 入门篇学习

    的是基础篇,主要从为什么学习AI Agent和开发AI Agent的知识储备入手进行介绍。作为入门AI Agent的小白还是很有必要学习的。这里将一些重要观点作个归纳 1.AI Ag
    发表于 05-02 09:26

    如何在 树莓派 上编写和运行 C 语言程序

    ,一本很好的书是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。这本书对经验丰富的程序员和想学习C语
    的头像 发表于 03-25 09:28 936次阅读
    如何在 树莓派 上编写和运行 C 语言<b class='flag-5'>程序</b>?

    为什么学了C语言,却写不出像样的项目?

    学习编程的路上,C语言几乎是每个程序员的“必修课”。不管你是打算从事嵌入式开发、系统编程,还是想要深入理解操作系统的底层原理,C语言都是一块重要的基石。然而许多人在学习C语言时,都会
    的头像 发表于 03-14 17:37 681次阅读
    为什么学了C语言,却写不出像样的项目?

    底层开发与应用开发到底怎么选?

    定义底层开发主要关注硬件与软件的交互,包括驱动程序开发、操作系统内核开发、硬件接口编程、嵌入式系统开发等。 2. 技术要求 编程语言:C、C++、汇编语言等。 硬件知识:熟悉微控制器(如单片机
    发表于 03-06 10:10

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 956次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    学习硬件的第一节课:学习读懂原理图

    学习硬件的第一节课:学习读懂原理图 读懂原理图对嵌入式软件工程师和程序员尤为重要。在深入细节之前请注意,对所有的嵌入式设计人员来说、能懂得硬件工程师创建和使用的来描述其硬件设计的原理图和符号是非
    的头像 发表于 12-16 16:04 3665次阅读
    <b class='flag-5'>学习</b>硬件的第一节课:<b class='flag-5'>学习</b>读懂原理图

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 1次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册