Sunday, April 3, 2011

Android從不會到會 - 一位從餐飲業跳到資訊業的心路歷程

相信很多想要跳進Android開發世界的初學者在入門的階段都無從學起,而這條路我也是走的挺辛苦的。現在有了一點小小的心得,希望在這裡分享給剛入門的朋友們。

我本來的職業是餐飲業的煮麵學徒兼副店,之所以會跳來這個領域
1.臺灣餐飲業人員逐漸大陸化
2.餐飲業越來越看不出我存在的優勢

後來想一想,手上那臺Windows Mobile手機真難用,
可是手機不應該僅止於此,於是跑去聯成學JAVA,也很確定要開發手機。

在聯成遇到貴人好老師(Thanks for 顧老師Piano Man),辛苦了半年左右得了一張基本的SCJP證照,
也很辛苦的進了一家公司開始,
對我而言,才是戰場的開始。

Android設計不用太深的JAVA理論,
而Google在讓開發人員跳槽進來,也設定了很低的門檻。

但對我而言,有一個很重要的障礙︰
「英文很爛。」

不知為何,對那隻Android機器人就是情有獨鍾,
就是想開發Android。

於是我開始從Gasolin的網路電子書下手。
Gasolin的這個網站,讓我從英文很爛 + 對Android什麼都不懂,變成了開始懂什麼叫Android Activity的生命週期等等的Android基本概念。經由這個網站製作BMI量測的專案的教學,建立了我對Android的基本認識。

註︰
2011-09-23
Gasolin其實有將這個電子書出成實體書,
大家還是可以多多買實體書,
最近他的寶寶剛誕生,
養家不容易的!

我跟你們說,在程式開發初期,你會遇到一堆超級奇怪的現象︰
1.Eclipse怎麼用?我在補習班學的是NetBeans。


2.什麼叫外掛?Eclipse怎麼掛Android都掛不起來?
3.為什麼專案一匯入Eclipse就是出現紅色警嘆號或XX
4.為什麼叫不出顏色
5.為什麼就是不能安裝Android SDK

總之,你會在剛踏入Android的初期遇到超多超多的問題,
但是你都得努力的爬文、不計任何代價、用任何方法,
都要去克服他們。
我覺得因為有這些過程,才能磨練出一位程設師之後在開發過程遇到困難時的耐力。

讀完了Gasolin的電子書後,接下來要如何下一步?
我遇到了盧育聖Sam的網站
Sam在帶領新人的一開始,
希望我們打好JAVA的基礎,
希望我們讀熟Android技術文件再來做開發。

這種建議不否認絕對是個好建議,
但對我這種英文很爛的人來說,
簡直是災難一場

這時候心裡想,
真的該堅持下去嗎?
這條路超辛苦的。

我相信當一個人有心的時候,
老天爺絕對不會給他絕路。
此時,我發現到,
有一個東西可以幫助英文很爛 + 對Android什麼都不懂的我,
那就是Mars的視頻

Mars的視頻是一個很棒的東西,
他幫你把你本來應該從技術文件看到的基礎知識,
用影像的方式一步一步帶你實作和講解,
他講的內容對我來說都不會很難。
(可能我當時手上已經買了6本左右的Android書了)

我覺得在學習的過程中,
有一點很重要,
就是要有一個練習的環境 + 好的工具書。

在一家Android環境的公司磨練 + 工具書,
幫我慢慢的建立起"模仿"的能力。

工具書我推薦一定要買SDK範例大全2

這是一本幫什麼都不懂的你,
開始學會模仿的書。

註︰
2011-09-23
現在又有新版了︰SDK開發範例大全3

所以,邊看書、邊打成Code、邊查英文、邊做專案、參與論譠(大陸最大的Android網站eoe),
就成了我程式學習的起初所做的事。

我從Mars的視頻裡,
真的是驚嘆他能一看技術文件變馬上翻譯成中文的能力,
我理解到如果Android技術如果要更上一層,
你的英文底子一定要有。

於是,下班後跑去補習班學英文、聽廣播、跟外國人聊天、看電影學英文…

但是,這麼做並沒有幫我看懂技術文件,
因為技術文件裡的字彙,
只是英文的其中一個領域。
在我學英文的範圍裡,是沒有學到這個領域的。

苦了我,拚了那麼久英文文件仍看不懂。

我又去找為什麼我看不懂技術文件的原因。

1.我完全沒有文法概念,所以一個句子遇到倒裝或子句時,我看不懂其意。
2.一堆生字,造成我一個字也看不下去。
3.句子與句子之間的介系詞片語,如︰for a while, in particular,..我看不懂。

