不是資訊相關科系畢業的,怎麼學寫程式?

更新於 發佈於 閱讀時間約 7 分鐘
這篇文章專門寫給「非」資訊相關科系畢業的人,說明怎麼樣開始學寫程式,還有到什麼程度才能轉到資訊相關產業。
怎麼學寫程式?

怎麼學寫程式?

我大學跟研究所都是念土木系,因為對寫程式蠻有興趣,所以除了系上的課之外,還有去資工系還有電機系修一些相關課程,因為不是資訊相關科系,所以有走了一些冤枉路,但是研究所的時候我已經可以開發套裝軟體了,也有當了一年的程式課助教。

如果你完全不會寫程式,一定要看這篇文章!會對你非常有幫助,你會知道要學什麼,還有知道要學到什麼程度大概才夠轉到資訊業。如果你已經會寫一點程式,或已經在資訊業的非本科生,也可以看看是不是有什麼漏學的,導致你寫程式的功力無法進步。

以下學習歷程我覺得有可能把你「勸退」的,我會特別強調,千萬不要放棄,因為多練習、多想就可以突破了。


  • 編譯器以及程式語言的選擇:

我自己是用visual studio(編譯器)寫C++語言,程式語言是寫給編譯器看的,編譯器會看你寫的程式內容再製作程式。

編譯器以及程式語言都有「嚴謹度」的問題。嚴謹度低的編譯器以及程式語言,當你寫的程式碼有一點錯誤的時候,還是會幫你製作程式出來。

這對學程式是一個很不好的事情,你有可能從頭到尾都不知道,自己有些觀念是不正確的。如果你不知道怎麼選,就跟我一樣就好,因為這樣的配套是很嚴謹的。

當你學會了寫程式的觀念之後,要轉換語言其實很容易,所以不用太糾結在要學哪個程式語言比較好,重點就是要選一個嚴謹的編譯器以及程式語言。

通常寫程式的第一步,就是你要先製作一個可以在螢幕上顯示("Hellow World")的程式,成功的話就代表電腦設定應該都沒問題,就可以開始學後面的觀念了。


  • 變數(資料型態):

這是寫程式的第一課,變數就是類似X,Y這種代數,變數只是一個空殼,你可以隨時替換裡面的資料。

變數是有型態的,不能夠亂放資料進去,像整數變數(int)只能放整數,浮點數(float)只能放小數,字元(char)只能放字元,變數這個部分一定要學好,不然未來會一團亂。

  • 陣列:

把一堆函數排排站,第一位是0號,例如:a[0]。可以擴充成多維陣列,例如:a[1][2],通常最多用到2維而已,再多容易亂掉,排排站的字元就會變成字串,也就是一串字母,有些語言直接就有字串的變數,有些沒有,這也是剛學程式的一個課題。

  • 檔案輸入及輸入:

就是從檔案將資料輸入及輸出到檔案內,通常都是從記事本輸入及輸出,因為像word這種檔案其實裡面都有一堆隱藏的東西東西,你用記事本打開就知道了,只有記事本是乾淨的。

檔案輸入及輸入有對應到變數,你一定要知道輸入了甚麼資料型態,輸出了什麼資料型態,來選用相對應的變數,不嚴謹的編譯器以及程式語言會允許你混用變數型態,聽起來很不錯對吧?但是你很快就會嚐到苦果!

  • 函數:

跟excel的函數用法差不多,但是你要自己定義函數的input(參數)跟output(回傳值)。

練習的時候,你要先寫一段可以執行的程式碼,然後再丟進函數裡面,再來把函數放進頁面裡面。

  • 迴圈:

顧名思義就是會一直重複循環指令,有while跟Do兩種語法,需要設一個條件跳出,不然會變無限迴圈(當掉)。

  • 除錯(debug):

其實從頭到尾都要debug,但是學到這時候還不太會的話,你可能會學不下去。

如果是一直顯示語法錯誤的話,先把指令複製道別的地方後都刪掉,然後再慢慢加指令進來,看看是哪一個指令有問題。

如果是結果錯誤的話,要在螢幕一直輸出,檢查哪個指令出現你不想要的結果。

  • 判斷式:

用if或select語法來判斷什麼條件要執行什麼指令,但select我不太常用。

  • 遞迴:

寫一個函數,這個函數包含自己,所以當我啟動這個函數的時候,他又會啟動一個自己

例如:這個函數叫做function,那在function裡面又會呼叫function,於是會一直呼叫下去,直到你設定的回傳條件,就會全部收回來,變成一個結果回傳到主要頁面中。

這個用在你不知道要做多少次,才能找到答案的時候(窮舉法)。

  • 指標:

學會指標你就進階到「下一關」了,指標是很多人被「勸退」的一關,當然你能夠走到這邊已經不容易了。因為上面那些指法並不會獨立存在,而是會全部互相交纏在一起。所以當你觀念不太清楚或是練習不夠的時候,根本找不出錯誤在哪。

