導航:首頁 > 源碼編譯 > 程序員必須懂編譯原理嗎

程序員必須懂編譯原理嗎

發布時間:2024-11-11 09:20:23

程序員要學習哪些知識呢

如果做一個專業的程序員:
1.基礎語言知識 :從底層的ASM 到結構化的C,到面向對象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一門

2.基礎數學知識: 高等數學(數學分析) 線性代數 離散數學,概率.數理統計等等

3.基礎計算機原理:操作系統原理,微機原理,編譯原理 資料庫原來等等

4.看你感興趣的學習一個方向:圖形學...windows應用程序開發...linux程序開發,資料庫方面 網路編程,等等
----------------------------------------------------------------------
如果只是想快速編軟體:
敬告:這樣不會成為一個真正的高手!

比如windows平台的編程:<這里僅僅是比如>

學習C語言(熟悉結構化編程)->《windows程序設計》(學習windowsAPI知識) ->可以用API進行編程了。
但是現在用純API編程幾乎絕跡。不是淘汰,因為商業用要盡快成為軟體好賣,API開發會消耗程序員大量時間,但是API是基礎。

或者
學習C++語言(熟悉面向對象技術)->《MFC程序設計》(學習MFC編程)->MFC開發 -> MFC應用比較廣

.net技術我沒有接觸過。現在正流行這個,等樓下的給你介紹吧!
------------------------------------
相比較而言,用DELPHI最省事。但是你要了解Object Pascal語言,這個編程工具是以這個語言為基礎的。Delphi開發也是很不錯的。
-------------------------------------
以上只是一個建議,學習不可能簡單,而且路子不一樣,上邊提到的兩windows書,是微軟出版社,在這個方面最權威的書。

② 計算機本科里最重要的是哪幾門課程(想當C++程序員的話)

真理:數據結構:程序員必需懂操作系統:編程方面基本,從事計算機行業的都得懂。編譯原理:進階課程,開發中少有用到,建議不必學。軟體工程和管理:從事大型項目或高階職位者必須懂,進階課程資料庫原理:大型商業項目基本有資料庫,要懂計算機網路:和網路相關的項目都很賺錢,要懂網路編程:c++很大一個應用,懂! 最後讓我告訴你現狀,你這樣初學又不是應屆對口畢業的人很難找c++的工作。你不急著轉工作的話,我給你一個建議:學好上面的課程,不要搞windows的,做linux的網路編程,伺服器端的。這個需求比較大,人數也少。就算學不太好,搞懂linux的配置和架設也能找到好工作。這樣的話你就主攻linux系統的配置和linux下的c/c++,數據結構和網路編程,多線程編程。順帶一提,linux伺服器要的就是效率,多看有關演算法

③ 從工作角度出發,學習編譯原理和操作系統哪個對於個人幫助更大

我是學軟體工程的,你說的這些課程我們都已經學完。 如果你想從程序員做起的話,《編譯原理》就很重要了,你只有知道了編譯器是怎麼編譯你的程序的,你才可能編寫出高效,穩健,佔用內存少的程序。我們學編譯原理的時候還自己設計了解釋器。

④ 程序員是不是一定要懂編譯原理

懂編譯原理當然是方便你編程,不懂也不要緊,會用IDE工具就行,

⑤ 如果想成為一個程序員應該學習什麼知識

聲明:以後計算機也就沒什麼前景了 只能成為一個輔助工具
(1) 熟練掌握基本演算法和數據結構,用C語言編製程序;
(2) 掌握數據結構、程序變速器和操作系統的基礎知識;
(3) 了解軟體工程、資料庫、多媒體和網路的基礎知識;
(4) 掌握數制、機內代碼及其算術運算和邏輯運算的基礎知識;
(5) 了解計算機的體系結構和主要部件的基礎知識。
1.1按照軟體設計說明書,能熟練使用下列程序語言編製程序
1.1.1C(美國標准)
1.2理解給定程序的功能,能發現程序中的錯誤並加以糾正
1.3具有良好的程序編制風格
1.4基本演算法
1.4.1查找、更新、排序、合並及字元處理
1.4.2迭代、插值、數值積分、矩陣計算、議程求解和搜索求解
1.5程序編制方法
1.5.1分支、循環、子程序(過程和函數)、遞歸
1.5.2輸入輸出和文件的處理
模塊2:基礎知識(程序員級)
2.1軟體基礎知識
2.1.1數據結構基礎
數組、記錄、列表(list)、隊列、棧(stack)、堆(heap)、樹和二叉樹的定義、存儲和操作
2.1.2程序語言基礎知識
·匯編、編譯、解釋系統的基礎知識
·程序語言的數據類型
·程序語言的控制結構
2.1.3操作系統基礎知識
·操作系統的類型和功能
·操作系統的層次結構和進程概念
·作業、處理機、存儲、文件和設備等管理的基礎知識
2.1.4軟體工程基礎知識
·軟體生命周期各階段的任務
·結構化分析和設計方法
·面向對象基本概念
·軟體開發工具與環境基礎知識
2.1.5資料庫基礎知識
·資料庫模型
·資料庫系統的結構
·SQL的使用初步
·常用資料庫管理系統的知識
2.1.6多媒體基礎知識
·多媒體基本概念
·常用圖象文件
·簡單圖形(線段和圓)的計算機圖示
2.2硬體基礎知識
2.2.1數制及其轉換
·二進制、十進制和十六進制等常用數制及其相互轉換
2.2.2機內代碼
·原碼、補碼、反碼、移碼
·定點數與浮點數的機內表示
·ASCII碼及漢字編碼等常用的編碼
·奇偶校驗碼、海明碼、循環冗餘碼(CRC)等常用校驗方法
2.2.3算術運算和邏輯運算
·計算機中的二進制數運算方法
·邏輯代數的基本運算和邏輯表達式的化簡
2.2.4計算機的體系結構和主要部件
·中央處理器CPU、存儲器和輸入/輸出設備
·匯流排結構、指令流和數據流
2.2.5指令系統
·常用的定址方式
·指令的格式、分類及功能
·指令的執行過程
2.3網路基礎知識
2.3.1網路的功能、分類與組成
2.3.2網路協議與標准
2.3.3網路結構與通信
2.3.4網路的安全性
2.3.5Client-Server結構
2.3.6Internet和Intranet初步

⑥ 要做好一個程序員要具備什麼條件

1、扎實的基礎

數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握它們,很難寫出高水平的程序。程序人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本演算法的時候可能也會束手無策。因此多讀一些計算機基礎理論方面的書籍是非常有必要的。

2、豐富的想像力

不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。開闊的思維對程序員來說很重要。

3、最簡單的是最好的

這也許是所有科學都遵循的一條准則,復雜的質能轉換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。

4、不鑽牛角尖

當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩游戲,當負責游戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。

5、對答案的渴求

人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。

閱讀全文

與程序員必須懂編譯原理嗎相關的資料

熱點內容
基於單片機的數字示波器 瀏覽:36
登qq伺服器連接中什麼意思 瀏覽:436
表格宏命令 瀏覽:994
肯德基app設定在哪裡 瀏覽:472
蘋果電腦文件夾怎麼添加列印機 瀏覽:701
pythonswagger 瀏覽:235
作業打卡解壓素材 瀏覽:159
pdf導入ibooks 瀏覽:577
xps文件轉pdf 瀏覽:134
怎麼樣獲得命令方塊 瀏覽:899
安卓studio如何改主題 瀏覽:933
linux自動獲取ip命令行 瀏覽:208
做設計做程序員適合的電腦 瀏覽:778
網站有源碼和沒有源碼的區別 瀏覽:680
如何自學開發app 瀏覽:595
修電梯pdf 瀏覽:351
政務雲是不是提供虛擬伺服器 瀏覽:59
在哪裡看每個app用了多長時間 瀏覽:637
學程序員要英語四級嗎 瀏覽:133
java視頻錄制 瀏覽:758