| 查看: 956 | 回复: 1 | ||||
[交流]
如何成为一个优秀的程序员 已有1人参与
|
|
各种软件技术之间是怎样的关系? 我把软件技术分为三个层次: 问题域:计算机图形学、音视频编码、信息安全、模式识别、信息检索、自然语言分析、人工智能、科学计算等; 系统集成:C++和Java等面向对象语言、Python等解释型语言、LISP等函数式编程语言、GUI、中间件、编译器与解释器、虚拟机、数据库、网络服务、并行计算、集群、Peer2Peer、系统管理等; 系统功能:硬件描述语言、计算机体系结构与编程模型、指令集与汇编语言、C语言、内核、文件系统、设备驱动、网络协议、POSIX等。 计算机最终是做什么用的呢?最终是通过问题域的各种技术为用户解决问题的,这些技术都包含很高深的算法,然而它们必须在一个平台上运行,它们需要利用平台提供的各种基础设施,比如计算能力、I/O能力和网络互联能力。系统功能和系统集成层就是用来实现这个平台的。系统功能层实现计算、I/O和网络的基本功能,系统集成层对这些基本功能做一些抽象和包装,提供更方便灵活的接口。 有人说软件技术变化太快,现在学的东西过两年就要完全淘汰,是吗? 你知道这话是什么人说的吗?必然是已经被淘汰的人说的。比如Delphi、BCB、PB这些开发工具和语言,都曾经很是风光了一阵,但现在已经完全被 Java和.NET取代了。那么Java和.NET会不会被取代呢,也许在相当长的时间内还不会,但是我看好Python。 这些被淘汰的程序员有一些共同的特点:只会用鼠标拖拽控件,离开IDE就不知道如何工作,学点儿花拳绣腿的功夫就想吃一辈子,对学习新技术不感兴趣,做一天和尚撞一天钟。现在请回头看看FAQ1,在整个软件技术领域,这些变化快的技术其实只占了很小的一块,却成了这些人的全部看家本领,这样的人能不被淘汰吗? 与这些流行的开发工具和语言相反,很多技术和思想是很少变化的。比如,POSIX和SUS标准规定了一套系统函数接口和基本命令的语义,只有实现了这些才可以称作UNIX,因此今天的Linux、Solaris跟20多年前的UNIX在系统功能层上是基本一致的。而指导计算机科学发展的数学理论,甚至是老祖宗们在计算机还没诞生的年代就替我们想好的:布尔代数发表于19世纪,直到一个世纪后发明了计算机和数字电路才有了用武之地;数论在17世纪就出现了,一直都被数学家们当成一套好玩的理论,但只是好玩而已,直到计算机密码学诞生后才发现它的实际用处。 各种流行的开发工具和高级语言虽然变化很快,但是底层的编程语言却非常稳定,各种操作系统的内核都是用C语言写的,以前是这样,以后也不会改变。另一方面,各种编程语言的设计思想也是非常稳定的。其实世界上只有两种编程语言,一种是C,一种是LISP,前者是imperative的,是对计算机模型的抽象,后者是functional的,是对数学函数模型的抽象。面向对象是一种重要的软件工程思想,却算不上一种新的语言模型,应该归在C的一类。属于同一类的各种语言其实都大同小异,一个精通C++的人学习Java需要多长时间?熟悉语法一个星期,熟悉类库三个星期,一个月足矣,以往的经验都可以套到新的编程语言上。然而要想习得深厚的算法功底、逻辑思维和抽象思维修养,能够真正说清楚“系统”是什么,如何分析和设计“系统”,需要多长时间?恐怕要数十年。 |
» 收录本帖的淘帖专辑推荐
java课外书籍 |
» 猜你喜欢
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有7人回复
磺酰氟产物,毕不了业了!
已经有5人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有5人回复
不自信的我
已经有5人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
《快速成就自我经典》
已经有51人回复
如何成为一名优秀的化学博士
已经有10人回复
如何才能成为一名合格的研究生
已经有18人回复
优秀心理畅销书——《交际要懂心理学》(洞察人性,做一个社交场上的心理学家)
已经有155人回复
程序员必读书单【转载】
已经有22人回复
成为一名优秀的科研人员的基础是什么?
已经有63人回复
【分享】在大的项目中为什么不用c++[也顺便测试一下你的c++基本水平]
已经有5人回复

jxguo
铁杆木虫 (职业作家)
- 应助: 17 (小学生)
- 金币: 10081.4
- 散金: 3
- 红花: 2
- 帖子: 3429
- 在线: 597.4小时
- 虫号: 305053
- 注册: 2006-12-09
- 专业: 数理统计

2楼2019-02-16 22:26:41









回复此楼