指標就是變數的地址,就是像你家地址:幾巷幾號幾樓,因為指標跟後面要學的資料結構很有關係,所以是一定要搞懂的。


這時候語法你已經學的差不多了,再來要學的是其他門課程:

  • 資料結構:

前面在練習的時候就會用到資料結構了但是因為「串列」才是最常用的而串列需要用到「指標」的觀念所以到現在才講。其他像是「樹狀結構」之類的你應該本來就知道的差不多了。

串列的觀念就是:我只知道你家的地址,不知道其他人家的地址,而每個人都是這樣。所以我要找人的時候就要一個傳一個,沒辦法直接找到那個人。如果結構要無限擴張的話,這種做法是最好用的。串列實作還需要物件導向的觀念,物件導向後面會講。

  • 演算法:

演算法就是可以在「有限次數」內求解一個問題的「方法」。

每個演算法都有一個複雜度,就是隨著規模擴張的時候,求解的時間會多幾倍,有可能是n倍,也有可能是n的階層倍。

  • 物件導向:

現在開始你要「自訂變數」,這個變數裡面可以包含很多變數跟函數,物件導向最重要的用途是實現「封裝」的功能。

一般的程式碼,如果我要給其他人使用的時候,很像是給別人一個汽車的零件,你自己要知道怎麼裝這個零件車才會跑,而且你有很大的機率會裝錯。

但如果給你一個物件導向封裝的變數,就像給你一台車,你只要知道怎麼開就好,然後我也不讓你改裡面的零件,以免車壞掉。


學完物件導向之後,你的程度差不多可以轉行了,再來其他問題應該難不倒你。雖然後面還有一些視窗化程式、網頁語言、伺服器等等東西要學,但你應該稍微研究一下就會了。

學寫程式絕對不要落入程式語言要選哪個的迷思,因為正確的觀念只有一種而已,程式語言跟編譯器只是幫助你能夠了解這些觀念,並不是重點。


👉如果你喜歡文章請按下愛心❤️

👉想隨時複習請按下收藏】✅

👉如果你想供寶貴的意見請留言】✅

👉文章若有幫助也歡迎贊助】【追蹤】☕

這些都將成為我持續前行的動力🚀













