如何通过10行代码辨别一个程序员是大神还是咸鱼?


辨别一个程序员的水平唯一的办法就是看

产出质量


关键字:普通程序员


如何通过10行代码辨别一个程序员是大神还是咸鱼?




算法和数据结构都是锦上添花,并非是雪中送炭。而一个程序员的水准大致上是可以通过之前的代码质量估算出来的。【如果你可以获得此程序员的真实编写的代码,比如原创的Github】。


举个栗子:下面是我最近在单位一个同事写的代码,Java语言


private boolean checkProportions(String str, Integer grades) {

String proportion = str;

for (int i = 1; i < grades; i++) {

String st = proportion.substring(proportion.lastIndexOf(",") + 1);

if (st.equals(""))

return false;

proportion = proportion.substring(0, proportion.lastIndexOf(","));

}

if (proportion.equals(""))

return false;

str = str.replace(".", "");

str = str.replace(",", "");

for (int i = str.length(); --i >= 0; ) {

int chr = str.charAt(i);

if (chr < 48 || chr > 57)

return false;

}

return true;

}

这里小编是一个有着5年工作经验的前端工程师,关于web前端有一个完整学习web前端的路线,学习材料和工具。需要的伙伴可以私信我,发送“前端”就可以获取领取地址,免费送给大家。对于学习web前端有任何问题(学习方法,学习效率,如何就业)都可以问我。希望你也能凭自己的努力,成为下一个优秀的程序员!

大致上的功能就是将 1,2,6.2,4,1 的字符串判断每一 ‘,’内是数字,而且长度符合规定

这样的代码看上第一眼就觉得非常的丑陋。所以在我的要求之下,进行了一次重构。


private static boolean checkProportions(String str, int grades) {

String[] proportions = str.split(",");

if (proportions.length != grades) {

return false;

}

for (String s : proportions) {

if (!NumberUtils.isNumber(s)) {

return false;

}

}

return true;

}


这里看上去差不多就Ok。这样的代码其实也并没有用到什么数据结构和算法,就是很简单的字符串处理。


如何通过10行代码辨别一个程序员是大神还是咸鱼?

实际情况:在我们写的绝大多数的代码里面,大部分属于业务逻辑,极少部分的代码需要使用到算法和数据结构,在这样的情况下,我们能使用的到的技能最为关键的是让代码如何更加合理。而让代码更加优秀的方式是通过千锤百炼的重构,而重构是极大的考验一个程序员耐心和能力的东西。


如何通过10行代码辨别一个程序员是大神还是咸鱼?


质量的范围广泛,我从下面几个小方面聊聊。


出货能力:如果一个程序,算法再精妙,不能出货都是扯淡,我看过某某大神,算法溜得很,但是一个人完全做不到按照工程需要把事情给做完。


优化能力:并没有一个程序是一步到位的,一个工程的交出去可运行了,那才是第一步,很多时候随着业务的增大,对性能的要求越来越高,有一定对于代码优化的能力也是比较重要的。


调错能力:项目越大,遇见的Bug也就是越离奇,这个时候需要强大的Debug能力,找出那个最为关键的错误点,甚至于追溯底层框架的源码。


技术掌控:你项目能用Spring,Hibernate等等框架,但是有没有想过,这些技术你真的可以掌控么,如果有一天你的框架版本需要升级,真的做得到么?甚至于从Hibernate转为MyBatis。


算法和数据结构是影响到一些核心区的问题,但是其他的一些技能,比如面向对象的架构设计,代码的低耦合,那都是对整个项目有着直观改善的技能。并非是贬低算法,而在实际工作中,有太多比算法更重要的问题了。

最后补充一点吧:从善如登从恶如崩,毋以恶小而为之,此古人诚不欺我。


分享到:


相關文章: