原标题:计算机基础知识对程序员来说有多重要?

科班和培训生同比于自学者的优势就在于这些计算机专业的核心课程(数据结构与算法这种不管科班培训都要学的不算):离散数学、编译原理、计算机组成原理、操作与系统——乃至图形学和数字图像处理。

如果觉得太抽象学不进去,要么是经验不够写的代码太少,要么就是教材或者老师不给力——后者可以用csapp代替。

哪怕你考完就忘了,哪怕你毕业后写代码时还是要现场搜博客看怎么处理多线程问题,但至少,你对这些概念心里面是有印象的,遇到了问题,你心里有杆尺子——

1、如何从这个问题提炼关键字,上网搜索或询问;

2、这个问题对应哪个领域的知识,我应该直接去查“多线程 互斥锁”而不是查“为什么这个程序跑不对?为什么count不等于100?”

3、读代码、写代码时,起码知道,这里该用多线程组织生产者消费者关系,那堆数据应该用一个树来组织——这方面和设计模式很相似,为我们提供了在更高层面看问题的可能性。

4、分得清工具链中各个部分的区别,不至于说mfc、qt、vc、c语言、c++傻傻分不清楚,都在参与几十几百万的项目了,还在到处问人“qt里能不能用FILE*指针?”

举个比较实在的例子,非科班的人,遇到问题是这么问的:

codeblocks 下载的是mingw.setup的,但是还是提示没有编译器?​

www.zhihu.comVC++6.0用MFC编译有一个问题。?​

www.zhihu.com如何使用Dev C十十画抛物线?​

www.zhihu.com

这样的问题,有的让人根本无从回答,有的问题一字不改百度一下都能搜到答案,有的完全是不会提炼关键字的结果……

而如下面这些问题,就充分体现了提问者自己的思考,他们是有明确的方向和目的去思索、去询问、去查询的,哪怕没人回答,这个过程都能有所收获。

(1)C语言如何实现面向对象功能?

其实,我对科班优势的这些描述,也适用于理工类专业——培养符合科学哲学的思辨能力。在遇到问题后,能够知道如何抽象问题,如何提炼关键,如何分析问题,然后基于抽象/提炼/分析得到的各个角度,去解决问题。

对于答复,小音是认同加佩服的和一些直接想甩baidu.apphb.com链接的问题,他都能从科学思辨的角度上,深入浅出地去分析,去解答,而且在让小白如各类题主能看懂的前提下,还能让我等围观群众有所收益。

理想的程序员

1、能跑

2、代码符号规范,使用工具确保符号规范

3、设计需要可扩展,确保设计能令某些情况下没用的部分不会做成额外的性能开销。

4、设计需要可测试,用单元测试保证基本没有BUG,使用帮助验证正确性的工具。

5、找出各种解决方案的时间复杂度和空间复杂度,过程可能需要查找文献及做组合灯工作。

6、考虑数据在内存中存储方式及访问特性,如对齐问题、时间和空间的连贯性,怎样减少存储量的系统及增加缓存一致性。

7、尽量跨平台,并且如需使用操作系统提供的功能(文件、网络、线程、进程等),选取最优解。

8、关注底层性能,是否适合用一些CPU指令(包括SIMD)、GPU或其他硬件解决。做性能剖析,看核心部分的汇编结果,再做实验改成优化。返回搜狐,查看更多

责任编辑:

