想要自學程式?七個自學程式設計正確的觀念和心態
文章推薦指數: 80 %
想要自學程式?七個自學程式設計正確的觀念和心態 · 前言 · 為什麼要學習程式設計? · 確認目標和動機 · 選擇合適的程式語言和工具 · 看書/上課,動手做點東西.
Togglenavigation
首頁
關於我們
學習資源
想要自學程式?七個自學程式設計正確的觀念和心態
跨領域自學程式設計常見問題解析FAQ
自學程式設計學習資源懶人包
Facebook自學程式社團
YouTube影音
搜尋搜尋
RecentPosts
Matplotlib/Pandas資料分析繪圖顯示中文字體入門教學
如何在終端機下使用conda指令管理虛擬環境
[程式挑戰]全域變數和區域變數可視範圍VariableScope
[看懂IT術語]AI人工智慧
跨領域自學程式設計常見問題解析FAQ
RecentComments
尚無留言可供顯示。
Skiptocontent
前言
「軟體正在吃掉全世界。
」(Softwareiseatingtheworld.)
這是知名創投也是Netscape瀏覽器共同創辦人MarcAndreessen的名言。
隨著科技的快速發展,我們生活中已經離不開網路、手機等科技電子產品,而這些科技電子產品,背後往往有電腦軟體程式在運作(想想你每天使用的Google、Facebook、LINE、Youtube等應用程式)。
也因為全世界的學校陸續開始將程式設計課程列入課綱之中,從一般白領上班族到有小孩的家長,不論是否是資訊相關科系畢業都開始學習程式語言和程式設計相關知識。
深怕沒有擁有這項程式語言第二專長會被小孩所嫌棄或是錯過加薪升職的大好機會。
然而隨著網路、軟體技術的日新月異,初學者往往會迷失在豐富的學習資源和除錯debug的挫折當中,喪失了程式設計本身創作的樂趣。
所以這邊我們要分享自學程式設計必備觀念和心態,希望讓所有有自學程式設計需求的朋友,不再徬徨、無助。
為什麼要學習程式設計?
我們為什麼要學習程式設計?相信這是許多家長和初學者內心的疑問。
事實上,程式設計是一種介於藝術與科學的腦力創作運動。
學習程式設計正確心態是透過學習程式設計理解電腦科學運作的原理和動手用科技技術解決生活上的問題。
在學習程式設計過程中可以培養創造能力(對,你只要有一台電腦和網路就有機會創造出幾千幾萬人使用的軟體或網路服務),邏輯思考、團隊合作、自學能力和解決問題的能力。
撰寫程式可以讓你可以學習怎麼樣把一個複雜的問題切分成一個個小問題,在這個過程中不但可以訓練邏輯思考、解決問題的能力。
隨著專案越來越大、技術越來越複雜,你可能會需要和其他專案成員合作去解決和學習你不懂的新技術,是一個很好培養自學能力和團隊合作能力的機會。
當然在過程中可能會因為長期關注電腦螢幕而需要適時的休息和運動(但現代人即便不寫程式也是每天盯著螢幕了:P),這也是為什麼幼稚園和國中小的學童們會建議先從不插電學習程式設計的教材和桌遊開始學習程式設計和電腦科學的邏輯觀念。
確認目標和動機
最好學習程式設計的動機是因為想解透過科技解決生活上的問題(例如:想要寫一個記帳App給家人使用所以開始學習MobileApp開發,你可能需要學習AndroidJava/Kotlin或iOSSwift/Objective-C)或是結合你現有的領域和電腦科學的應用。
若是你是因為想要轉職成為工程師/程式設計師,這又是另外一個話題。
若是這樣,你可以針對你想要學習的領域列出需要學習知識去一一攻克(直接上求職網站把心儀的工作要求做成一個checklist清單)。
例如:我希望轉職Web前端工程師,我需要具備基本的HTML/CSS語法和JavaScript程式語言的基礎或是我想轉職資料科學家,我需要具備Python或是R語言的基礎和理解機器學習和深度學習演算法等。
當具備正確的學習程式設計心態後,以終為始是學習程式設計最重要的一個環節,這是當你夜深人靜debug不出來時給自己最好的支持動力。
事實上,程式語言只是一個創作的工具,你可以想像成設計師素描本和素描筆,雕刻大師的雕刻刀。
幸運的是,程式設計只要一台電腦加上網路就可以開始。
選擇合適的程式語言和工具
若你是完全的初學者,我們會建議你從以下程式語言開始入手,再一步步針對你有興趣的領域繼續鑽研。
Scratch若是你是國中小學的學員,你可以從Scratch開始。
Scratch是MIT麻省理工學院所開發的電腦程式平台,透過拖拉積木的方式可以讓使用者學習電腦程式的邏輯和概念,創造出多媒體或是遊戲應用,蠻適合低年齡層的學員使用。
更重要的是Scratch本身是一個全世界的社群平台,你可以分享自己的作品也可以觀摩學習其他人的作品、認識新朋友,教學相長。
Python若是成人或是想直接學習正式一點程式語言的學生,我們會推薦由Python入手。
為什麼是Python呢?因為對於初學者來說Python是一個簡單易學但又功能強大的程式語言(Python不僅可以編寫Web網站、桌面應用程式、開發遊戲更是機器學習/深度學習等資料科學應用的重要程式語言)。
相較於其他C/C++或是Java等程式語言,Python相對而言較為簡潔且容易閱讀,此外不用經過編譯(compile)即可以執行程式也對於初學者較為友善。
JavaScriptJava和JavaScript(簡稱JS)和名字雖然很像但是卻是兩個不同的程式語言(可以說是熱狗和狗的差別),發展方向和應用層面也有所不同。
隨著網際網路和瀏覽器引擎和Node.js的發展JavaScript的影響力有增無減。
不再局限於瀏覽器的從早期的跑龍套到現在的獨挑大樑,現在不管是Web前後端、行動應用程式、桌面應用程式,甚至是深度學習等都可以使用JavaScript來開發。
若是你想要開發有關Web相關的應用,更是必須學好JavaScript,對於新手來說可以透過Web呈現和分享自己的作品是一個很有成就感的事情。
但JavaScript技術變化很快,若是有有經驗的導師帶領可以少走許多冤枉路,且學習JavaScript通常需要搭配學習HTML/CSS語法。
Micro:bitMicroBit(也叫做BBCMicroBit)是由BBC所推出的具備藍牙、光感測器、溫度感測、加速儀等感測器的微電路版,適合對於嵌入式系統和物聯網、創客應用有興趣的讀者。
可以使用Python、JavaScript、積木式等程式語言自己動手製作機器人或是溫度監控器等有趣應用!C語言C語言一種通用且常見的程式語言,廣泛用於嵌入式系統軟體與應用程式的開發。
由於C語言將很多底層的操作交給使用者來處理(像是Python或Java很多事情本身都幫你處理好),所以對於初學者來說會需要學習比較多相關背景知識和撰寫多一些程式碼,但也因此可以學習到更多有關電腦科學和電腦軟硬體底層相關的知識。
看書/上課,動手做點東西
學習程式語言最好的方式就是買本你覺得合適入門書或是加入線上/線下課程後,開始動手做點東西。
真正做出點什麼東西,去解決生活上的問題才是驗證你是否學會程式語言最重要的指標(就像是學英文一樣,你背誦了很多單字,但從沒開口說過或是無法和國際友人溝通,那即便是多益或是托福考的再高分那也不算是真正學會英文)。
和幾個志同道合的朋友一起做專案、參與實習、接案或是參與開放原始碼專案(Opensourceproject)都是一個很好的方式。
學寫程式就像是學習烏克麗麗或是吉他等才藝一樣需要動手練習才會學得好,總而言之就是:
動手做點東西動手做點東西動手做點東西
很重要所以講三遍!
學會網路搜尋Google大法
一般在學習程式設計遇到困難時,最好的解法就是把錯誤訊息或是遇到的問題去Google搜尋一下,大部分情況下都可以在網路得到對應的解答。
另外,StackOverflow程式設計問答網站和Github開源程式碼集散地也是一個學習的好去處,沒事去逛逛,相信一定會有不少收穫。
加入社群,尋找戰友
一個人寫code很孤獨,一群人寫code很幸福。
在學習寫程式的過程是一條孤獨且漫長的道路,即便是經驗老道的老手也需要和不同領域的人請教,更何況是剛入門的新手。
選擇一個友善的自學程式社群加入,可以讓你在學習程式語言的過程中更加順遂,而加入HappyCoder自學程式設計學院相信是一個很好的選擇。
學會有禮貌的問問題並紀錄學習心得
當你卡關時你往往會希望尋求協助,但在尋求協助之前可以先自我評估所遇到的問題,可以讓你在問問題時可以更具體讓人明白也可以讓你在Google時可以找到合適關鍵字來搜尋(沒有人有義務一定要回答你的問題,幫助他人釐清問題是個好習慣)。
你想要做什麼?你已經嘗試過什麼方法?結果如何?
以上的問題最好回答可以具體一點。
例如說:
你想要做什麼?我想在要Windows環境下安裝Python環境你已經嘗試過什麼方法?我已經在Python官方網站下載安裝完成結果如何?但我在cmd終端機指令中輸入Python指令時出現沒有這個指令的錯誤
又例如說:
你想要做什麼?我想要在瀏覽器中跳出comfirm確認的提示框你已經嘗試過什麼方法?我打好了JavaScript程式碼,也儲存了結果如何?沒看到在瀏覽器成功執行,但在瀏覽器的開發者工具console顯示UncaughtSyntaxError:Invalidorunexpectedtoken錯誤訊息
有些時候透過回答這三個問題,問題就自己迎刃而解了。
有些時候撰寫程式一段時間後腦袋會變鈍或是肩膀頸部緊繃。
適當時候休息一下,起身運動或是喝口水和人交談一下,或許回頭再試試就會有靈感也說不一定。
另外,當你完成一個程式專案或是解掉某個bug時,記得可以撰寫成技術文章(若是有心要轉職程式設計領域的同學,經營自己的Github和部落格真的很重要),不但可以豐富自己的專業履歷也可以強化自己的記憶方便未來查找外,更重要的是也可以幫助到下一個跟你遇到同樣問題的人喔!
尋找導師,持續學習
不管是在職場工作或是學習程式設計,有好的導師或是rolemodel引導確實可以讓自己少走許多冤枉路和減少時間金錢的浪費。
但一開始盡量不要找已經工作十年以上的工程師或是程式設計師(等到你要往架構師或是技術管理者邁進時再去找他們),對於新手來說,兩三年或三五年工作經驗的工程師和程式設計師剛好是個不會太有距離感,導師又能體會新手剛入門會遇到的挫折和煩惱,帶著誠懇和禮貌去尋找你身邊或是社群中願意帶你的導師。
不過記得當你離開新手村後,若有機會也可以成為其他人的導師,取之於社群回饋於社群。
俗話說:師父領進門,修行在個人。
若你有志於程式設計領域繼續鑽研,那就必須認知到IT行業是一個需要持續精進自我的領域。
不管是技術還有如何設計產品、溝通協調、管理專案、撰寫簡潔漂亮的程式碼、設計架構等都需要持續地進修學習,唯有持續保持積極的學習態度和能力才是在這個領域持續保有競爭力的最佳保證。
總結
以上我們整理了多年來自學程式設計的經驗,我們也曾花過許多冤枉錢和時間。
在這邊分享自學程式設計必備觀念和心態,希望讓所有有自學程式設計需求的朋友,不再徬徨、無助。
最後複習一下自學程式設計必備觀念和心態:
確認目標和動機選擇合適的程式語言和工具看書/上課,動手做點東西學會網路搜尋Google大法加入社群,尋找戰友學會有禮貌的問問題並紀錄學習心得尋找導師,持續學習
HappyCoding🙂
第12期Python程式設計入門共學營【8+4週24個程式冒險|讓導師和同學帶你一起線上練功】熱烈報名中!
投資自己就是最好的投資,報名連結
第10期Python證券投資分析&股票聊天機器人入門共學營【8+4週24個程式冒險|讓導師和同學帶你一起線上練功】熱烈報名中!
💪根據學員回饋持續更新升級課程內容和優化課程平台系統投資理財算股靠自己✌報名連結
第08期電腦科學概論&程式設計思維入門共學營【8+4週24個程式冒險|讓導師和同學陪你一起線上練功】熱烈報名中!
💪根據學員回饋持續更新升級課程內容和優化課程平台系統打好電腦科學和程式設計基礎,建立運算思維和解決問題的能力✌報名連結
第08期Python/SQL商業資料分析&視覺化與網路爬蟲入門共學營【8+4週24個程式冒險,讓導師和同學陪你一起線上練功】熱烈報名中!
💪根據學員回饋持續更新升級課程內容和優化課程平台系統學習PythonSQL資料分析與網路爬蟲,打好商業資料分析工作力✌報名連結
參考文件
自學程式設計學習資源懶人包用Python自學程式設計:程式設計思維入門
(imagevianegativespace.co、yoda)
Archives
2020年8月
2020年4月
2019年12月
2019年1月
2018年9月
2017年12月
2017年11月
2017年10月
2017年8月
2017年7月
2017年5月
2017年1月
2016年12月
Categories
Uncategorized
LeaveaCommentCancel發佈留言必須填寫的電子郵件地址不會公開。
必填欄位標示為*Message:Name:
EmailAddress:
Website:
Savemyname,email,andwebsiteinthisbrowserforthenexttimeIcomment.
延伸文章資訊
- 1HappyCoder 自學程式設計學院
HappyCoder 自學程式設計學院是一個自學程式設計(Programming)、電腦科學(Computer Science)交流學習社群,團隊成員擁有台大等一流學府資訊相關科系及知名上市科技...
- 2想要自學程式?七個自學程式設計正確的觀念和心態
想要自學程式?七個自學程式設計正確的觀念和心態 · 前言 · 為什麼要學習程式設計? · 確認目標和動機 · 選擇合適的程式語言和工具 · 看書/上課,動手做點東西.
- 3【寫程式入門】新手該如何開始自學寫程式 - 1on1.today
自學寫程式、學習程式語言幾乎已經是一個現代人必學的一門課程了, ... 程式語言的應用越來越廣泛,如:AI人工智慧、物聯網、網頁設計、機械工程、各 ...
- 4學習程式如何不花錢?從零開始?自學程式可以嗎?
本文作者Nick 是加州州立大學電腦碩士,畢業後在矽谷工作,至今軟體經驗超過二十年。Nick 在十四歲時自學程式設計,當中遇到很多問題與困難點,因此非常 ...
- 5自學程式設計5訣竅,你要跨過的5道坎
等等)若能培養程式專長,也能進一步提升工作效率,增加個人能力獨特性,進而開創更好的職涯。 掌握基本的程式能力,你將能夠建立 1. 與科技團隊溝通的 ...