思惟模式決定高度——從推廣優秀工具提及
在年度的優秀軟件/方法實踐盤點總結推廣項目中,和同事CK討論,咱們都認爲這事兒的性價比不高。緣由有三:
第1、 咱們要重構一些不錯的方法/工具課件,須要對工具自己進行深刻研究;
第2、 研究以後,發現每款工具都是博大精深,遠遠超出咱們實際應用的本意;
第3、 咱們試圖作成白癡教程,讓每個新人能快速上手應用。
上述緣由,讓咱們很是絕望。這種方式,可讓一些好的工具快速的讓全部的人瞭解掌握。可是反過來,不可能把一個行業的技術預研、優化、探索的活兒砸在一隻團隊上。更多的創新、發現,應該在每個人自己。咱們但願每個人都有自主探索的精神和勇氣。
因此在項目總結時,我忍不住說了一段話:須要額外說明的是,分享是一種精神和理念。好比善用佳軟的站長就說過相似的話:分享是提供信息、工具和方法,並非餵飯到嘴裏。我也公司的公共培訓課說過:學校裏面你們掏錢,針對一門課程學習幾十個學時,而後劃範圍考試,效果還不盡人意;那麼,在公司培訓中,兩個小時的時間,是不可能讓你具體掌握一門技術的,它的做用是告訴你們:有一個技術/工具/方法,大概能解決什麼問題。若是有興趣,你們能夠研究一二。工具和分享,必須是在本職工做中,有思考、有分析、有困惑的團隊和人,纔會有主動性去嘗試探索和解決問題,纔會看到一些分享後,有撥開雲霧,恍然大悟的感受。
這個話題引入今天的命題,就是思惟模式。
1、 學習的思惟
2012年,咱們提煉了不少好的東西,可是發現要成功的分享下去很是難。好比一些工具,可能涉及了linux、數據庫、前端領域。可是每一個領域的應用都很是少。這就帶來兩個問題:前端
1.1 跨多學科的解決方案,基本沒法有效進行培訓推廣。
一個新的工具、方法,每每是橫跨幾個領域的。這就帶來一個現實的問題——須要學習掌握的人員範圍內,不太可能找到一我的,同時知足幾個知識領域都熟悉的前提條件。
實際上,這也是招聘的一個最大難點,但願招聘到一個會多個領域技能的人。好比要求懂測試本職工做、會linux、會shell腳本、會TCP/IP、懂數據庫。不一樣領域之間的知識串聯起來,就是一道天塹。
舉個例子,你要找個女友,要求會作飯、會彈鋼琴、會舞蹈、會法語,這就基本沒戲了——可參考鳳姐的標準。一個一個的子集,求交集,就是這個概念。可是,若是你找個女友,要求會作飯,包括四大菜系,法國菜,韓國泡菜,在一個領域裏面選擇具體的技能,會相對靠譜不少。
因此,一個跨不一樣學科的知識點推廣,是找不到多少人能直接學習、上手和應用的。若是要推廣一個跨學科的工具、方法,必須在某些學科進行預培訓,先上幾門基礎課,才能進行鍼對這個知識點的有效培訓。
1.2 在多學科的學習中,深度和廣度很是難以判斷。
仍是上面的例子,好比咱們要推廣一個新的工具Easy Test。你須要懂一些tcp/ip,須要懂一些正則表達式,懂一些隧道,懂一些錄製回放的基本測試腳本方法。
看起來很深奧?可是每項技能,都僅僅須要你懂一點而已。好比TCP/IP,若是是按照思科推薦的《TCP/IP詳解》三卷的見解,可能你看兩年仍是隻知其一;不知其二,可是你使用這個工具,可能僅僅須要的是幾千頁專業資料中的十幾頁,也就意味着,你搞定1%左右,就能順暢的進行平常工做。一樣,懂一些錄製回放,對一些人可能感受很是深奧,若是要完全的瞭解這玩意,說不定就要從robot開始上手。可是,你看看各類癡迷於遊戲的小學初中生,對按鍵精靈的使用爐火純青,他們確定不懂計算機語言,可是依然不影響他們駕馭一款工具。
這個問題會困擾不少人,須要學習的東西太多,可是任何一門學科,若是要學有小成,紮紮實實的從零開始,大概須要一兩年才行。這很明顯和快速學習,快速應用,快速出成績的工做需求不符合。
軟件開發領域,你們面臨的學習和應用模式是這樣的:
一個新的技術點/新的硬件/新的操做系統/新的算法/新的架構,一個團隊都須要學習。大體劃拉了一下,須要八個學科的知識點,可是確定不是把八個學科都學通學透,可能每一個學科領域只須要千分之一左右的知識量。那麼,學習模式是:先大體看看文檔資料,而後馬上動手幹,而後一路google,一路copy代碼,一路試錯試過去。
不少新人面對一個職業,面對不少領域的技能,會很是羨慕老員工,真牛,什麼都懂。同時,也會對本身要學習的東西產生恐懼感——這麼多東西,何時才能學得完?在本身青春年少的時候,學習這麼多技術,萬一兩三年後轉行,這心血是否是白費了?
實際上,這是想多了,這個工做,註定了你會接觸到不少的學科領域,但可能一門學科,你只須要掌握1%。你能夠理解爲這就是熟悉的考試前劃範圍的橋段,不一樣的是,這個範圍,一部分是老員工、導師給你指定的,一部分是本身在不一樣的應用模式下,本身劃範圍給本身的。上面提到的深度和廣度的判斷,也就是本身給本身劃範圍的能力。
linux
一樣,你零敲碎打學到的東西,並不必定給你下一份職業能帶來什麼直接的幫助。正如你一路學習的數學、物理同樣,如今可能你只是用來買東西算賬,甚至百位數的加減法都須要藉助於計算器,可是依然不影響你十幾年的理工科模式,帶給你的嚴謹、周全的思考模式。是的,經過練習,得到的思考模式纔是最大的收穫。學習是一種實踐,你只有經過這麼一次次的學習,才能培養出來系統的學習思路和學習方法。正則表達式
能夠換個領域舉例子。好比銷售去面對客戶,可能你在書本上看到過不少溝通的方法和技巧,可是必須是本身要去面對面的和不少客戶溝通交流後,才能達到一個比較圓滑通透的境界。你沒法問這麼一個問題:這個客戶談不成,對三年後的我有什麼影響,有什麼好處。可是你確定知道,當你本身和幾百個客戶溝通交流過,談成一些項目,談崩一些項目……你會對本身的溝通、爲人處世具備信心,而後相信本身不管面對什麼樣的客戶,都能很好的溝通,把項目搞定。這就是通過一次次的,沒法借鑑的細碎溝通,達到對本身爲人處世,情商智商上的昇華的目的。翻過來,在技術領域學習各類零碎的知識點也是同樣的,可能沒法讓你直接應用在三年後你的工做崗位,可是學習自己的探索,對思惟邏輯,對系統性的提煉,甚至對自個人確定(老子牛逼,學XX語言也就是三個月的事兒,如今這些新東西,算個球啊),這纔是零碎學習背後,本質的提高。
算法
因此,針對新人去學習技術類知識,給的三條建議爲:shell
一、 只學一門學科到很是精深。道理是相通的,一法通,萬法明。數據庫
面對龐大的知識體系,千萬不要試圖每一門學科都學的很是紮實,這不符合職場自己的定律。在本身最喜歡、最擅長的領域,把一門學科學的很是精深,而後你會發現,其餘的一些領域,在邏輯、方法論上,可能是能夠借鑑和互相印證的。因此找準本身的法,學通學透,而後去印證其餘的領域,這是最快的學習方法。架構
二、 面對其餘須要掌握的知識,要培養出劃重點的能力。框架
在某個項目上須要,那麼就拿過來一門學科,圈定30頁的範圍,邊學邊用,搞定以後先作項目,不求甚解。在項目過程當中,一些疑問點天然會明白,一些疑問點當項目結束以後,你還可能不明白,可是已經沒有再深挖細究,搞明白的價值和意義了。tcp
三、 適應這種學習的模式,提煉出一種學習的思惟。ide
一個新的東西,大體是什麼框架,應該去獲取那些相關的知識點,而後按圖索驥,一步步去搞定。
若是養不成這種學習的思惟,只是但願有我的/課程,能讓本身不動腦子,一路next,一路看圖操做,就能搞定一門技術的話,那麼,不管多麼優秀的工具,都是沒法推廣成功的。
看看你身邊的一部部大塊頭,從C++到Python,這些書,咱們都叫它爲工具書。因此,它,註定不是讓你像背誦英文字典同樣,生吃硬吞,逐行逐字理解以後,才能幹活的。工具書,就是你在碼代碼的時候,你會時不時的翻開,去查閱,去學習的。
工做中學以至用的學習,須要的是一門傍身的核心技術,而後本身給本身劃範圍的主動性學習。
2、 測試的思惟
一樣,在測試領域多年,試圖教授過不少測試方法,測試概念,從黑盒測試到場景分析,但都收效甚微。不少軟性的知識,不是能照本宣科,或者相似學習流水生產線的一道工序同樣,能把大多數人培養出來的。痛定思痛,才恍然大悟,實際上這是一種思惟邏輯的培養,就好像數學、物理這種學科,經過一個個的定律,反覆作各類習題,最後造成的就是理工科相對嚴謹、縝密的思惟模式。
哲學的終極問題是:你是誰?你從哪裏來?你要到哪裏去?
因此,測試工做的終極問題就是:這是什麼?這個怎麼測試?結果怎麼驗證?
全部關於測試的思考、設計,均可以化爲這三個問題。
好比這個命題「地震測試儀器怎麼測試」,毫無疑問,實驗室是不可能模擬出地震的種種參數的。那麼如何進行設計呢?若是有錢,在各板塊的異動活躍點設立測試環境,仍是乾脆,哪裏地震了,就帶着設備,趁着餘震進行,現場的環境存在的時候,進行一些儀器測試?
因此測試的思惟,就應該是抽絲剝繭,設立種種驗證方式和檢查點,而後確認驗證結果的一種思惟——若是沒有養成這種思惟模式,那麼再多的測試設計培訓,都是無用的。一個是自覺自省的主動性,一個是照貓畫虎的被動性。
網上有不少思惟的典型展現,好比《我是如何查到王珞丹地址的?》或者周鴻禕的電話泄密事件等,總體來講,這就是一種系統的思惟方法:
一、 選定目標
二、 嘗試構建幾種獲取資源的途徑
三、 遍歷獲取
四、 不斷的總結反思,帶入新的邏輯和線索
五、 找到答案或者靠近答案。
只有創建起這種思惟思考的習慣以後,咱們談到的測試設計才能勢如破竹。就好像一我的是天生幽默的人,天然能信手拈來一個個的段子。而若是是反過來,咱們必定要讓你們死記硬背幾種套路,想必是事倍功半的。
每一個領域都有本身的核心技能。在技術領域,毫無疑問,你的系統性思惟,決定了你學習新東西的速度,決定你瞭解決問題的速度,決定了你係統架構的完備性和健壯性,決定了你在本身體系內的高度。