【#程式教學】「想學會寫程式,必先練此功!」
新手必備✨C語言懶人包✨
大家千呼萬喚的C語言懶人包來啦🤟🏻一起看下去!!!!
1️⃣C語言:入門基本功💪🏻
C語言是個超~強大的程式語言,C語言靈活高效的運算和豐富的功能性,以及可以跨平台使用的特點,成為了近30年來用途最為廣泛的語言。...
【#程式教學】「想學會寫程式,必先練此功!」
新手必備✨C語言懶人包✨
大家千呼萬喚的C語言懶人包來啦🤟🏻一起看下去!!!!
1️⃣C語言:入門基本功💪🏻
C語言是個超~強大的程式語言,C語言靈活高效的運算和豐富的功能性,以及可以跨平台使用的特點,成為了近30年來用途最為廣泛的語言。
C語言最常使用在作業系統的編譯器中,由於它擅長處理低階語言,也常常被當作設備和軟體的橋樑,如果你想成為厲害的作業系統開發者,就學C語言吧!
2️⃣C++ :實用程度高🙌🏻
C++ 擁有C語言沒有的「物件導向設計」,讓C++比C語言更容易學習🧰
由於物件導向帶來的方便性,且承襲C語言的優點及特性,使得C++常常用來撰寫電腦的軟體,常見的Office系列軟體就是以C++撰寫而成的。
3️⃣C# :初學者的首選👆🏻
C# 是全物件導向設計的高階語言,比起C和C++更容易上手,是不少初學者的首選❣️❣️❣️
✔️以程式開發來說,C++的應用多於C#
✔️以網頁設計來說,C#則大大勝出💓
4️⃣學習的容易性ℹ️
學習的容易性是C#>C++>C
但應用的範圍是C>C++>C#;C語言最常應用在作業系統和韌體的開發及維護,C++是常應用於電腦軟體的開發及維護,而C#則是應用於網頁撰寫及架設居多😚
5️⃣善用 Compiler/IDE 軟體ℹ️
如果照著別人的範例打一次,一開始可能會有漏打的可能。
注意程式錯誤的地方,這些IDE軟體會透露,現在的IDE做得都很人性化,推薦新手可以使用 Visual Studio, Dev-C++, Code::Blocks 這幾個 IDE 來開發,都有不錯的除錯功能 (沒提到的IDE不代表沒有),進而學習如何看軟體給的錯誤(警告)訊息,去抓出程式碼中有問題的地方。
這點很重要,沒有一個工程師是只會 Coding 而不會 Trace Code, Debug 的😌
6️⃣善用google 搜尋引擎🔍
人類最偉大的發明之一 : google 搜尋引擎!
如果遇到不懂的觀念,請先 google 找資料,其他人可能都已經先遇過你的問題❗️如果遇到錯誤,最簡單的方法就是把錯誤的訊息直接貼上 Google,或是到 Stack Overflow 查詢。
至於範例程式碼,如果 google 用得夠強,也不排斥英文的話,事實上也幾乎都找得到你要的東西。而一些函數不會用,那可以上 " C++ reference" 、" C library referenct"、"MSDN" 查這些函數的說明,運氣好一點甚至可以到 GitHub 找到完整的專案可以參考👨🏻💻
7️⃣學會使用 Linux🙆🏻♂️
目前C語言相容於各種平台,但如果你今天要運行大型專案程式,一定需要一台伺服器,而伺服器的作業系統通常都是 Linux,而且這才是C語言最基本的環境,所以學習 Linux 指令絕對是必備技能之一!
如果要練習 Linux,最簡單的方法就是裝一台 VM 虛擬機,上面的 OS 安裝 Ubuntu 或是 CentOS,這兩個 OS 是比較廣泛應用的,接著就常常使用,自然而然就熟悉了。
8️⃣線上學習平台👨🏻💻
網路上的資源太瑣碎,我推薦你找幾堂完整的線上課程來學習,可以大幅減少摸索的時間⌚️
至於有哪些平台,可以上 Google 搜尋 🔍【程式語言推薦】2019年如何學程式?5個線上學習資源推薦 這是阿璋之前整理的文章。
想知道更多?
【歡迎追蹤Johntool-工具王阿璋 @johntooltw ↓↓↓】
facebook► https://www.facebook.com/JohntoolTW/
instagram► https://www.instagram.com/johntooltw/
收到更多 #程式教學 #不務正業工程師 #電腦程式 系列!
編譯器設計課程 在 軟體開發學習資訊分享 Facebook 的最讚貼文
這門課是為建立 Linux 可程式設計程式庫,Makefiles,記憶體管理,編譯與連結,C 語言程式設計的開發者所設計的課程
從這 12 小時的課程,你會學到
1 使用 C/C++ 中學習進階的程式設計概念
2 C/C++ 程式庫的開發與整合
3 使用 Makefile 自動建構流程
4 使用函式指標作為 Callbacks
5 靜態和動態程式庫及連結GCC 編譯器的編譯流程
6 將程式碼組織到標頭檔( Header )和原始檔中
與計時器一起工作
7 理解記憶體配置,Heap 記憶體管理,記憶體洩漏( Memory Leaks )
8 堆疊記憶體,堆疊溢位,堆疊損壞,堆疊暫存器
9 分頁概念和分頁表( Page Tables )
https://softnshare.com/advance-programming-concepts/
編譯器設計課程 在 軟體開發學習資訊分享 Facebook 的最佳解答
課程說明
程式語言如何在引擎蓋下工作?編譯器和直譯器之間有什麼區別?什麼是虛擬機器,以及JIT-編譯器?函數語言程式設計和指令式程式設計的區別又是什麼呢?
當涉及到實現一種程式語言時,有太多的問題了!
學校裡的 “編譯器課程 “的問題是,它們通常被表述為一些 “硬核火箭科學“,只適合高階工程師。
此外,經典的編譯器書籍從最不重要的話題開始,比如詞法分析,馬上就深入到形式化語法的理論方面。而到了實現第一個 Tokenizer 模組的時候,學生們就會對這個主題失去興趣,沒有機會真正開始實現一種程式語言本身。而這一切都被分散到整個學期的標記器和 BNF 語法的混亂中,而沒有理解程式語言的實際語義。
我相信我們應該能夠在4-6個小時內建立並理解一個完整的程式語言語義( full programming language semantics ),內容直奔主題,在現場編碼課程中以配對程式設計的方式展示,並以可理解的方式描述。
在 “解釋要點 “課程中,我們特別關注執行時期語義( runtime semantics ),並為一種非常類似於 JavaScript 或 Python的程式語言建立一個直譯器。
https://softnshare.com/essentials-of-interpretation/
編譯器設計課程 在 軟體開發學習資訊分享 Facebook 的最讚貼文
本課程的講師 Frank Mitropolous 已經使用 C ++ 超過20年,並在大學課程和業界培訓課程中教授學生。 他甚至在業界期間從事過 C ++ 編譯器開發專案。
因此,你不僅可以從專業的 C ++ 程是設計師那裡學習 C ++,而且還可以跟在大學成功教授多年的大學等級教師學習。
https://softnshare.com/beginning-c-plus-plus-programming/