留言
avatar-img
留言分享你的想法!
avatar-img
破除職場迷思及提升個人價值
102會員
243內容數
這個專題是專門寫給剛進入職場的新人看的,剛進入職場懵懵懂懂的,搞不清楚該學習那些技能嗎?是不是常常跟同事相處不順利?常常無法達到主管的期待?沒關係,這個專題都有解答。 你可以在這個沙龍發文討論以及交流。
2025/03/19
如果你是一個剛剛創業或是一個新的部門的經理,最容易讓你遇到困難的事情應該就是班底的培養 請人是需要成本的,如果沒有妥善安排以及培養,請人就會造成自己的負擔,除了請到適當的人之外,人才的養成也是一件重要的事情。 一個新人要能發揮價值,需要至少達到以下一項門檻,能夠做符合他薪水的案件量,或是能夠處理
Thumbnail
2025/03/19
如果你是一個剛剛創業或是一個新的部門的經理,最容易讓你遇到困難的事情應該就是班底的培養 請人是需要成本的,如果沒有妥善安排以及培養,請人就會造成自己的負擔,除了請到適當的人之外,人才的養成也是一件重要的事情。 一個新人要能發揮價值,需要至少達到以下一項門檻,能夠做符合他薪水的案件量,或是能夠處理
Thumbnail
2025/03/18
疫情之後,很多人都已經接受了遠端工作的模式,本來大家都覺得遠端工作或是會議沒有成效,於是不敢嘗試。但在疫情時,所有人都被逼迫著要遠端處理事情。 我覺得如果都要見面討論事情的話,在現代社會是一件不切實際的事情,就目前我的工作來說,案件分布在中南部地區還有東部,不太可能以到處跑的方式來管理各個工作。
Thumbnail
2025/03/18
疫情之後,很多人都已經接受了遠端工作的模式,本來大家都覺得遠端工作或是會議沒有成效,於是不敢嘗試。但在疫情時,所有人都被逼迫著要遠端處理事情。 我覺得如果都要見面討論事情的話,在現代社會是一件不切實際的事情,就目前我的工作來說,案件分布在中南部地區還有東部,不太可能以到處跑的方式來管理各個工作。
Thumbnail
2024/04/14
在職場中,被當作是一個自動自發的人其實很重要,因為我們應該都不想要每天被老闆盯著,那是上班時最痛苦的感覺,如果沒有了這種討厭的感覺,或許上班會變成一件有趣的事情。 很多人覺得自己很主動做事情,但卻只是自以為而已,做的事情沒有在老闆畫的重點上。所以應該要適時地表現出我們有抓到重點,讓老闆知道自己很自
Thumbnail
2024/04/14
在職場中,被當作是一個自動自發的人其實很重要,因為我們應該都不想要每天被老闆盯著,那是上班時最痛苦的感覺,如果沒有了這種討厭的感覺,或許上班會變成一件有趣的事情。 很多人覺得自己很主動做事情,但卻只是自以為而已,做的事情沒有在老闆畫的重點上。所以應該要適時地表現出我們有抓到重點,讓老闆知道自己很自
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
這篇文章專門寫給「非」資訊相關科系畢業的人,說明怎麼樣開始學寫程式,還有到什麼程度才能轉到資訊相關產業。 我大學跟研究所都是念土木系,因為對寫程式蠻有興趣,所以除了系上的課之外,還有去資工系還有電機系修一些相關課程,因為不是資訊相關科系,所以有走了一些冤枉路,但是研究所的時候我已經可以開發套裝軟體了
Thumbnail
這篇文章專門寫給「非」資訊相關科系畢業的人,說明怎麼樣開始學寫程式,還有到什麼程度才能轉到資訊相關產業。 我大學跟研究所都是念土木系,因為對寫程式蠻有興趣,所以除了系上的課之外,還有去資工系還有電機系修一些相關課程,因為不是資訊相關科系,所以有走了一些冤枉路,但是研究所的時候我已經可以開發套裝軟體了
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
無論年紀多大多小,只要「願意」付出行動 時間、地點都不是問題 現在都有兒童程式課程 小朋友學的是利用積木組合而成的程式 大朋友就可以直接拿鍵盤來劈哩啪啦開始寫程式碼囉~
Thumbnail
無論年紀多大多小,只要「願意」付出行動 時間、地點都不是問題 現在都有兒童程式課程 小朋友學的是利用積木組合而成的程式 大朋友就可以直接拿鍵盤來劈哩啪啦開始寫程式碼囉~
Thumbnail
在確定學習哪種程式語言後,接下來總算要進入正式的學習了......(´・ω・`)吧? 這個章節就稍微總結整理一下,身為程式小白,你會碰到的幾種學習資源,以及該如何妥善選擇才能有最大的學習成效吧(ゝ∀・)b!
Thumbnail
在確定學習哪種程式語言後,接下來總算要進入正式的學習了......(´・ω・`)吧? 這個章節就稍微總結整理一下,身為程式小白,你會碰到的幾種學習資源,以及該如何妥善選擇才能有最大的學習成效吧(ゝ∀・)b!
Thumbnail
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
Thumbnail
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
Thumbnail
在科技快速發展的現代,每個人都滿口大數據、人工智慧,。而大學的資工系也變得越來越熱門,學習程式也逐漸成為許多人考慮的事情。 在這篇文章,我會分享如何從零基礎開始學程式,給讀者開始的方向、避免你走冤枉路。
Thumbnail
在科技快速發展的現代,每個人都滿口大數據、人工智慧,。而大學的資工系也變得越來越熱門,學習程式也逐漸成為許多人考慮的事情。 在這篇文章,我會分享如何從零基礎開始學程式,給讀者開始的方向、避免你走冤枉路。
Thumbnail
常見入門款Python、統計分析用R、轉職培訓JAVA、C#、IOS用Swift、前端萬用JavaScript、學校基礎C語言、進階C++、甚至是新潮的語言go,程式語言那麼多種到底該從哪個入門好?難道從Scratch開始?
Thumbnail
常見入門款Python、統計分析用R、轉職培訓JAVA、C#、IOS用Swift、前端萬用JavaScript、學校基礎C語言、進階C++、甚至是新潮的語言go,程式語言那麼多種到底該從哪個入門好?難道從Scratch開始?
Thumbnail
上面幾篇文已經說明了我們要怎麼開始學習程式,那這邊我就想來介紹我自己當初作為一個未進入職場的資訊學生是怎麼準備求職的呢?雖說我們在學校內木人樁也打了差不多了,但其實學校並沒有告訴我們該去哪裡轉職、尋找第一份工作,因此我只能自己東摸西西各式平台,依照個人有在使用或是曾經使用過的平台來做介紹。
Thumbnail
上面幾篇文已經說明了我們要怎麼開始學習程式,那這邊我就想來介紹我自己當初作為一個未進入職場的資訊學生是怎麼準備求職的呢?雖說我們在學校內木人樁也打了差不多了,但其實學校並沒有告訴我們該去哪裡轉職、尋找第一份工作,因此我只能自己東摸西西各式平台,依照個人有在使用或是曾經使用過的平台來做介紹。
Thumbnail
大學時期,第一門給我危機感的科目,是計算機概論。科目名稱表面上是如此,實際上該叫做程式語言,而且使用的還是工科老字號語言--Fortran 77,搭配陽春的NotePad++跟Command line。
Thumbnail
大學時期,第一門給我危機感的科目,是計算機概論。科目名稱表面上是如此,實際上該叫做程式語言,而且使用的還是工科老字號語言--Fortran 77,搭配陽春的NotePad++跟Command line。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News