计算机知识太多了,计算机基础知识对程序员来说有多重要?相关推荐

  1. 计算机二级考试c语言公共基础知识,全国计算机二级c语言公共基础知识考试内容.doc...

    全国计算机二级c语言公共基础知识考试内容 全国计算机二级等级考试的笔试包括基础知识和程序设计两部分,其中基础知识占30分.以下是由关于全国计算机二级c语言公共基础知识考试内容的内容,希望大家喜欢! 全 ...

  2. 计算机二级msoffice应用基础,计算机二级MSOffice高级应用考试基础知识

    计算机二级MSOffice高级应用考试基础知识 计算机应用主要是科学计算.工程设计等数值应用,这一阶段使用第一代电子管计算机(数字机和模拟机),硬件体积庞大,运算速度慢,系统维护需要较高的技术,软件尚 ...

  3. 计算机科学技术标准,计算机科学技术基础知识之标准化和知识产权基础知识

    计算机科学技术基础知识之标准化和知识产权基础知识 发布时间:2020-07-14 10:29:56 来源:51CTO 阅读:487 作者:csuABC 1.标准化的基础知识 (1)基本概念 ①标准化的 ...

  4. 计算机基础知识好学吗,计算机编程好学吗 需要什么基础知识?

    计算机编程好学吗 需要什么基础知识?想要进入编程行业,入门是比较关键的,经常能听到很多人说,想学习编程不难,入门更为简单,只要你对他感兴趣就能学,但是至于学的怎么样,那就不好说了,尤其是在涉及到高级编 ...

  5. 计算机基础知识对程序员来说有多重要?

    数据结构和算法,操作系统,编译原理,计算机组成原理这些课程对普通程序员来说是否需要去学习?会带来哪些帮助? 我们依次来了解这几门课程是在工作中有啥用,回答有点长,请保持耐心:) 一.数据结构与算法 正 ...

  6. 公共计算机课件,全国计算机等级考试二级ACCESS公共基础知识课件.ppt

    <全国计算机等级考试二级ACCESS公共基础知识课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<全国计算机等级考试二级ACCESS公共基础知识课件 ...

  7. 最新计算机word基础知识,最新计算机Word、Excel及部分基础知识.doc

    最新计算机Word.Excel及部分基础知识.doc 计算机知识考题Word.Excel及部分基础知识 1.在Word中,单击下面四个常用工具栏中的按钮,可以打开一个下拉列表,该按钮是 A显示比例 B ...

  8. 在线办公软件测试题,办公软件知识测试题 应用软件和办公基础知识测试题.doc...

    办公软件知识测试题 应用软件和办公基础知识测试题.doc 办公软件知识测试题 应用软件和办公基础知识测试题 导读:就爱阅读网友为您分享以下"应用软件和办公基础知识测试题"资讯,希望 ...

  9. 信息处理技术基础知识(2.4多媒体基础知识 )--第2章

    信息处理技术基础知识(2.4多媒体基础知识 )–第2章

最新文章

  1. SpringBoot05 数据操作01 - JPA的基本使用、基本使用02
  2. C++编程进阶5(内联函数、如何降低编译成本、处理继承体系中同名不同参的成员函数、私有虚函数)
  3. Htc Vive VR 手势识别插件教程 1.1 版本(附1.0版本教程PDF)
  4. python3 乱序函数 shuffle 简介
  5. 共识算法(POW、POS、PBFT、DPOS)介绍-
  6. 【PAT乙级】1027 打印沙漏 (20 分)
  7. poj-2231(Moo Volume) 递推
  8. python错误处理
  9. 随机邮箱_msgsafe - 一个处于半死不活状态的加密邮箱
  10. Maven(五)使用Nexus搭建Maven私服
  11. 视界云:CDN{内容分发网络} 知识详解
  12. 纽交所发言人就“GME事件”表态:采用先进技术监督市场
  13. mysql-connector-java-5.1.22下载
  14. httpclient 无信任证书使用https
  15. Pandas 之DataFrame二维表基础操作及演示
  16. 遗传算法和神经网络算法区别与联系
  17. 保姆级教学:手把手教你如何分析研报!
  18. CTAB-GAN:高效且可行的表格数据合成
  19. 集团化公司快递收发管理教程
  20. 100道面试题,能否进蚂蚁看你了!

热门文章

  1. 牛客网数据开发题库_牛客网SQL题库NO.32~40
  2. php基础 简书,PHP入门基础
  3. 指纹识别 python_python 网站指纹识别
  4. 快递下单后取消订单_网约车定位地点不动,男子别的平台下单,没取消订单要付6.6元...
  5. ajax 输入不为空,ajax POST响应为空
  6. Windows下安装scikit-learn
  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 18丨即时食物配送 II【难度中等】​
  8. mov 和 lea 的区别有哪些?
  9. Google 的 C++ 代码规范
  10. 网络计算机显示10,win10电脑网络显示一个球怎么回事