小人魚不流淚
軟件工程師必須知道的10個概念
優(yōu)秀的軟件工程師要通曉10個概念,這10個概念超越了編程語言與設計模式,軟件工程師應當從更廣的范圍內(nèi)明白這些道理。下面一起和我來看看吧!
10. 關系數(shù)據(jù)庫 (Relational Databases)
關系數(shù)據(jù)庫因為在大規(guī)模 Web 服務上缺乏可擴充性而頗受微詞,然而,關系數(shù)據(jù)庫仍然是近20年來計算機技術中最偉大的成就。關系數(shù)據(jù)庫對處理訂單,公司數(shù)據(jù)方面有著出色的表現(xiàn)。
關系數(shù)據(jù)庫的核心是以記錄表示數(shù)據(jù),記錄存放在數(shù)據(jù)庫表,數(shù)據(jù)庫使用查詢語言(SQL)對數(shù)據(jù)進行搜索與查詢,同時,數(shù)據(jù)庫對各個數(shù)據(jù)表進行關聯(lián)。
數(shù)據(jù)庫的標準化技術(normalization)講的是使用正確的方式對數(shù)據(jù)進行分存以降低冗余,并加快存取速度。
9. 安全 (Security)
隨著黑客的崛起與數(shù)據(jù)敏感性的上升,安全變得非常重要。安全是個廣義的概念,涉及驗證,授權與信息傳輸。
驗證是對用戶的身份進行檢查,如要求用戶輸入密碼。驗證通常需要結合 SSL (secure socket layer)進行;授權在公司業(yè)務系統(tǒng)中非常重要,尤其是一些工作流系統(tǒng)。最近開發(fā)的 OAuth 協(xié)議可以幫助 Web 服務將相應信息向相應用戶開放。Flickr 便使用這種方式管理私人照片和數(shù)據(jù)的訪問權限。
另外一個安全領域是網(wǎng)絡設防,這關系到操作系統(tǒng),配置與監(jiān)控。不僅網(wǎng)絡危險重重,任何軟件都是。Firefox 被稱為最安全的瀏覽器,仍然需要頻頻發(fā)布安全補丁。要為你的系統(tǒng)編寫安全代碼就需要明白各種潛在的問題。
8. 云計算 (Cloud Computing)
RWW 最近的關于云計算的文章 Reaching For The Sky Through Compute Clouds 講到了云計算如何改變大規(guī)模 Web 應用的發(fā)布。大規(guī)模的并行,低成本,與快速投入市場。
并行算法發(fā)明以來,首先迎來的是網(wǎng)格計算,網(wǎng)格計算是借助空閑的桌面計算機資源進行并行計算。最著名的例子是 Berkley 大學的 SETI@home 計劃,該計劃使用空閑的 CPU 資源分析太空數(shù)據(jù)。金融機構也大規(guī)模實施網(wǎng)格計算進行風險分析??臻e的資源,加上 J2EE 平臺的崛起,迎來了云計算的概念:應用服務虛擬化。就是應用按需運行,并可以隨著時間和用戶規(guī)模而實時改變。
云計算最生動的例子是 Amazon 的 Web 服務,一組可以通過 API 進行調(diào)用的應用,如云服務(EC2),一個用來存儲大型媒體文件的數(shù)據(jù)庫(S3),索引服務(SimpleDB),序列服務(SQS)。
7. 并發(fā) (Concurrency)
并發(fā)是軟件工程師最容易犯錯的地方,這可以理解,因為我們一直遵從線形思維,然而并發(fā)在現(xiàn)代系統(tǒng)中非常重要。
并發(fā)是程序中的并行處理,多數(shù)現(xiàn)代編程語言包含內(nèi)置的并發(fā)能力,在 Java,指的是線程。關于并發(fā),最經(jīng)典的例子是“生產(chǎn)/消費”模式,生產(chǎn)方生產(chǎn)數(shù)據(jù)和任務,并放入工作線程消費或執(zhí)行。并發(fā)的復雜性在于,線程需要經(jīng)常訪問共同數(shù)據(jù),每個線程都有自己的執(zhí)行順序,但需要訪問共同數(shù)據(jù)。Doug Lea 曾寫過一個最復雜的并發(fā)類,現(xiàn)在是 core Java 的一部分。
6. 緩存(Caching)
緩存對現(xiàn)代 Web 程序不可或缺,緩存是從數(shù)據(jù)庫取回,并存放在內(nèi)存中的數(shù)據(jù)。因為數(shù)據(jù)庫直接存取的代價非常高,將數(shù)據(jù)從數(shù)據(jù)庫取回并放在緩存中訪問就變得十分必要。比如,你有一個網(wǎng)站,要顯示上周的暢銷書,你可以從數(shù)據(jù)將暢銷書榜一次性取回放在緩存中,而不必在每次訪問時都去數(shù)據(jù)庫讀數(shù)據(jù)。
緩存需要代價,只有最常用的內(nèi)容才可以放入緩存。很多現(xiàn)代程序,包括臉譜網(wǎng),依靠一種叫做 Memcached 的分布式緩存系統(tǒng),該系統(tǒng)是 Brad Firzpatrick 在工作于 LiveJournal 項目時開發(fā)的,Memcached 使用網(wǎng)絡中空閑的內(nèi)存資源建立緩存機制,Memcached 類庫在很多流行編程語言,包括 Java 和 PHP 中都有。
5. 散列法(Hashing)
Hashing 的目的是加速訪問速度。如果數(shù)據(jù)是序列存儲的,從中查詢一個項的時間取決于數(shù)據(jù)列的大小。而散列法對每一個項計算一個數(shù)字作為索引,在一個好的 Hashing 算法下,數(shù)據(jù)查找的速度是一樣的。
除了存儲數(shù)據(jù),散列法對分布式系統(tǒng)也很重要。統(tǒng)一散列法(uniform hash )用來在云數(shù)據(jù)庫環(huán)境下,在不同計算機之間分存數(shù)據(jù)。Google 的索引服務就是這種方法的體現(xiàn),每一個 URL 都被散列分布到特定計算機。
散列函數(shù)非常復雜,但現(xiàn)代類庫中都有現(xiàn)成的類,重要的是,如何對散列法進行細調(diào)以獲得最好的性能。
4. 算法的復雜性 (Algorithmic Complexity)
關于算法的復雜性,軟件工程師需要理解這樣幾件事。第一,大O標記法(big O notation);第二,你永遠都不應該使用嵌套式循環(huán)(循環(huán)里面套循環(huán)),你應該使用 Hash 表,數(shù)組或單一循環(huán);第三,如今優(yōu)秀類庫比比皆是,我們不必過分糾纏于這些庫的效能的`差別,我們以后還有機會進行細調(diào);最后,不要忽視算法的優(yōu)雅及性能,編寫緊湊的,可讀的代碼可以讓你的算法更簡單,更干凈。
3. 分層 (Layering)
用分層來討論軟件架構是最容易的。John Lakos 曾出版過一本關于大型 C++ 系統(tǒng)的書。Lakos 認為軟件包含了層,書中介紹了層的概念,方法是,對每個軟件組件,數(shù)一下它所依賴的組件數(shù)目就可以知道它的復雜程度。
Lakos 認為,一個好的軟件擁有金字塔結構,就是說,軟件組件擁有層層積累的復雜度,但每個組件本身必須簡單,一個優(yōu)秀的軟件包含很多小的,可重復使用的模塊,每個模塊有自己的職責。一個好的系統(tǒng)中,組件之間的依賴性不可交叉,整個系統(tǒng)是各種各樣的組件堆積起來,形成一個金字塔。
Lakos 在軟件工程的很多方面都是先驅(qū),最著名的是 Refactoring (代碼重構)。代碼重構指的是,在編程過程中需要不斷地對代碼進行改造以保證其結構的健壯與靈活。
2. 慣例與模板 (Conventions and Templates)
命名慣例和基礎模板在編程模式中常被忽視,然而它可能是最強大的方法。命名慣例使軟件自動化成為可能,如,Java Beans 框架在 getter 和 setter 方法中,使用簡單的命名慣例。 網(wǎng)站的 URL 命名也使用統(tǒng)一的格式,如 會將用戶帶到所有標簽為 software 的頁。
很多社會網(wǎng)絡均使用簡單命名,如,你的名字是 johnsmith ,那你的頭像可能命名為 ,而你的 rss 聚合文件的命名很可能是 。
命名慣例還用于單元測試,如,JUnit 單元測試工具會辨認所有以 test 開頭的類。
我們這里說的模板(templates )指的并不是 C++ 或 Java 語言中的 constructs,我們說的是一些包含變量的模板文件,用戶可以替換變量并輸出最終結果。
Cold Fusion 是最先使用模板的程序之一,后來,Java 使用 JSP 實現(xiàn)模板功能。Apache 近來為 Java 開發(fā)了非常好用的通用模板, Velocity。PHP 本身就是基于模板的,因為它支持 eval 函數(shù)。
1. 界面(Interfaces)
軟件工程中最重要的概念是界面。任何軟件都是一個真實系統(tǒng)的模型。
如何使用簡單的用戶界面進行模型化至關重要。很多軟件系統(tǒng)走這樣的極端,缺乏抽象的冗長代碼,或者過分設計而導致無謂的復雜。
在眾多軟件工程書籍中,Robert Martin 寫的《敏捷編程》值得一讀。
關于模型化,以下方法對你會有幫助。首先,去掉那些只有在將來才可能用得著的方法,代碼越精練越好。第二,不要總認為以前的東西是對的,要善于改變。第三,要有耐心并享受過程。
cindyhouse0221
問題一:軟件工程師要學哪些東西? 軟件工程師要學習和掌握的東西: (一).NET方面的開發(fā) ⒈熟悉開發(fā)體系,熟悉C# ASP .NET; ⒉熟悉SQLServer,Oracle數(shù)據(jù)庫開發(fā); ⒊具有企業(yè)管理系統(tǒng)項目經(jīng)驗; 4.了解企業(yè)ERP及財務管理軟件(用友,金蝶)者優(yōu)先; 5.善于溝通,能獨立撰寫方案。為人誠實,善于學習,做事認真負責,積極主動,具有敬業(yè)精神,有團隊精神。 (二)JAVA應用程序開發(fā) 1.熟練使用Struts2+Spring+Hibernate 2.掌握Jquery 3.掌握Java 4.熟悉Oracle 5.掌握xml/webservice 6.掌握OOD、OOP 7.基本文檔寫作能力 (三)web、數(shù)據(jù)庫方面的開發(fā) ⒈練掌握ASP,NET;等編程語言,熟悉.Net開發(fā)環(huán)境,理解.Net Framework,理解并能熟練使用WebService、O/R mapping、Remoting、多線程等技術; 2.熱衷于撫聯(lián)網(wǎng)WEB開發(fā),熱衷于鉆研最新的前沿技術,精通XML,Javascript,CSS,AJAX等WEB前端技術; 3.熟練的技術文檔編寫能力,熟練使用Rose,Power Design,Visio等建模和設計軟件,有一定的架構設計能力; 4.精通SQL server數(shù)據(jù)庫技術,了解數(shù)據(jù)庫性能調(diào)優(yōu)者優(yōu)先. (四)php項目開發(fā) ⒈使用PHP語言開發(fā)互聯(lián)網(wǎng)應用程序; ⒉網(wǎng)站產(chǎn)品和網(wǎng)站功能模塊的開發(fā)與維護; ⒊與頁面設計師協(xié)調(diào)溝通,編寫部分Javascript和HTML; ⒋參與底層MVC框架的編寫與維護。 軟件工程師一般指從事軟件開發(fā)職業(yè)的人。軟件工程師是一個認證考試,具體地說是從事軟件職業(yè)的人員的一種職業(yè)能力的認證,通過它說明具備了工程師的資格。軟件工程師的技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/JAVA等)、數(shù)據(jù)庫技術(SQL/ORACLE/DB2等)等,還有諸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技術。此外,關于網(wǎng)絡工程和軟件測試的其他技術也要有所涉獵。 對于軟件工程師,不太重視學歷,但并不是對學歷沒有要求,重點關注項目的經(jīng)驗和學習知識的能力,能否利用軟件工程專業(yè)知識來解決問題,根據(jù)崗位不同,對軟件工程師的要求也有所不同。具體能力要根據(jù)崗位和自己的興趣愛好選定自己的職業(yè)規(guī)劃方向,一方面要詳細了解軟件工程師的要求,可以關注企業(yè)的招聘信息;一方面自己要貯備通用的知識技能,廣泛閱讀相關的計算機材料對自己以后的發(fā)展大有幫助??梢源_定的是軟件工程師的前途在未來的發(fā)展依然是不斷升溫的職業(yè),比較需要有技術和良好前景的專業(yè)之一。 工作內(nèi)容: 1、 指導程序員的工作; 2、 參與軟件工程系統(tǒng)的設計、開發(fā)、測試等過程; 3 、協(xié)助工程管理人保證項目的質(zhì)量; 4 、負責工程中主要功能的代碼實現(xiàn); 5 、解決工程中的關鍵問題和技術難題; 6 、協(xié)調(diào)各個程序員的工作,并能與其它軟件工程師協(xié)作工作; 7、還要編寫各種各樣的軟件說明書,如:需求說明書,概要說明書等考試科目。工程師是中級職稱,考試的題目包括了計算機體系結構、軟件工程、數(shù)據(jù)庫、數(shù)據(jù)結構、編譯原理等計算機學科的基礎課程。...>> 問題二:學習軟件工程師需要學什么 軟件工程師嗎?目前最好的軟件工程師證書就是軟考得中級工程師(軟件設計師)~很權威~~要想成為軟件設計師你要看的書包括:1:數(shù)據(jù)結構 目前清華大學嚴蔚敏老師的數(shù)據(jù)結構是一個經(jīng)典.可能的話,再搜羅其他版本的教程,這樣可以互相印證.3:計算機網(wǎng)絡(第三版),要學習ISO/OSIRM七層的劃分以及各種協(xié)議的功能。傳輸理論、互聯(lián)設備、Internet知識,和參考模型理論.4:計算機專業(yè)英語,不是軟件考試特有的,是專業(yè)知識+英語水平,考前不需專業(yè)準備,平時有意識地上網(wǎng)讀點英文專業(yè)資料.5:軟件工程(第二版) 要熟悉數(shù)據(jù)流圖和流程圖6:數(shù)據(jù)庫理論.這要求熟悉SQL的語言.7:C語言或者VB語言應該掌握最后要學習統(tǒng)一建模語言UML,它代表了軟件工程的發(fā)展趨勢,目前是可視化建模的事實上的工業(yè)標準。計算機學習要經(jīng)歷一個從理論―――實踐―――理論的認識不斷深化的過程,這一過程是非常艱辛的.但是要相信“天道酬勤”的道理,你最終會成為一名優(yōu)秀的軟件設計師的~~祝你成功 請采納。 問題三:軟件工程師都需要學習什么? 1.網(wǎng)絡設備技術,這主要涉及網(wǎng)絡的硬件建設,包括路由器、交換機、組局網(wǎng)、廣網(wǎng),這方面有代表性的是CISCO、NORTEL; 2.網(wǎng)絡操作系統(tǒng),這主要涉及操作系統(tǒng)的系統(tǒng)管理與網(wǎng)絡管理,這方向有代表性的是WINDOWS 2000、UNIX、LINUX等; 3.網(wǎng)絡數(shù)據(jù)庫,這主要涉及應用于網(wǎng)絡的數(shù)據(jù)庫,這方面有代表性的是SQL和ORACLE等; 4.網(wǎng)絡安全,大家不應把網(wǎng)絡安全片面的想成對操作系統(tǒng)、應用系統(tǒng)的安全,其實安全問題在網(wǎng)絡的各方面都存在,在這方面國內(nèi)還沒有出現(xiàn)比較好、比較全面的認證; 5.網(wǎng)絡管理,這涉及一個局網(wǎng)、廣網(wǎng)的綜合管理、優(yōu)化、計費等等,也沒有一個綜合性的認證; 6.網(wǎng)絡應用開發(fā),企業(yè)的網(wǎng)站的基本開發(fā)、互動性開發(fā),技術有HTML、ASP、JSP、JAVA等等。 這六個方面都是企業(yè)信息化必備的因素,所以大家如果要補充自己的知識,可以從這六個方面去補充,自己還要作一個定位,是成為一個全面性的人員,還是專業(yè)性的人員。不過如果能在這個方面打下扎實的基本功,那么再在工作中選擇一個方向,會更加厲害。 總之,大家應分步確定自己的方向,然后努力在多方向充實自己 . 問題四:軟件工程師需要什么學歷。 軟件工程師對學歷并沒有要求,如果你說的是各種資格考試的話,那只是一個行業(yè)認證,如果你就是講普通意義上的軟件工程師,對學歷并沒有要求,而是對你的技術、專業(yè)知識有要求 問題五:軟件工程師主要是學什么的??? 軟件工程師主要學習的方面有很多。比如.NET ASP ,c ,c++, c#,java安卓,javaweb(包括主流的框架strtus,hibernate ,spring ,Myibatis,)。AJAX,jQuery,javascript,PHP。用途做客戶端應用程序。網(wǎng)站應用程序,還有管理系統(tǒng)比如淘寶網(wǎng)站,O叮辦公管理系統(tǒng),CRM客戶關系管理系統(tǒng),訂票管理系統(tǒng)。種類很多。 問題六:做一名軟件工程師需要學習和準備什么? 首先讓我們來看一下軟件工程師考試(高級)要求: (1)理解軟件工程管理的概念和任務; (2)理解軟件生存期過程; (3)理解軟件工程標準; (4)掌握需求分析、測試、維護基本技術; (5)掌握軟件度量、軟件配置管理方法; (6)理解軟件復用概念; (7)理解軟件質(zhì)量保證的手段; (8)理解軟件項目對人員的需求; (9)理解軟件知識產(chǎn)權的基本知識。 通過本級水平考試的合格人員具有從事軟件系統(tǒng)分析與工程系統(tǒng)分析員、工程管理員的實際工作能力和業(yè)務水平。 1:數(shù)據(jù)結構 數(shù)據(jù)結構可以說是編程的靈魂,它不是一門語言所以沒有關鍵字。它只是給程序開發(fā)人員一個開發(fā)思路而已,講的主要是已經(jīng)成熟的編程思想和算法,而且?guī)缀踹m用于所有開發(fā)語言。就好像學習英語一樣,學習編程語言讓你會說英語,記住很多英語單詞,熟悉英語的很多語法。而學習數(shù)據(jù)結構能讓你編出很漂亮的英語文章。 3:計算機網(wǎng)絡(第三版),要學習ISO/OSIRM七層的劃分以及各種協(xié)議的功能。傳輸理論、互聯(lián)設備、Internet知識,和參考模型理論 4:數(shù)學,數(shù)學是基礎,你暫時不太能體會它的作用,但是以后會非常有用。所有的計算原理都要數(shù)學作為指導。 5:計算機專業(yè)英語,不是軟件考試特有的,是專業(yè)知識+英語水平,考前不需專業(yè)準備,平時有意識地上網(wǎng)讀點英文專業(yè)資料 6:軟件工程(第二版) 要熟悉數(shù)據(jù)流圖和流程圖 7:數(shù)據(jù)庫理論.這要求熟悉SQL的語言.幾乎所有的編程語言都要和數(shù)據(jù)庫打交道的。 8:C語言或者VB語言應該掌握,不過目前JAVA和是當前比較火的兩個編程語言。 想當一個軟件工程師,最后要學習統(tǒng)一建模語言UML,它代表了軟件工程的發(fā)展趨勢,目前是可視化建模的事實上的工業(yè)標準。 問題七:軟件工程師都需要學習什么? 1.網(wǎng)絡設備技術,這主要涉及網(wǎng)絡的硬件建設,包括路由器、交換機、組局網(wǎng)、廣網(wǎng),這方面有代表性的是CISCO、NORTEL; 2.網(wǎng)絡操作系統(tǒng),這主要涉及操作系統(tǒng)的系統(tǒng)管理與網(wǎng)絡管理,這方向有代表性的是WINDOWS 2000、UNIX、LINUX等; 3.網(wǎng)絡數(shù)據(jù)庫,這主要涉及應用于網(wǎng)絡的數(shù)據(jù)庫,這方面有代表性的是SQL和ORACLE等; 4.網(wǎng)絡安全,大家不應把網(wǎng)絡安全片面的想成對操作系統(tǒng)、應用系統(tǒng)的安全,其實安全問題在網(wǎng)絡的各方面都存在,在這方面國內(nèi)還沒有出現(xiàn)比較好、比較全面的認證; 5.網(wǎng)絡管理,這涉及一個局網(wǎng)、廣網(wǎng)的綜合管理、優(yōu)化、計費等等,也沒有一個綜合性的認證; 6.網(wǎng)絡應用開發(fā),企業(yè)的網(wǎng)站的基本開發(fā)、互動性開發(fā),技術有HTML、ASP、JSP、JAVA等等。 這六個方面都是企業(yè)信息化必備的因素,所以大家如果要補充自己的知識,可以從這六個方面去補充,自己還要作一個定位,是成為一個全面性的人員,還是專業(yè)性的人員。不過如果能在這個方面打下扎實的基本功,那么再在工作中選擇一個方向,會更加厲害。 總之,大家應分步確定自己的方向,然后努力在多方向充實自己 . 問題八:軟件工程師需要學習哪些專業(yè)知識 計算機導論 內(nèi)容提要:為新學生提供一個關于計算機科學與技術學科的入門介紹,使他們對該學科有一個整體的認識,并了解該專業(yè)的學生應具有的基本知識和技能以及在該領域工作應有的職業(yè)道德與應遵守的法律準則。 數(shù)字電路與數(shù)字邏輯 內(nèi)容提要:介紹數(shù)字邏輯與數(shù)字系統(tǒng)的基本概念、分析方法和設計原理,包括開關理論基礎、組合邏輯、時序邏輯、可編程邏輯器件、數(shù)字系統(tǒng)等。 計算機組成原理與匯編語言 內(nèi)容提要:以馮諾依曼計算機模型為出發(fā)點,介紹計算機的組織結構和工作原理,剖析計算機的運算器、存儲器、控制器和輸入輸出設備的結構、工作原理和相互關系;介紹 80X86指令系統(tǒng)、匯編語言與匯編指令、匯編程序與匯編過程、簡單匯編程序設計、匯編語言與高級語言的接口、宏匯編等。 計算機網(wǎng)絡 內(nèi)容提要:介紹數(shù)據(jù)通信的基本概念和計算機網(wǎng)絡的基本原理,包括計算機網(wǎng)絡的體系結構、數(shù)據(jù)通信的基本方法和協(xié)議、計算機網(wǎng)絡的主要應用協(xié)議;同時介紹計算機網(wǎng)絡系統(tǒng)的安全和管理知識,使學生對數(shù)據(jù)通信和計算機網(wǎng)絡有一個全面理解。 計算機體系結構 內(nèi)容提要:研究計算機系統(tǒng)結構的基本概念、基本原理、基本結構和基本分析方法,使同學在具有一定的軟硬件知識基礎上能綜合認識計算機系統(tǒng)的軟硬件功能分配與各種不同結構類型機器的特性和性能評價方法。為研究、開發(fā)、應用高級計算機系統(tǒng)打下基礎。確立全面、系統(tǒng)的觀點和學會定量分析問題的方法。 離散數(shù)學 內(nèi)容提要:包括 *** 論、數(shù)理邏輯、圖論、組合數(shù)學等內(nèi)容,形式化的數(shù)學證明貫穿此課程。 高級程序設計語言 內(nèi)容提要:分別以 C、C#或JAVA為例,介紹程序設計和語言,程序的基本數(shù)據(jù)結構、類型定義、簡單類型和結構化類型、程序的基本控制結構、結構化程序設計、面向?qū)ο蟮某绦蛟O計等。 算法分析與設計 內(nèi)容提要: 本課程延續(xù)數(shù)據(jù)結構課程的學習,從算法分析和設計的角度出發(fā),除去傳統(tǒng)的分類查找算法和一般的設計方法外,主要內(nèi)容包括如下幾個部分:算法研究的理論基礎,遞歸分析技術,基本算法設計策略(幾類經(jīng)典算法學習), 多項式運算與 FFT ,串匹配,概率分析算法。 希望通過這一課程的學習,使學生能對現(xiàn)代的算法設計及分析的基本工具能有較全面的掌握。 數(shù)據(jù)結構 內(nèi)容提要:介紹線性表及其鏈接存儲結構與算法、數(shù)組與矩陣、堆棧與隊列、廣義表的存儲結構與多元多項式表示、串與文本編輯、排序、樹、圖、文件結構。 數(shù)據(jù)庫系統(tǒng)原理 內(nèi)容提要:介紹數(shù)據(jù)庫系統(tǒng)的基本概念、原理、方法及應用,主要包括數(shù)據(jù)庫系統(tǒng)概論、數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)技術、數(shù)據(jù)庫存儲結構及其他類型的數(shù)據(jù)庫系統(tǒng)。 編譯技術 內(nèi)容提要:介紹編譯原理的理論和實踐,包括編譯程序設計、詞法分析、語法分析、符號表、聲明和存儲管理、代碼生成以及優(yōu)化技術。 操作系統(tǒng) 內(nèi)容提要:介紹操作系統(tǒng)的設計與實現(xiàn),包括操作系統(tǒng)各組成部分的概述、互斥性和同步性、處理器實現(xiàn)、調(diào)度算法、存儲算法、設備管理和文件系統(tǒng)。 問題九:要做軟件工程師大學選什么專業(yè)? 關鍵主要看學了哪些課程,如果單純的注重做軟件,需要學習數(shù)據(jù)結唬、邏輯結構與算法、編程語言、數(shù)據(jù)庫、操作系統(tǒng)、網(wǎng)絡理論、軟件工程理論等,當然這只是一些主要的課程,如果做大師,還需要拓寬范圍,學習其他的,如高數(shù)、線代、幾何、電路分析、模電、數(shù)電、單片機、匯編、各種編程語言等等 問題十:如何當一名軟件工程師,要學哪些知識 1.網(wǎng)絡2.軟件3.集成電路如果您希望進入IT行業(yè),那么您先要確定進入這三個方面中的一個。三個方面的就業(yè)方向:1.集成電路方向,這是一個非常專業(yè)的方向,需要求職者有很強的專業(yè)知識,這些專業(yè)知識很能通過培訓來補充,需要很好的類似于大學教育的培養(yǎng);這類人才就業(yè)面很窄,但如果就業(yè)了,其薪水很高(當然要看企業(yè)的情況)2.軟件方向,這個方面比集成電路設計在專業(yè)上相對寬一些,一個好的軟件工程師,也需要有扎實的數(shù)學基礎。常規(guī)的培訓可以使一個沒有軟件基礎的人成為一個軟件藍領,但要成為軟件設計人員,還是需要相當?shù)墓ぷ髋c學習時間;這類人才大多就業(yè)于軟件企業(yè);3.網(wǎng)絡方向,這個方面涉及的面就比前兩者寬得多,通過培訓可能從一個對網(wǎng)絡技術不了解的人逐步成為網(wǎng)絡的工程師,因為網(wǎng)絡技術是一種更偏向于操作的技術。在就業(yè)面也寬得多,因為信息化是一個全社會的工程, *** 、企業(yè)都在進行信息化,都需要在網(wǎng)絡方面尋找合適的人才進行其網(wǎng)絡系統(tǒng)的運行、管理、維護。因此,從就業(yè)面來看, 網(wǎng)絡工程師>軟件工程師>集成電路工程師而不同的是,網(wǎng)絡工程師卻是各行各業(yè)所需要的。1.企業(yè)信息化主管:負責信息化建設中的目標與方案決策,信息化建設中的方向研究;2.工程技術人員:負責信息化系統(tǒng)的設計、建設,包括設備、系統(tǒng)、數(shù)據(jù)庫、應用系統(tǒng)的建設;3.運行維護人員:負責信息化系統(tǒng)的運行、維護、管理以及基本的開發(fā);4.操作應用人員:主要應用信息化系統(tǒng)進行本職工作。在企業(yè)信息化建設運行的過程來看,一個企業(yè)會把建設過程以外包方式交給專業(yè)的IT公司來完成,于是一般一個企業(yè)不會有IT系統(tǒng)的工程技術人員,可以說IT 系統(tǒng)的工程技術人員都集中于專業(yè)的IT公司;而當信息化系統(tǒng)建成后,企業(yè)一般會有一個人,或一個組來負責信息化系統(tǒng)的運行、維護、管理,這部份人是企業(yè)必配的,而且從成本角度來看,企業(yè)會招聘一個對網(wǎng)絡設備、網(wǎng)絡系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡管理、網(wǎng)絡安全以及基本網(wǎng)絡開發(fā)都有所了解的人來負責其信息化系統(tǒng),這類人一般叫網(wǎng)管。這類人的知識是水平性的,多方面的,但不是特別專業(yè)的。如果當企業(yè)真正遇到非常專業(yè)的技術問題,一般會讓這個網(wǎng)管帶著問題咨詢專業(yè)的IT公司。因此從這個角度來看,網(wǎng)絡工程師的就業(yè)面會遠大于其它兩類工程師。1.網(wǎng)絡設備技術,這主要涉及網(wǎng)絡的硬件建設,包括路由器、交換機、組局網(wǎng)、廣網(wǎng),這方面有代表性的是CISCO、NORTEL;2.網(wǎng)絡操作系統(tǒng),這主要涉及操作系統(tǒng)的系統(tǒng)管理與網(wǎng)絡管理,這方向有代表性的是WINDOWS 2000、UNIX、LINUX等;3.網(wǎng)絡數(shù)據(jù)庫,這主要涉及應用于網(wǎng)絡的數(shù)據(jù)庫,這方面有代表性的是SQL和ORACLE等;4.網(wǎng)絡安全,大家不應把網(wǎng)絡安全片面的想成對操作系統(tǒng)、應用系統(tǒng)的安全,其實安全問題在網(wǎng)絡的各方面都存在,在這方面國內(nèi)還沒有出現(xiàn)比較好、比較全面的認證;5.網(wǎng)絡管理,這涉及一個局網(wǎng)、廣網(wǎng)的綜合管理、優(yōu)化、計費等等,也沒有一個綜合性的認證;6.網(wǎng)絡應用開發(fā),企業(yè)的網(wǎng)站的基本開發(fā)、互動性開發(fā),技術有HTML、ASP、JSP、JAVA等等。這六個方面都是企業(yè)信息化必備的因素,所以大家如果要補充自己的知識,可以從這六個方面去補充,自己還要作一個定位,是成為一個全面性的人員,還是專業(yè)性的人員。
優(yōu)質(zhì)工程師考試問答知識庫