進度條

我已經開始寫程式了,但感覺好像一直不上手?

本文作者以自身的經歷,給大家一些自我練習方向。

作者: 縱裕 更新日期:

大家好,我是縱裕。

這篇罕見的署名了是因為接下來是會用一些自身的經歷來跟大家講說如何真正開始寫程式之旅。

對的,買了課程、或是買了書、看了影片,這些都不算是真正的開始寫程式。

單純花錢購買很多時候只是買心安而已,就像我也很喜歡去補習英文...

 

 

不過這裡也不是推薦讓大家都自學就可以,畢竟進度條就是靠賣課程維生。

線上課程,跟買書一樣,都只是個教材。

雖然書比較便宜,可是"人"對有影像與聲音的接受度比較高,畢竟是群居動物,所以這就比較看個人的接受度了。

(話說如此,我個人是滿尊敬程式工具書的作者的,花了很多的時間自己也沒賺到什麼額外的生活費。

造福人群,只能默默地祝他們一生平安。)

 

 

對有些學生來說,課程可能不算便宜。

但畢竟各位很多也是看上工程師優厚的薪資才決定入行或轉行。

不用錢,又不需花時間學習的工作技能卻可以賺到大把的鈔票。

我想應該是老鼠會或是犯罪吧,而且就算是犯罪其實很多也需要很高超的技能(例如金融犯罪)。

 

 

 

 

 

廣告打完了,就開始我們的正題吧。

 

 

如果各位有看過其他網路文章的話,都會聽到不斷的練習這件事。

沒錯,我也是要跟大家講,要學好程式只有不斷的練習。

不過先別關視窗,也先不要按上一頁,拜託!!

讓我先講個自身的小故事,大概講30分鐘就好 (也太久)。

 

 

小弟其實也是半路出家的,但可能比大家有優勢點,我畢竟是機械系工科出身。

所以大一有計算機概論,而且還有很罩的室友。

所以我在還不懂怎麼宣告變數的情況下,神秘的Pass了計算機概論這堂課,

說真的我還真的忘記我上機考怎麼考的,真的是很誇張,Dev C++編輯器打開連專案檔都生不出來...

這樣的我後來居然進了BIOS公司當工程師,真是事事難預料。

 

 

 

真的開始和程式有關聯,是因為大學都在玩樂團,後來一直玩到錄音工程,玩麥克風收音。

好巧不巧因為學分不夠延畢了,選到的選修跟麥克風收音有關,

在老師的鼓勵下做了麥克風與電子鼓相關的研究,其中有使用Matlab這個現在不太流行的程式。

當時也還是不會寫,但改改數值還可以,主要是操控研究生寫完的程式截圖,在PTT鼓板還貼過文被M(好文的意思)。

(當時的課程其實是感測器相關的訊號轉換相關課程,不過有點專業額且我"忘記"課程名稱了)

 

 

 

一直到這邊都只是鋪成。接下來才是我真正開始覺得自己能寫程式開始。

 

 

畢業後男生要當兵,當完腦袋全空。在家人的建議下,去了台北資策會。

(好像在幫資策會打廣告一樣... 我們是進度條線上課程啊!!!)

上的課程比較偏韌體一點,說實話並不是很有前途的產業。

但我去的真正的原因是因為我想要自己做一套自己的電子鼓。

同時間還找了幾個朋友學電路板焊接技術,可惜一直到現在電子鼓還是沒做。

(但卻因此後來有個契機,幫Funlook 做密室逃脫的電子機關,不過該時間點我"已經"是電腦工程師

所以這資訊對初學者學習沒有很有幫助。)

 

 

總之,就算我開始上課了,我也還是滿腦子音樂與樂團。

 

 

真正開始會寫程式,理解什麼叫做程式,是在上讀寫檔案課程的時候,有了個突發奇想,

想說沒有壓縮的音樂Wav檔,應該跟我之前做專題的東西很像,說不定我可以改編它,做個混音之類的。

當然,依當時的能力,用2進位資料顯示的方式打開檔案,完全看不懂。

後來想說不然我來研究MIDI訊號檔好了,他應該是最簡單的,我應該看得懂。

(MIDI的概念有點像鋼琴鍵盤,他有128個值,每個值會對應一個音檔,簡單來說就是音檔的播放順序而已,

我因為玩數位錄音所以有"概念",但實際上寫成程式會比較複雜些。)

