• 欢迎访问:祀与戎,国之大事,在祀与戎。 手机号码:
  • 欢迎访问:祀与戎,国之大事,在祀与戎。
  • 欢迎访问:祀与戎,国之大事,在祀与戎。祀与戎
  • 祀与戎,国之大事,在祀与戎www.siyurong.com
  • 祀与戎,国之大事,在祀与戎。如果您觉得本站非常有看点,那么赶紧使用 Ctrl+D

都说现在编程技术更新速度快很多技术会过时,那么有哪些技术不容易过时呢?

思想观点 siyurong 4年前 (2022-10-25) 3次浏览 已收录 0个评论

我是84年开始写程序的,见证了整个IT的高速发展。表面上技术发展很快,特别是与用户直接接触的前端技术包括人机交互部分,但计算机的基本技术和原理都没有什么变化。

如果要我重新学一次计算机专业,我一定会认真上几门课,1:数据结构,2:算法,3:计算机体系结构,4:操作系统,5:编译原理,6:计算机网络,7:数据库。看自己兴趣,还学习一下数字信号处理,数据分析的课程。

这些课里学到的知识,30年前在用,现在仍然在用,而且用的很熟的人,技术水平一定高。以我自己创业开发的时序数据库TDengine(http://www.tdengine.com) 为例,我们开发了自己的内存管理,文件管理,调度器,开发了自己的消息队列,使用了多种索引方法、排序等等。如果你不能随手写一个二叉树、Hash,你都没法做我们TDengine的研发工作。虽然这些基本的原理都有现成的库,但针对自己的场景,比如我们时序数据场景,很多情况下不能直接用,或性能不够,因此非得自己写。

再举一个例子,操作系统课程里介绍的”生产者-消费者“问题,是一个经典问题。在各种场景下,你其实是会遇到的,比如TDengine里的查询调度,就需要。只有你对这个问题有真正的了解,你才能解决自己场景下的问题。再举个例子,比如编译原理,工作中不太可能有要你写一个编译器的任务,但是学会了编译原理,你对怎么最大程度的去优化自己的程序,写个简单的parser就会得心用手。

我个人最推崇的是认真学习操作系统这门课。因为操作系统课讲的都是各种资源的管理和调度,包括CPU、内存、网络、外围设备等等。世界上绝大部分系统都是管理这种或那种资源,抽象的来看,与CPU、内存、外围设备的管理其实没任何区别。因此你可以用操作系统课里学会的方法、算法去解决其他实际问题。

所有这些计算机的基本原理、方法几十年都没变,我们只是把它组合起来,去解决新的问题。比如区块链,比如IoT场景下的时序数据处理。因此只有把握最基本的原理和方法,你永远不会被淘汰。

我完全不能理解别人的回答。我小时候熟悉的各种技术(basic, turbo pascal, turbo c, dbase, …)都过时了,年轻时候熟悉的各种技术(delphi, 编译原理, yacc, lex, asp, servlet, jsp, unreal engine, gamebryo, objective c, ajax…… )也都过时了,就连十年前五年前刚学会的技术也过时了。我不停的学新东西,从来没觉得“基本原理”有什么用。

我认真学过了编译原理,早年工作中也用yacc和lex做过编译器。但是这对后来的工作没什么用,已经过时了。

早年做游戏开发要学计算机图形学,要学相关的很多数学。后来工具先进了,知道太低层的东西除了跟新人炫耀之外没啥用,人家工具调用一下就能有同样的效果。

我以前做过objective c的开发,可是现在重新想做iOS开发的时候捡起swiftUI还是得从头学起。再想用回objective c, 那界面没法做,现代那么多iOS设备根本没法适配。

所以做编程是一件特别费劲的事,更新速度快,动不动就过时。什么技术背后的原理,思想,更容易过时,学起来更费劲。羡慕那些做美术的,一个工具用个几十年。换个画图工具,还是这些东西:图层,效果,笔刷……

但是他们也渐渐的不一样了,光会3dmax不够,还有maya, c4d, vray,zbrush, blender …… 都得会。


但是,有一些东西确实是积累下来很有用的:

unix/linux/darwin的各种命令行用法,各种相关命令工具。

ssh; tail -f; grep; vi; cp, mv; crontab; wget; curl

这么多年来,不仅没怎么变过,而且还一直非常有用,而且还一直都是同样的用法。


祀与戎 , 版权所有蜀ICP备14023000号-6丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:都说现在编程技术更新速度快很多技术会过时,那么有哪些技术不容易过时呢?
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址