继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【个人向】优秀程序员的几大特质

Uchiha_Obito
关注TA
已关注
手记 5
粉丝 5
获赞 5

以下内容没有任何研究与论据支撑,仅以我的人格保证所有内容的权威与正确性。

一. 讨厌重复

当一个程序员遇到了重复的代码,他首先想到的一定把重复的部分给提取出来。假如存在这样的代码:

boolean login(){
    String url="https://127.0.0.1/login";
    ......
}
boolean logout(){
    String url="https://127.0.0.1/logout";
    ......
}

如果一个优秀的程序员看到了上面的代码,一定会强迫症发作,马上把代码改成:

private String url="https://127.0.0.1";
boolean login(){
    String url=this.url+"/login";
    ......
}
boolean logout(){
    String url=this.url+"/logout";
    ......
}

这才叫优雅。

这个事情不只是代码层面,遇到重复的事程序员首先就会想到用一个for循环来解决,没有规律或者过于复杂的事情就训练一个AI让AI来解决,总之自己绝不做重复的事情。

然而事实却是,绝大多数的程序员都在公司不断重复地写着业务代码,渐渐失去了这项特质。

二.讨厌使用if else语句

能不用if就不用,如果用了if至少要把else给去了。比如下面的代码:

boolean setHP(int hp){
    if(isDead){
        return false;
    }
    else{
      if(hp>MAX_HP){
        return false;
      }
      else{
        if(hp<0){
         return false;
         }else{
          this.hp=hp;
        }
      }
    }
}//不要在意缩进 好的程序员不会在没有IDE的情况下去纠结缩进(python除外)

if和else绝不成对出现,相同的逻辑下缩到最短的代码才是好代码,所以好的程序员会这样改:

boolean setHP(int hp){
   if(isDead||hp>MAX_HP||hp<0){
       return false;
   }
   this.hp=hp;
}

没错,好的程序员的代码一定是很短的。然而为了实现需求大部分时候都考虑不到所有情况,所以就会疯狂增加if else语句,一天上千行的代码实际上300行就能做到一样的事。

三.一种逻辑如果不能够满足所有情况,那这个逻辑就是不够优雅的,要寻找更优的实现。

这个很抽象,不好举具体的例子。简单来说就是一种直觉,知道自己当前的逻辑,或者说规律并不适用于所有情况,并且有一种强烈的想要去找到那个能完美适配所有情况的逻辑的想法。

四. 反人性

我很早就觉得程序员大多不是什么正常人,一是因为程序员要抛弃感性和直觉,像计算机一样思考。但人生来就是更愿意用感性去思考,解决问题的,所以程序员这个职业从原理上就反人性。

二是编程的正反馈极其微弱,前端这种写一行代码马上就能看到效果,而且直面用户的职位还好。如果是后端呢,只能用高并低延聊以自慰。前端写一个好看的页面谁都能理解其中的美感,而后端你说多少多少并发量,普通人只能不明觉厉。当然,正反馈不一定体现在别人的评价,但如果你花费大量精力和时间做出来的东西,没有人能够理解又无法带来利益的话,又有多少人还能坚持做下去呢。

所以我其实很佩服Linus,如果不是为了钱或者名誉或者别的世俗的欲望,我为什么要去开发一个操作系统?

如果只是为了解决自己的问题开发软件,我坚持不到一个星期,更没有兴趣去打磨,更新。

除非我已经达到了高度的理性,我知道自己现在的努力在一段时间后一定可以得到回报,就算不能直接获利这个过程也是对我有提升的。但是不行,这种虚无的东西是无法让大脑分泌多巴胺的。

总之,优秀的程序员大多有一些脱俗的想法,不只以钱或者其他世俗的欲望为动机编程。

他们写代码应该真的是为了改变这个世界。










打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP