技术更新如此快的情况下,给程序员的一点建议

昨天老婆说,你永远不知道未来是什么样子,儿子将来的用的技术,与现在的完全是不同的。

这里我还真有点要说的,其实我是真的什么都没教儿子——有点冤。

我只想教他如何吸烟,就我本人来说,因为五岁吸过一根烟,所以才产生了一生的免疫。想抽就抽,不想抽就不抽。

另外,也想教他玩几个电子游戏,因为小时候接触,都会产生一生免疫。

当然,这些直接就被老婆否了。~~,想起有个医生发明了一个论点:吃鼻咖,能加强免疫。他首先想到拿他女儿做实验,你猜怎么着?当然是被他领导否了。

---------------------------------------------------

至于技术,不会教儿子,最好不要当程序员。

不过,话说回来,如果将来他真是什么也不会,就根我一样,还得当程序员的话,我还是有几句要说的。

特别是老婆说的,你不知道将来是什么样子。

这个,我只能说部分认同。

---------------------------------------------------

今天我们就来讨论一下,有什么有什么技术,不会随着时间的推进而改变的?

---------------------------------------------------

答案是非常肯定的。

比如数学和物理这样的基础学科,当然,这两种也在飞速前进,但只要是学的,就不会失效——这点可不同。

比如数学的复变函数,雅各比矩阵,等等吧,都是我们目前各行的基础。

但这个,没有什么现实意义。因为人类社会,能养得起的真正的基础科学家,是有数的——名额有限。

作为一个普通人,什么技术,应当来学习一下,并且能长久保值呢?

这样吧,我们反过来问,近几十年,有没有什么技术层面的东西,没有进步呢?我们是说技术啊,不是社会。社会从来就没变过。

对于程序员来说,有。

首当其冲,就是语言学

有人说,不对啊,翻译机相关的理论,正在不断前进啊。

我不否认,但如果你研究过语言学,就知道,的确是从乔姆斯基写了他那天才的论文《语法结构》后,的确是再也没前进一步。

目前的进步,来自于统计学和计算机运算速度的提高。但只要是基础理论没有突破,就无法突破上限。

由于语言学没有进步,我们计算机语言学,就没有半点进步。

因为计算机是不能理解模糊语言的,你不能把统计语言技术,用于计算机指令。

实际上,我们目前用到的所有的计算机语言,只用到了《语法结构》里,最简单的模型。

《语法结构》是1950s中后期的事情。见我前面写的关于巴斯克这个幸运的人故事。

我们算算,50多年了,没有进步。

这意味着,乔姆斯基还是牛B烘烘地满世界晃。这家伙被称为20世界十大伟大科学家之一,而且是唯一活着的(是不是死了),而且可能是最被低估的。

没他你想想吧,今天的世界是什么样子。今天我们用C语言,好象是理所当然的,但乔姆斯基那个年代,人们认为,人类无法理解自己的语言。哪怕是一点点也不能。

但乔姆斯基说,是理解不了,但至少能理解一点。

这一点就如此强大。

所以说,程序员们,你要想学点真的不会落伍的技术,非语言是一个可行的选择。

等等,跑题了,语言学的书,我也看了一些,很烦的。而且学了也没得大用。有一点,还记得的,就是语言是以V为中心,也就是以动词为中心,这一点,如果你还不知道,今天你知道了,知道学英语你要怎么学了吧?

我们回到现实,说点现实的。

退而求其次,为了省几个脑细胞,我们可以学习一下编译器。

后面,我想写一点与编译器相关的话题——从实用的角度。

编译器、数据库、操作系统,被并称为三大系统,是计算机世界的三大基础。他们是共同被发现、定义,共同进步的。

当然,严格意义上,真正的操作系统晚于编译器。真正的计算机语言,也是在编译器发明之后,在乔姆斯基之后。见巴斯克有故事。

这三大系统,各有特点,比如操作系统,最困难的就是调度冲突问题,为解决CPU硬死锁,直到一个科学家找到一个方法,见《现代操作系统》现在我想不起来了。

数据库,也极为复杂,如分块、寻址(因为数据库是外存的随机存取系统)。当然,数据库的SQL语言,也离不开编译器的啊。

****************************************************

所以说,有兴趣,学习一些编译器相关的知识,永远也不会用不着。因为我们人类的总智慧加在一起,养不起多少种真正的编译器。

我是说真正的编译器。语多编译器是基于C语言来编写的。算不上真正的编译器。

****************************************************

目前互联网时代,已进入泡沫时代,所以,有许多想法,但没有一个是现实成立的人们,建议还是回头学点技术吧。

学习编译器,肯定是没错的。

***************************************************

就这一点,我敢反驳我老婆,再过至少30年,编译器的相关技术不会落伍。而且,只需要学习C和C++以及object-C 的编译器就可以了。object-C是C语言的一种应用,是在C的静态内核上,加入了动态语言。也就是说object-C的解析器,分了两层,一层与硬件相关,一层需要与应用程序一起发布,这以后我们来分析吧。

C语言编译器,有一些特殊概念。因为很多历史原因吧。但总之,你学习C语言编译器就对了。

-----------------------------------------------------------

再退而求其次。

编译器是很好,但太TM困难了。记得一个sizeof,我写的代码,足足有至少三年才算是基本对了。别提了。以后我想写写这个东西。

而且,我是可以供用微软的编译器来校验的情况下。所以,可以想象,最早写编译器的人,多么困难?

就学习语言吧。

比如object-C,70年代产生的东西,直到现在这不是还在用吗?更不要说C语言了。

再如操作系统,UNIX,也是70年代的,iOS内核就是BSD Unix,学学这些东西,肯定不会吃亏。

数据库就不用多说了。它们也是70年代以前就有了~

再如人机界面,其实基础理论,没有什么太大改变。的确iPhone算是一次革命。当然,以前也都是两个小偷从施乐偷来的那些东西。

而google所有的技术,大多与数学,如贝叶斯,统计学相关。

-------------------------------------------------------------------------

这么来看,说技术日新月异,也对也不对。

怎么老是感觉还是那些东西呢?

当然,系统论目前是真正在高速发展的一个学科。虽然这东西没什么神秘,但没有计算机这种工具之前,谈系统是扯蛋成分居多——你演算的速度远不及现实系统演进的速度,搞什么呢?

现在可不同了。什么数字地球,模拟人体(模拟人吃了药以后的药理变化),等等吧,都在进行中。

这的确是未来一个可以考虑的方向。



时间: 2024-08-04 12:44:56

技术更新如此快的情况下,给程序员的一点建议的相关文章

windows/Linux下的程序员文档浏览工具

Dash + Alfred https://www.jianshu.com/p/77d2bf8df81f 对于程序员来说,查看api文档是非常频繁,经常窗口之间切换非常麻烦,mac下就有一个查文档的神器:Dash. 详细使用可以参考如上连接的说明. 本文重点整理下windows和linux下使用类似的功能如何操作. IntelliJ插件 https://github.com/gdelmas/IntelliJDashPlugin/releases ShortcutYou can change th

linux下安装程序员必备软件

startx进入桌面后,ctrl+alt+t调出终端.安装完成以后重启在软件ubuntu软件中找到软件启动,锁定到启动器. 1.首先安装chrome(64位) 1.1,输入: cd    /tmp 1.2,输入: wget     https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 1.3,输入: sudo     dpkg     -i     google-chrome*; sudo    apt

【原创】PHP程序员的技术成长规划

PHP程序员的技术成长规划 作者:黑夜路人(2014/10/15) 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言.(未来技术变化不在讨论范围) 第一阶段:基础阶

PHP程序员的技术成长规划

PHP程序员的技术成长规划 作者:黑夜路人(2014/10/15) 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言.(未来技术变化不在讨论范围) 第一阶段:基础阶

Warning!程序员们小心被技术绑架

通常我们说程序员需要在某个技术方向上积累到一定的厚度,要能够运用技术有效地解决实际问题.可是当程序员在某一项技术上浸淫时间长了之后,却经常会出现另外的问题,那就是:看待问题时受限于自身的技术积累. 我打算从几个方面来谈这个话题. 一定有某一项技术最适合解决某个问题 有的人对 C++ 比较熟悉,在开始一个新产品或新项目,比如做一个 Android App ,就会考虑怎么用 C++ 来实现目标,于是就会去找可以用在移动端的 C++ 框架,比如 Qt ,比如 NDK + Native Activity

Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势

作者:尤雨溪链接:http://www.zhihu.com/question/31809713/answer/53544875来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. 原生 DOM 操作 vs. 通过框架封装操作. 这是一个性能 vs. 可维护性的取舍.框架的意义在于为你掩盖底层的 DOM 操作,让你用更声明式的方式来描述你的目的,从而让你的代码更容易维护.没有任何框架可以比纯手动的优化 DOM 操作更快,因为框架的 DOM 操作层需要应对任何上层 API 可能产生的操作,它的

技术更新的真快

spring for apache hadoop 1.0发布 技术更新的真快,布布扣,bubuko.com

有中国驾照的情况下,在美国怎么考驾照?

Yaaa.知乎用户.阿厚 等人赞同 各州有别,我说一下加州的情况好啦.传说中的理论上说呢,国内的驾照在加州可以直接用,但似乎有个半年时限,若不幸被警车逼停要解释半天还要看交警心情也蛮麻烦.且驾照之于美帝,更相当于身份证明,混bar买酒等等日常必不可少,所以各位打算长久待下来的盆友们还是混个美帝驾照的好呢~ 呐,题主已经有了中国驾照.进阶到大加州驾照步骤如下:1. 带上护照和国内驾照,去到离你最近的DMV( Department of Motor Vehicles). 排好长好长的队(没有没有我没

【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进

2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时用户注册数量就达几十万,火爆程度可见一斑.笔者作为写下熊猫TV第二行代码的Coder,见证了熊猫TV成立以来的风风雨雨.直播技术坑不少,本文简单揭秘熊猫TV这一年的技术架构演进,分析各个阶段面临的主要问题和应对方案,给大家做直播系统提供一定的参考. 熊猫架构 0.1- 来不及了,老司机快上车 这个阶