對比學習能力是開發(fā)者的重要能力
“地球直徑12741.56公里,月球直徑3483.36公里”,這樣的描述你可能很難理解地球與月球的大小,然而通過同比例縮放為球體的話,人們會非常直觀的理解兩者的大小,這種技巧就是對比學習。
開發(fā)者面對的技術概念、技術理論以及方法都是非常抽象的,對于這些知識的學習和應用,充分利用對比學習能力是非常必要的。
概念對比
比如,很多開發(fā)者不太明白什么是Hbase,什么是Hadoop,為什么Hbase要架構在Hadoop上面,其實最簡單的解釋方法就是對比,Hbase相當于MySQL數據庫,Hadoop相當于一塊磁盤存儲「HDFS分布式文件系統(tǒng)是Hadoop的核心組件之一,其他還有mapreduce,yarn等共同組成Hadoop」。
比如,數據庫表重組「reorg table」功能和磁盤碎片整理對比。所謂的磁盤碎片整理就是硬盤在使用一段時間后,由于反復寫入和刪除文件,磁盤中的空閑扇區(qū)會分散到整個磁盤中不連續(xù)的物理位置上,從而使文件不能存在連續(xù)的扇區(qū)里。這樣,再讀寫文件時就需要到不同的地方去讀取,增加了磁頭的來回移動,降低了磁盤的訪問速度;同樣的道理表重組操作會整理數據碎片來減少浪費的空間,并對數據行進行重新排序以合并溢出記錄,從而加快數據訪問速度并最終提高查詢性能。
比如,索引與字典目錄的對比。為什么數據庫中添加了索引的字段查詢起來非常快呢?漢語字典都用過,怎么快速查找一個漢字呢,自然要使用字典的目錄,通過目錄快速定位這個漢字所在的頁碼,那么索引也就是這個所謂的字典目錄,因此添加索引的字段查詢起來非???。
SQL語法對比
基本上所有的RDBMS系統(tǒng)都有對應的SQL方言,比如選擇表中的前n條記錄,各數據庫都有自己的寫法,通過對比分析,可以非??焖俚陌l(fā)現他們的不同,做的比較好的一本書,之前在讀書推薦系列中推薦過,就是SQL CookBook,該書對于選擇表中的前n條記錄問題的解決方案截圖如下:
開發(fā)語言對比
以熟悉的編程語言比如Java為基點,擴展到其他種編程語言的學習,這樣效率就會非常高,也會變得非常簡單。怎么做呢?一是搞明白基本的術語和概念,二是根據自己熟悉的語言去對比新的語言,比如for循環(huán)、線程、網路連接等,學習起來事半功倍。
通過對比學習你可以快速的學習和掌握一門新的語言,可以快速復制自身已經掌握的經驗。
交流對比
學會交流。添加一些有意義的QQ群、微信群,不要一個人閉門造車,要多去交流,在交流中你會發(fā)現自身的短板,進而可以查缺補漏,彌補自身不足。QQ、微信等群里的信息噪聲比較大,要學會取其精華去其糟粕,盡量提取有價值的信息,不要把大部分時間消耗在群里,給自己規(guī)定幾個固定時間點翻看聊天記錄是個不錯的選擇。舉賢不避親,推薦自己的一個QQ交流群「162566098」,希望可以幫助大家進行交流學習。
與書籍甚至技術視頻之間都可以交流思想,但是只讀一本書或者看一個老師錄制的視頻,很可能無法徹底理解某個知識點,因為每個人的講解方法和方向是不同的。同一個知識點可以從多本書或者多個不同的視頻中獲得解讀,通過對比可以很快的理解它。
總結
對比學習能力很重要,它可以瞬間幫助你記憶和理解抽象難懂的技術概念和術語,快速提升開發(fā)者水平。
【本文為51CTO專欄作者“朱國立”的原創(chuàng)稿件,轉載請通過作者微信公眾號“開發(fā)者圓桌”獲取聯系和授權】