國立交通大學 資訊科學與工程研究所

#分享 怎樣開始學習程式語言?

2020年5月28日 04:48
分享一篇提出怎樣學習程式語言的文章: <程式設計入門—用對方法的學習指南> (
。裡面提出學習程式語言的具體作法,學習程式用對方法很重要,可以減少大家錯誤嘗試的機會。 通常想學程式的人會有個願望,就是可以快速入門。請不要相信「三小時搞懂 Python」、「Python 快速入門」這類書籍或網路文章,通常看了你也還是不懂,反而會誤導你。好比會說 "how are you? I am fine. Thank you and you?" 就以為能在國外跟老外講英文一樣。 但也不是單純看書、看影片就有效 (更別談爛的教材),想想你看大家說英語、空中英語那麼多年,你真的有因此而「有效」進步嗎?我認為沒有,學好英語還要透過大量練習閱讀、口說、寫作,同理學程式當然也需要這樣。 有系統的去學習程式概念和練習運用學到的概念寫出程式,才是真正能學會的關鍵。 而怎樣有系統學習可以參照這篇文章提供的幾個步驟: 1. 一開始不管看書、看影片或找人教都是不錯選項,靠網路資源要有人幫忙過濾。 2. 針對兩種類型 (文組、理組) 的初學者,分別最推薦學習 Python 和 C/C++,主要是因為 Python 對文組夠簡單,理組需要透過 C/C++ 理解進階的計算機原理。 3. 學會程式設計的基本概念之後,首先要透過大量練習確認自己真的學懂。 4. 最後就可以去學應用程式或是繼續精進程式開發能力。
284
回應 106
文章資訊
Logo
每週有 35 則貼文
共 106 則留言
國立交通大學 資訊工程學系
那先學c會有什麼影響嗎
B1 我覺得挺好的啊。沒有物件導向的 feature,專心練 pointer。還有手刻 data strucuture。
國立交通大學 資訊工程學系
B2謝謝指教
不過,還是能用 function pointer 做出多型的感覺 (望向 ffmpeg)
國立臺灣大學 資訊工程學系
文組理組都推python
國立臺灣科技大學
B2 其實寫C還是得要有OO的 而且手刻OO對新手更痛苦
B6 就專注 C 本身,新手太多資訊反而分心了。火力專注在點上會比較容易練出成效
原 PO - 國立交通大學 資訊科學與工程研究所
以程式語言入門來說 我覺得 C 也可以 但考量實用性,C++ 還是比較好,此外 C++ STD 對於初學者也是如虎添翼才對
國立臺灣大學 資訊工程學系
C在Linux系統編程是無可取代的
致理科技大學
那想請問 想學java 有什麼建議嗎?
國立臺灣科技大學
實用性的話以經驗來說C應該更好吧?
原 PO - 國立交通大學 資訊科學與工程研究所
B9 重點是新手基本上不會直接去碰啊... B11 你是指嵌入式系統方面嗎?但新手一開始比較不會去碰吧?以 Arduino、樹梅派這類的開發板來說,也不一定只能用 C 了。
原 PO - 國立交通大學 資訊科學與工程研究所
感覺很多人喜歡 C,只是我自己覺得 C++ 對新手友善啦 ~ 就像我更喜歡用 JS,但還是推薦 Python 給初學者。 😂
原 PO - 國立交通大學 資訊科學與工程研究所
B10 學習方法跟內文介紹的一樣 先找書 (Java 程式設計入門 之類的)、看影片 (用 Java 當語言的計算機程式課),然後透過 online judge 練習基本概念,還有寫一些小程式,找質數、猜謎之類的。 基礎概念懂之後可以去看 Android 相關的書學應用方式,或是 Java 在以前也常拿來開發網路、資料庫之類的,所以也可以去查這方面的資源。Java 要寫得好主要是物件導向要很熟練,此外 Java 的慣用函式庫也要會用。
原 PO - 國立交通大學 資訊科學與工程研究所
順便補充 學 Python 或 C++ 只是入門而已,語言終究只是工具,重點是你怎樣用工具。 對我來說,每個語言都能用才是最終目標 (善用各種工具),可能專精一個語言,但是視情況都可以用其他語言。 像是你開發網站基本上一定要會用 JS。想搞統計可能會用 R。
原 PO - 國立交通大學 資訊科學與工程研究所
參考大家意見 我決定改成 C/C++
國立嘉義大學
不要把C++稱作C的改良版 這兩個就是獨立的程式語言
原 PO - 國立交通大學 資訊科學與工程研究所
B17 參照 C++ Wikipedia "C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language, or "C with Classes." 說 C++ 是 C 的改良版並不無道理
國立臺灣海洋大學
想問 自學python的話在面試工作時,需要產出的作品集應該怎麼呈現😂😂 自學很久 但不知道怎麼做成一個完整的作品集
原 PO - 國立交通大學 資訊科學與工程研究所
B19 作品通常是要一個完整的東西 寫一些 online judge 或是只有一百行內 code 的程式通常不算是一個作品。 作品可以像是: 1. 用 Python 寫一個有 GUI 的小遊戲、小工具 2. 用 Python 實作圖形處理、自然語言處理、機器學習,然後有完整的 Github Repo,或是有根據你寫的東西寫成技術性文章。範例可以參考這篇:
3. 用 Python 寫一個 Server,搭配寫網頁,做一個完整的前端+後端 重點是你要呈現給對方妳真的懂程式,不是只會抄程式,有能力獨自寫一個程式出來。
Debug真的好難 我大概看得懂程式碼可能是在定義什麼 或是了解他的目的性 但真的Debug不了:( 我覺得模仿會一直想照抄 有什麼方式嗎!
原 PO - 國立交通大學 資訊科學與工程研究所
B21 我舉個例 以前我寫微積分作業時,也都是看著答案寫。 看著答案就是完全抄嗎?其實沒有。 我是看答案的步驟,知道他思維之後,跟著解題思維重頭走一遍。 如果怕自己沒記住,就再不看答案默寫一次看能不能一樣推出答案。 寫程式也一樣,你要看懂他的思維。可以邊看邊寫一次。 第二次依照剛剛學會的思維自己重新寫一次。 看不懂程式思維有兩種,第一是你程度太差,那就跟看古文一樣,多看會慢慢有FU,第二種是那程式太爛,換一個參考。
國立交通大學
B17 可以去翻閱由C++創作人寫的The Design and Evolution of C++,可以看到C with class的設計,以及後來演變成C++,漸漸與C走向不同道路的過程
淡江大學 電機工程學系 電機與系統組
B18 我個人會叫做「擴充版」,不會叫改良版 因為在寫一些偏底層的程式時,C是最大宗,比比方說單晶片微處理器等等,極省記憶體且穩定度可以最大化 而C++最重要的是多了物件導向,非常適合拿來寫比較高階的應用程式,同時相比Python、Java又有速度上的優勢 講改良版似乎會讓人誤以為C++一定比較好 但其實是要看應用場景
淡江大學 電機工程學系 電機與系統組
B21 學習是從模仿開始,不用怕 只要不是純抄不思考就好
國立彰化師範大學
由交大資工所講起來特別有信服力 想問個 學習寫競賽程式題要怎麼開始 競賽程式有人統整解題技巧嗎
靜宜大學
學校只教JAVA還有救嗎
國立臺灣大學
Java沒什麼不好啊...
南臺科技大學
請問一下PHP算入門嗎? 學校教的我還是有點聽不太懂😥 我連VB都學不好了 很想學好程式可是看到一堆程式碼就頭痛
原 PO - 國立交通大學 資訊科學與工程研究所
B24 我覺得你說要看應用場景是對的。所以我在文中也有提到兩者差別。其實我覺得改良版、擴充版、衍伸版這幾個詞其實並沒有差異很多,希望大家不要糾結這個點 😂 B26 競賽我不會,可能要留給其他強者回應了 XD B27 已經學了我覺得也沒關係,就像第二外語日文跟韓文先學哪個?我只是比較推薦先學日文,但已經先學韓文也行。 B29 PHP 也可以入門,只是除了寫伺服器好像用途很少。VB 已經被淘汰了,我建議可以考慮重新學一門我推薦的語言。
國立臺灣科技大學
B13 很多system software都是C寫的喔 不只是Embedded system或firmware/driver才是C
國立臺灣大學
linux上一堆套件都是C啊
原 PO - 國立交通大學 資訊科學與工程研究所
某個東西用啥寫的,跟語言特性有關,歷史因素也是原因
想問原po對GO lang的看法 看到越來越多人用GO 除了是google工程師開發的 他最大的特點應該是concurrency了 你覺得將來會取代python嗎?
南臺科技大學
想問一下對swift的看法,最近有興趣想來學學看
銘傳大學
不知道c和c++有什麼不一樣 我上課是用visual studio 開windows form 打程式碼⋯⋯⋯⋯
國立嘉義大學
B34 其實不用去想哪個程式語言會取代哪個程式語言這種問題 語言就只是個工具而已 建議你看看這篇文章了解一下當初google為什麼要開發Golang
開姆尼茨工業大學
我做控制的都是labview或者simulink做好流程圖,然後輸出c/c++到單片機裡。新手學編程也可以試試,可以更好理解封裝,以及各種結構框圖
逢甲大學
結果這篇底下的留言 都是已經有寫程式的人留 笑死
原 PO - 國立交通大學 資訊科學與工程研究所
b39 我覺得這樣是好事 因為我還很菜時也喜歡看別人意見 此外我最大目的是希望透過平台的「熱度」,讓真正有需求的人可以發現我的文章,並且幫到他們
台南應用科技大學
我是完全新手,今年才開始接觸, 這之前完全從事和這個無相關的科系和行業 但我第一個是先自學C後從中間再摻C++ 因為看完社團討論 所以決定完全使用原文書學~ 剛開始真的蠻地獄的XD 上個月開始已經習慣了, 但是重複練習真的很重要⋯⋯ 跟看英文一樣,同樣的單字一直出現 慢慢的就會記住,記住了就會拿來用 我是覺得蠻有趣的~
請問 文組想學Python該怎麼開始?🙏
長庚大學 資訊工程學系
一開始自學C,用到C++發現,乾C輸出變數打那麼多是三小,後來用到python,乾C++宣告那麼多變數型態是三小
國立暨南國際大學 資訊工程學系
B27 你JAVA摸熟 對coding有一定概念後 自學其他語言不會是太大的問題 很多觀念都是通用的 B39 你又知道B10也是有寫程式?
原 PO - 國立交通大學 資訊科學與工程研究所
B34 Golang 和 Rust 成長趨勢都滿明顯的,但兩者主要在系統軟體層面比較盛行。Python 本來就功能滿廣,最近更是因為機器學習而紅。硬要說的話,兩邊課群不太一樣,不太會有取代的問題。 B35 Swift 我沒研究ㄟ 不過想寫 iOS 的話你就逃不了啊 XD B36 C++ 和 C 目前已經發展成兩種「不完全」相容的獨立語言。但因為 C++ 基於 C,所以大部分還是可以通。此外 C++ 多了物件導向和模版。 Visual Studio 是一個很強大的 IDE,但我不推薦新手用,新手用他有殺機用牛刀的感覺,而 VS 最強大的我覺得是他的 Dubugger。 至於新手要怎樣寫 C++,我覺得用 editor + clang 或 gcc 就好 (clang 和 gcc 是編譯器),但可能要先熟習怎樣用 command line。
原 PO - 國立交通大學 資訊科學與工程研究所
b41 我是覺得與不必硬是看原文書啦XD 不過很高興你覺得有趣。 b42 方法大概就像文章提出來的那樣。或是你點出特別的困難點我可以給一點意見。 b43 我自己是強型別寫習慣之後,反而會看弱型別不爽 XD 因為不能一目了然知道那個變數是什麼 type -w-
南臺科技大學 資訊管理系
怎麼這麼多裝逼仔在BB啊? 這文章不是給新手的嗎? 講一堆專有名詞講起來會比較屌嗎😂 看了就知道只學半點就想出師😂
國立臺灣大學
新手選原文書請以簡單為主 不然買到The C++ Programming Language這種會崩潰
慕尼黑大學
B48 新手原文我只想到dummies系列XD 順便推薦O’Reilly出版的書,還蠻好用的,從初階到中階段都適用
原 PO - 國立交通大學 資訊科學與工程研究所
說到中文書的話 出現在天瓏書局的原則上都能看🤣 小時候我家就有好幾本 C++ 入門,而且就是出版社和作者都普普很一般的書,但我覺得內容就夠看了,以入門來說真的大同小異,就像高中課本出版商很多,但內容也差不多。