思維模式決定高度——從推廣優秀工具說起

                              思維模式決定高度——從推廣優秀工具說起

     在年度的優秀軟件/方法實踐盤點總結推廣項目中,和同事CK討論,我們都認爲這事兒的性價比不高。原因有三:
     第一、    我們要重構一些不錯的方法/工具課件,需要對工具本身進行深入研究;
     第二、    研究之後,發現每款工具都是博大精深,遠遠超出我們實際應用的本意;
     第三、    我們試圖做成白癡教程,讓每一個新人能快速上手應用。

     上述原因,讓我們非常絕望。這種方式,可以讓一些好的工具快速的讓所有的人瞭解掌握。但是反過來,不可能把一個行業的技術預研、優化、探索的活兒砸在一隻團隊上。更多的創新、發現,應該在每一個人本身。我們希望每一個人都有自主探索的精神和勇氣。

      所以在項目總結時,我忍不住說了一段話:需要額外說明的是,分享是一種精神和理念。比如善用佳軟的站長就說過類似的話:分享是提供信息、工具和方法,並不是餵飯到嘴裏。我也公司的公共培訓課說過:學校裏面大家掏錢,針對一門課程學習幾十個學時,然後劃範圍考試,效果還不盡人意;那麼,在公司培訓中,兩個小時的時間,是不可能讓你具體掌握一門技術的,它的作用是告訴大家:有一個技術/工具/方法,大概能解決什麼問題。如果有興趣,大家可以研究一二。
工具和分享,必須是在本職工作中,有思考、有分析、有困惑的團隊和人,纔會有主動性去嘗試探索和解決問題,纔會看到一些分享後,有撥開雲霧,恍然大悟的感覺。

     這個話題引入今天的命題,就是思維模式。

     一、    學習的思維

     2012年,我們提煉了很多好的東西,但是發現要成功的分享下去非常難。比如一些工具,可能涉及了linux、數據庫、前端領域。但是每個領域的應用都非常少。這就帶來兩個問題:


    1.1  跨多學科的解決方案,基本無法有效進行培訓推廣。
     一個新的工具、方法,往往是橫跨幾個領域的。這就帶來一個現實的問題——需要學習掌握的人員範圍內,不太可能找到一個人,同時滿足幾個知識領域都熟悉的前提條件。
     實際上,這也是招聘的一個最大難點,希望招聘到一個會多個領域技能的人。比如要求懂測試本職工作、會linux、會shell腳本、會TCP/IP、懂數據庫。不同領域之間的知識串聯起來,就是一道天塹。
     舉個例子,你要找個女朋友,要求會做飯、會彈鋼琴、會舞蹈、會法語,這就基本沒戲了——可參考鳳姐的標準。一個一個的子集,求交集,就是這個概念。但是,如果你找個女朋友,要求會做飯,包括四大菜系,法國菜,韓國泡菜,在一個領域裏面選擇具體的技能,會相對靠譜很多。
     所以,一個跨不同學科的知識點推廣,是找不到多少人能直接學習、上手和應用的。如果要推廣一個跨學科的工具、方法,必須在某些學科進行預培訓,先上幾門基礎課,才能進行鍼對這個知識點的有效培訓。

     1.2 在多學科的學習中,深度和廣度非常難以判斷。
     還是上面的例子,比如我們要推廣一個新的工具Easy Test。你需要懂一些tcp/ip,需要懂一些正則表達式,懂一些隧道,懂一些錄製回放的基本測試腳本方法。

     看起來很深奧?但是每項技能,都僅僅需要你懂一點而已。比如TCP/IP,如果是按照思科推薦的《TCP/IP詳解》三卷的看法,可能你看兩年還是一知半解,但是你使用這個工具,可能僅僅需要的是幾千頁專業資料中的十幾頁,也就意味着,你搞定1%左右,就能順暢的進行日常工作。同樣,懂一些錄製回放,對一些人可能感覺非常深奧,如果要徹底的瞭解這玩意,說不定就要從robot開始上手。但是,你看看各種癡迷於遊戲的小學初中生,對按鍵精靈的使用爐火純青,他們肯定不懂計算機語言,但是依然不影響他們駕馭一款工具。

     這個問題會困擾很多人,需要學習的東西太多,但是任何一門學科,如果要學有小成,紮紮實實的從零開始,大概需要一兩年才行。這很明顯和快速學習,快速應用,快速出成績的工作需求不符合。

     軟件開發領域,大家面臨的學習和應用模式是這樣的:
     一個新的技術點/新的硬件/新的操作系統/新的算法/新的架構,一個團隊都需要學習。大致劃拉了一下,需要八個學科的知識點,但是肯定不是把八個學科都學通學透,可能每個學科領域只需要千分之一左右的知識量。那麼,學習模式是:先大致看看文檔資料,然後立刻動手幹,然後一路google,一路copy代碼,一路試錯試過去。

      很多新人面對一個職業,面對很多領域的技能,會非常羨慕老員工,真牛,什麼都懂。同時,也會對自己要學習的東西產生恐懼感——這麼多東西,什麼時候才能學得完?在自己青春年少的時候,學習這麼多技術,萬一兩三年後轉行,這心血是不是白費了?

      實際上,這是想多了,這個工作,註定了你會接觸到很多的學科領域,但可能一門學科,你只需要掌握1%。你可以理解爲這就是熟悉的考試前劃範圍的橋段,不同的是,這個範圍,一部分是老員工、導師給你指定的,一部分是自己在不同的應用模式下,自己劃範圍給自己的。上面提到的深度和廣度的判斷,也就是自己給自己劃範圍的能力。


 同樣,你零敲碎打學到的東西,並不一定給你下一份職業能帶來什麼直接的幫助。正如你一路學習的數學、物理一樣,現在可能你只是用來買東西算帳,甚至百位數的加減法都需要藉助於計算器,但是依然不影響你十幾年的理工科模式,帶給你的嚴謹、周全的思考模式。是的,通過練習,獲得的思考模式纔是最大的收穫。學習是一種實踐,你只有通過這麼一次次的學習,才能培養出來系統的學習思路和學習方法。


      可以換個領域舉例子。比如銷售去面對客戶,可能你在書本上看到過很多溝通的方法和技巧,但是必須是自己要去面對面的和很多客戶溝通交流後,才能達到一個比較圓滑通透的境界。你無法問這麼一個問題:這個客戶談不成,對三年後的我有什麼影響,有什麼好處。但是你肯定知道,當你自己和幾百個客戶溝通交流過,談成一些項目,談崩一些項目……你會對自己的溝通、爲人處世具有信心,然後相信自己無論面對什麼樣的客戶,都能很好的溝通,把項目搞定。這就是經過一次次的,無法借鑑的細碎溝通,達到對自己爲人處世,情商智商上的昇華的目的。翻過來,在技術領域學習各種零碎的知識點也是一樣的,可能無法讓你直接應用在三年後你的工作崗位,但是學習本身的探索,對思維邏輯,對系統性的提煉,甚至對自我的肯定(老子牛逼,學XX語言也就是三個月的事兒,現在這些新東西,算個球啊),這纔是零碎學習背後,本質的提升。    


      所以,針對新人去學習技術類知識,給的三條建議爲:


    1、    只學一門學科到非常精深。道理是相通的,一法通,萬法明。

      面對龐大的知識體系,千萬不要試圖每一門學科都學的非常紮實,這不符合職場本身的定律。在自己最喜歡、最擅長的領域,把一門學科學的非常精深,然後你會發現,其他的一些領域,在邏輯、方法論上,多是可以借鑑和互相印證的。所以找準自己的法,學通學透,然後去印證其他的領域,這是最快的學習方法。


     2、    面對其他需要掌握的知識,要培養出劃重點的能力。

     在某個項目上需要,那麼就拿過來一門學科,圈定30頁的範圍,邊學邊用,搞定之後先做項目,不求甚解。在項目過程中,一些疑問點自然會明白,一些疑問點當項目結束之後,你還可能不明白,但是已經沒有再深挖細究,搞明白的價值和意義了。


      3、    適應這種學習的模式,提煉出一種學習的思維。

      一個新的東西,大致是什麼框架,應該去獲取那些相關的知識點,然後按圖索驥,一步步去搞定。

     如果養不成這種學習的思維,只是希望有個人/課程,能讓自己不動腦子,一路next,一路看圖操作,就能搞定一門技術的話,那麼,無論多麼優秀的工具,都是無法推廣成功的。

     看看你身邊的一部部大塊頭,從C++到Python,這些書,我們都叫它爲工具書。所以,它,註定不是讓你像背誦英文字典一樣,生吃硬吞,逐行逐字理解之後,才能幹活的。工具書,就是你在碼代碼的時候,你會時不時的翻開,去查閱,去學習的。

     工作中學以致用的學習,需要的是一門傍身的核心技術,然後自己給自己劃範圍的主動性學習。



