導航:首頁 > 程序命令 > 世界級程序員是如何接觸編程的

世界級程序員是如何接觸編程的

發布時間:2023-01-06 11:09:49

❶ 在計算機時代初期,程序員是如何編程

互聯網在中國才發展多少年呀,個人覺得20年或者30年後吧,那時估計完全飽和狀態了,寫代碼的估計會一堆人,人多了工資就下來了

❷ 如何成為一名程序員 6種方法來成為一名程序員

目錄方法1:網路編程1、了解網路編程的含義。2、瀏覽不同的網站,了解它們的外觀。3、學習至少一種頭腦風暴技術/方法,並學習一個用來實現頭腦風暴的軟體。4、熟悉網站結構。5、趕緊學一門圖形設計的課程。6、了解網路下部構造的基本情況。7、學習HTML和CSS語言。8、學習XML及其相關技術,比如XSL和XPath(不是必需,僅作推薦)。9、先建立簡單的靜態網站,直至你熟悉並習慣HTML語言。10、學習客戶端腳本語言。11、熟悉你所學的客戶端腳本語言。12、學習至少一種伺服器端腳本語言。13、學完伺服器端編程語言之後就開始創建一個試驗項目。14、獲得你的網站,開始用你自己的網頁實驗。方法2:桌面軟體編程1、弄清楚桌面軟體編程是怎麼回事。2、了解不同的電腦硬體結構。3、學習一種入門級(小孩子學的那種)編程語言。4、學習程序化、面向對象、函數設序設計規范的入門。5、學習一種程序化程式設計語言的入門課程。6、學習至少一種高級建模技術,比如UML 或ORM。7、開始編寫一些小的主控台應用程式或類似的應用程式。8、學習一門你選擇的編程語言的更高級課程。9、應用你所10、至少再學習一門編程語言規范的入門課程。11、試著比較你所學的兩門編程語言。12、利用你學過的一種語言來學習可視化編程概念。13、開始把你所學的知識運用到你設計的軟體小工程中。14、創建一個虛擬的"畢業工程"。15、通過學習更高級的課程、更加註意細節以及在網上學習搭建架構的技巧,來加深對你學過的可視化架構/庫/包的理解。16、搜索其他含可視化元素的包/庫並學習它們。17、學習圖形學課程(而非圖形設計)。18、成為游戲程序員(不是必須的)。方法3:分布式程序設計1、處理分布式應用編程。2、快速了解通信系統及其硬體。3、熟悉網路硬體結構和設備,比如集線器、接線台和路由器。4、學習網路協議的課程。5、學習XML 語言,並熟悉它。6、開始學習一門shell腳本語言。7、開始時用上你學的腳本知識,只運用程序化程式設計。8、使用你所學的腳本語言,寫出實現機器之間通信的腳本。9、轉移到桌面腳本/編程語言。10、專注於語言的核心部分,尤其hi那些支持網路。11、學習分布式應用設計與結構的課程。12、使用你所學的編程語言來了解服務部分建構和服務。13、學習如下技術中一種或更多。方法4:庫/平台/框架/核心編程1、了解什麼是核心編程。2、學習一門支持創建可重復使用內容/包的編程語言,如果你還沒學過的話。3、學習一門UML 和ORM的高級課程。4、學習軟體工程的課程。5、學習至少一個模塊,基於內容的、面對對象的和 事件驅動編程技術和概念。6、進一步了解不同的操作系統及其支持的編程架構。7、集中學習獨立平台架構、編程語言和技術。8、如果到目前為止你學習的編程語言具有ANSI/ISO/EEE/W3C標准版本,那麼掌握這些標准。9、嘗試模擬簡單的、已經建立的庫,尤其是開源的庫。10、在你的編程領域內尋找開源的包。11、學習不同方法。方法5:系統編程1、了解系統編程的定義。2、跟著"桌面應用程序員"的前三個步驟。3、學習線性代數的入門課程。4、學習微積分課程。5、學習邏輯學和/或離散數學課程。6、了解不同的"准操作系統"。7、學習計算機硬體結構的課程(或者作為替代,看看書)。8、深入理解不同的計算機硬體平台。9、初步熟悉你所選擇的硬體平台/操作系統的匯編語言。10、學習ANSI C 和 C++ 語言,還有程序化程式設計的一些概念。11、在你選擇的平台上理解並實踐C/C++標准庫。12、搜索網路資源、書籍和課程來理解你的平台獨特的C風格。13、用C/C++練習編寫高級代碼。14、學習更高級的Assembly。15、學習操作系統設計的課程。16、尋找並閱讀你所選擇的平台的相關文章。17、練習你已經掌握的知識。18、以最有益的順序學習語言。方法6:編程科學1、了解編程科學家是做什麼的。2、累積和四年制計算機科學學歷同等多的科學知識。3、選擇特定的領域。4、考慮獲取更高級的學歷。5、了解你選擇的編程領域的相關技術和編程語言。成為程序員是一個日積月累的過程,需要日復一日年復一年的技能增長。編程本身是有趣的,並且有回報(腦力層面、精神層面、經濟層面)。這份指南不能保證你輕松當上程序員。不要神化下面這些步驟,從中你大概能了解在現今編程界如何成為一名程序員。
方法1:網路編程
1、了解網路編程的含義。網路應用是指設計在網路結構頂層的軟體部分。這就意味著這些應用是通過諸如火狐或IE之類的瀏覽器來處理的。架構於網路結構的頂層並不一定要連接到網路。這就是說網路應用建立在如下標准網路技術的頂層:HTTP
FTP
POP3
SMTP
TCP
IP協議
HTML
XML
Coldfusion
ASP
JSP
PHP
ASP.NET
2、瀏覽不同的網站,了解它們的外觀。(右擊,選擇"查看源"或按F12。)尋找網站類型/內容的多樣性,而非數量。通常你需要訪問以下網站類型中至少一種: 團體網站(商業公司,非營利機構/組織,政府組織)
網路索引引擎(搜索引擎,meta搜索網站,專業化搜索引擎,目錄)
數據挖掘網站
個人網站
信息/網路全書式網頁(維基,數據單,技術規格,人工列表目錄,博客和日誌,新聞和新聞機構網站,黃頁,等等。)
社交網站(社交門戶,書簽網站,記錄筆記網站)
合作網站(這包含了上面提及的目錄,比如維基和博客)
3、學習至少一種頭腦風暴技術/方法,並學習一個用來實現頭腦風暴的軟體。例如:頭腦風暴圖和微軟Visio。
4、熟悉網站結構。指的是創建概念化網路範式、網路地圖和導航結構。
5、趕緊學一門圖形設計的課程。盡量學習至少一個圖形編輯/操作軟體包(不是必須的,但強烈推薦)
6、了解網路下部構造的基本情況。包括了解以下: 基本網路服務協議(HTTP,FTP, SMTP和POP3或IMAP4)
網路伺服器軟體(最好其中一個就是你以後主要工作的平台)
網路瀏覽軟體
郵件伺服器和客戶端軟體
7、學習HTML和CSS語言。或許你還想要"所見即所得"軟體包來編輯HTML。
8、學習XML及其相關技術,比如XSL和XPath(不是必需,僅作推薦)。
9、先建立簡單的靜態網站,直至你熟悉並習慣HTML語言。
10、學習客戶端腳本語言。多數人要麼學java,要麼學VB,但也有一些人學習Perl和DHTML。
11、熟悉你所學的客戶端腳本語言。潛意識里提醒自己只用你學的那個語言。只有在你熟悉你的客戶端腳本語言之後才能進入下個步驟。
12、學習至少一種伺服器端腳本語言。如果你只用一種伺服器軟體,那就學其中一種編程語言。否則,你得每個伺服器軟體都學至少一種編程語言。
13、學完伺服器端編程語言之後就開始創建一個試驗項目。
14、獲得你的網站,開始用你自己的網頁實驗。
方法2:桌面軟體編程
1、弄清楚桌面軟體編程是怎麼回事。多數桌面軟體程序員都是編寫商務需要的代碼,所以好好了解一下商業及其組織和經濟結構將對節省時間、提高效率大有裨益。
2、了解不同的電腦硬體結構。看看數字電路設計和電腦結構的入門級課程,但是也有人認為這對於剛起步來說太超前了,所以看兩三篇說明的文章(比如 這一篇 和 這一篇)就夠了。學完第一種編程語言後你可以再返回這個步驟。
3、學習一種入門級(小孩子學的那種)編程語言。不要因為你不是個小孩子就不好意思去學。這些入門級語言能大大減輕你正式學習第一門編程語言時的痛苦和壓力。然而這一步也不是必須的。你也可以在上一步之前完成。
4、學習程序化、面向對象、函數設序設計規范的入門。
5、學習一種程序化程式設計語言的入門課程。無論你以後選擇何種編程語言,在某種程度上它都要求程序化程式設計。此外,據多數程序員反映,程序化程式設計總的來說是了解編程的一個很好的切入點。
6、學習至少一種高級建模技術,比如UML 或ORM。
7、開始編寫一些小的主控台應用程式或類似的應用程式。你可以利用編程書中的常見小練習。選擇一個工具,用你所學的編程語言編寫程序。
8、學習一門你選擇的編程語言的更高級課程。確保進展之前先理解下列概念,並能熟練運用。對程序用戶輸入輸出信息。
程式化設計語言寫成的程序中的邏輯流程和執行流程。
聲明、分配和比較變數
編程結構分支,比如if..then..else 和 select/switch..case.
循環結構,比如while..do, do..while/until, for..next.
創建、調用程序與函數的編程句法
數據類型及如何操控
用戶定義數據類型(records/structs/units)及其使用
如果你的語言支持超載函數,理解它。
你選擇的語言的內存處理方式(指針,變數窺視,等等。)
如果你的語言支持運營商超載,理解它。
如果你的語言支持delegates/函數指針,理解它。
9、應用你所學的高級技能 面向對象的規范
10、至少再學習一門編程語言規范的入門課程。推薦學習每種範式的編程語言,多數高級程序員確實是這么做的,然而,通常你開始時只學一種,應用所學知識訓練了一段時間,獲得了編程的鮮活經驗,然後接著學習另一種。試試下面的語言: 邏輯編程範式
函數編程範式
面向對象的範式
11、試著比較你所學的兩門編程語言。評估各自利弊。通常可按以下方法完成拿出你在學習第一門編程語言時編寫的簡單範例,現在用第二門語言重新編寫。
創建一個工程,盡量用上兩種語言完成它。有時取決於你選擇的工程和語言,你可能僅用一門語言還無法完成這個工程呢!
寫一份兩種語言之間相似結構和獨特之處對比的速查表或一覽表。
盡量使用另一門語言找到模仿這兩門語言中獨特之處的辦法。
12、利用你學過的一種語言來學習可視化編程概念。幾乎所有的編程語言都具有支持可視化編程和其他支持控制台或類似控制台編程的版本/庫。同時進行的包括: 初步了解事件驅動編程。在某種程度上,多數可視化編程依賴事件及事件處理(用上你選擇的語言)。
盡可能多的嘗試桌面軟體,理解軟體是做什麼的。多數軟體開發公司會提供產品的測試版,你可以拿來測試軟體。在完善用戶界面方面保持更新。
閱讀關於圖形用戶界面的文章或教程。
13、開始把你所學的知識運用到你設計的軟體小工程中。盡量把你的編程專業知識運用到你日常生活中的問題上。比如,編寫程序,批量重命名文件,視覺上比較文本文件,復制目錄里的文件名到內存/文本文件之類的東西。剛開始簡單一點。
14、創建一個虛擬的"畢業工程"。把這個放到最後完成,用上你到目前為止學到的可視化編程技術。
15、通過學習更高級的課程、更加註意細節以及在網上學習搭建架構的技巧,來加深對你學過的可視化架構/庫/包的理解。
16、搜索其他含可視化元素的包/庫並學習它們。
17、學習圖形學課程(而非圖形設計)。對於想要寫出吸引人的用戶界面元素的程序員來說,這將大有裨益。
18、成為游戲程序員(不是必須的)。很大程度上游戲編程是被當作桌面編程的。如果你想成為游戲程序員,完成這些步驟後你需要進一步學習游戲編程。對於游戲程序員而言,圖形學課程是必須的,後續步驟中第二門語言應該選擇邏輯/函數編程語言(最好是Prolog或Lisp)。
方法3:分布式程序設計
1、處理分布式應用編程。分布式應用編程被許多人認為是最難學的一種,它要求計算機和通信技術中的不同知識。
2、快速了解通信系統及其硬體。這個步驟不是必須的,但是對於理解網路拓撲結構很有用。
3、熟悉網路硬體結構和設備,比如集線器、接線台和路由器。
4、學習網路協議的課程。在你開始分布式應用編程之前,你需要好好理解"開放系統互聯 (OSI) "模型、以太、IP、TCP、UDP和HTTP 。
5、學習XML 語言,並熟悉它。
6、開始學習一門shell腳本語言。對基於Windows的編程,可以是任何能與Windows腳本宿主兼容的腳本。對基於linux的編程,Bash腳本和 Perl就夠了。對這兩個平台都強烈推薦Java,原因如下: 幾乎所有操作系統的都支持腳本宿主(Windows 腳本宿主默認支持java ,大多數Linux發行版都有支持java腳本控制的包)。
許多開發者認為它很容易學。
當你需要學第二門編程語言(C,C++,C#,Java和J#都有ALGOL開源句法)時,它擁有的ALGLO開源句法就能使你熟悉更多編程語言
通過學習java,你會熟悉網頁的客戶端腳本,這可謂一大福利!
7、開始時用上你學的腳本知識,只運用程序化程式設計。之後,根據你的腳本語言和它所支持的,你可以用上更高級的編程技巧和範式。所有的腳本語言在某種程度上都有程序化程式設計的一些方面。
8、使用你所學的腳本語言,寫出實現機器之間通信的腳本。學習完成這個所必需的東西。簡單的通信就足夠了。
9、轉移到桌面腳本/編程語言。一個比較好的是多範式語言,比如Python。簡單了解第二門語言。有許多理由讓多數程序員選擇java。然而,在這個領域內C#正在獲得多數優勢。Java和C#被青睞的原因如下:它們是面向對象的編程語言,使大量程序員免遭實現細節之苦,因為它們都支持組成部分(代碼單元、預編譯,它們可以執行特定任務,並被用到其他程序中)。
它們支持事件驅動編程,在某種程度上還支持OO和程式化程序設計。
建立語言的架構按屬性分布(比如Java)。
有許多現成的包來處理。社交網路同時作為開源代碼和架構內置包,這使得程序員繼續其他人工作更加容易。
10、專注於語言的核心部分,尤其hi那些支持網路。少注意用戶界面元素,比如輸出,窗口設計和技術等。
11、學習分布式應用設計與結構的課程。可以通過書本、網上教程或學術課程來完成。然而,十分有必要理解分布式應用的結構及其概念。
12、使用你所學的編程語言來了解服務部分建構和服務。
13、學習如下技術中一種或更多。推薦你每一種都了解以下。多數分布式應用程序員不會止於一兩門編程語言,他們會每個操作系統各學至少一種語言。這是因為如果你希望你的應用"分布式",你應該至少為每個主要的操作系統各提供一個版本。公共對象訪問代理體系結構(CORBA)
簡單對象訪問協議(SOAP)
非同步JavaScript和XML(AJAX)
分布式組建對象模型(DCOM)
.NET遠程處理
XML 網路服務
方法4:庫/平台/框架/核心編程
1、了解什麼是核心編程。核心程序員幾乎都是高級程序員,已經從編寫應用轉變為給其他程序員編寫代碼匯編。
2、學習一門支持創建可重復使用內容/包的編程語言,如果你還沒學過的話。
3、學習一門UML 和ORM的高級課程。多數庫開發者使用其中一種,或兩種都用。
4、學習軟體工程的課程。
5、學習至少一個模塊,基於內容的、面對對象的和 事件驅動編程技術和概念。你所學覆蓋越多編程範式和語言,你就能成為越成功的庫/包程序員。
6、進一步了解不同的操作系統及其支持的編程架構。
7、集中學習獨立平台架構、編程語言和技術。
8、如果到目前為止你學習的編程語言具有ANSI/ISO/EEE/W3C標准版本,那麼掌握這些標准。無論何時盡可能使用標准代碼。
9、嘗試模擬簡單的、已經建立的庫,尤其是開源的庫。這在成為庫/包程序員的早期階段十分有用。從簡單的包開始,比如單位轉換和中間科學計算包。如果你是大學生,利用你的非編程課程,嘗試把這些課程的方程式與核心科學用作庫。
10、在你的編程領域內尋找開源的包。首先下載包的二進制/可執行文件。盡量去用,並發現它的利弊。之後,下載源,盡量弄明白它是怎麼完成的。嘗試再創造這些庫或其部分。剛開始,看完代碼再做;之後,先做再看代碼。後期階段,嘗試完善那些庫。
11、學習不同方法。給程序員分發、配送內容。通常,庫/包程序員傾向於以遞歸和/或迭代的思想來思考他們面臨的所有問題 。盡量把每個問題當作一個小問題的匯編(一系列更小的任務)或一個重復的不斷縮小問題范圍直至把這些更小的范圍彼此堆到一起的處理過程去思考。
庫/包程序員傾向於概括化。也就是說,當面臨一個特定的簡單的問題時,他們通常會想到一個更為概括的問題,並努力解決這個更概括的問題,如此,小問題便不攻自破。
方法5:系統編程
1、了解系統編程的定義。系統編程處理的是編程的"科學",而不是具體的編程實現。不要把你自己栓到特定平台上。
2、跟著"桌面應用程序員"的前三個步驟。
3、學習線性代數的入門課程。
4、學習微積分課程。
5、學習邏輯學和/或離散數學課程。
6、了解不同的"准操作系統"。這可以通過以下途徑完成:了解操作系統是如何安裝的。
了解在一台PC上如何安裝不同的操作系統(不是必須的,但作為推薦)
安裝不止一種操作系統。不要在系統中安裝任何輔助包,相反,僅利用操作系統本身提供的函數。
7、學習計算機硬體結構的課程(或者作為替代,看看書)。
8、深入理解不同的計算機硬體平台。
9、初步熟悉你所選擇的硬體平台/操作系統的匯編語言。稍後你會學習其他平台/系統的匯編。
10、學習ANSI C 和 C++ 語言,還有程序化程式設計的一些概念。
11、在你選擇的平台上理解並實踐C/C++標准庫。尤其注意標准模板庫(STL)和活動模板庫(ATL)。
12、搜索網路資源、書籍和課程來理解你的平台獨特的C風格。
13、用C/C++練習編寫高級代碼。
14、學習更高級的Assembly。
15、學習操作系統設計的課程。
16、尋找並閱讀你所選擇的平台的相關文章。如果你選的是基於Unix的操作系統就會容易得多。充分理解你今後將要用來工作的系統。
17、練習你已經掌握的知識。首先創建小的系統軟體。如下通常很有用: 試著重創你系統中已有的小工具。
試著把其他系統中的應用移植到你的系統里。
18、以最有益的順序學習語言。此處是唯一強調第一門編程語言的地方。首先學習ANSI C 而不是 C++、C#、Java 、D。然後學習 C++。限制你第一門語言僅為C是因為系統編程要求程序員熟悉如下概念:源代碼真實、完全的編譯
低級對象輸出文件
鏈接二進制
低級機器語言/匯編編程。C語言被某些人認為是偽飾過的/更容易學習的匯編語言。只要你願意,它還支持插入匯編語言代碼,並且它只是程序化的(像匯編)。
方法6:編程科學
1、了解編程科學家是做什麼的。編程科學家是十分高級的程序員,他們不開發程序,但他們研究計算科學,比如密碼學、編程語言和數據挖掘演算法。沒有深入的學術研究是很難達到這個水準的。
2、累積和四年制計算機科學學歷同等多的科學知識。可通過如下其中一種完成: 獲得真實的學術學歷(這也是通常情況)。
從現代大學中獲得該學歷要求的課程大綱,自學課程或 分開一門門學。理論上這樣做也可以,但還是推薦第一種做法。
3、選擇特定的領域。越具體越好。這取決於你的偏好。但是這里給出計算機編程領域中一些主要的課題:演算法設計(例如搜索、分類、密碼、解碼、錯誤檢測 等)
編程語言/編譯器設計/最優化
人工智慧領域(模式識別,語音識別,自然語言處理,神經網路)
機器人技術
科學編程
超級計算
計算機輔助設計/模式(CAD/CAM)
虛擬現實
計算機圖形學(計算機圖形學通常和圖形設計或圖形用戶界面設計混淆,計算機圖形學是研究如何表示和操控計算機系統中的圖形的領域)
4、考慮獲取更高級的學歷。或許你想追求碩士學歷或博士學歷。
5、了解你選擇的編程領域的相關技術和編程語言。
小提示不管你想嘗試哪種編程,不管你想達到何種水平,考慮去學校或本地社區大學上課。不要被諸如「計算機科學」一類的術語嚇到。你參加的任何不需要預備課程的課程都應該集中教一些編程的基礎知識。在上課之前先咨詢一下老師或客服,確保這門課是你想要的,像「計算機文化」這樣的課很有可能更多地集中在教你更熟悉辦公應用之類。

❸ 程序員怎樣才能達到編程的最高境界(送給喜歡寫代碼的朋友)

我認為,一個程序員的成長可分為如下六個階段。
Ø 第一階段
此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。
Ø 第二階段
此階段能精通基於某種平台的介面(例如我們現在常用的Win 32的API函數)以及所對應語言的自身的庫函數。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。
Ø 第三階段
此階段能深入地了解某個平台系統的底層,已經具有了初級的內功的能力,也就是手中有劍,心中無劍。
Ø 第四階級
此階段能直接在平台上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高級內功的修煉。比如能進行VxD或操作系統的內核的修改。
Ø 第五階級
此階段就已經不再局限於簡單的技術上的問題了,而是能從全局上把握和設計一個比較大的系統體系結構,從內核到外層界面。可以說是手中無劍,心中有劍。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是MS Word這樣的大型軟體,只要有充足的時間,也一定會設計出來。
Ø 第六階級
每一個階段再向上發展時都要按一定的方法。第一、第二個階段通過自學就可以完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有一個好的學習環境。例如有一個高手帶領或公司里有一個好的練手環境。經過二、三年的積累就能達到第三個階段。但是,有些人到達第三個階段後,常常就很難有境界上的突破了。他們這時會產生一種觀念,認為軟體無非如此,認為自己已無所不能。其實,這時如果遇到大的或難些的軟體,他們往往還是無從下手。
現在我們國家大部分程序員都是在第二、三級之間。他們大多都是通過自學成才的,不過這樣的程序員一般在軟體公司也能獨當一面,完成一些軟體的模塊。
但是,也還有一大堆處在第一階段的程序員,他們一般就能玩玩VB,做程序時,去找一堆控制項集成一個軟體。
現在一種流行的說法是,中國軟體人才現在是一個橄欖型的人才結構,有大量的中等水平的程序員,而初級和高級程序員比較少。而我認為,現在中國絕大多數都是初級的程序員,中級程序員很少,高級的就更少了。所以,現在的人才結構是方塔形,這是一種斷層的不良結構。而真正成熟的軟體人才結構應該是平滑的三角形結構。這樣,初級、中級、高級程序員才能充分地各施所長。

❹ 程序員需要學些什麼

程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。

程序員需要學習:

1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;

2、理解計算機的組成以及各主要部件的性能指標;

3、掌握操作系統、程序設計語言的基礎知識;

4、熟練掌握計算機常用辦公軟體的基本操作方法;

5、熟練掌握基本數據結構和常用演算法;

6、熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;

7、熟悉資料庫、網路和多媒體的基礎知識;

8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;

9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;

10、了解信息化、計算機應用的基礎知識;

11、正確閱讀和理解計算機領域的簡單英文資料。

程序員必備技能:

1、熟練開發工具

做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。

而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。

其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。

另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。

2、熟知資料庫

作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。

雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。

3、了解操作系統

當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。

要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。

Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。

在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。

從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。

至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。

4、明白DCOM/CORBA/XML/WEBServices存在的意義

隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。

XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。

5、不要將軟體工程與CMM分開

大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。

一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。

如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。

6、需求理解能力

程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。

要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。

7、模塊化思維能力

作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。

這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。

就業方向:

1、網路開發

現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。

2、企業軟體開發

JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。

3、系統軟體

C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。

當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。

但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。


(4)世界級程序員是如何接觸編程的擴展閱讀:

會編程、會計算機語言就能加入互聯網發展大潮中,享受數字經濟發展的紅利,一時間社會上的程序員培訓機構都變得格外火爆。

但是現在,專家的數據分析結果告訴你:若想跟上數字經濟發展的步伐,光會編程可不行,這個行業現在緊缺高端的、綜合型人才。

11月22日下午,清華大學經管學院互聯網發展與治理研究中心與領英聯合發布《中國經濟的數字化轉型:人才與就業》,揭示我國數字人才現狀與趨勢。

報告顯示我國數字經濟發展面臨人才短缺的挑戰,但這種短缺主要體現在擁有中高級專業技能數字人才的比例不高,擁有人工智慧、智能製造等前沿技術的人才更是少之又少。

與美國、英國、加拿大等國家相比,中國的數字人才儲備尚有很大差距。

此外,報告根據對人才需求的數據分析,結果顯示我國數字人才的技能需求不再強調單一編程技能,更加看重技術、管理和領導力等綜合技能。

2015年,我國從事信息傳輸、軟體和信息技術服務相關工作的人數約350萬,但其中中高端人才,特別是前沿技術的數字人才並不多。根據領英中國智庫的研究,在人工智慧領域,美國的從業者數量在85萬人以上,印度15萬,英國14萬,中國只有5萬多人。

報告負責人、清華大學經濟管理學院副院長陳煜波教授表示,我國目前在大數據與人工智慧領域人才缺口明顯。

他解釋說,目前中國85%以上的數字人才分布在產品研發類,而深度分析、先進製造、數字營銷等職能的人才加起來只有不到5%,存在較大缺口,新興技術人才和創新型人才培養方面存在滯後和不足。

這份研究報告的基礎數據來自領英在中國的3600萬個人用戶,這些用戶畢業於1.5萬多所國內外院校,分布在36.4萬家企業,擁有超過2.3萬項技能。

陳煜波研究團隊從中篩選了72萬數字人才,多維度提取用戶畫像並跟蹤其職業軌跡,以此預測不同地區的人才流向、僱傭率、受僱主歡迎的技能等人才趨勢層面的信息。

陳煜波說,根據數據分析結果,整體來看,雖然編程技能和數據分析技能需求占據主導,然而隨著數字產業走向成熟,企業除了強調編程技能,也逐步更加看重人才的技術、管理和領導力等綜合技能。

近年間,項目管理、產品運營等「技術+管理」類技能的需求呈現出明顯的上升趨勢,懂技術、懂管理的人才被認為是「一將難求」。

領英中國代理總裁曾志恆也提醒,如果你有興趣向數字職能轉型,不能僅僅專注於自己的技術能力,溝通和領導力等軟性技能將成為你脫穎而出的關鍵。

陳煜波希望這些研究結果能為教育行業和政府部門提供借鑒。他說,教育行業可根據職位的供需趨勢更好地規劃人才培養的方向,政府也可更好地了解人才流動方向、技術缺口等,以此制定有針對性的引才策略。

程序員崗位職責:

1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。

2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。

3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。

4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。

5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。

6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。

7、負責相關技術文檔的擬訂。

8、負責對業務領域內的技術發展動態進行分析研究。

相關書籍:

很多程序員響應,他們在推薦時也寫下自己的評語。 以前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。

其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。

下面就按照各本書的推薦數排列。

1、《代碼大全》 史蒂夫·邁克康奈爾

2、《程序員修煉之道》

3、《計算機程序的構造和解釋》

4、《演算法導論》

5、《重構:改善既有代碼的設計》

6、《設計模式》

7、《人月神話》

8、《計算機程序設計藝術》

9、《編譯原理》(龍書)

10、《活著》

❺ 熱愛編程的程序員,早期是因為什麼對編程產生興趣的

開始是覺得很好玩,一路走下來,編程的生活多數時候都是痛苦的,不斷的和困難、復雜度做斗爭,不斷的刷新自己的知識。為此要比一般人付出更多的時間和精力,主要是精力,精力的過度消耗會讓你對其它事情變得冷淡。支持我繼續的原因是,程序這種東西真的就像是魔法或者超能力,你可以做到一般人做不到的事情,你可以比一般人快100倍,1000倍。哪怕只體會一次這種感覺帶給你內心的狂喜,你都會覺得自己的付出是值得的。

❻ 程序員入門:如何自學編程

1、選定方向

編程的世界是多元紛繁的,大的方向就分前端開發、後端開發、移動開發、雲計算、數據處理、智能硬體、物聯網、虛擬現實等等,光編程語言都幾十種。如果沒有做過功課,貿然進入只會分分鍾懵逼。所以最好是根據自己的興趣愛好再結合市場前景,先選定一個方向,再選擇一門語言,然後頭也不回的深深扎進去。


2、優化學習方式

做好筆記,記錄經驗,我們大多數人並沒有過目不忘的神技,很多時候我們學了也不一定馬上掌握,需要過後花時間慢慢領悟,而且還有忘掉的風險,所以對於重要的知識點都要做好筆記。

3、多看官方文檔,外文資料
互聯網是一個更新迭代很快的行業,所有編程語言都會不斷的更新新功能和修復舊Bug,網上查的資料很有可能是舊的解決方案,現在已經不適用了。所以最好最快的方法就是查看官方文檔。

4、動手做項目
我們學習編程的最終目的就是用所學的做出具有一定功能的項目,而做項目又是最好的學習和鞏固知識的方式。如果前期能力不足就先做一些簡單的功能模塊,一步一步慢慢來,不要一開始就要實現各種酷炫炸天功能,遇到不會的就在網上查, 現在互聯網這么發達,獲取資源也及其方便。

❼ 關於如何學編程,請現在是程序員的你們來說說你們當初是怎麼學習的

其實你應該慶幸,你已經有了C的基礎。學習JAVA還是比較容易的。我當時學的時候也很困難,每天都需要花上十幾個小時來學,真的是無時無刻都在學習和反復練習。得出經驗只有一條:不要求先理解,先能夠做出來,然後反復反復不斷的敲,敲的久了,學的多了,慢慢的可能只要一個契機,你可能瞬間就懂了。工作了平均每天代碼量400~600行左右,但是真正自己學習每天起碼需要1500行。慶幸的是現在網上的教學視頻非常多,學習至少還是比較省力的。
不知道你參加工作了沒有,其實編程語言非常多,剛開始不可能全部都去弄懂,一般都是先精通一個,再去研究另一個,通起來比較快。參加工作後,可能很長一段時間你都重復在用一門語言,精通起來就比較快,加油,程序員的成長需要很強的毅力以及興趣。

❽ 程序員入門:如何自學編程

首要之首:不要急於選擇一種語言
新手們有一個常見的錯誤就是猶豫於判斷哪種編程語言是做好的、最該先學的。 我們有很多的選擇,但你不能說那種語言「最好」。 我們應該理解:說到底,什麼語言並不重要。 重要的是理解數據結構、控制邏輯和設計模式。 任何一種語言—甚至一種簡單的腳本語言—都會具有所有編程語言都共有的各種特徵,也就是說各種語言是貫通的。 我正在攻讀我的計算機學學位,我編程使用Pascal,匯編,和C語言,事實上我從來沒有把它當成職業以求獲得回報。 我一直在自學編程,工作上用不到它,我使用現有的知識,參考各種文檔和書本,學習它們的用法。 因此,不要急於選擇何種編程語言。 找出你想要開發的東西,使用一種能夠完成這項任務的語言,這就可以了。
根據各種開發平台的不同,有很多不同的軟體開發形式可供你選擇:從網站應用到桌面軟體到智能手機軟體到命令行腳本工具。 這篇文章里,我將重點介紹一些很受歡迎的入門教程和資源,它們能幫助你學會如何在各種主流的平台上編程開發。 我先假設你是一個悟性很強的讀者,但對於新手,當我談論程序代碼時還是要按照入門級的水平。 因為即使是你自己看一篇編程入門手冊,如果發現都能理解時,心情自然會很高興,這樣利於你進一步學習。
桌面腳本
想要動手在Windows里或蘋果系統里編程,最簡單的方法是從一種腳本語言或宏語言開始,例如AutoHotkey(Windows) 或Automator(蘋果系統)。 如今一些硬體程序員沖著他們的屏幕大喊大叫,說AHK和AppleScript並不是「真正」的編程語言。 也許他們說的是對的—技術上,這些種類的語言只能做一些上層的編程。 但是對於那些只是想來脫盲、想在他們的電腦里實現一些能自動運行的程序的新手來說,這些語言會是一個絕妙的入門入口—而且你會吃驚於它們豐富的功能。
例如,大家都喜愛的Texter就是Adam使用AutoHotkey開發的能獨立運行的Windows應用程序,所以說這種腳本語言遠不是只能開發小規模腳本軟體。 如果你想從AutoHotkey入手,可以參考Adam的指導:how to turn any action into a keyboard shortcut using AutoHotkey(然後,你可以下載Texter源代碼看看這個功能齊全的使用AHK開發的Windows應用程序的內部結構)。
Web開發
HTML 和 CSS:開發網站,你第一件要知道的事情就是HTML(網頁就是由它組成的)和CSS(一種讓外觀更好看的樣式標記)。 HTML 和 CSS 並不是編程語言—它們只是頁面的結構和樣式信息。 然而,在開始開發web應用程序之前你必須要學會如何手工的編寫簡單的HTML和CSS,web頁面是任何webapp的前端顯示部分。 這個HTML 指導是你入手的好地方。
JavaScript:當你可以通過HTML和CSS構建一個靜態頁面後,事情就開始變得有趣了—因為到了該學JavaScript的時候了。 JavaScript是一種web瀏覽器上的編程語言,它的魔力就是能在頁面里製造一些動態效果。 JavaScript可以做bookmarklets,Greasemonkey腳本, 和Ajax, 所以它是web上各種好東西的關於因素。學習JavaScript從這里開。
伺服器端腳本:一旦你學會了網頁里的知識,你就要開始對它添加一些動態伺服器操作—為了實現這些,你需要把目光轉移到伺服器端腳本語言,例如PHP, Python, Perl, 或 Ruby。 舉個例子,如果想要製作一個網頁形式的聯系方式表單,根據用戶的輸入發送郵件,你就需要使用伺服器端腳本來實現。 像PHP這樣的腳本語言可以讓你跟web伺服器上的資料庫進行溝通,所以如果你想搭建一個用戶可以登錄注冊的網站,這樣的語言正是你需要的。Webmonkey是一個優秀的web開發資源網站,裡面有大量的各種web編程語言的指導手冊。 閱讀一下他們的PHP 初學者指南。 當你感覺差不多了的時候,看看WebMonkey』s PHP and MySQL tutorial學習如何使用PHP跟資料庫交互。 網上最好的要數PHP語言官方的在線文檔和函數參考了。 每個知識點上 (例如strlen function這個)都在後面列出來用戶的評論注釋,這些對於文檔的本身是非常有價值的。 (我很喜歡PHP,但還有很多其他種伺服器端的腳本語言你們都可以選擇。)
Web框架:過去數年裡,web開發人員在開發動態網站的過程中不得不一遍又一遍的針對重復遇到的問題寫出重復的代碼。 為了避免這種每次開發一些新網站都會重復勞動一次的問題,一些程序員動手搭建了一些框架,讓框架替我們完成重復性的工作。 非常流行的Ruby on Rails框架,作為一個例子,它利用Ruby編程語言,為我們提供了一個專門面向web的架構,普通的web應用程序都能使用它來完成。 事實上,Adam使用Rails開發了他的第一個正式的(而且是嘆為觀止的!)web應用程序,MixTape.me。這就是他的如何在沒有任何經驗的情況下搭建一個網站。還有一些其他的web開發框架包括CakePHP(針對 PHP 編程者),Django(針對 Python 編程中), 以及jQuery(針對 JavaScript).
Web APIs:API (應用層序編程介面)是指不同的軟體之間相互交換的程序途徑。 例如,如果你想在你的網站上放一個動態的地圖,你可以使用Google Map,而不需要開發自己的地圖。The Google Maps API可以輕松的讓你通過JavaScript在程序中引入一個地圖到你的頁面上。 幾乎所有的現代的你所知道的和喜愛的web服務都提供了API,通過這些API你可以獲取到他們的數據和小工具,在你的應用程序里就可以使用這些交互過來的東西了,例如Twitter, Facebook, Google Docs, Google Maps, 這個列表遠不止這些。 通過API把其他web應用集成到你的web應用里是現在富web開發的前沿地帶。 每個優秀的主流的web服務API都附帶有完整的文檔和一些快速入手的指導(例如,這個就是Twitter的)。 瘋狂吧。
命令行腳本
如果你想開發一個程序,讓它讀取文字或文件、輸入輸出一些有用的東西,那麼,命令行腳本語言將是個不錯的選擇。 然而它並不像web應用程序和桌面應用程序那樣有吸引力和好看的外觀,但是作為快速開發的腳本語言,你卻不能忽視它們。
很多的在linux平台上運行的web腳本同樣能以命令行模式運行,例如Perl,Python和PHP,所以如果你學會了使用它們,你將能在兩種環境中使用它們。 我的學習道路一直沒離開Perl太遠,我自學Python使用的是這本優秀的在線免費書Dive into Python。
如果成為一個Unix高手也是你學習的目標,那麼你絕對要精通bash這個腳本語言。 Bash是Unix和Linux環境下的一種命令行腳本語言,它能夠為你做所以的事情:從自動備份資料庫腳本到功能齊全的用戶交互程序。 起初我沒有任何使用bash腳本的經驗,但最終我用bash開發了一個全功能的個人代辦任務管理器:Todo.txt CLI。
插件(Add-ons)
如今的web應用程序和瀏覽器都可以通過一些擴展軟體來豐富自己的功能。 由於一些現有的軟體,例如Firefox、WordPress越來越受到開發人員的關注,插件的開發也日益流行,人們都在說「But if only it could do THIS…」
只要你掌握了HTML,JavaScript和CSS,你就可以在任何的瀏覽器里開發你想要的很多東西。 Bookmarklets,Greasemonkeyuser scripts, 和Stylishuser styles這些軟體都是用的更普通頁面一樣的語言寫成的, 這幾個東西都值得你去研究一些。
更高級的瀏覽器擴展程序,例如Firefox的擴展,它們可以幫助你很多。 開發Firefox的擴展,舉個例子,需要你精通JavaScript和XML(一種標記語言,類似HTML,但具有更嚴格的格式)。 早在2007年我就寫下來how to build a Firefox extension, 這是我在笨手笨腳的研究網上的一些學習資料後獲得的成果。
很多免費的、受歡迎的web應用程序都提供了擴展框架,例如WordPress 和 MediaWiki。 這些應用程序都是用PHP寫成的,所以只有對PHP熟悉你才能做這些事情。 這個就是如何編寫WordPress插件。 而想駕馭Google Wave前沿技術的開發人員可以從使用HTML, JavaScript, Java, 和 Python 寫小組件和小工具開始。 我寫的第一個Wave bot是跟著這個一個下午時間的快速入門指導開始的。
開發桌面上的Web應用程序
學習編程最好的結果是你在一個環境下學的東西可以應用到另外的環境中。 先學習開發web應用程序的好處就是我們有一些方法可以讓web應用程序直接在桌面上運行。 例如,Adobe AIR是一個跨平台的即時運行平台,它能讓你編寫的程序運行在任何裝有AIR的操作系統的桌面上。 AIR應用程序都是由HTML, Flash, 或 Flex 寫成的,所以它能讓你的web程序在桌面環境中運行。 AIR是開發部署桌面應用程序的一個優秀的選擇,就像我們提到過的10個讓你值得去安裝AIR的應用程序。
移動應用開發
能在iPhone或者Android智能手機上運行的手機應用程序的開發如今正呈現井噴之勢,所以你也可以夢想一下如何在iTunes應用商店裡通過你的天才程序大賺一筆。 但是,作為一個編碼新手,直接奔向移動開發所經歷的學習曲線可能會很陡,因為它需要你熟悉高級的編程語言,例如Java和Objective C。 然而,你當然應該看看iPhone 和 Android 編程究竟是什麼樣子的。 閱讀這個簡單的iPhone應用開發例子可以初步認識一下iPhone程序的開發過程。 Android 程序都是由Java寫成的,這有一個簡單的視頻教程教你如何開發第一個」Hello Android「程序(註:可能需要代理才能看這個視頻)。
耐心,刻苦,嘗試,失敗
好的程序員都有一個不達目的誓不罷休的品質,他們會驚喜於通過長期推敲和失敗換來的一點成績。 學會編程會有很好的回報的,但是學習的過程可能會是飽受挫折和孤獨的。 如果有可能,最好找個伴一起陪你做這件事。

❾ 如何編程 零基礎程序員如何自學編程

1、入門期守一個「熬」字決

自學編程難免遇到這種現象:學了一兩個月,發現自己會的不多。

編程在一開始不會有那麼大的反饋,這種現象非常正常!關鍵是你要堅持個三個月到半年的時間,熬過這個艱難的入門期。

2、初學者盡量不要鑽牛角尖

入門期遇到難題,耗了半天時間還是沒弄懂,可以暫時跳過,知識積累到一定程度,回頭再進行解決你會發現簡單多了。

3、站在巨人的肩膀上

你遇到的那點小問題,已經有無數前輩也曾遇到過,他們總結了並分享在互聯網上了,前人的經驗是你的寶貴資源,要善於利用StackOverFlow,Quora,谷歌等。

4、尋一個編程目的

有些程序員學習編程一上來就想著月薪1W+以上,這樣的學習過程會非常痛苦,很容易放棄。

最好是奔著一個小項目而學習編程,當你把作品做出來了,就有成就感,同時基本上具備找工作的能力,直接找個初級的開發崗位,再進階,你的自學之路功與名都有了。

5、反復練習

編程是一門手藝,需要反復練習,脫離書本和視頻看是否能獨立實現?學到最後的境界無非就是:我亦無他,惟手熟爾。

閱讀全文

與世界級程序員是如何接觸編程的相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163