我是程序猿!请别找我修电脑!我不会!

熊爸爸的科技工坊 2019-11-14 10:16:16

OK,这个题目并不是说我赞同这个说法,为什么现在的

程序猿

都口口声声的大声宣布我只是写软件的,不会修电脑。这种说法简直太可笑了。为什么我会这么说请听我慢慢道来。

首先我们要区分一下程序猿的种类,我可不是一棒子打死所有人的哦!有一部分程序猿写程序是为了学术研究,比如人工智能计算什么的,这类程序猿大多是学院的研究生、博士或者教授什么的,他们不懂硬件,不会修电脑很正常。可是你们知道吗第一个使用GPU来实现显卡加速计算的恰恰是学院的研究生,如果不是对硬件有所了解恐怕是不会有这跨时代的发明吧。

还有一类是高级程序猿,也就是所谓的架构师。这类程序猿你说你不懂硬件,不会修电脑?那你怎么成为架构师的?作为一名架构师除了对软件的整体架构负责外,还要对运行的硬件负责。至少你要知道你跑的硬件的最低标准是什么,你的软件栈能否在该硬件上跑起来,你的软件在编译的时候是否有针对该硬件平台的优化参数等等。如果一名架构师说,我不懂硬件,那么很怀疑你的架构师是怎么混来的,哦,对了,反正在国内什么经理啊、什么老师啊、什么架构师抬头都是可以随意附加的。

最后剩下的一类程序猿就是苦逼的码农了。作为一名苦逼的码农说我不懂硬件,不会修电脑,其实也是可以理解的。毕竟现在光是软件栈就有一大堆要学习了,没空去学习硬件知识也能理解。但是如果你希望从一名码农升级到架构师的话,那么对硬件的学习还是必要的。

那么作为一名程序猿对硬件知识的掌握是否重要呢?在上世纪80年代的话,别说是程序猿了,就是一名PC Gamer要想玩游戏那至少是半个电脑工程师水平才行,别说是装系统,自己动手装硬件都是家常便饭。什么BIOS设置,什么IRQ中断配置,什么DOS命令,那可是要如数家珍一般的了然于心才行。所以那时候但凡是一名程序猿,那么肯定是能够自己动手维修电脑的,只要不是CPU烧掉,内存烧掉,那么总是可以想办法修好的。如此一来就会让人有这样的感觉,那就是你不是写程序的么,那么帮我修下电脑吧。那时候写程序的真的能帮你修电脑哦!

但是现在的情况不同了,硬件价格已经很便宜了,甚至可以使用3、400的树莓派来做电脑使用,如果硬件损坏通常更换一个就能轻松解决。程序猿也不会再去关注硬件的性能指标,凡是主流配置的电脑性能都已经产生了性能冗余,除非玩大型的3A游戏,一般我们连电脑10%的性能都没有用到。而现在要开发一套软件,程序猿要面对的软件堆栈比以前不止多了一个数量级!光是要不落伍就已经是全力以赴了。开发一个桌面应用,那要学习C++,然后是学习QT框架,或者是Win MFC以及其他的桌面框架,如果你要开发Mac应用,那么你还要学习Object-C或者Swift,然后是Cocoa框架,对了,现在又出了UIKit框架。学完框架你还要学习包管理软件,没有包管理软件的话你就要手动把第三方库加到你的应用程序中,那就更苦逼了。写完了应用你以为就结束了?NO!你还要学习写测试代码,单元测试,集成测试,A/B测试等等。你以为测试完了就可以上线了?NO!你还要学习CI,持续集成发布!对你的软件要一直保持,开发,测试,发布的循环,直到你吐血的那天为止!这还只是桌面应用,你为了拓展用户还需要有web应用或者是移动应用。然后你要学习JavaScript,Dart,Kotlin,Swift,Rust,Go,Lua等等的语言,然后就是一堆的框架在等着你,什么Angular,React,Vue还有Flutter。之后又是一堆的包管理软件学习,接着是测试学些。我实在是说不下去了,反正你在开发一个应用之前,你要先学会如何配置Visual Code,把它配置的更Vim一样的得心应手。简单来说,当你安装配置完了代码编辑器,你才踏上程序猿征途的第一步,而这一步就已经剔除了90%的不合格者了。所以现在你再去找一个码农说帮我修下电脑呗!很抱歉,恐怕他连自己电脑坏了该怎么修都不知道。

但是我最后要说的是,作为一名合格的程序猿,要想写出优异的应用来多少还是要了解下硬件。至少你要知道你的编译器是否有针对你的硬件的特殊优化,往往这种优化只需要一个参数就能抵得上你一周的工作量。就算你不能帮朋友修电脑,但是自己的电脑总要会修吧,至少系统总要会装,当你了解了操作系统底层之后,你就会明白那些算法、那些框架为什么会这么写了,对于自己的软件技能提升也是有所帮助的。

1 阅读:7

评论列表

昆明用户20xxxx0675

昆明用户20xxxx0675

2
2019-11-14 13:35

你修电脑不会做excel?你修电脑不会用CAD?你修电脑不会修打印机? 对不起 除了修电脑 我只会核弹头抛光 你要一起死么

熊爸爸的科技工坊

熊爸爸的科技工坊

不专业的介绍各种闹稀奇古怪的知识