二、    測試的思維

     同樣,在測試領域多年,試圖教授過很多測試方法,測試概念,從黑盒測試到場景分析,但都收效甚微。很多軟性的知識,不是能照本宣科,或者類似學習流水生產線的一道工序一樣,能把大多數人培養出來的。痛定思痛,才恍然大悟,實際上這是一種思維邏輯的培養,就好像數學、物理這種學科,通過一個個的定律,反覆做各種習題,最後形成的就是理工科相對嚴謹、縝密的思維模式。

     哲學的終極問題是:你是誰?你從哪裏來?你要到哪裏去?
     所以,測試工作的終極問題就是:這是什麼?這個怎麼測試?結果怎麼驗證?

     所有關於測試的思考、設計,都可以化爲這三個問題。
     比如這個命題“地震測試儀器怎麼測試”,毫無疑問,實驗室是不可能模擬出地震的種種參數的。那麼如何進行設計呢?如果有錢,在各板塊的異動活躍點設立測試環境,還是乾脆,哪裏地震了,就帶着設備,趁着餘震進行,現場的環境存在的時候,進行一些儀器測試?

     所以測試的思維,就應該是抽絲剝繭,設立種種驗證方式和檢查點,然後確認驗證結果的一種思維——如果沒有養成這種思維模式,那麼再多的測試設計培訓,都是無用的。一個是自覺自省的主動性,一個是照貓畫虎的被動性。

     網上有很多思維的典型展示,比如《我是如何查到王珞丹地址的?》或者周鴻禕的電話泄密事件等,整體來說,這就是一種系統的思維方法:
      1、    選定目標
      2、    嘗試構建幾種獲取資源的途徑
      3、    遍歷獲取
      4、    不斷的總結反思,帶入新的邏輯和線索
      5、    找到答案或者靠近答案。

     只有建立起這種思維思考的習慣之後,我們談到的測試設計才能勢如破竹。就好像一個人是天生幽默的人,自然能信手拈來一個個的段子。而如果是反過來,我們一定要讓大家死記硬背幾種套路,想必是事倍功半的。


     每個領域都有自己的核心技能。在技術領域,毫無疑問,你的系統性思維,決定了你學習新東西的速度,決定你瞭解決問題的速度,決定了你係統架構的完備性和健壯性,決定了你在自己體系內的高度。


敬請關注我的新浪微博@叄石而厲


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章