> For the complete documentation index, see [llms.txt](https://willh.gitbook.io/it-startup/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://willh.gitbook.io/it-startup/23/24.md).

# 帶領公司轉型的過程

**公司的技術領域即將從 PHP 轉換到 ASP.NET，這是一個重大的決定，畢竟 ASP.NET 對我們所有人來說都是一個全新的領域，且連我自己都不太熟悉，可以想見，這條路並不好走。**

![](/files/-M6Eey0O65KUuO7KHrTe)

圖片來源 <http://sucai.zcool.com.cn/index.do>

對我來說，強迫自己學習成長的方法，就是把自己陷入困境，然後讓生命自己找到出路。我跟所有工程師講了，公司只給一年的時間維護現有的 PHP 網站，之後的專案可能就會選擇性地改用 ASP.NET 來開發。不過一開始，還是由我當領頭羊，挑了一個小案子用 ASP.NET 來做，體驗一下開發的過程。果不其然，痛苦萬分啊！

我的第一個案子，只有幾頁，其中有一頁要用 GridView 顯示一個表格，不過客戶的表格要把標題列中的兩個欄位合併。這麼簡單的需求，我用 PHP 來寫，這一頁頂多兩個小時就寫完了。但我用 ASP.NET 來寫，結果花了我兩天時間。寫到第二天的時候，滿腦子都是髒話，覺得幹嘛這樣搞自己，合併欄位不就是改一下 th 標籤的 colspan 屬性為 2，然後把下一個 th 移除就好啦。結果 ASP.NET (Web Form) 弄了個什麼事件導向模型(Event-driven Model)，不管做什麼事都要靠事件來操作，完全不直覺阿。我也覺得奇怪，看國外的教學影片，好像都很簡單，大家都是從工具箱直接拖曳控制項就可以完成工作，為什麼我就這麼苦命。T\_T

還好我的第一個 ASP.NET 專案只有我一個人做，不然我想哪個人先用 ASP.NET 開發，那個人就會先主動遞辭呈。後來我知道了，對於眼前這個全新的技術領域，你要面對它、接受它，但不能輕易放下它。我開始狂 K 書，先從入門書開始看，大概知道些新觀念後，就把先前寫過的程式重構。然後再讀多一點，再弄個新案子來實驗，慢慢地就開始跟 ASP.NET 有點熟悉了。我的堅持，開始感染公司其他的工程師，便有人主動提出他也想玩看看 ASP.NET 這技術，我猜想，他的如意算盤是「要是我寫不出來，還有保哥可以問，那就試試看吧」。跟我想的一樣，身為一個 PHP 開發人員，剛開始轉向 ASP.NET (Web Form) 都是痛苦的，而且幾乎只看到缺點，也就是套版不夠彈性這部分，也對於 Web Form 的元件化封裝技術(伺服器控制項)沒有多大好感。

導入 ASP.NET 大約將近一年的時間，幾乎所有 PHP 工程師都走光了，沒有人想學 ASP.NET 開發技術。這點我完全能理解，畢竟我自己走過這一遭就真的是很痛苦，要是沒有明確的動機，誰願意放棄累積多年的開發技術與經驗呢。所以，我只能自立自強，想辦法讓自己能夠對 ASP.NET 更加理解，讓我的開發效率在更好一些，不過成長的幅度還是有限。

接下來，我在一個因緣際會下，認識了幾位台科大的學弟(相差十幾屆)，他們在學校曾經學過幾個月 ASP.NET，也做過幾個學校的案子，我覺得他們還不錯，便問他們願不願意來我公司工讀，結果他們都非常有意願加入。就這樣，一個拉一個，拉到顛峰時期公司有六到七位 ASP.NET 工讀生之多，幾乎成為公司的開發主力。在當下對一間以技術為導向的公司來說，確實是蠻詭異的，因為公司的開發主力竟然是一群大學二、三年級的毛頭小子。

這群學弟妹們，我看見他們不辭辛勞的努力學習、努力完成專案，雖然他們年紀輕輕的沒什麼經驗，撰寫的程式碼品質也沒有很好，也沒什麼架構可言，就是為了完成專案而自己想出的一些奇怪招式，但他們個個都擁有滿腔熱血並樂在其中，那感覺真的很棒。我只要看到大家願意學習，就會有一股衝動想要教會它們。剛開始的時候，我花了很多時間檢視他們寫過的程式碼，基於人性，我還是會邊看邊搖頭，外加幾聲草泥馬，最後還是忍住不親自動手改，而是讓他們依照我的意思「親手」把程式碼改成我要的樣子，這樣做中學的過程，才是對他們最好的回報。

這個過程中，有件事蠻有趣的，他們知道我對 ASP.NET 不是很熟悉，畢竟也才剛轉一年左右，但他們每次來問我問題時，我總是能幫他們指出正確的開發方向，這點確實讓他們不解，因為我提出的解決方法或觀念，是他們怎樣也想不到的。

我們在學習開發技術的過程中，不單單只是學習如何寫程式而已，更重要的還要能知道「為什麼」要這樣寫，了解技術背後的原理，比怎樣解決一個問題來的重要。只要你認真地分析過一個問題，之後再遇到相同或類似的問題時，自然能觸類旁通，更精準地掌握問題發生的原因，也能更快速的找到解決方案。很難想像，我的開發觀念都來自於多年的 PHP 開發經驗，原本以為學習 ASP.NET 之後，所有之前學習過的技術都沒用了，但其實不然，有許多你曾用心學習、認真體驗過的技術領域，就算跳到另一個領域，還是有很多觀念可以借鏡，所以還是有很大幫助。

我如果有機會跟晚輩交流，都會建議他們無論學什麼技術或程式語言，你至少要「精通」一樣，這樣學習下一段新技術時，才能夠建立跟以往學習經歷相互連結，這種連結關係可以幫助你在解決問題時更有創意，也更有助於你成為開發領域的專家。

就這樣，公司花了一、兩年的時間轉型，雖然最後很不幸的，公司原本的 PHP 開發人員全數陣亡(離職)，只有我自己轉型成功。我不知道這算成功還是失敗，但站在公司經營的立場上來看，這個轉型的過程，客戶完全沒感覺，業績也沒有因此而降低(反而還高出許多)，產出給客戶的網站品質也不差，這成績應該還算低空飛過吧。

即便技術轉型帶來的人事震盪如此之大，但對我來說這是一個過程，是學習的機會，是成長的契機。技術轉型的過程並不短，所以我選擇不急於評斷對與錯、好與壞，而是方向定了就堅持到底，這樣的堅持才會有力量。你若在創業的路途上，不斷地懷疑自己的決定，讓負面情緒不斷侵蝕自己的心，那只會增加內耗，最終只會磨滅創業的初衷與熱情，那就得不償失了。
