登陆

章鱼彩票appios-从小朋友的一道数学题聊聊工作程序员

admin 2019-11-08 234人围观 ,发现0个评论

之前教导小朋友做数学作业时的一道题,从这道题和小朋友聊到了串行、并行,聊到了电脑的结构,聊到了业余程序员和作业程序员的巨大不同。

标题如下:

“阿姨周末在家干家务,拾掇房间用时 10 分,用扫地机器人扫地用时 15 分,擦桌子用时 4 分,用洗衣机洗衣服用时 25 分,晾衣服用时 4 分,请问阿姨做完这些事最少需求多少分?”

这题的中心显然是哪些当地能尽量并行化,然后进步功率,人和电脑很大的不同是,人只要一个大脑,绿帽版电脑则能够以为多核 CPU 构成了多个大脑,使得电脑能够在同一时刻做多件事,不过虽然电脑具有多个大脑,但它一起还有其他许多当地是同享的,例如内存、磁盘、网卡等,当多个大脑都要一起去操作同享的当地的时分,就会导致串行化,这就对程序员怎样写高效的并行化代码带来了巨大应战,和小朋友说,一个作业的程序员能够让具有八个大脑的电脑简直一起在干八件事,但一个一般的程序员有或许会导致有八个大脑的电脑一起只精干一件事,数学也是我以为的一个程序员最重要的根底,数学高度练习了一个人解问题的思维才能(包含了触类旁通等笼统才能),而这也是全部程序的根底,所以我招学生的时分都会特别注意数学成果。

从这个拓宽开点来讲下作业程序员和业余程序员的差异,我觉得要成为一个业余程序员的门槛其实是挺低的。

业余程序员一般便是碰到一个实践的问题或需求,构成一个解决问题或实现需求的思路,然后把这个思路翻章鱼彩票appios-从小朋友的一道数学题聊聊工作程序员译成代码。

但作为作业程序员,除了要做这些外,更重要的是还得考虑以下问题。

  1. Robust
  2. 这点我觉得是作业程序员和业余程章鱼彩票appios-从小朋友的一道数学题聊聊工作程序员序员最大的差异,怎样让一个程序在各种情况下都能安稳的作业,这个其实是十分不简单的,写个玩玩的东西不难,要写一个能在出产级 robust 作业的东西就十分难了。
  3. 举个比如,家里的空调许多现在还不是很智能,尤其是在温控方面,现在经过温度感应器,红外智能遥控设备,能够比较好的做到智能温控,但这类程序一般写的不咋样,假如自己经过这些设备的 API 写一个其实不杂乱,但假如想下怎样让这段程序能 robust 地运转(例如假如程序运转的机器挂了,温度感应器出问题了,红外遥控的指令是不是真收效了等等),就会发现挺杂乱的,究竟谁也不想这程序失效了,大深夜热醒或冷醒。
  4. 在之前的 程序员的生长道路 Remix 文章里也写到过,能写出防备反常代码的程序员肯定是 NB 的。
  5. 要做到代码的 Robust,会要求章鱼彩票appios-从小朋友的一道数学题聊聊工作程序员在规划和写代码的时分对反常情况有充沛的考虑,一起对代码尤其是运用到的 API 需求深刻理解,经历在这个时分也会发挥一些效果。
  6. 高效
  7. 这个主要就相似前面那个标题的比如,作业程序员应该做到尽或许充沛发挥运转程序的机器的才能,这一般会需求对代码运转的机制,怎样写高效并行化的代码要有充沛的把握。
  8. 可维护性
  9. 怎样知道自己写的代码运转的情况,有问题时怎样经过有用的反常信息来处理问题,代码未来的可扩展性,这些要做到其实也都不简单。

所以说,一个程序员的水平经过代码是最简单反响的,或许短短的几行代码,就能看出巨大的距离,当然,其实作业的程序员在上面的几点上互相也是会呈现很大的距离,成为业余程序员不难,要做到上面三点,成为真实的一个写的代码可供出产级事务运用的作业程序员,光要学习的东西就现已不是一个数量级了,一起还需求许多的练习(1 万小时理论在程序员行当我觉得也是挺适用的,虽然不代表有了 1 万小时就一定是个优异的程序员),感兴趣的能够依据自己的需求去极客时刻选择一些专栏学习,里边许多作者仍是很赞的。

作者简介:

林昊,2007 年参加阿里巴巴,12 年一向从事根底技能架构范畴作业,参加了淘宝从单机到分布式的技能架构改造,主导规划和落地了阿里的异地多活,一致调度的技能架构,打造了 HSF,T4,Sigma 等产品。

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP