做個簡單的程序員!!!
本文作者:@放翁
下班前一路和震子走,一路還在吐槽,事情到真的非常小,但心里卻真的替很多跟著我們這批“老骨頭”做事的新人擔心,所以想說一點自己的真心話:做個coder其實很簡單。
實在人說實在話,衡量一個負責業務系統代碼質量最容易量化的就是:
- 新增,刪除,修改一個功能和業務要動多少部分的代碼?多少代碼是重復或者類似的修改?
- 排查問題的時候是否可以用排除法“卸載”模塊,按需測試?
隔離,重用,主從邏輯區分。(前兩者不多說,最后一個很容易被忽視,例如做一個合法的公民從來不會告訴你應該做什么,而會告訴你不要做什么,而違反上面第一條的很多時候不是代碼不復用,而是主從反置,最后使得主流程的修改不斷的在分支流程上去做判斷)
額,至此為止,我可以很負責的說,你所學的大部分模式就是用來干這個的,而你只要奔著這個目標去做事,不僅能夠學會那些書上的模式,而且還能夠按需裁剪,因為雨天撐傘是嘗試,風向不同傘要傾斜是技巧。
接著你就開始因為做業務不斷的接觸各種內容:文件,IO,Load,壓縮算法,tcp,http,緩存,db,數據流,一致性…,好像很雜,是的因為我們 在做業務,我們在積累我們寶貴的“經驗”,往往這個時候是兩種程序員分叉的開始,都是做業務,有些關注完成任務,有些關注細節,這些細節就是我所說的上面 那些那些雜物。
接著,那些關注細節的人得到了更多的空間和機會,接觸到更多的問題,面對效率,可用性,一致性等問題在設計上開始擺脫最初學到的隔離,重用,而開始學會權 衡(業務的取舍,所謂的優雅和長久的取舍),開始學會用他經歷過的“雜學”來改變程序設計無法改變的問題,最后經歷過了一系列痛苦的反復,最后留下了更多 的所謂的“感覺”。
而當經歷過這一切的時候,再去拓展更多的領域,領會不同語言和場景的差異和特征。這時候會發現這樣的人學新東西非常快,原因兩點:1.任何程序的載體就是 前面說的“雜學”(最后歸一無非就是二進制流及一些協議,算法和硬件)。2.語言的融合和借鑒早已深入各種語言內部 (java,python,js,objective-c,c#等等),因為語言就是用來利用“資源”表達思維的方式。
好了,其實我想說,做個程序員很簡單,而每一個帶兄弟的人要為兄弟成長負責不是在晉升的時候拉票,不是在飯桌上灌酒,應該是告訴他們我們走過的路。