① 請問達到怎樣的水平才能進微軟這類公司從事搞編譯器這類工作
我讀研究生的時候才對編譯開始有興趣,當我畢業時我不知道我對什麼感興趣。結果,當時的成績很好,他們也跟上了形勢,然後給了我一些時間思考。
後來我也在想,我其實更大的興趣是什麼呢?其實是C++和挑戰,做編譯器也許是方便我更好的研究它,也有很大的挑戰性,也許有一天我會因為發現更大的挑戰而不做編譯器了。
有什麼書和方法,有很好的答案,我不會說。寫下這些內容有點荒唐。
② 軟體開發的專業的畢業生,在就業方面有哪些不錯的崗位可以挑選
網路程序員網站開發工程師。網路工程師等。簡單管理信息系統開發維護人員、網頁製作及客戶端腳本編寫人員、初級資料庫管理維護人員、資料庫開發工程師、系統分析設計工程、軟體項目配置管理員、文檔編寫工程師等。
運維負責控制項目的正常運行。服務監控技術、服務故障管理、服務容量管理、服務性能優化等技術需求很多。產品崗。產品需要根據用戶的需求決定開發哪種產品,選擇哪種技術和商業模式,並推動相應的產品開發組織。這個職場對理解用戶體驗、把握用戶需求、產品設計框架和商業感的綜合能力要求更高。第六,操作崗位。運營崗位主要從事內容建設、用戶維護、活動策劃和數據分析,確保產品與用戶的連接。
③ 計算機編譯程序主要是做什麼工作
編譯程序就是將高級語言程序設計語言源程序翻譯成計算機可執行代碼的軟體
④ 精通了C++,C,MFC,SQL資料庫,操作系統,UML建模,軟體工程可以找到專業方面的工作么 大概可以找什麼工作
前5個是技術,後兩個是管理協調;
在國內基本上首先要靠技術去找工作,然後利用你的軟體工程的理念(還要看你的口才和魅力)去影響公司從而獲得更高的收入。
不過這個誰也不敢說精通的。
例如我問一下,C++你是精通STL還是VC還是,C/C++你用過什麼編譯器,編譯選項熟悉嗎,Makefile或者prj文件熟悉嗎,操作系統你熟悉哪幾個,對內核對象,系統調用熟悉多少;
當然其實這些都不重要;
最重要的是,假設現在有個產品的Spec,你覺得你能多久選好工具,做好架構,多久完成開發。
⑤ 國內有做編譯器相關的公司么
Windows下開發C語言也有很多產品。包括Eclipse(使用CDT插件)、NetBeans(C++插件)。還有Borland公司的產品C++Bulider等等。很多免費和收費的IDE工具都可以使用。Visual C++6可以說是很老的產品了,不過現在還是有人在用。
⑥ 軟體工程專業畢業後出來的工作崗位有哪些
成為公司的技術總監是很多程序員的夢想。這條路線是從初級程序員成長為高級程序員之後,以做項目為工作重點,進而發展成項目經理、開發經理,最終成為技術總監甚至公司副總裁。這些程序員走的是技術管理路線,從做項目開始,逐漸積累管理經驗,然後成長為優秀的技術管理者。技術總監在公司甚至技術界的影響力非同一般,對於那些有志於成為公司領導層的程序員,是個很大的誘惑。但是權力大、管的人多,就意味著更大的壓力,技術總監不僅要保持對新技術的敏感,還要抽出精力做管理。比起成為純技術專家,這條路也許更為艱難。 還有一些程序員職業發展的終點是總架構師、總設計師。這類程序員的興趣,不是某種特定的技術,而是偏重對軟體產品或者軟體應用項目的設計。如果將軟體項目開發團隊比作一個樂隊,那麼程序員就相當於一名樂手(比如小提琴手、長笛手等),他們負責將自己的樂器演奏好;項目經理是樂隊指揮,負責指揮和協調這個樂隊的配合;架構師則相當於作曲家。從入門的架構師開始,逐漸成為資深架構師乃至總架構師。如同歷史上偉大的作曲家,傑出的架構師能夠在各種軟體中譜寫出旋律優美的「曲子」。 另外一些程序員心懷創業的理想,等到自己有了一定的技術積累,再掌握一些市場需求以及管理方法,他們會開始創業之路。一旦成功,這類人的影響力會非常大,像Google和雅虎的創始人,都是技術創業的成功典範。但是這條路也是最艱辛的,有句話叫做「不當家不知柴米貴」,不親自創業的人也很難體會它的艱辛。創業涉及方方面面,稍有差池就會功虧一簣,投身創業的程序員並不少,但是真正能成功的少之又少。踏上這條路不僅需要過人的勇氣和魄力,更需要堅韌不拔的毅力,以及深度的商業智慧,再加上市場機會,才能夠贏到最後。 很多程序員會走上技術支持路線,進而發展成為精通業務的技術和行業咨詢專家。這類程序員會在成為高級程序員之後加入銷售團隊,直接面對客戶,負責技術層面的問題。如果對某一行業(比如銀行、電信)非常熟悉,久而久之,就成為精通這個行業技術的專家;如果對於某一類解決方案(比如ERP、CRM、SCM)非常擅長,就可以發展成為跨行業的技術專家。 還有一部分程序員會成為IT專欄作家和自由職業者。這些人通常對寫作比較感興趣,文字表達能力也不錯,他們會將自己從事技術工作的內容或心得寫出來,然後發表文章賺取稿費。只要對技術足夠精通,這類人是很受雜志歡迎的。在北美還有一種自由職業者叫做合同工,就是不定期的承接項目,在項目開始前簽訂協議,項目完成後結束合作。雖然這種職業目前在中國還不太多,但是其自由性對於很多程序員來講,也非常有吸引力。 上文提及的若干條路,程序員可以根據自己的興趣進行選擇,但是一般來說,無論走哪條路,都有一個前提條件:從初級程序員進階為高級程序員。因為在這之前,你甚至沒有選擇的機會。從初級進階到高級,通常需要2~5年的時間,因個人素質而異。大家都說,程序員要耐得住寂寞和枯燥,年輕的程序員更要克服浮躁的心態。在職業生涯的起步階段,很多人總會摸不著頭腦,這時一定要靜下心來,多向資深程序員求教,慢慢熟悉技術、熟悉開發流程和行業。有時你會感覺掉進了一個知識海洋,身邊全是陌生的事物,很難抓住。所以就更要四處探路,逐漸尋找到方向,在尋找中進步。 成功進階為高級程序員,也並不意味著前途一片光明。如果說從初級到高級需要的是學習,那麼從高級到專家,需要的是不斷地嘗試和堅持。比起前一個階段,這個過程更為漫長,通常需要5~8 年。在這期間,因為有了之前的積累,並且已經取得一定的成就,人會更加自信,同時也會更加彷徨,有一個問題會時常盤旋在腦中:將來的路到底要怎麼走?這時就可以利用自己所積累的資源,多做一些嘗試,嘗試不同角色、不同的項目,與不同的客戶打交道,時間長了,自然會找到最適合自己的發展方向。 總結起來,初級程序員和高級程序員時期,都屬於職業生涯發展的第一階段,我們可以稱之為黃金時期。這階段程序員的年齡在20~35歲之間,因為年輕,所以更善於學習,而且體力充沛,很多走過這個階段的程序員有過通宵工作的經歷。在這個時期,你有大把的時間學習提高,為將來的事業打下堅實的基礎。而一旦超過了30 歲,無論從體力還是精神上,都會有所改變, 從30~40 歲是轉型時期。這時的程序員(很多人已經不再編程)已經明確了自己的發展方向,並且向著目標努力,讓自己有所建樹。40~60歲是專家時期,至此,一名優秀的程序員會徹底實現「破繭成蝶」的願望,成長為專家。 程序員的職業很精彩,同時也很艱苦。享受高工資,掌握最新的技術,有可能成為創業成功的富豪,甚至有機
⑦ 編譯器做什麼工作
1. 詞法分析 詞法分析器根據詞法規則識別出源程序中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。 2. 語法分析 語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。 3. 語義分析 語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。 4. 中間代碼生成 中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。 5. 中間代碼優化 優化是編譯器的一個重要組成部分,由於編譯器將源程序翻譯成中間代碼的工作是機械的、按固定模式進行的,因此,生成的中間代碼往往在時間和空間上有很大浪費。當需要生成高效目標代碼時,就必須進行優化。 6. 目標代碼生成 目標代碼生成是編譯器的最後一個階段。在生成目標代碼時要考慮以下幾個問題:計算機的系統結構、指令系統、寄存器的分配以及內存的組織等。編譯器生成的目標程序代碼可以有多種形式:匯編語言、可重定位二進制代碼、內存形式。 7 符號表管理 符號表的作用是記錄源程序中符號的必要信息,並加以合理組織,從而在編譯器的各個階段能對它們進行快速、准確的查找和操作。符號表中的某些內容甚至要保留到程序的運行階段。 8 出錯處理用戶編寫的源程序中往往會有一些錯誤,可分為靜態錯誤和動態錯誤兩類。所謂動態錯誤,是指源程序中的邏輯錯誤,它們發生在程序運行的時候,也被稱作動態語義錯誤,如變數取值為零時作為除數,數組元素引用時下標出界等。靜態錯誤又可分為語法錯誤和靜態語義錯誤。語法錯誤是指有關語言結構上的錯誤,如單詞拼寫錯、表達式中缺少操作數、begin和end不匹配等。靜態語義錯誤是指分析源程序時可以發現的語言意義上的錯誤,如加法的兩個操作數中一個是整型變數名,而另一個是數組名等。
⑧ 跟程序員相關崗位有哪些
1.技術+技術(深入階段)
這算是一條純技術路線,具體又可以分3個方向:
技術(2年以上編程經驗)+技術(軟體測試,或系統分析師,或系統架構師)
有軟體開發的工作經驗,再加軟體測試,比剛開始就進入軟體測試行業的人要更具競爭優勢。軟體測試工作經驗越多越好,可以干到退休,不用擔心年齡問題。
如果選擇「系統分析師,系統架構師」,則首先要打好扎實的「理論基礎」(可以通過考證書,比如參加軟考),以保證自己「後勁力十足」,這樣等有了4,5年的工作經驗後,才有可能能沖上這個高端領域。平時工作中要不斷的鍛煉自己的「發散思維」,培養善於發現業務需求的「眼光」。
2.技術+管理 :比如 項目經理。
像雷軍說的那樣:「程序員象木工一樣,熟能生巧。程序員必須寫足夠代碼量(8萬行以上)的程序,才會有感覺,這是一個苦力活,沒有任何捷徑可走。」項目經理大多是從「優秀」的程序員里挑選出來,想走這條路,平時就要瘋狂的編碼,迅速累積豐富的編程經驗,然後再補充一些管理方面的知識。(本人打算走這條路,呵呵)
3.技術+銷售:比如 技術銷售工程師,技術支持工程師。
這類工作要有一定的技術背景(入門級也可以),具備較好的語言表達,溝通能力。工作比較輕松,月薪待遇主要看個人銷售業績等,個人收入差別可能比較大。
4.當培訓老師
如果你「樂於分享」工作經驗,傳授知識,或者覺得自己年齡比較大,精力不夠充沛,且往上升又比較困難的話,可以選擇去培訓機構當老師,就目前而言,當老師工作輕松,待遇也不錯。
⑨ 純C++的工作崗位有哪些
C/C++這門語言能做什麼
最近和一些學習計算機的朋友聊天,很多人都問我現在學什麼語言最有前途?對於這個問題,我很難回答,(這里說的不是英語呵,是電腦的編程語言)。其
實這個問題我常常很難回答,因為不管什麼語言,只要你學的好,高薪工作肯定是不發愁的,所有的編程語言,最終都是編譯成機器語言的,也就是0和1,不
同的只是你用什麼方式告訴計算機該做什麼。
不過,不同語言還是有差別的,比如java跨平台性很好,除了可以開發桌面程序外,還常用來開發手機程序,C++一般用來開發大型程序,手機用的比
較少。著名的《魔獸世界》很多部分就是用C++寫的,如果用Java寫,那麼游戲速度將會慢到讓你崩潰!
近幾天我關注整理了一些常用軟體的編寫語言,希望能對有志於從事軟體開發的朋友有一定的指導。
一、 游戲
PC平台幾乎所有的游戲
星際爭霸、魔獸爭霸、CS、帝國時代、跑跑卡丁車、傳奇、魔獸世界.... 數不勝數了,自己數吧
都是用C++開發的,C++語言靠近系統地稱,執行速度最快。比如你的兩個朋友與你分別玩用VB、Java、與C++編寫的「跑跑卡丁車」,你玩C++編寫的
游戲已經跑玩結束了,發現你的兩個朋友還沒開始跑呢,那是相當的卡啊,
二、辦公軟體
微軟Office (就是你常用的Word、Excel):匯編 -> C -> 穩定在C++
Sun Open Office (這個可能很多朋友不知道,但用Linux系統的都知道這個辦公軟體): 部分JAVA(對外介面),主要為C++ (開源,可下載其源代碼)
三、圖形處理
Adobe Photoshop : C++
GIMP:C
四、網站
eBay :2002年為C++,後主要遷至Java
Facebook : C++和PHP
新鄉學院網站:網頁程序用ASP寫的,資料庫應該是SQL
五、搜索引擎
Google : 匯編與C++,主要為C++
六、操作系統:
Windows :匯編 -> C -> C++
備註:曾經在智能手機的操作系統(Windows Mobile)考慮摻點C#寫的程序,比如軟鍵盤,結果因為寫出來的程序太慢,實在無法和別的模塊合並,最終
又回到C++重寫。
相信很多朋友都知道Windows Vista,這個系統開發早期比爾蓋茨想全部用C#寫,但是最終因為執行慢而放棄,結果之前無數軟體工程師日夜勞作成果一夜
之間被宣告作廢。
Linux :C
蘋果 MacOS : 主要為C,部分為C++。
備註: 之前用的語言比較雜,最早是匯編和Pascal。
Symbian OS : 匯編,主要為C++。(諾基亞手機)
Google Android 2008年推出: C語言(有傳言說是用Java開發的操作系統,但最近剛推出原生的C語言SDK)
七、圖形界面層
Microsoft Windows UI :C++
蘋果 MacOS UI (Aqua) : C++
Gnome (Linux圖形界面之一,大腳丫): C和C++, 主要是C。
KDE (Linux圖形界面),C++。
八、關系型資料庫
Oracle : 匯編、C、C++、Java。主要為C++。
MySQL : C++
IBM DB2 :匯編、C、C++,主要為C。
微軟SQL Server : 匯編 -> C->C++
IBM Informix : 匯編、C、C++,主要為C。
SAP DB/MaxDB : C++
九、瀏覽器:
微軟IE: C++
火狐瀏覽器: C++
蘋果Safari :(2003年1月發布)C++
谷歌Chrome :(2008的發布)C++
Opera : C++ (手機上佔用率比較大)
十、郵件客戶端
Outlook : C++
IBM Lotus Notes : Java
Foxmail:Delphi
十一、軟體開發集成環境/IDE:
Microsoft Visual Studio : C++
備註:是不是有點搞笑?用C++開發出來的Visual Studio又用來開發C++程序
Eclipse :Java (其圖形界面SWT基於C/C++)
Code::Blocks : C++
十二、編譯器
Microsoft Visual C++ 編譯器:C++
Microsoft Visual Basic 解釋、編譯器:C++
Microsoft Visual C# : 編譯器:C++
gcc (GNU C compiler) : C
javac (Sun Java compiler) : Java
Perl : C++
PHP : C
十三、3D 引擎
Microsoft DirectX : C++(相信玩游戲的同學都知道這個,現在最高版本是DX11)
OpenGL : C
OGRE 3D : C++
十四、Web Servers (網頁服務)
Apache : C和C++,主要為C
Microsoft IIS : C++
十五:CD/DVD 刻錄
Nero Burning ROM : C++
K3B : C++
十六:媒體播放器
Nullsoft Winamp : C++
Microsoft Windows Media Player : C++
Microsoft Windows Media Player : C++
⑩ 在國內從事C/C++編譯器的開發有發展前景嗎
我給你講講我的經歷。 我大概十年工作經驗,大概五年c++編譯器前端經驗(在兩家500強做靜態分析),四五年項目管理和品質過程改善經驗。其他主流語言都會用,實現的大概方式也明白。 前一段時間找工作,投了二十幾個c++職位一個電話都沒有。唯一的面試是朋友內推的阿里的項目管理專家。跑去面試,悲催,直接換崗成p5-p6的測試來面試,問了幾個測試問題直接讓我回家了(順便吐槽一下,他們對於測試過程感覺還沒問到點上) 最後的結局就是,沒人要,轉行去製造加工業了。我總結一下為什麼找不到工作(可能只是我偏頗的認識:一是這行需求太少,二是hr根本不知道你是幹嘛的,三是做這行的根本不好意思寫精通c++。