在連續差不多半年的碩士論文主題製作、撰寫的「死亡行軍」終於到一個段落之後,終於可以把一些時間拿來學習累積許久沒動的新技術,幾天來學習過程,讓我再一次感覺到,現在的環境對於要進入一個領域的初學者來說,有越來越不「友善」驅勢,除非有人帶或是從很早的版本就開始接觸,要進入一個新技術的門檻也越來越難。
這樣子的問題,由一些「XXX 入門」或是「XXX 簡單學」的書中可以看得出來,不知道是為了節省篇幅還是單純習慣使然,一些書本的作者喜歡用某某工具,用簡短的步驟、精簡的話語帶過一開始的環境建置工作,如果照著作可以功能那還好,但偏偏就是出現一些小問題,讓學習的人面對看不懂的錯誤訊息,在嘗試幾種方式仍無法解決的狀況下,「放棄學習」的念頭會浮現。
以上,就是最近我在學習新技術的縮影,有幾年程式經驗,對電腦應用有粗淺底的我都如此,可以想見比我更「資淺」的新手,想必會感受到更大的挫折吧!
這幾天嘗試學習新一版的 Spring 3 ,想著它並不是最新版的技術,應該有比較多中文的書籍吧!結果當然是出乎我的意料,可以找到的書少得可憐,還有許多是不知道改了幾版的 Spring 2 的書,不管是繁簡體都不例外,讓我很吃驚於原來中文電腦書的市場這麼小,小到擠不出多幾本技術的入門書。
許多被我篩選掉的電腦書,大多都具有一個特性。就是「介紹」技術而不怎麼說明背後原理,可能和現在許多程式人員的心理有關,喜歡「照表操課」不作太多思考,因此往往把程式碼放上去,步驟講完之後就進到下一個主題。如果要作的東西和範例相差不遠,也許還能改改程式達到需求,要是差異大一些的話就只能自己再去其它地方找資料了。一本書上加上新舊版本,可能就包含了不下十種的技術,每個技術分一分可能佔不到多少頁篇幅,這樣子的東西,很難去期望它能夠帶來完整的基礎概念。
說到基礎概念,這類的書又常常用很多的篇幅去說明概念,但是每一種技術是怎麼和這些概念連結,就輕帶過了。也許是基礎概念的文字可以用在類似技術的書中,或是由其它的書中參考而來,因而相對自己創作的部分完整許多,總之,看過這類書後,我的「基礎概念」尚算完整,但卻依然不知道如何應用書中的新技術,完成我想作的功能。
好不容看到一本似乎是入門的書籍,結果在第一個範例的 Hello World 就卡住了,一開始的原因是他用了 IntelliJ IDEA 的開發工具加上 Maven 技術,但是偏偏兩者我都沒接觸過,所以因為版本不同而不能確定設定正確,特地抓了舊版的程式,完成了設定後確發現程式依然不會跑,查了一兩天才發現是 Maven 需要另外安裝,指定路徑,不過書中完全沒提,又花了半天的時間才摸索出設定的方法。
事情結束了嗎?當然是沒有,由於書中的和範例檔案裡的設定檔案是錯的,所以繼承不了上一層的設定值,這個簡單一些花了我幾個小時。再來就遇到 Open Source 界很容易遇到的相依性問題,由於那本書已經出版大約二年,許多套件的版本已經更新,甚至有的換了名字,所以光是用書上的舊名字和版本,Maven 在自己的套件庫中是找不到的,這樣又多花了一個多小時的時間在查詢可能的設定方式。
就這樣,為了學一個 Hello World 程式,已經花了我接近三天的時間,但真正要學的 Spring 3 所得到的時間還不到十分之一,思緒和記憶全都被拉到和這技術沒那麼相關的事情上了。不過其實事情還沒完,這本書的作者的 Hello World 的是網站,又用到一個叫作 Jetty 的容器管理作為網站引擎,因為一直出現相依性問題,要嘛是找不到相依的套件,就是設定完了說找不到對應的函數,到這個地方我已經放棄再繼續看下去了。
真的是太過於浪費時間,想學的技術沒學到,反而一直被其它沒打算現在接觸的技術干擾。
最後,只好放棄這本中文書,去找英文的相關資料。可以想見,英文將是我另一個我不想現在接觸的技術,只希望至少能夠寫出能跑的 Hello World 程式。
沒有留言:
張貼留言