於是又再報了一家補習班,專攻閱讀與文法這一塊。
補了1、2個月,效果也慢慢出來了。

但真正讓我理解我應該要怎麼面對外來語言的文章的,
是呂英沖的書籍︰你用對方法學英語了嗎。


我是在國家圖書總館無意間看到這本書的,
書裡提倡我們一般在聽英文MP3時,
都是先唸英文,再聽中文解釋。
但這個方式錯了。
因為英文是我們不熟的語言,
當我們聽到  Apple 蘋果  時,
對於外文完全不熟的我們,聽到Apple腦袋馬上打了個問號,
後來聽到蘋果的中文解釋,才知道原來剛剛那個字是蘋果,
此時,剛剛那個字怎麼發音你也忘了。
所以呂先生說,先唸英文再唸中文的教材,是FOR老外閱讀的。
我們應該先聽蘋果,再聽到Apple。否則會產生記憶斷點

他又提到語言一定是先聽,後講,後來產生文字,最後才寫。
所以,在我所要求的讀懂Android技術文件裡,
我得先會聽和講英文。

直覺告訴我呂先生心理+記憶學的經歷,能讓我在學英文的過程中,
得到更多的啟發,
於是又繼續往他的其他書籍追相關資料。

我追到外全外文學習法。

這本書提到我們是怎麼看懂一個句子的。

我看到小明在沙發睡覺。

1.看到 「我」這個字時,我們心裡會開始默唸「ㄨㄛˇ」,並跟大腦索取什麼叫「我」,
於是你得到我就是「自己」的意思。
然後,你將「我」這個字,存在你腦中的短暫記憶裡。
2.依此類推,你一一的將「看到」、「小明」、「在」、「沙發」、「睡覺」這些字放進了短暫記憶。
3.最後你看到了句點。
4.大腦開始將你短暫記憶裡儲存的「我」、「看到」、「小明」、「在」、「沙發」、「睡覺」組出一個句意。於是你知道什麼叫「我看到小明在沙發睡覺」。

在這個理解的過程中,如果你不知道什麼叫「看到」,
或者如果你的短暫記憶裡,漏記了「看到」,
而只記得「我」、「小明」、「在」、「沙發」、「睡覺」,
那這個句意是出不來的。

原來我們要看懂一個句子,我們經過了一個
心裡默唸→懂詞意→記憶→組詞成句
的過程。

英文也是如此。
An apple a day, keeps the doctor away.

你是不是也用一樣的原理,在理解這個句子呢?

搞懂了人類理解句子的原理,
長期的廣播 + 補習 + 背Android技術字 + 真正去寫過程式碼產生了開發經驗
我才終於慢慢看懂技術文件。

謝謝你看完這篇文章,
我相信你絕對是一位有耐心的人。

為了得到一個目的,
我付出了相當大的代價。

這個過程中,
我發現我不斷在做的事情是︰
1.我缺什麼?
2.該如何補足?
3.方法對嗎?
4.不斷檢視這3點。

寫到這邊,我覺得這不僅用在學Android,
也能用在學任何的東西上面。

如果你真的有心,我相信沒有事能難的倒你的。
一起加油!

下一篇︰Android開發者應有的認知

8 comments:

Creeds said...

寫的很棒!!一起加油^^

德詮 said...

感謝你寫的歷程,造福想踏進ANDROID開發的新手們,十分受惠!!感恩感恩!!

Anonymous said...

看完你的心路歷程,十分受惠,感恩!
我是一位完全不懂Java的人,請問需要懂多少Java的基礎才能學習寫Andorid程式呢?

小鰻 said...

我覺得基本的JAVA概念(J2SE)要有,如果還有JAVA的資料庫概忥(J2EE)當然會更好

Chen said...

很高興能夠看到您寫的這篇文章~所以您之前是完全碰過程式方面的東西嗎? 因為我是除了高中又學過一點程式的寒毛 之後就再也沒碰過了 但是還是很想踏進這塊領域

Sohum Hsu said...

看完你的學習歷程,心有同感^^~
很多初學者都有這樣的過程,我也因為走過這段歷程,開始想把學習的心得分享給大家,但才剛起步,所以~想把你的網站及部份資料分享到我的網站上,不知是否願意^^?

呆呆 said...
This comment has been removed by the author.
呆呆 said...

您好~我本身就是一個Java Web應用程式開發者,但是我在Android開發等於是零,所以看過您的心路歷程,可以讓我加快學習Android,此外,我對於您學習英文的方式也很感興趣,希望可以從您的經驗學習更多的學習方法。