結果我用Google在網路上找到了一個MIDI產生器的原始碼,他的程式碼很短,印象中不超過100行。

所以我就在上課中完全不顧老師在講什麼課,嘗試著解析他在做什麼。

然後加上簡單的文字輸出與鍵盤偵測(這兩個功能在任何一本C語言的書的前幾章都一定會教)。

 

 

然後把完成,充滿bug的程式傳給我一個做業務的文組朋友做炫耀,

雖然他一直沒告訴我他真正的想法,但我覺得當下他一定覺得這是三小。

(請原諒我用比較粗俗的字眼,我覺得這樣比較傳神一點。)

 

後來的故事我覺得就沒有那麼重要,因為我當時我已經得到了成就感,開始有能力自己學習進步。

對我來說當時最重要的是因為興趣的關係,即使那段下載下來的程式碼除了有C語言的新手殺手 "指標" 外,

還有他的威力加強版"雙重指標"。

我卻還是網路爬文,似懂非懂的,把它成功改成我想要的程式。

 

 

看到這裡,你可能跟我的朋友一樣覺得三小啊。

連指標都克服了當然一帆風順。

(其實指標只是個開始,C語言還有非常多很難懂的歷史業障寫法,

在BIOS與Linux 核心都可以很容易找得到)

 

 

這裡容我解釋一番,

我想要表達的是,在那個當下,因為我的學位背景,我的興趣,以及我的經歷,

剛好跟C語言的某一段是吻合的,所以我對它突然就很有興趣。

而且我已經知道所有實現該功能的相關知識,唯一不知道的就是C語言。

(可以參考我們的C語言課程範例)

 

 

 

這也是為什麼我一般推薦大家從HTML開始,因為它最簡單,沒有興趣的人也學得會。

現在的人每天都上網,不太有人真的對架設網站"完全"沒興趣。

(像是想自己開店啊,拍網路影片當youtuber,這都跟網站有關)

當HTML學會後,自然就會想讓網站動,因此對JavaScript的興趣也就生出來了。

 

 

當然,有些人對手機程式比較有興趣。

不過手機程式入門比HTML高一點,一開始就會碰到"變數"這件事。

而"變數"的概念跟國中國小數學的代數有關(通常章節名稱是 幾元幾次方程式那種)。

所以代數不好的人可能就比較難消化。HTML 與 CSS就沒有這問題。

(嚴格說起來Bootstrap也沒有這個問題,因為Bootstrap比較注重在CSS的版型問題而非Javascript)

 

 

再來比較現實的,如果各位是轉職的話,可能沒有那麼多時間做自己的專案。

HTML / CSS 跟網站美工設計有關,所以一般工作是可以容許設計師慢慢養成網站前端技術。

如果不是相關的話,就比較吃虧了,

可能需要先做大量的自我專案當作品集才比較好找工作。

但這裡要澄清的是,並沒有全部學完才找工作這回事。

一般公司的工程師沒有那麼強,多半只有自己份內的工作比較熟練。

我個人菜鳥時期寫的一些程式,那些老鳥同事常常也是嚇了一小跳。

(例如因為我解析過MIDI,所以我後來也解析了BPM圖檔與WAV音訊檔這些未壓縮格式,

 然後因專案需求把BPM圖檔改寫成黑白轉換程式,以對應部分裝置只能顯示黑白色。

 並不是老鳥沒有能力寫,是一般來說不會自幹這隻程式,而是Google現有的函式庫去解決。)

 

 

所以要寫好程式除了大量練習外,最好自己找題目。

例如你喜歡網拍,就嘗試自己架網拍,

你老婆在家帶小孩,就寫個很爛但可以用的照片分享軟體APP,

你喜歡音樂,就嘗試建立自己的音樂播放器。

當然,失敗的可能性絕對大於成功,畢竟不會操控資料庫只會HTML是架不出網拍的。

不過或許你就因此知道了WordPress 與 WooCommerce的存在,開始對PHP有興趣。

最後因為你會部分的PHP與熟練的HTML / CSS 加上其他的工作經驗就被錄取了。

這種事其實滿常發生的。

 

 

最後還是要提醒,光"懂"是沒有用的,做中學才是王道。

 

 

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Medium picture

縱裕

錄課程錄到快死掉了啊!!!