1. <wbr id="qqblj"><pre id="qqblj"><video id="qqblj"></video></pre></wbr>
        <wbr id="qqblj"></wbr>

      2. <sub id="qqblj"></sub>

          <em id="qqblj"><source id="qqblj"><option id="qqblj"></option></source></em>
          創建公司 已有賬號?

          基本信息



          聯系信息

          -
          -

          上傳資料

          選擇營業執照圖片文件


          上傳成功后渲染

          公司環境照片(最少一張,長寬比例16:9)

          2022

          03/17

          學院動態

          閱讀量

          ·

          2010

          蝸牛創想7周年 | 探尋職業教育的本質

          展開剩余

          今天這篇文章為蝸牛創想CEO鄧強老師對內的全員郵件,在公司成立7周年這個特殊的日子,鄧老師向大家分享了蝸牛創想近年來在探尋職業教育本質上的一些思考和體會。

          今天這篇文章為蝸牛創想CEO鄧強老師對內的全員郵件,在公司成立7周年這個特殊的日子,鄧老師向大家分享了蝸牛創想近年來在探尋職業教育本質上的一些思考和體會。



          woniulab



          各位同事,大家好!


          今天,是蝸牛創想成立7周年的日子,作為一名講師很想跟大家談一談關于職業教育這個話題,分享一些我個人的思考。我是一名具備13年教學經驗的講師,現在同樣在給學生上課。2009年以來,我從未離開講臺半步,我熱愛這份事業,熱愛這三尺講臺,它不僅帶給了我成就與榮耀,也讓我收獲了金錢與事業。“桃李滿天下,雨露潤春華”,相信每一個師者,一定也可以收獲桃李滿天下的成就與榮耀。


          公司旗下蝸牛學苑作為一家IT教育機構,我們究竟應該培養什么樣的學生?我們究竟應該怎樣去培養學生?另外一個層面,作為蝸牛學苑占據著半數人員規模最大的教學團隊,我們究竟需要什么樣的老師?怎樣才算是一名好老師?這四個問題,我相信是任何一家教培機構或者各類學校都想要明白的問題,但是往往該問題又很難回答清楚。


          不瞞大家講,其實我一直對當今中國的教育現狀有些意見,尤其是大學教育,存在的問題很多,這方面的情況我就不細聊了,我們也改變不了,但這并不妨礙我愛國。正是基于我對當前大學教育的認識,蝸牛創想一直想自己辦一所大學。但是這也是一樁大買賣,而且受到的約束太多,只要體制不改變,也許我們去辦一所大學也最終會變成我們自己最討厭的樣子,這些今天咱們都不去談了。換個角度去想,大學教育要不出問題,也許就沒有我們這類職業教育生存的空間了,某個方面來說,我們得感謝大學。今天咱們就深層次的聊聊蝸牛學苑這些年,在IT職業教育這個領域的一些思考和經驗。


          首先,讓我們一起來思考兩個問題。


          問題一:大學教育,三年或者四年,花費至少接近10萬?都沒能讓你學會一門手藝,那為什么職業培訓短短幾個月的時間(以IT行業為例,學費大概2萬左右),就能讓你學會一門手藝呢?


          問題二:為什么一名大學生,花費了10萬塊錢,連工作都找不到,但是卻沒有學生投訴這所大學,它不給我安排工作。但是,一名培訓機構的學生,花費了2萬塊錢的學費(加上生活費住宿費什么的應該也不會超過3萬),培訓結束后找不到工作,就要控訴這家培訓機構呢?


          你們覺得這對我們這樣的培訓機構公平嗎?顯然不公平,為什么會這樣呢?從某個層面來說,大學老師都是高學歷、專家教授一大堆。而一家培訓機構,顯然師資排面沒法跟一所大學比,甚至一所高職院校可能都比不過,但卻做到了這些人做不到的事。有些大學就業率賬面數據不錯,但是大家不要忘記了,有多少學生是對口專業就業的?而我們這樣的機構,學生是否全部對口專業就業?所有這些現象,總結起來就兩個字:目標。就像我開篇的四個問題一樣,核心其實也是在問:目標在哪里?


          一名高中生苦熬12年為了上大學的目標是什么?一名大學生到蝸牛學苑來培訓的目標是什么?在我看來,為什么上大學,很多人是不知道的,因為這就是一個過程,我得上大學,不上不行,僅此而已。一名大學生畢業了想做什么?不知道。就像你問一名小學生,為什么要上初中一樣,這能有什么為什么呢?因為就是得上而已。那么你再問一名初中生,為什么要念高中?他的目標很明確,為了能上大學。但是又有多少人繼續問,為什么要上大學?如果問了,答案也都差不多,因為上了大學才能找到好工作,那么你不妨繼續再問,什么樣的工作是好工作?我相信,沒有幾個人能真正回答出來。


          但是我們換個場景來看,你再問問來蝸牛學苑學習的學生,我相信他們基本能夠回答清楚這幾個問題。比如為什么要上大學?因為企業找工作要看學歷,我沒有辦法,必須要有學歷,要不然連門都進不了。比如為什么要搞IT?因為我喜歡搞IT,因為IT行業工資高,因為我之前的工作連女朋友都找不到…… 。什么樣的工作是好工作?只要能夠坐在辦公室吹空調,還能有時間談戀愛,并且工資收入也不低…… 。這些答案在參加培訓的學生心中,無比清晰。


          也正因為抱著很清楚的目標而來,所以如果沒有達成學生的目標,自然是非常不爽的(就像一名大學生的目標是拿到畢業證,順便長大,只要長大了,畢業證拿到了,基本上也就不責怪學校了,也許還能在大學談場戀愛,把游戲玩嗨,豈不美滋滋)。所以,我們一直強調,做培訓,是教給學生一門手藝,讓他們找到滿意的工作,這是滿足了基本目標。在此基礎之上,如果能夠幫助學生夯實基本功,讓他們在未來的職業生涯中長期受益,那便功德無量了。或者我們退一萬步說,確實學生連找到工作這個基本目標都沒能達成,但是只要我們老師認真幫助和指導他,跟學生交朋友,一切都從一名老師的責任出發,跟學生敞開心扉,坦誠相待,他為什么還要控訴你呢?


          其實這一點,我們也可以和大學做一個對比,非常簡單的對比,比如你的大學老師能在期末的時候叫出你的名字來不?很多不能,這只能說明老師沒用心(當然,那種一個學期都不知道老師長啥樣的學生就算了)。我們的老師能在一兩周之內叫出所有學生的名字不?能,說明你用心了。


          即使你用心了,還會不會有一些“不識好歹”的學生啊?確實是有的,但是畢竟是少數,作為一名老師,不能因為這極少數的奇葩和不懂感恩,而放棄我們作為老師的追求和信仰。我們完全沒有必要為了讓所有學生都滿意而放棄作為一名老師的責任和底線,那必然沒有辦法成為一名好老師。反過來,我們也沒有必要一味找學生的問題,覺得一切都是學生的錯,畢竟我們是教育機構,學生如果什么都好了,也用不上我們這兒來了是不是?


          說了這么多,那么回到我開篇提到的4個問題上來,我先簡明總結一下我的答案:


          問題一:我們究竟應該培養什么樣的學生?

          答:作為一家職業教育機構,我們應該培養具備動手能力和解決實際問題能力的學生;我們應該培養對工作保持敬畏,對技術充滿好奇的學生;我們應該培養企業需要并能為企業創造價值的學生。


          問題二:我們究竟應該怎樣去培養學生?

          答:PBET(Project-Based Experiential Training),基于項目的體驗式培訓,以項目為主線、以訓練為核心、以思路為支撐、以實戰為手段,以滿足企業用人需求甚至超越用人需求為最終目標。


          問題三:我們究竟需要什么樣的老師?

          答:蝸牛學苑需要熱愛教育的老師,需要崇尚技術的老師,需要認真負責的老師,需要有職業信仰的老師,需要不懼怕權威的老師,需要內心強大的老師,需要追求卓越的老師,需要堅持原則的老師,需要與學生做朋友的老師。我們要的不多,僅僅是一名具備人格魅力的老師而已。我們要的也不少,因為當你不足夠牛逼的時候,你很難做到。


          問題四:怎樣才算是一名好老師?

          答:作為一名好老師,他的靈魂是自由的。


          接下來,我從一些更加細節的方面,來闡述一下我對教學的理解(教學是指教與學兩個層面)


          13年前,我懷著無比的熱情投入到教育行業,成為一名全職的講師,我覺得這樣的工作才是我所追求的,我喜歡這份工作,我可以一個月上課28天(平時給學生上課,周末給在職人員上課),沒有周末沒有休息樂此不疲,這種感覺痛并快樂著。痛的是活生生把一個腦力勞動變成了干體力活,快樂的是有越來越多的學生認可我,并且那一個忙碌的月份,我拿到自畢業以來最高的薪水:2萬塊。就像很多人喜歡玩游戲一樣,其核心是什么?及時的反饋,其實當老師也一樣,你可以及時得到反饋。學生是否認可你,是否尊重你,是否得到更高的評分,學生是否學會了,是否愛學習,是否找到好工作了,這些反饋都是比較及時的。我們那時候幾個老師就互相比,看每個月的調查問卷,誰的評分最高,這些都是及時的反饋。


          但是那時候,由于教學經驗并不那么豐富,也沒有太多對于教學的思考,只是一門心思想著怎么樣把課備好,把技術提升好,把細節理順,把知識給學生講清楚,多舉一些案例,多理論聯系實際,把企業的真實經驗多去分享。慢慢地形成了自己的風格,積累了一些經驗,那么我自己的風格是什么呢?兩個字:嚴謹。到現在,這個風格也沒有變,但是卻被很多同事理解為了“嚴格、嚴厲”,這是對我風格的誤解。當然,我們提倡老師要有不同的風格,比如風趣幽默、細致入微、不茍言笑、侃侃而談、善于提問和引導、一絲不茍、跟學生打成一片等等。亦或者,你是一個雜風,啥風格都有點,但是不徹底,也是一種風格。我想無論如何,總是要慢慢形成自己的風格,為人師者,總要有自己一些堅持的東西吧。


          大約是在2012年夏天的某個夜晚,那一天應該是7月7號,我清晰地記得我們后來為此次閑扯取了個裝逼的名字:Double Seven,我跟我的前同事們相聚上海,我們探討了很多,直到天亮。我們幾個前東家校長沒有談論太多怎么招生怎么賺錢怎么管理的問題,聊得最多的話題:我們到底應該怎么培養學生。大致的觀點有以下幾種。


          1. 教練式培訓。老師應該是一個教練,先甩一個任務給你,給你一些簡單的提示,做完了根據情況來決定老師應該給學生講什么。而不是一來就咔咔一頓講,學生聽得一愣一愣的,最后講了一個小時,學生學會了20分鐘,純粹浪費時間。


          2. 學生我們現在有這么多存量學生,應該要好好利用起來,這都是我們的核心競爭力,我們的財富。所以,我們不僅要為在讀學生提供服務,我們還應該要為畢業學員提供更多的服務。


          3. 學生才是主體,不能把壓力全部給老師,壓力應該給學生。我發現我們的老師現在特別累,反而有時候感覺學生還比較閑,這肯定不對啊,這事兒整反了。是學生要學東西,不是老師學東西,老師怎么能比學生更辛苦呢。


          4. 培養精品而不是萬金油。我們現在的課程,過于繁雜,很多內容雜而不精,表面上看是萬金油啥都會點,但是真正去到企業以后扛不了大旗。所以課程體系有問題,不能這么設計,而是要跟上企業需求,培養企業最急需的人才,甚至專注于某個領域做深做透就行。


          5. 我認為要培養好學生,首先要培養好老師,老師應該是“富有魅力具備獨立思考能力的靈魂工程師”。當老師做到這樣的高度了,學生會被你吸引,用老師的人格魅力去引導學生、啟發學生。


          6. 我的觀點主要是要培養好學生,不能過多為了傳遞知識,尤其技能培訓,應該要讓學生多做實戰項目,多去體驗這個過程,最好是能把企業的工作過程全部放到教學中來,讓學生完整體驗這個過程,去了企業以后,面對各種問題,他都不慌,因為很多問題早就心里有數了。


          大家當時談得不亦樂乎,聊到興起時,我們還一度想著,怎樣能夠設計一個平臺來顛覆傳統培訓模式。為此,我們還設計了個網頁的原型(現在還在我電腦上,確實現在看起來過于丑陋,就不給大家看了)。我們還制作了一份商業計劃書,這個可以截圖給大家看看,稍微沒有那么丑,但是就是一些文字內容而已。

          woniulab

          woniulab




          后來怎樣了?結果便是不了了之。每個人都在工作崗位上忙碌,但是回到工作崗位上,IT幫的事、培養學生的事,我確實開始認真思考這些問題了。我已經做了3年時間的講師了,有些問題必須要思考了。然后我看到了PBL(Problem-Based Learning,問題驅動的學習),我覺得這個理念跟我想到的項目驅動的理念關聯度很高,但是又不完全一樣。按照我的想法,Problem還是不夠,問題還是一個一個獨立的點,要完全模擬企業的場景,只能是項目,為了讓學生體驗到這個過程,必須要定義清楚什么是體驗。


          于是,我造了一個詞:PBET,(Project-Based Experiential Training,基于項目的體驗式培訓),這個詞具體是哪一年造出來的,我有點記不清楚了,大約是在2013年吧)。這個理念的靈感也是來源于Double Seven的那個晚上大家所討論的。我覺得大家說得都有道理,怎么樣用一個詞來概括這些觀點和思考呢,當我把PBET的意思寫出來之后,我覺得,很多觀點都被融入了進去。我把這個理念提給了前任公司,沒有掀起什么波瀾,但是我卻很重視,我覺得它讓我找到了教育的理論支撐。


          其實后來蝸牛學苑在2015年成立時,所做的很多頂層設計,也是源于Double Seven的一些設想,我們的課程體系,也是源于PBET的理念。大家現在去百度搜索PBET這個生造出來的簡寫,除了搜索到一些專業術語外,能看懂的部分基本上是蝸牛學苑的文章。所以它不是一個什么流行詞匯,它只是蝸牛學苑內部的黑話而已,它只屬于蝸牛學苑。后來,我給PBET定義了6條基本原則:


          PBET是蝸牛學苑獨創的教學模式,以項目和任務為驅動,以達到真正培養人才的目的:


          1. 項目驅動:貫穿不同階段的不同項目,是幫助學員提升的必備武器,項目經驗的積累是核心任務。

          2. 任務驅動:由于項目的長期性將導致學習的反饋周期長,所以項目必須拆分為諸多細分任務進行。

          3. 場景式教學:通過事先設定某個特定場景下的特定問題,來探求該場景下的各種可能的解決方案。

          4. 對比式教學:通過對比不同技術的體現形式來實現同一功能,幫助學員深層次理解技術的本質。

          5. 可視化教學:面對比較空洞的概念或邏輯時,多用圖表或流程圖,多引用生活案例,幫助快速理解。

          6. 團隊化培養:傳統的教育模式強調的是個人能力的培養。而企業的真實項目更多的是團隊作戰。


          接下來的一部分內容,我想更詳細地去給大家解讀一下PBET,也希望我們的課程體系,在更新到8.0版本的時候,能夠將其體現得更徹底一些。


          怎么理解項目驅動?就是每個階段一個項目,階段一開始,我們就會告訴學生,這個階段我們要完成一個項目,這個項目具體是什么,有什么功能,長什么樣,必須要清楚,然后整個過程全部貫穿這個項目。所以,我理解中的項目驅動,第一節課的內容是什么?就是介紹項目。為了完成這個項目,我們需要具備什么樣的知識,需要解決什么樣的問題,需要學習什么樣的技術。學生聽不懂怎么辦?不會聽不懂的,只是聽完感覺不強烈而已,因為還沒有體驗到自己和這個項目的關系,我們繼續前進。為了我們能一起完成這個項目,接下來我們需要理解這個項目里面會用到什么技術,學生還是對這些技術沒有什么概念,沒事,我們繼續前進。


          我以Java開發、測試開發這兩個專業方向來給大家舉例說明一下,PBET這六項原則具體怎么樣的。我們就是要通過項目的設計,把知識和技術融入到項目中去。在我看來,做一個項目從來都用不到的知識,完全可以不重點學習,或者作為補充或擴展類課程,而是先完成項目主體功能,或者通過設計把更多知識融合進來。另外一種可能是,有些知識點,是下一個階段的項目里面才會用到的知識,那就在下一階段的項目再去講授。這是需要設計的,而這種設計,才能稱為課程體系。比如我們要設計一個Web站點,那么標準流程是:需求分析、UI原型設計、UI定稿、前后端開發、前后端對接、測試介入、修復Bug、上線運營、安全保障。當然,大家也能明白為什么我們現在要開設這5大線下專業了,那就是為了能完整覆蓋從“UI、前端、Java、Python、測試、網安”這套生命周期。至于我們凡云教育的在線直播課程,今天就先不專門討論了,其實我們的在線教育板塊,很多理念還不能完全一樣,有其獨特性。


          Java開發方向


          第一階段:我們主要的教學目標是掌握Java的核心編程和面向對象,以及常用API的使用。這個階段我們還沒有辦法完成一個完整的Web應用的開發,無妨,那我們就專注于Java就行,所以我們要求學員來開發五子棋等這類趣味性更強的游戲,或者純粹開發一個命令行應用也無妨。按照PBET的理念設計課程,大致會是這樣。


          先畫一個界面出來,如果要畫一個Windows界面,那么直接安裝WindowBuilder或類似插件,拖拖拉拉界面就畫出來了,萬里長城開始了第一步。如果要畫一個命令行界面,System.out.println就帶出來了。接下來呢,我們以命令行WoniuATM舉例,光打印了一個菜單不行,我們得有交互,所以我們需要判斷,分支語句出來了,我們需要檢測數據類型,數據類型的知識點出來了,字符串操作有了。接下來,我們需要完成用戶登錄,所以數組的功能出來了,要遍歷數組去對比用戶名和密碼對不對怎么辦呢?所以循環出來了,循環+判斷的組合(初學者的第一個痛點)出來了,這個非常類似于PBL問題驅動,但是PBET中我們稱之為任務驅動+場景式教學。


          繼續往下做,發現數組里面要存多個用戶名和密碼,不好存怎么辦呢?二維數組可以試一試,ArrayList好像也行,但是最終覺得HashMap好像更合適,這一套都帶出來了,而且就是這個項目中的真實場景。當然,我們必然在引入一個新的知識點的時候,會講一下基礎知識,而練習是什么呢,不是針對這個知識點本身的練習,就是解決這個項目的問題,重構新的版本。光有登錄不成,還得要注冊,你看哪個系統沒有登錄和注冊功能?那么大家覺得注冊這個功能應該怎么實現比較好呢?HashMap吧,如果我現在注冊的時候不僅要輸入用戶名、密碼,還得要確保已經注冊成功的用戶名不能再注冊,再一次把循環+判斷+數組這類知識進行鞏固強化。另外,我還要再加兩個功能:一是密碼要輸入兩次,做二次確認怎么辦?相信這個時候學生應該都能自己搞定了。另外一個功能是注冊的時候,我們想讓用戶輸入電話號碼或者郵箱地址,這個合理吧?學生應該也能搞定了。


          后來發現,這些玩兒得再轉,還是有問題,一個注冊功能,至少又引發了兩個問題:


          我們先說第一個問題,這電話號碼或者郵箱地址萬一用戶亂輸入怎么辦?我們是不是得校驗一下格式對不對?怎么校驗呢?我們來試試用字符串一個一個判斷的方式,比如電話號碼是11位,第1位必須是1,第2位只能是3到9的數字,后面9位必須全部是數字,大家看看怎么弄?啪一個作業扔出來,開始摳腦殼,然后我們必須憋著,不能一上來就正則表達式,先用純字符串判斷的方式搞一稿,把循環、判斷這些玩兒轉。終于弄明白了,那弄明白了電話號碼,郵箱地址可以不可以自己搞定了呢?又開始研究,字符串的各種API又用得到更多了。


          接下來呢?引入方法、參數、返回值,既然我們搞明白了,那我們現在把這個功能封裝起來,以后的代碼隨時可以調用不是更好?比如我們想后面讓用戶可以修改密碼,修改電話,修改郵箱的時候,是不是可以直接調用了?


          好,現在我們封裝了一個電話號碼或郵箱的接口,接下來呢,我教給大家一種簡便的方法,用正則表達式來做就簡單多了。你看,我的接口一模一樣,但是我的代碼部分不一樣了,其他什么登錄注冊該怎么用怎么用,這段代碼我用正則表達式代替了原生字符串處理的功能,整個項目不受任何影響。這叫什么?接口規范,只要方法或函數名一樣,參數一樣,返回值一樣,至于代碼怎么實現,不影響調用它的地方,一些設計理念慢慢滲透到學生的認知中去。


          上面這一段字符串判斷電話號碼或郵箱地址和正則表達式判斷電話號碼的功能實現,也叫做對比式學習。并且用最原始的手段去鞏固知識,強化字符串處理的API的用法。再對比著正則表達式去解決這個問題,大家一下子就愛上了正則表達式,效率太高了。而字符串操作的大部分問題,已經潛移默化地學習完了。整個場景都是連貫的,不拖泥帶水,目標明確。


          然后我們接著說注冊功能的第二個問題,我們發現注冊了的用戶,下一次再啟動一下程序,用戶信息又沒了,每次登錄都得先注冊幾個用戶才行,這很顯然不對那怎么辦呢?這時候講解一下內存和硬盤,包括持久化操作的一些概念。自然而然引出了文件操作,要不我們把注冊信息保存到文件里面?這樣每次程序啟動的時候我們就讀取文件信息如何?接下來是文件讀寫的基本操作,什么字節流、字符流、編碼、文件類、實例化的概念,能拋的先拋一下,能講的先講一講,但是不用一口氣講完這些,咱們得憋著。先解決注冊信息保存和登錄讀取驗證的問題,于是我們可以引出CSV、配置文件、甚至JSON這些東西,終于完成了登錄和注冊,看起來可以用了。


          接下來呢?怎么引入?那就先讓學生再實現一個修改密碼的功能,再實現模擬ATM機存錢轉賬的功能,打印流水的功能。這個時候,操作文件往往比較痛苦了,所以JSON數據的持久化讀寫操作會比CSV更方便一些,那就繼續實現,并且涉及到ATM存錢轉賬的這些錢方面的事,可以不可以融入一點基本的金融知識,算算利息,注意一下轉賬不能轉負數,校驗一下轉賬的金融不能多于自己的余額,這一系列操作,也強化了數學運算、邊界檢驗,包括像BigDecimal這一類,都可以先引入進來用著,同時把代碼Bug這些日常操作多聊一聊,順便當然可以繼續聊真實項目中的這些扯皮背鍋的事了。另外,在這里,我們提到ArrayList、HashMap,我們也提到了CSV、JSON、甚至我們也可以把Excel這些引入一下,放在一起對比,這些數據格式是如何去展現一張二維表的結構的,把某些相關知識綜合起來做對比和總結性講解,不至于讓知識過于散落,也同時為關系型數據庫的理解打下基礎。


          接下來,我們發現這個項目的功能越來越多了,我們代碼應該怎么組織更合理呢?方案就是:面向對象、關系型數據庫。接下來講解面向對象,講解MySQL,講解JDBC,把系統的功能變成最終我們想要的樣子:基于MySQL的面向對象的ATM模擬系統。這里面有一些面向對象的方式方法我們盡量融入,實在無法融入的,最后補充或者留給下一階段。


          第二階段:我們專注于Web系統開發,那就是一個新的更真實的項目,做一個Web應用系統,比如經典的電商平臺,或者繼續第一階段的ATM繼續擴展到金融信貸平臺,投資理財平臺等。項目的過渡也比較自然。當然,第一節課,同樣的,把項目甩出來,第二階段,我們要把這個項目做出來。


          我們假設沒有UI團隊,能不能模擬和體驗,當然可以。老師把已經做好的HTML頁面截圖給你,來模擬UI設計稿。如果沒有前端呢,也沒問題,老師把HTML頁面源代碼直接發給你,來模擬前端已經完成。但是HTML頁面沒有JavaScript,無法交互怎么辦?那這懶你不能偷,你學Java的必須要學JavaScript,你還不能只會JavaScript,你還得學習框架,因為企業要用框架。那學了就能解決這個問題了嗎?當然!學的目的,就是為了解決我們項目中的問題。


          接下來,搞HTML+CSS+JavaScript+

          BootStrap+JQuery+AJAX這一套,然后是JDBC過渡到MyBatis,再來Servlet+

          HTTP+模板引擎,然后就是從數據庫設計,到前端頁面設計,到后臺接口設計,到MVC甚至直接上SpringBoot。整個過程與第一階段類似。這里我就簡單舉點例子就行了,不再一一詳述。概括起來一句話:為解決具體問題而學習,為真實場景而實戰。


          比如我們需要實現一個電商平臺,業務上大家都還比較熟悉,那么我們從哪里開始呢?我覺得可以先從數據庫開始,這樣與第一階段能夠有一些連貫性,把MyBatis和數據庫設計一起融入,然后開始設計后臺接口,此時沒有前面界面怎么辦?沒事,先用Postman做接口調試。然后自然而然要設計接口,需要講到Servlet的各個模塊,要講到HTTP協議,講完就完成注冊、登錄、商品列表、購物車,這些功能基本上可以覆蓋Servlet的各個功能。然后呢?由于前面已經有JSON的數據格式基礎了,直接先輸出JSON,但是怎么跟前端界面對接呢?那么進而過渡到JavaScript的學習,用JavaScript解析JSON并填充內容到頁面,那么填到哪里呢?先簡單輸出,再到表格輸出,最后用DIV+CSS+表格等共同輸出,頁面就慢慢像那么回事了。進而繼續學習更多前端知識,把頁面整得稍微像樣一點,但是發現使用原生前端三件套,效率太低,怎么辦呢?這時候請出BootStrap+JQuery,對已經做過的簡單頁面進行重構,提升效率。


          接下來就是AJAX,前后端交互,這個過程完成,基本功能就慢慢實現了。然后是頁面內容的填充,發現使用JavaScript效率太低,所以我們需要使用后端模板引擎直接填充頁面內容,但是此時,我們已經對前后端分離打了一些基礎了。這個過程基礎知識差不多可以了,發現Servlet的開發效率還是低了一點,那么此時已經可以把SpringMVC搞出來了,甚至于SpringBoot就可以弄了,把開發效率提上去,同時后續其他功能,就交給學生慢慢實現了,因為大部分知識,我們演示了,學生也跟著做了,剩下一些功能,那就自己獨立完成了,老師提供關鍵指導就行。這個過程,引導學生去思考去優化,為第三階段能夠獨立完成項目做好基礎準備。


          第三階段:以上模式不做本質上太大的變化,但是我們就需要完全的企業級開發了,比如比如Spring套件、Vue框架、前后端分離、權限等。另外,我們引入學員獨立項目,那么此時,我們需要團隊化培養,需要大家協作,需要項目管理工具,需要版本控制工具,需要Git、需要Maven,需要文檔,需要會議,需要討論,需要扯皮,這些都是企業真實場景。還需要在Linux+Docker上進行項目部署,所做的一切,都是為了讓這個項目能夠交付,時間緊迫怎么辦,該加班就加班,客戶難道還天天慣著你嗎?這叫體驗,體驗技術、體驗痛苦、體驗過程、體驗成就,以后去企業了,有些事情也就見怪不怪了。


          第四階段微服務、分布式、高并發、將平臺從PC端切換到移動端,搞WebApp,搞小程序,學生已經非常習慣了。


          整個階段,我們到底會遺漏掉什么知識體系呢,我覺得什么都不會遺漏,即使真的覺得還是有遺漏,我們通過對比式教學,一定可以通過對比很快解決這個遺漏。如果做了這么多項目,有些知識點從來都沒有用上,那么有什么學習它的必要呢,有些東西該淘汰就淘汰了,實在不想淘汰,那就作為就業補充強化課程,讓學生自己解決問題了。我們不能像個保姆一樣,什么都要我們來告訴學生,培訓的目的:不是我們講了多少,而是學生掌握了多少。


          測試開發方向


          對于測試類項目來說,也是一樣的,其實測試的教學方式,還不完全一樣。我們前期的測試項目的學習,完全可以一上來,甩一個基本成型的項目給學生,然后一句話不說,先讓大家找找Bug,找找感覺,先看看誰找的Bug多。我們再來分析,為什么別人找得到Bug,你沒找到Bug,接下來我們再談一些方法論和技術,再繼續深入找Bug。這叫體驗,這種節奏的設計需要一個更有經驗的老師,但是通過我們的標準課程體系,也是完全可以普及到所有講師的。Bug找出點感覺來了,我們再來聊測試用例是怎么設計的,然后呢?還會涉及到測試環境部署、PC端移動端、數據庫、軟件研發流程等問題、為了做得更專業,所以我們單純只是點幾個Bug出來還是不行的,所以我們需要學習更多。


          那么,我們不能只會Windows,不會Linux,因為服務器環境很多使用Linux,另外一方面來說,我們不能只會Linux不會Docker,因為很多企業在使用Docker。一步一步,一環一環,學生都非常清楚我們為什么要學這些,就是因為這個項目需要,那個項目需要,企業需要。


          但是我發現每次配置這些服務器環境都好浪費時間,上一個版本,我們就要搞一次一樣的事情,這弄不好還出錯。而且體驗了之后發現,每個項目不同版本有好多功能都差不多,還有就是兼容性測試,這個環境和另外一個環境,做的測試工作基本沒有差別。這多做幾次就煩了,這些問題也許學生并不會主動提出來,因為他們沒有想過,但是我們老師可以引導。也許學生提出來了,那么我們就可以鼓勵這個學生去找一找解決方案,然后在班級里面分享,這樣讓學生主導自己學習的過程,老師只要掌控好節奏就行。


          最后我們發現,用自動化就能解決問題,所以我們需要學習自動化。怎么學自動化?并不是一上來就是Python咔咔寫代碼,對于測試專業的學生來說,寫代碼這個坎一直很難過去,所以我們可以先用SikuliX這樣的圖像識別工具來從UI自動化做起,讓學生感受到原來自動化這么簡單,沒有想像中那么難。這玩意兒弄好了,都可以整個游戲外掛了,我們可以繼續再問,要不試試整個微信搶紅包功能玩玩?后來發現這個也有問題,比如對界面過于敏感,存在很多問題,怎么解決呢?玩一下SeleniumIDE,這個不錯,特征識別。但是也有問題,它只能搞Web頁面,Windows界面或者手機上好像搞不定,當然我們有的是辦法。比如我們可以用Appium,也可以錄制回放,還可以生成代碼。比如生成Python代碼,Java代碼等都行。于是又出現新問題,代碼看不懂了,那么我們就給大家講講這個Python代碼是怎么回事,講了一部分,再回來看看這代碼能看懂不,還是看不懂?對于Web頁面元素啥的沒啥概念?我們繼續給大家講Web頁面元素是怎么樣構成的。


          再后來,發現這弄來弄去,還是測試一個UI界面,但是企業不都流行接口測試嗎?接口測試咱們怎么來設計課程?那就先從Postman入手,先弄一段接口把請求發著,進而觸發了Socket/HTTP/HTTPS等協議的知識盲區,再一看,又發現Postman也可以生成Python代碼,那么我們繼續Python的學習,并使用Python來完成對Socket和HTTP的處理過程,整個過程就一個項目把UI、接口、Postman等工具練熟。


          然后過渡到PyTest這類通用框架,這可以管理測試用例,還可以參數化,各類功能還不少。要不我們自己先來寫一個簡單的框架?比如模擬測試用例的自動化調用,模擬DDT數據驅動,怎么能解決這個問題呢,所以我們需要學習面向對象的知識,我們需要了解反射機制,我們需要了解裝飾器怎么使用,這些差不多了,我們就來做一個簡單的框架,實現測試用例的自動調用,實現DDT,再配合著UnitTest或者PyTest的運行器和參數化功能,對框架慢慢有些理解了。進而繼續實現KDT、實現CBT、實現圖像識別等框架(又回顧到SikuliX的對比學習),把前面的知識繼續強化一遍,把UI和接口整合到框架中。


          突然發現還有性能測試,這個工資還不低,那性能測試又是怎么回事呢?怎么模擬很多用戶訪問的情況呢,發現多線程這玩意兒可以解決問題,那自己用Python搞一個?當然沒問題。但是企業好像也沒有人用Python寫代碼來做性能測試,都用JMeter。那這Python的多線程不是白學了?當然不是,這是對比式教學很重要的一環,被Python+多線程+接口折磨了幾天的話,學JMeter那就是一兩天的事兒。接下來就是實戰,在我們的服務器真實環境下對項目進行性能測試,從方案到實施到報告一步到位。有瓶頸了怎么辦?監控和優化唄。從CPU優化、內核參數優化、數據庫優化、IO優化、到網絡CDN處理、到前端優化,一套組合拳下來,再困難的學生也不至于完全懵圈,多少都能懂一些關鍵場景,那么這些更難一點的技術,也確實會拉開學生之間的一些差距,不過問題也不大,我們畢竟還有第四階段的更完整更綜合的項目階段,再鼓勵大家學以致用。


          最后,當然我們再來補充兩個專題周:安全測試、APP專題測試,齊活兒。


          無論是哪個方向,都可以是這樣的一套思路,讓學生很清楚我們學了這個是用來干嘛的,能解決什么問題,為什么要學習這個技術,心里清楚,這叫體驗。而不是讓學生一臉懵逼的學,然后做著一些可有可無的練習,學生也不知道學來干嘛,因為沒有真實場景沒有對比,找不到學以致用以及解決問題的成就感,這不叫體驗,這跟大學教育就沒有什么兩樣了。




          woniulab

          上圖是我去年直播講授的Python Flask開發的課程(為出版的圖片配套),基本上完全按照PBET的理念進行,大家可以從目錄中看出來一些端倪。如果有時間,大家可以去認真看看這套課程的目錄,或者簡單聽幾段找找感覺:

          http://www.net-bank.cn/course/119 

          也可以訪問:

          https://item.jd.com/12874957.html 在京東上看到這本書的目錄,如何踐行PBET理念,我覺得這本書和配套視頻,算是體現得相對比較完整,但是由于是直播,所以并不能像線下授課一樣完成整個閉環。但是在項目驅動、任務驅動、場景化教學方面,體現得也很不錯,并且很多地方我也會使用對比方式進行教學。比如使用JavaScript和Vue進行前端內容填充的對比,比如使用Python完成一個ORM模型的原理實現,配合SQLAlchemy數據庫框架的對比,再比如使用Python+字符串替換來講解模板引擎的處理機制和使用Jinja2模板引擎來做對比等,同時在進行對比式教學的過程中,也讓學生能夠把很多原理理解得更透徹,并不會丟失對底層原理的理解。


          同樣,這本書的最后一章,我們補充了4個擴展課題:Redis緩存、頁面靜態化處理、全文搜索、接口和性能測試,并且也是為了更好地完善這套使用Flask開發的博客系統,優化其性能提升運行效率。對比我們的課程體系來說,并不是使用了PBET就無法把一些重要的知識補充進行,反而完全是可以的,并且是跟項目強關聯的內容,不會單純地只是為了補充而補充。


          事實上,任何一個專業,一門課程,包括我沒有舉例的網絡安全、UI設計和Web前端、Python數據科學這類專業,通過合理的課程設計,是完全可以達到PBET的所有要求的。目前我主要精力花在網絡安全這個專業上,通過給3個班級進行授課,已經基本摸索出來了一套教學模板,也正在對更多班級進行驗證,把PBET落實得更加透徹。


          另外,我再補充一下關于場景式教學的手段中,對于安排晚間或周末作業的要求。所有作業的安排,一定基于以下三種情況來安排作業:


          1.當天的項目或任務中,老師解決了一部分,還有一部分學生去解決,根據學生解決的反饋,安排第二天的講解。


          2.為明天要講授的課程進行預習做準備,安排一些調研類任務或預習后完成某個任務。


          3.利用已經學習過的知識,配合一點點第二天要學的知識,來安排一個相對新的任務,起到鞏固今天,準備明天這種承上啟下的作用。


          這些課后作業的安排目的也是非常明確的,就是要解決一個關鍵問題。盡量不安排與場景或任務無關的作業,學生做了,也不知道用來干嘛,做出來了沒有太大的成就感。


          其實真正踐行好PBET的模式,我們一定可以更好地培養學生解決問題的能力,也可以讓老師們不單純只是一個知識的傳遞者,而是一個技術的引導者,一個項目的監督者,我們也不再是填鴨式教學,尤其面向這種最多半年教學時間的短期培訓,而是真正激發起學生的興趣和熱情,讓老師真正扮演“傳道、授業、解惑“的職責。同樣的,在課堂上將不再有枯燥乏味的講解,一定是環環相扣引人入勝的。這也是為什么,我們一直不提倡教學過程的完全標準化,也不要求大家上課要用PPT,而是要求大家通過隨堂板書的方式整理思路,具體問題具體分析甚至允許少量的翻車情況和適當的現場調試的時間,因為那也是一種體驗,讓學生也可以感受到這個過程,老師是怎么來解決問題的。


          之前我給很多人做培訓的時候,仿造敏捷宣言也擬定了一套培訓宣言,算是對PBET的收尾。


          woniulab


          接下來,讓我們再回到開篇提出的4個問題和我的總結性回答。


          針對問題一和問題二,PBET應該能夠回答得差不多了,但是肯定還不夠的,還需要配合我們的教學管理和學習評價體系,也還需要我們的教學與班主任的各種配合,這方面我們內部已經運行得比較成熟了,雖然還要繼續提升,但是至少目前大家基本上是能夠達成一致的,所以我們就不過多闡述了,咱們學生個體的具體問題具體分析,保持關注堅守住底線和原則,不會錯得很離譜。


          至于問題三,我認為我的簡述答案已經算是回答了這個問題,這個回答完全出自于我們的十六字價值觀的一種外在表現,并不難理解:“誠實守信,堅持原則,尊重人才,崇尚技術“。那么剩下的篇幅,我想留給問題四,闡述一下什么是”靈魂的自由“這個話題。


          我想先問大家一個問題,你覺得你自由嗎?我從2009年當老師那一天開始,我就感受到了內心的自由,舉幾個簡單的例子。


          我在沒有做講師之前,我需要每天處理很多郵件以及管理團隊,還得把甲方爸爸伺候舒服了,有時候還落不上個好,真的感覺有點身心俱疲。我覺得這不是我想要的職業和生活,但是做講師后,我每天的工作非常純粹,就是好好上課好好輔導學生,而且我有什么研究成果,我立馬可以在學生面前展示,作為一個本來就喜歡研究技術的人來說,有地方展現自己的技術實力,我是非常享受這種過程的。并且我不需要應付誰,不需要討好誰,無論是我的領導我的學生,我只需要用自己的能力去獲取他們的認可,我可以批評他們,雖然我認真批評他們,但是我也認真幫助他們,是那種發自肺腑的情感,而不是把內心真實的情緒都壓著。


          2010年,我給學生講QTP這門技術(一門比較古老的UI自動化測試工具),講了一段時間后,我一直有一個技術問題沒有想透,就是這個工具是怎么樣去找到這個界面的元素并且還能對它進行操作的,我覺得我一定要把這個技術研究明白,這樣我就可以自己寫一款UI自動化工具了。于是我利用業余時間,研究了很多資料,慢慢找到了辦法,然后我使用最原始的C語言、使用Java、使用JavaScript、使用C#,把這些類別的元素識別的原理用原始代碼做一遍,后來的QTP課程,就是公司講得最深最透徹的了,因為我不僅講怎么用,也講底層的一些原理。在這之前,沒有老師這樣來講過,所以我就是幾十名講師中的第一個,我覺得很有成就感。同時,我還使用QTP自帶的VBScript設計了更多可重用的簡單框架,讓整個自動化測試的過程,變得更加高效。后來給這套框架取了一個名字:CBT(Component-Based Testing,基于組件的測試),在后來慢慢地完善了CBT這套框架,融入到了我們的測試的課程體系中。


          2010年我同時授課的比較多的另外一門課程是LoadRunner這款性能測試工具,這個過程跟上面的QTP有點類似,就是我一直在思考,它的底層原理是什么,我能不能自己開發一個這樣的工具出來?我只要搞清楚背后的原理,我一定可以開發一個工具出來,功能不需要這么重(因為LoadRunner太重了,而大部分時候做的,只需要其中20%的功能就可以了),于是我又調查資料,理解一些輕量級工具的使用,慢慢的我構建起了一套用Java寫的性能測試的腳本庫。當然也有了“多線程+協議+指標+調優”的性能測試基礎架構。


          后來,我要主導開發Oracle數據庫的課程和教材、主導開發Web系統測試的課程和教材,主導開發安全測試的課程和教材,再到后來創辦蝸牛學苑,構建課程體系,這些都不一一去細聊了。但是整體感覺就是,做講師只要你愿意,技術可以研究得很深,也可以做很多在項目當中無法真正做到或者沒有精力去做到的東西。因為做項目,我們難免要應付,而做講師,我們和學生的寬容度都挺高,就是你在保證課程體系基本要求的前提下,你可以繼續深挖,構建自己的技術體系,給學生補充更多難度,讓更多學生受益,讓他們在面試的過程或者入職以后,都能夠具備比別人更多的思考和深度。當然你也可以選擇僅僅滿足課程體系基本要求,但是,如果你連基本要求都無法滿足,那么你不可能感覺到“自由”。


          在蝸牛學苑這7年的時間里,我沒有停止過技術的進步,無論是深度還是廣度,又得到了巨大的提升。無論是測試、開發、網絡安全、前端、后臺等技術,還是在管理上的思考。這個創造的過程非常享受。人生短短幾十年,真正能做一些創新或者創造,這種成就感是巨大的。


          有時候我也會聽到一些老師說,講師做久了技術看不到什么進步了,感覺再出去找工作都沒有什么競爭力了。其實這種想法是完全錯誤的,我們的講師,任何一個人拉出去做一個高級工程師或者架構師,問題都不大。但是為什么某些時候可能會有這些疑惑呢,其實原因很簡單,就是我們一期班一期班的開著,就是這么給學生講課講著,就感覺都沒多大區別,仿佛看到了自己10年后,可能還在講這些東西一樣。這種情況,你當然感受不到“自由”,你只能感覺到“迷茫”,如果一名這講師都是迷茫的,怎么可能帶得出一群優秀的學生?其實如果我們能夠按照PBET去執行,而不是為了講課而講課,以項目來驅動,而不是以知識來驅動,你把每個班當成一個項目,把每個班當成一名新客戶,你的項目經驗的積累將會是成倍增加的。假設以后不做講師了,做項目經理、架構師、售前或者純管理崗位,這些崗位能難倒你們?一個班幾十號學生都在你的掌控之下,未來管理一個團隊會很難?


          關于“自由”這個話題,我能說的還有很多,比如我們想要了解最近的技術趨勢,我一個人確實沒有那么多時間,怎么辦?安排學生,利用一個周末的時間,去調研一下最近的技術發展,下周一回來給大家做一些分享,這樣你也可以收獲更多的觀點。比如今天確實不在狀態,那么我們可以多安排一些學生自己主導的事情,無論是完成作業還是講解技術,把主場交給學生。比如這次的考試,我們換一種形式,不以在線考試或者筆試的方式,我們可以整一次知識競賽分組搶答的方式。比如我最近有一項新的研究,我想錄制出一套課程,去在線課堂或者去B站發布我的視頻,吸引更多的人關注,給自己多積累一些粉絲,增加自己的影響力。比如我覺得我想寫一本書,我想開一個專欄,我想近期去找企業溝通,聊一聊企業的新技術趨勢。只要你想你就去做,我們支持大家做這些事情,也提供一切能提供的資源。難道這還不自由?想做什么,就做什么,還有人支持你做。我不知道這都不叫自由,難道每天睡到自然醒,想上班就上,不想上班就不上那樣的,才叫自由?當然,目前看起來,這種情況不多,你做不到,我做不到,連國家領導恐怕都做不到,我們的自由,一定不是這樣的定義。當然,你也可以年輕時努力工作,早一點實現財務自由,早一點退休,向世界怒吼一聲:老子不干了。對于這方面,我沒有成功經驗,我不知道真有那一天的時候,是不是真的能感覺到靈魂的自由,我暫時給不了答案。


          真實總結起來,就是把自己變得足夠牛逼,有勇于說不的權利。我舉個簡單的例子,比方說面對學生的一些投訴或者負面反饋,我敢于說,我做到是對的,他提的意見我不會采納,因為學生不會比我更懂技術,不會比我更懂教育。比方說有人在網上罵我們,我們敢于正面回應,因為我們認為我們做的是對的,不怕被別人謾罵。我們不需要刻意討好學生,因為他們是來接受教育的,我們幫助學生,但是我們不是服務員,同學,你不要搞錯了。


          有哪一個行業,合同上收錢的是甲方,給錢的是乙方?也許,只有教育行業吧。


          心之所向,身之所往,終至所歸,無問西東。


          最后,趁著七周年之際,蝸牛學苑正式發布在線招聘網站:

          http://www.net-bank.cn/job 作為我們打造職業教育閉環,實施蝸牛創想“開放戰略“的重要一環:”為企業開放人才資源“,今天正式落地。蝸牛招聘與在線課堂5.0版本同步同系統發布,全新改版,全新架構,全新理念。開放永不止步,只為成就更好的你。



          蝸牛創想6周年:蝸牛創想邀請您一起走下一個5年!



          版權所有,轉載本站文章請注明出處:蝸牛學院在線課堂, http://www.net-bank.cn/note/847

          一级黄色录像影片 - 视频 - 在线观看 - 电影影院 - 品赏网