以前,小弟撰下《寫 APPS 經驗淺談與分享》,分享寫Apps 箇中點滴 。於 IT 行業打滾數年的同道中人導出遇到麻煩客戶或測驗模組時有所困難。更多的,是聽到自己難找出更多空閒時去自學寫 App 或深造自己的技能。有見及此,分享我自學寫APPS 或學習 Programming 的經歷,雖然談不上成功,但也作為參考。

 

分享心得之前,首先向大家清晰定義 Programming。Programming,就是人運用自己的智慧去開發程式,令電腦執行工序的編寫過程,俗稱「揼Code」,「寫程式 」。程式可分為兩大類:procedural programming 跟 objected-oriented programming。前者重視編寫人利用簡單字句(syntax),指示電腦做事。後者事件主導,要求用家仿照日常生活的邏輯和規則去解決問題。市面上都有不少程式語言如 Python, Swift, Objective-C, Java, Ruby, C#…等等多不勝數,究竟先學習哪一種 Language 為先 ?

 

我自己就是大學時期,跟一大群人一齊上 Computer Programming,一齊學習 C ,由頭學習 If-else , looping 的原理。不管課程編排要度或自我學習也好,我們總是根據講者說了多少就牢記了多少,鮮有上手「揼Code」的機會和嘗試。我自己大學時偷懶,少練習,去到大學第二年下學期的 Lab Session,才有機會上手學習寫Apps。當時只有 Nexus One, Samsung S1,見著人人都可以試上手,有個實物給編寫人見到程式執行時的誤效果是什麼。這是我第一次有心學習 Programming,但自己怠惰不改,要到了第一份工被抄,才用心鑽研,花多幾倍時間去鑽研。所以,自學寫Apps,要早要快,持之以恆。

 

我們或會用上Google,搜出相關字眼,但出來的結果不是殘體字就是一段段不明所以的英文問題。更可悲的是,有時懶得深入了解英文網站,瀏覽上中文的討論帖子,發現原來是一段段似曾相識的帖子和評論,全是抄抄貼貼出來的垃圾。所以,要學懂以下的Google Searching Tips,更易找出答案或線索:

 

  1. Keywords 前 加上 hypen 「-」 ,可以篩走無關資訊。

 

例子:Search iOS Google Map API ,Marker 之間劃線。

 

查詢指令:iOS Objective-C Google Map API –v3 –javascript –xamarin –phonegap

 

解釋:因為你現正開發一個利用 iPhone/iPad 的GPS 去執行Google Map,跟主力使用 HTML5技術 的開發工具phonegap無關,而且大多數編寫人會用 XCode, 少人用 Xamarin (C# 為主要語言的 Developer Tools,可以編時 Android / iOS App)

  1. Keywords 前 加上 hypen 「*」 ,可以搜查所有相關字詞 。

 

例子:Search 斯德哥爾摩症和相關病人。

 

查詢指令:*一群犯斯德哥爾摩症的病人

 

解釋:Google 會查找以下字例 :
斯德哥爾摩症、斯德哥爾摩症病、症候群 ‥‥‥

 

  1. Keywords 前 加上 asterisk 「*」 ,可以搜查所有相關字詞 。

 

例子:Search 斯德哥爾摩症和相關病人。

 

查詢指令:*一群犯斯德哥爾摩症的病人

 

解釋:Google 會查找以下字例 :
斯德哥爾摩症、斯德哥爾摩症病、症候群 ‥‥‥

  1. Keywords 前後 加上 「”」  ,可以搜查所有重點字詞 ,包括全字優先。例 :  Searching Rituals related to Illuminati  ,則 “ Illuminati Rituals”
  2. Website 前加site: 可以找出某網頁有重點字眼的文章。
    例子 : Search 所有聚言時報有關本土派的評論文章
    查詢指令:site:polymerhk.com 本土派
  3. Keywords前加上 filetype:XXX 可以查到相關文獻或檔案 File
    例子 : Search Anarchist Cookbook原著的PDF 電子書
    查詢指令:filetype:pdf Anarchist Cookbook 1971

自學門路方面,豐儉由人,只要知道自己的程度自己學就可以。如果初學,入門上手可以先上 Online Free Course 如Coursera/Udacity/EdX/MIT Online Courses/ Code academy 。有錢的,可以去PluralSight/Lynda他們會定期開辦一系列的課程供初學者認真研究,明白Programming 的入門技巧。PluralSight 更會指導有關 Project Management 或 IT Security 等其他專業。
中級好手或以上,浸淫數年編程的,多數有基本功力,什至可以草擬軟件設計圖和按時排序工作,但到去簡化設計、測試層面就呆坐無言,改了幾遍才成功完成。因此,中級好手可以考慮進駐Stackoverflow ,解答別人的問題和問問題。當然,Stackoverflow有固定版規,需要用家清晰定義,分析已做的編碼,然後表達你的問題。當你細心審視涉及的模組或流程,可能已經得到答案。 另外,中級好手都可以到 Stackoverflow 或 GitHub 尋找相關的示範模組和項目,有助加快「揼Code」進度,避免 reinvent the wheel ,做了別人做過的模組。不過,多次借用他人模組但不知其然知其所以然,最後會學而不思,放棄思考,失去基本功,只會用別人的 Wheel ,不會研發自己的 Wheel。中級好手是一位Programmer 還是 Coder ,視乎能否改良自己的 Wheel,就是如何發明自己的 Wheel,並可以確保自己的 Wheel 能夠長期打算,充分利用。
自學寫APP,或鑽研 Programming,不是廿四小時對住螢幕在狂打操練,而是每一天精進思考的練習和快速學習的競賽。以上Google 查字方法和自讀心得,就是我加快上手的方法。當然,讀者有其他更好的自學方法,但逃避不了快速學習的思考習慣和持之以恆的實踐。