如何通過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。


算法和數據結構是影響到一些核心區的問題,但是其他的一些技能,比如面向對象的架構設計,代碼的低耦合,那都是對整個項目有著直觀改善的技能。並非是貶低算法,而在實際工作中,有太多比算法更重要的問題了。

最後補充一點吧:從善如登從惡如崩,毋以惡小而為之,此古人誠不欺我。


分享到:


相關文章: