㈠ 大四畢業生但是毫無項目經驗的程序員該如何提高自己
要快速提升自己的話,就要懂得該怎樣去學習,掌握學習方法是很重要的。如果你沒有一點編程基礎,我建議你從c語言開始學起,為什麼這么說呢?因為c語言是所有編程語言的基礎,學會了c語言的編程思想之後,任何一門編程語言你都可以自己去學習了。在初學任何一門學科時,建立信心非常重要,所以在初學一個知識點時,你就老老實實的跟著教材的思維走,不要思考、不要較勁,你在初學時就是要接受而不是推敲。在這個時候,你還沒有任何基礎,你在思考和推敲的過程很容易受挫,如果你經常受挫,過不了一段時間你就會對這個學科產生了恐懼,害怕去學習,這樣就很容易半途就自我放棄了。在第一次學習某個知識點,你的核心就是兩個字「接受」,相信我,這會讓你受益的。
㈡ 程序員的編程思想怎麼培養
編程思想培養當然要多練習總結了,我就以編程思想中演算法 —— 邏輯思維來舉例子吧。
在具體解決問題的過程中,最關鍵的能力有兩個 ——「邏輯思維」和「調試糾錯」。
程序員圈子很流行的一個笑話。
娃媽給程序員老爸打電話:「下班順路買10個包子帶回來,如果看到賣西瓜的,就買一個。」
結果娃爸手捧一個包子進了門。娃媽怒道:「你怎麼就只買了一個包子?!」
娃爸答曰:「因為看到了賣西瓜的。」
雖然是一個黑程序猿的笑話,但也體現了很典型的編程思維。編程就是理性嚴謹地與電腦對話,因此對編程者的邏輯思維能力也有很高的要求。
邏輯思維中有個很重要的原則叫 MECE(Mutually Exclusive and Collectively Exhaustive),意思就是「相互排斥且整體完備」,也就是「不重復,不遺漏」。
在編程的演算法中,需要處處考慮MECE原則。解數學題時,也是同一個道理——我們要保證答案中考慮到所有的情況,而這些情況既不遺漏,也不重疊。
調試糾錯能力
編程的世界裡,只有對與錯,沒有模糊值。在程序運行的過程中,只要最終的結果與期望不符合,就證明演算法中肯定有錯漏。
但是,程序中的bug常常不是一下就能找到的,需要我們把程序的運行順序一步步地跟走一遍,同時觀察每一步的運行結果。這就需要很多的耐心、觀察力和專注力,對抗挫能力也是一種磨練。在這個過程中,也會逐漸懂得一個道理:犯錯很正常,糾正它,下次不再犯類似的錯誤就好。
這一點,也是優秀的人身上常常共通的一項品質。這些人總是在進步,因為他們懂得「回溯、調試、糾錯」,不斷進行自我優化和成長,不斷be better。
希望對你有所啟發幫助
㈢ 軟體工程師 進來
論如何才能提高軟體的開發效率及寫代碼效率
————給初學者的一些感想
作者:林宣武 著作權所有,轉載請帶上作者名字
本文的適應讀者:剛畢業的學生,並剛入軟體公司同時又打算在軟體業有所發展的人
首先讓我們看一看剛入軟體公司會出現的情況:
1. 你可能會常常發現,寫了一段代碼後,編譯程序時是一大堆的出錯 (原因:語法不熟)
——別擔心,這是每個程序員必須經歷的事,這時候你就需要更大的耐心及細心,
對每一行代碼進行仔細人閱讀並改正,這個很重要,這可以培養你的理解代碼能力,所以要常讀程序,不要等到程序運行以後才知道你的程序的結果。
——如何避免:在寫代碼以前,要認真的學習計算機語言的語法,如關鍵點,易錯點,易忘點。同時要自已動手寫自已的測試代碼,而盡量不要抄別人的代碼示例。即使抄,在學習階段也盡量不要每一行一模一樣的對著抄。而應對著代碼示例寫有所不同的例子。
比如:在學java 知識點時,你最好建一個工程把所有的代碼都寫到這個工程中,以便對照分析學習.
2. 你可能會常常發現,寫完一段碼後,編譯通過,可是運行起來卻出來很多邏輯上的錯誤。(原因:理解錯誤或邏輯上想錯了)
——
——提高邏輯思維和理解能力
3. 拿到一個需求卻不知從那裡開始(對系統不太了解)
4. 常常為了一個小小的錯誤用了很長的時間,不知從那裡查,也查不出結果
5. 常常做出來的東西是有了東卻少了西(考慮不全)
6. 有時為了一個特殊功能模塊的實現查了很工時間卻沒有查出結果來(備查的資料不全)
7. 有時是否要項目經理叫你做東,你做了完全沒有必要的西?(溝通不及時)
8. 有時為了能提前完成某一個任務,加班到深夜,可是到了明天卻效率低下,還不如不加班(要注意休息)
9. 有時自已認為已測好了好多次,可以保證不會出錯,可是經測試人員一測試卻很多錯誤(不夠細心或測試方法有問題)
10. 有時為了避免出錯,常常全比寫代碼的時間超出兩倍用於測試(方法有誤)
11. 有時寫好了一段代碼給質量管理人員時卻因為代碼不夠規范而導致重寫?(代碼不夠規范)
為了寫好代碼(包括,代碼沒有問題,需求符合,健壯性好,總用時小),那我們應該怎麼做呢,有沒有什麼方法沒有.
回答是肯定的!!
可以總結為兩大關鍵點:一是養成好的編程習慣,二是針對自已的工作提高自已的知識含量.
一. 好的編程習慣
1. 寫程序前打個草稿可以在心裡,最好在紙上:目的要從整體上考慮程序的實現。
如果公司採用建模的方式,有建模工具(rose ,visio )那是最好不過的了。
2. 注意休息,不要浪費自已的休息時間,用去了自已的時間不但會寫出的代碼因為注意力不集中而會常常出現代碼的質量有問題,邏輯常出錯
3. 要善於收集相關的專業開發上的資料,以便以後能更快更好的解決問題目。提倡公司能提供內部知識勾通的工具(如知識論壇,內部即時聊天器);提倡公司內部有技術資料的共享庫,提高解決問題的能力.
4. 提高對所寫的模塊的相關全局把握能力,在寫程序中要最好先詳細設計後再發布.
5. 要學會與他人溝通如非工程師,學會溝通的不同方式,提高溝通的效率。
二. 不同的目標不同的知識重點
(一) 目標:程序員
職責:根據詳細設計文檔,或根據高級程序員的設計進行相關的開發。
1. 要學會看相關的需求文檔及詳細設計文檔。
注意:你必須要通過閱讀這些文檔把握住其中的重點,關鍵點,相關易漏點
2. 如果公司里會用UML來相互的溝通,這時你必須要深刻理解UML 的相關知識,一定要注意千萬不要對UML圖一知半解的情況下,就著寫代碼,那樣會錯的很慘。
3. 學好對應的計算機語言的基礎知識,如:程序的語法,關鍵點,易錯點,對應的出錯如何出理,如何才能把對就的程序寫的鍵壯一些
4. 如果用到資料庫的內容,在學會sql的前提下,盡量學會資料庫原理中的相關sql內容, 當然為了提高查詢的能力也可以增加一點
5. 如果用到面向對像的語言那最好學點相關的設計模式,這樣的可以增加代碼的擴展性,及可維護性等,能夠理解詳細設計中的模塊間的設計原則這個也可以提高對模塊的內容編寫的正確性.
6. 你一定要學會公司內部的通用的編碼規范。
7. 學習如何做單元測試比較好.必須要熟悉相關的單元測試工具.
8. 要不斷的對相關知識進行總結,同時也要必須把相關的資料進行整理和學習,在學習過後的資料中你可以在遇到問題時更快的找到問題的答題。
9. 在開發你必須記錄下大家常出錯的地方及大家的解決方法,這個對你以後錯誤的避免有很大的作用.
10. 在寫代碼中時必須把上面寫過代碼記在心裡,這樣就可以養成習慣,提高代碼的速度
11. 對資料庫操作時,要盡量共用Connection,並小用以減少Connection的數量
(二) 目標:高級程序員
職責:對需求文檔進行系統相關模塊的詳細設計,並負責對程序員的支持及指導和相關核心模塊的編寫
所以不但要學會相關程序員要的知識,同時還要學會難度比較大的知識。
1. 程序員的知識,如設計模式你一定要不是簡單的看要懂,你還要應用設計模式對相應的模塊進行相關的詳細設計。
2. 要學好相關詳細設計的工具做的有的放矢,這樣可以更好提高對自已的設計的表達
3. 為了提高系統的運行效率會運用到
a. 資料庫的表結構如何建才能使應用的要查詢sql 更快。這時可要認真認真的學習一樣資料庫原理,千萬不要以為採用資料庫的範式越高系統的運行效率會越好,有時候適當的表冗餘可以大幅度的提高系統的查詢效率. 同時適當的建索引,視圖,存儲過程也是提高系統對資料庫的查詢的效率之一。
b. 學習多線程的編程,不過千萬不要以為線程數越多運行的速度會越快,一般線程的數量超過一定的數量後,系統的運行速度反而會變慢。為了應用好多線程,操作系統這本書也要關於同步及相關進程和線程的知識必不可少。
c. 設計好的一程序的好的演算法,可要比起解一道同一復雜的數學題,要難的多,所以要在學好的相關數學的知識上(如線性代數,離散數學,概率論,數理統計)。更要深入計算方法,及數據結構,讓數學問題用計算機來解決。
4.為了讓系統設計的更加的可擴展性,穩定性,設計模式和軟體工程可是不能少的東西。所以必須把設計模式用於模式級的設計.
5. 如果公司採用的是Rose (UML)進行設計的話,你對於UML 的理解一定要非常的准確,同時你要跟小組中的程序之間進行充分的UML概念上及對應用例圖,類型圖,對象圖,協作圖的意思多寫一些注釋加深大家對你的設計上的理解。
(三) 目標:系統分析員
職責:做好與客戶之間的關系,同時對客戶的需求要正確的理解,要選擇合適的開發技術,同時做好與客戶間溝通交流,學會說服對方。
1. 學會對客戶的溝通:要正確理解客戶的需求同時要保證相互之間的溝通順暢。
2. 對了解來的需求要能用筆正確的描述下來,並能很好的傳敘給其他人。這時要學會用如ROSE 等的軟體建模的工具。和powerdesign等的資料庫建模工具。和相關的UML,數據流程圖及相關的內容的知識。
3. 不但要全面的了解客戶的需求而且還要對需求進行未來的可能的改變要有相當多的了解。
4. 全面的了解客戶的需求後,要選擇合適的相關技術用於開發,:
這時要學習各種知識
a. 先擇資料庫:db2,infomix ,oracle ,sql server,mysql 的優缺點,可以從中選擇最適合的資料庫及理由。
b. 設計資料庫:要扎實在資料庫的理論(資料庫原理,資料庫系統設計)及相關資料庫設計經驗,要盡量多的分析過去資料庫設計,分析這么設計資料庫的好處。這時可能要用到 powerdesign等工具。
c. 寫需求說明文檔和概要設計文檔,同時要學會要分析相關需求說明文檔的需要的內容的相關知識,如人員工時的計算方法, 一般會用 project 來分析相關的項目的內容。
d. 選擇合適的程序語言及相關的架構,一般主流的架構是 J2EE和.net的相應的優點及它們之間的結合,如採用soap xml進行相關的結合,或用java-com 橋 進行相關的功能的調用。和它們之間的相關語言優缺點
e. 還要根據b/s,c/s 結構對開發的網路影響的相關內容採取選擇。
5. 學會說服對方,畢竟客戶都不是個個是軟體專家,他們的選擇有時未必是正確的所以學會說服對方,是系統分析員必備的能力條件.
三. 訓練的方法:
1. 計劃行事:
(1 設定你的未來的學習目標
a. 未來要成為什麼樣的人(主要是工作角色,如程序員,高級程序員,系統分析員)
b. 你近期要成為什麼樣的人(當前的工作職責是什麼,如果只寫代碼是程序員等)
c. 要完成近期的工作所必須要知識(如java 程序員,要學習java 基礎知識,等),關鍵的知識(如java中關鍵要用到的知識有,面向對象等),易錯的知識(比較原來的已有知識進行合對)
(2 設定你的學習目標後,並要有針對性的對應目標設定學習時間的按排及學習路線。並直觀的記錄在案,以便以後隨時核對,
(3 常常抽出一定的時間認真核對計劃的完成情況,如果沒有按時完成計劃的內容。分析原因,盡量想法趕上計劃內容如果存認是計劃有誤,要認真總結計劃失敗出錯的原因,對你的未來有很大的幫助。
注意:不要對計劃的按排過於樂觀 要盡量的考慮實現中的各種情況,同時適當按排一些緩沖時間,以便真正能按照計劃行事,以提高按計劃行事信心,同時這能有效避免出現計劃中途成沒有意義的東西。
2. 針對工作角色對自已的能力進行培養和知識進行學習。
關鍵的能力:
(1. 記憶能力:要學會把自已的寫的代碼和改的代碼記的清清楚楚。要能提高效率。
(2. 邏輯思維能力:要多多的看別人的復雜邏輯的代碼,分析復雜邏輯的運算。
(3.全局能力: 不要再范改了東,卻西出錯。(構造軟體這個很重要)
(4.學習能力: 並不是每個項目都你是所熟悉的項目的,並不是每個項目中的知識你都知道,要掌握最新的技術和最有用的知識,是最關鍵的。要學會,提高能力,這個東西是永遠對自己有好處的。
(5. 溝通能力; 學會幽默,學會講故事,學會交朋友,學會禮節。
(6.自製能力:如果一個人不能自製那這個人以後,不會有很大成果,即使很大機會發展起了,可是因為沒有自製能力很容易被人利用,或自己明明知道怎麼做,可是就是不能控制自己的慾望.而常做下無法挽回在錯誤.
四. 例:java 程序員的知識結構及學習流程:
(一) 學習相關工作必須的知識
1.Java 語言的基礎(推薦書:《 java 編程思想》)
關鍵:
(1. java 面向對象及對應的程序現實
(2. java 多線程
(3. java 網路 socket
(4. 應用界面
2.學會用智能集成開發工具jbuilder,eclipse等一種,根據資料里的內容,自已寫與常式類似的代碼,但注意不要直接抄它,一定要自已寫。同時最好寫到一個工程中以便對比。
3.如果用b/s結構要學習jsp的知識(推薦書:《 JSP 2.0技術手冊 》)
關鍵:
(1. 界面處理:
a . HTML——超文本標志語言:用於顯示頁面如:超文本鏈接, 表格,各種標志等。
b. CSS———層疊樣式表:控制正文外觀的一組格式.用於美化HTML頁面。
c. javaScript—嵌入HTML頁面瀏覽器來執行的腳本語言:讓頁面可以根據用戶的操作或事先設置等在客戶端進行動態變化,而且不需傳回伺服器。比如: 對表單輸入的正確性做客戶端驗證.
(2.jsp元素:如java代碼寫法,對應標志---jsp:include,jsp:useBean,jsp:setProperty,
jsp:getProperty等.jsp的幾大對
(3. javaBean及其在jsp 中的調用和相關應用.
(4. 其他技術:
a. 如何操作資料庫—用jdbc(可能要補充一些資料庫的知識,如oracle ,sql server,
包括如何寫高效率的查詢sql,存儲過程等) ,
b. 如何發送email—用javaMail,
c. 如何學習如何用實現文件的上傳下載,如果操作文件,
d. 如何操作xml --用jdom 及 jaxp(這時有必要學習一下xml 的語法如 dtd等)
e. 如何遠程方法調用—用 rmi
f. 如何進行消息服務 ---用 jms
5.再有些公司會用到 J2EE 的架構如 EJB 作為業務邏輯.
(1.EJB中要分清
(2. struts MVC
(3. Hibernate 操作資料庫
6.最好學習一下UML
學用Rose建模
五 忠告:
1. 不要以為自已很差,要明白每個人都是這樣一步一個腳印的走過來的。(我們要有信心)
告訴自已:比爾蓋次,也是同我們一樣,出生時也是巴掌大.
我們只有多學,多練才可能有出路.
2. 不要以為自已學的多就很強,世界上的高手多的是,問問自己,你每小時可以寫幾行代碼,代碼一次寫下來有多少錯誤,如果你一次寫下沒有錯誤,一小時可以寫1000代碼,那才是真正的高手.
3 . 不要以為自已沒有項目做就會落後於他人,人家是參加了很多項目,可是人家只是項目中的一個小角色,如果我們在空時能都寫一些開源的項目,或自己開發和設計一些有用的開源的項目,水平及能力很快就上來了.
4. 不要以為自己做過很多的項目就很了不起了。你能說你做的項目中,你能體會整個項目為什麼要這樣設計,為什麼要這樣開發嗎?相信絕大多數是否定的回答。那還不如多學習一些已做的項目,了解他們為什麼要這么做,為什麼這么開發,多看一下它們的項目的文檔,我們能明白很多,這樣把他們的經驗放於你未來可能要接手的項目,這樣不是更好嗎?
5. 不要以為自己的學習能力很牛,你能快速閱讀一本書又能快速掌握它的內容嗎?
這篇文章應該有些幫助吧!
㈣ 一個國家最重要的部門不是什麼什麼部,而是教育部
中央教育行政部門職能
中央教育行政部門,一般稱為教育部,是國家一級主管教育的工作部門。
由於世界各國的社會政治制度、國家體制、文化傳統等互不相同,所以各國的中央教育行政部門的職責和許可權,彼此很不相同。教育行政實行中央集權制的國家,如法國,教育部的許可權相當廣泛,有領導、檢查或監督全國公、私立教育機構,確定學校教育的政策、原則,統一規定教學大綱、教學方法以至考試的內容、時間等權力。教育行政實行地方分權制的國家,如美國,教育部的業務活動范圍則受到很大限制,在國會通過的《教育部組織法》里仍強調「關於教育的許可權和責任,保留給州和地方學區以及州所規定的其他機關」。英國的中央教育行政部門稱教育和科學部,它和地方──郡的教育行政部門的關系,則既非嚴格的中央集權制,亦非絕對的地方分權制,屬於中央與地方共同合作制的類型。
從各國中央教育行政部門工作總的情況看來,既要加強中央的統一領導,又要充分發揮地方的積極性,彼此取長補短來組織領導教育事業的趨勢已日益明顯。
2.2 中國教育部職能
中華人民共和國主管全國教育工作的行政部門稱教育部,是1949年11月1日成立的。它所擔負的主要職責是:
①貫徹執行中國共產黨和國家的方針、政策,研究教育理論,總結實踐經驗,制訂教育工作的具體政策、行政法規和學制等重要制度,制訂教育事業的長遠規劃和年度計劃,並督促、檢查和組織實施。
②制訂普通教育(包括幼兒教育、小學教育、中學教育、中等師范教育、特殊教育等)的具體方針、政策等重要規章制度;制訂教學計劃、教學大綱等基本文件,組織編審教材和教學參考書;制訂普通學校師資管理的原則、辦法和師資培訓規劃,指導、督促、檢查普通教育工作,組織經驗交流。
③會同有關部門制訂職業技術教育的具體政策、發展規劃和重要規章制度,指導、督促、檢查職業技術教育工作。
④會同有關部門制訂高等教育的具體政策、發展規劃和重要規章制度,規定各類高等學校的培養目標、質量要求和專業目標;制訂教學計劃、教學大綱的原則,組織制訂參考性的教學計劃和教學大綱,統一規劃、組織高等院校教材的編選、審查和出版工作;制訂高等院校幹部和教師管理的方針、原則、辦法及培訓規劃和實施計劃;指導高等院校的思想政治工作、教學工作、科研工作等;統一指導和組織全國高等院校的招生工作;統一管理全國研究生的培養工作,領導高等院校的學位授予工作。
⑤協同有關部門指導全國職工教育、農民教育,電視、廣播大學和各種形式高等學校的工作,以及高等教育自學考試工作;制訂機關、團體辦學及民辦學校的具體政策和管理辦法。
⑥制訂少數民族教育的具體方針、政策和重要規章制度,組織少數民族文字教材的編譯出版工作,指導、督促、檢查少數民族教育工作。
⑦負責與各建交國家政府間進行教育合作和交流,管理教育部門的國際學術交流及援外、外援的有關計劃、組織和人員往來的工作等。教育部設有主管高等教育、中等教育、初等教育、師范教育、計劃、科技、外事、基建等工作的司、局,並設中央教育科學研究所、教材出版社、電化教育館等事業單位。除教育部外,中央其他各部、委等業務部門也都設有相應的教育行政機構,主管本部門或本系統各級各類教育事業。
㈤ 如果,我想當一名程序員,如何從零開始
1、 程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老闆發薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你)
2、你是學文的還是學理的,編程序也許需要浪漫,但更需要邏輯和嚴謹。(說坦白點就是,在你沒有找到樂趣以前,它很枯燥)
3、你有對新技術追求的熱情嗎?你有刨根問底的探索精神嗎?(熱情絕對是最重要的!你仔細思考一下自己的性格適合當程序員嗎?)
4、當程序員決不是什麼好差事,時刻需要學習,需要思考。(直到你成為那個可以引導別人去學習和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序員的未來很迷茫。(但我認為關鍵看你自己!我希望你是一個有追求的人,不僅僅是混碗飯吃。因為真正的樂趣在於創造;如果你能改變軟體業的歷史,那才是英雄;不想成為Bill Gates,不想成為Dennis Ritchie和 Bjarne Stroustrup,我會說你沒有追求。有個關於程序員未來的笑話,也許你還沒聽過,你該聽一聽,摘抄如下:
一個程序員對自己的未來很迷茫,於是去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問Lippman,他現在領導的程序員的隊伍可能是地球上最大的」
於是他去問Lippman。
Lippman說「程序員的未來就是駕馭程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問Gates,他現在所擁有的財產可能是地球上最多的」
於是他去問Gates。
Gates說「程序員的未來就是榨取程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問侯捷,他寫的計算機書的讀者可能是地球上最多的」
於是他去問侯捷。
侯捷說「程序員的未來就是誘惑程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝搖搖頭「唉,我的孩子,你還是別當程序員了」)
6、當程序員還是很有樂趣的。(當你學到新知識時,當你有新的思想見解時,當你有新的產品問世時,和知己探討你的成果時…我問你,覺得這些是樂趣嗎?)
7、當程序員不易也不難。(世間事有難易乎?為之…;不為…。你有決心和信心嗎?)
8、你真的要當程序員?是你自己的想法?
9、你捨得花錢買書嗎?(讀好書絕對是學習編程的最佳捷徑。你一定會說,現在電腦書籍真他XX的貴,沒法子,誰讓知識和技術在人家的腦袋,在人家的書里呢;等你寫書時可以把價格定低一點,記著還有好多沒錢但想買書的兄弟很困難呀。要捨得買書,買好書,不好的的書不如不讀,其害大於其益,關於買什麼書,你可以問高手或看候捷的書評;准備一個小本子記錄你想買的書的名字,逛書店時看看,如果好就買下,記住要讀,別光買不看。) 10、我告訴你,程序就是:任何有目的的、預想好的動作序列,它是一種軟體。
11、編程序就是編寫程序。
12、你想好了嗎?(如果你想好了還是決定要當程序員,可以繼續往下讀;否則,你可以繼續尋找別的出路了。)
(三) 一個程序員應該具備的基礎知識和概念
1、計算機是有什麼組成的,CPU是什麼東西,其工作原理是什麼。(對於這些以及下面將要提到的概念我不會告訴你什麼答案,你可以看相應的教材,關於教材我會在下一部分詳述,記住理解最重要!)
2、機器語言和微指令集的概念。
3、程序的概念。
4、匯編語言是低級語言但不是機器語言。
5、高級語言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中國軟體業的英雄,你也寫一門語言,最好不用英語) 6、編譯程序和解釋程序的概念和其原理。(編譯器是高手和專家編寫的)
7、HTML、XML等是標識性語言。
8、Prolog是人工智慧語言。
9、操作系統OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,還有一些實時OS,嵌入OS,編這些的絕對是高手)
10、Windows編程說白了就是Windows API的調用。(中國的程序員很多隻是會編windows程序,用的是VB,我的建議是這些程序員頂多隻是低級編碼員,我稱其是coder)
11、VC++、VB、BC、BCB、Delphi、VF等都只是編程的工具和環境,不是編程語言。
12、面向結構的設計概念。
13、面向對象的概念。(好好理解,兄弟,這個東西還是很重要的)
14、軟體工程的概念和原理。(如果你想當老總就需要好好研究了,系統分析員比編碼員要高一個等級,薪水也高喲)
15、資料庫的概念。(要熟悉一些著名的資料庫系統和語言的名字,如Orcle,SQL,DB2,DyBase等)
16、了解網路概念。
17、了解多媒體概念。
18、熟悉和掌握數據結構和基本演算法。
19、是不是要求太高了,別著急慢慢來,進步在不知不覺之中。(一旦開始學習,一個月以後你就會有一個基本的概念;兩個月以後你就會感覺自己有了全面的基礎知識;當你知道編程序是怎麼回事時,說明你已經入門了。也有很多人編了很多年程序還沒有入門呢,你不會希望自己步其後塵吧。要有信心和耐心。沉不住氣怎麼能成大事?!)
(四) 教材推薦
――-推薦的教材主要還是針對概念來的,最好選用名校的教學用書。
1、《計算機組成原理》(熟悉)
2、《數據結構》(掌握)
3、《操作系統》(了解->熟悉)
4、《The C language》(掌握)
5、《編譯原理》(了解原理)
6、《匯編語言》(了解)
7、《計算機網路》(了解)
8、《軟體工程》(了解)
9、《關系資料庫》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向對象設計》(掌握;結合C++學習)
(五)一些經驗和體會
1、真正的程序員用C++;(一位專家說的)
2、動手去編程序;
3、動腦去思考;
4、要有良好的編程風格;
5、讀書,讀好書,盡量讀原版書!(我反復強調這一點,讀書要有選擇,堅持讀好書,名家出的經典書,不要浪費實踐在一些粗製濫造的書上面;堅持博覽群書)
6、有自己的學習計劃;
7、總結自己的經驗教訓;(准備一個筆記本,記錄錯誤和心得)
8、不要怕學新東西;
9、要有軟體工程的思想;
10、善於發現問題,然後去尋找答案;
11、向高手請教;(要虛心直到你成為高手)
12、和同行交流;(不善於交流肯定不行)
13、懂得軟體的實質,不要被千變萬化的表象所迷惑;
14、真正要學慣用的是編程語言和方法,不是什麼庫,什麼類,什麼工具;(學用那些什麼庫都比較簡單,但光會這些庫,我覺得還遠遠不夠)
15、學習wiodows編程主要是學習windows OS和win32 API;
16、有空了解一下嵌入式開發;
17、有空了解一下PDA軟體開發;
18、了解一下.NET框架和C#語言,也許它是你新的衣食父母;
19、要有耐心,不要作浮躁的人; 20、對程序加註釋,並保留你的老程序;
21、學到的東西越多,了解的越多,你就越接近專家;
22、有空去逛逛CSDN,那裡有你很多知己;
23、要有信心成為一個優秀的程序;
(六)一些好書的推薦
1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向對象高效編程》
8、《設計模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推薦)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技術內幕》
14、《MFC 深入淺出》
15、《軟體需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序員參考手冊》
19、《用TCP/IP進行網際互連》
20、《COM 本質論》
(七)學習計劃
――-這個學習計劃是我個人定的,也共享給大家參考一下,共同進步吧。 1、《計算機組成原理》
2、《操作系統》
3、《數據結構》
4、《匯編語言》
5、《 C 》
6、《 C++ 》
7、《VC 技術內幕》
8、《Programming Windows》
9、《深入淺出MFC》
10、《Advanced Windows》
11、《Inside The C++ Object Model》
12、《Thinking in C++》
13、《Effective C++》
14、資料庫
15、網路
16、嵌入式OS和編程
17、硬體單片機
18、.NET和C#
19、軟體工程
20、UNIX和Linux
㈥ 如何學好 程序設計語言 編譯原理 誠求
1.明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
2.打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
(1)數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
(2)邏輯思維能力的培養學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
(3)選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發開發工具如 Java 等。 3)網路開發對客戶端開發工具如:Java Script 等;對伺服器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
3. 注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
4.掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程......;學習 COM 就要知道 VTALBE 、類廠、介面、idl......,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
5.多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
6.養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
7.上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。例如網站「編程課堂」()主要以 VB 和 Delph;教學和交流為主,提供大量實用技巧;網站「現在時編程學園」()是專門介紹C、VC、VB、Delphi 等的綜合編程網站;網站「 VB 編程樂園 」()提供內容豐富而且實用的編程技術文章、精選控制項、源代碼下載、計算機考試、相關軟體以及編程書籍推薦等等。
8.加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。