導航:首頁 > 程序命令 > 程序員製作方法

程序員製作方法

發布時間:2023-05-25 12:48:33

㈠ 如何製作一份java程序員簡歷

java程序員個人簡歷範文

個人資料

姓名:

性別:

目前所在: 西安 年齡: 23

戶口所在: 咸陽 國籍: 中國

婚姻狀況: 未婚 民族: 漢族

身高: 160 cm 體重: 45 kg

我的特長:

求職意向

人才類型: 普通求職

應聘職位: 軟體工程師,JAVA軟體工程師

工作年限: 2年 職稱: 中級

求職類型: 全職 可到職日期: 隨時

月薪要求: 3500--5000 希望工作地區: 西安

工作經歷

西安迪歐軟體科技有限公司 起止年月:2013-03 ~ 2015-06

公司性質: 民營企業所屬行業:計算機/互聯網/通信/電子

擔任職位: java程序員

工作描述:

1.參與需求的挖掘;

2.負責java程序開發, 測試,維護;

3.帶領實習生進行項目開發,並協助其攻克技術難點;

4.重構「西安芯學苑培訓網」。

離職原因:

志願者經歷

教育背景

畢業院校: 西安職業技術學院

最高學歷: 大專 獲得學位: 畢業日期: 2011-07

專 業 一: 計算機 專 業 二:

起始年月 終止年月 學校(機構) 所學專業 獲得證書 證書編號

2011-11 2012-02 芯學苑培訓學校 JAVA軟體工程師 - -

語言能力

外語:英語一般 粵語水平: 一般

其它外語能力:

國語水平: 優秀

工作能力及其他專長

1.具有面向對象思想,扎實的編程功底以及良好的編碼習慣;

2.熟練應用Struts+Hibernate,SSH2框架和MVC三層架構開發模式;

3.熟練Oracle資料庫的操作,能夠編寫存儲過程,熟悉Mysql和SqlServer資料庫;

4.熟練Tomcat伺服器的部署及應用;

5.熟悉版本管理器SVN;

6.熟練使用Jsp,HTML,JavaScript,Jquery,Ajax,Css等WEB客戶端技術;

7.了解設計模式,代碼重構和項目過程管理,能夠編寫文檔。

自我評價:

自我鑒定:

我身體健康,性格隨和,五官端正,不怕苦不怕累。兩年多的程序員生活鍛煉了我堅強的意志,縝密的思維,以及強的抗壓性;我做事有耐心,並且樂於學習新知識,更注重鞏固舊知識。作為一名程序員,更重要的品質就是要懂得團隊合作,而我恰好擁有團隊合作精神,對工作認真負責。

項目經驗

2010/3--2010/6:綜合管理系統

軟體環境:TOMCAT6.0+ MYSQL

硬體環境:windows

開發工具:MYECLIPSE5.1

項目描述:項目團隊: 開發人員4人

開發語言:JAVA

SCM工具:SVN版本管理器

項目技術:STRUTS 2+SPRING+HIBERNATE3.0、LOG4J、JQUERY、AJAX

軟體描述:「綜合管理系統」專門針對社會各類培訓學校、培訓中心而開發的一套綜合性管理軟體,對學校的日常事物進行記錄,提高學校管理的工作效率。主要有「許可權管理」,「歷史記錄」,「教務管理」,「學員管理」,「教學管理」,「財務管理」等模塊。

責任描述:

1.帶領實習生進行項目開發,從需求挖掘到程序開發;

2.協助實習生攻克技術難點;

3.負責「教務管理」,「學員管理」模塊的開發;

2009/12--2010/2: 創業測評系統

軟體環境:TOMCAT6.0+ ORACLE10g

硬體環境:windows

開發工具:MYECLIPSE5.1

項目描述:項目團隊: 開發人員4人,經理1人

開發語言:JAVA

SCM工具:SVN版本管理器

項目技術:STRUTS+HIBERNATE3.0、JQUERY、AJAX

軟體描述:「創業測評系統」是省勞動保障廳主辦項目「芯學苑教育雲平台」的一個子項目;以「芯學苑教育雲平台」的用戶為用戶,主要實現「測試」,「統計」,「行業方向管理」,「題庫管理」,「測評報告管理」功能。

責任描述:負責「統計」,「題庫管理」模塊的程序開發;

1.「統計」中「自定義」統計功能以存儲過程方式實現;

2.以樹形菜單顯示題目種類。

2009/2--2010/6:芯學苑教育雲平台

軟體環境:TOMCAT6.0+ ORACLE10g

硬體環境:windows

開發工具:MYECLIPSE5.1

項目描述:項目團隊: 開發人員6人,經理1人

開發語言:JAVA

SCM工具:SVN版本管理器

項目技術:STRUTS+HIBERNATE3.0、IBATIS、JSP、JAVASCRIPT、JQUERY、AJAX

項目描述:「芯學苑教育雲平台」是省勞動保障廳主辦項目,是一項長期項目;主要有以下功能:

1.「後台管理系統」,用於管理學員信息,課件信息,三級許可權分配,對各地市級的學員進行統計等;

2.「學習平台」與FLASH進行交互,播放flash課件,提供給學員學習課程;

3.「CMS新聞發布系統」豐富頁面內容。

我的任務:

負責「學員管理」,「課件管理」模塊的程序開發;重構「統計」、「注冊」模塊。

1.「學員管理」實現增刪改查,導入導出等功能。

2.以樹形結構顯示課件信息,並實現增刪改查,停用啟用功能。

3.重構「注冊」功能,採用jquery.validator插件進行校驗,ajax非同步獲取數據。

責任描述: 負責「學員管理」,「課件管理」模塊的程序開發;重構「統計」、「注冊」模塊。

㈡ 想要學習怎樣編寫程序和製作軟體

你既然喜歡編程,就應該認認真真的學習一門語言,先從VB開始,VB是比較好的入門語言,可視化的,比較簡單,是非常好的入門語言。書籍最少應該准備兩本,不可能一本書籍會包含VB的所有內容,在看書的時候,可以交叉的看,一本書籍中沒有講到的內容可以在另一本中看到,這樣對學習是很有好處的,也能保證所學知識的完整性。學編程是一個很漫長的過程,不要著急,要理論與實踐想結合,常式書籍洞和改也是很重要的,看源代碼對學習也是很有幫助的,等你學完這門VB語言之後,學習別的語言是非棚賀常簡單,可以嘗試C語言,按照C——C++——VC的順序學習,有助於知識的連貫性,我也希望你能學好的。

學習C語言,譚浩強的《C程序設計》是一部非常好的C語言書籍,學習程序設計是一個非常漫長的過程,不要著急,一本書多看兩遍三遍,學會交叉學習法,在學習C的過程中,可以看看數據結構,編譯原理,操作系統等書籍,對編成都是很有幫助的。最開始學習的時候,先不要編一些比較大的程序,多編一些小程序,比如數組運算,字元組合等等,指針是C語言的精華,是比較復雜的部分。如果有一天你能熟練駕馭指針的操作了,我相信你,你一定能學習好C語言的。

我是2001年接觸編程的,剛開始只是大概了解一下,並沒有進行比較深入的學習,我是從VB開始入門的,學了1年多,然後轉入C語言,按照C——C++——VC的順序學習,C學了兩年,現在開始學習C++,C++的學習是很有難度的,類,標准庫,多態,繼承等等比較抽象難道懂的概念,雖然他秉承了C語言的風格,但是有很多很多是C語言不具備的,要多看書,上機實踐也是必不可少的。《C++編程思想》,《C++標准庫》,這些書都非常好,內容也很全面,常式書籍也是必不可少的,多看源代碼對編程是很有幫助的,也會少走很多彎路。總之,C++的學習是一個比較漫長的過程,大概需要兩年的時間,這只是底限,如果想學通,學精,還需要更多的時間。

我向你推薦一些C++經典書籍:

c++程序設計教程
c++編程思想
c++大學教程
c++程序設計語言
數據結構演算法與應用c++語言描述
c++標准模板庫------自修教程與參考手冊
泛型編程與STL
深度探索c++對象模型
設計模式---可復用面向對象軟體的基礎
重構---改善既有代碼的設計
Essential c++
Effective c++
More Effctive c++
C++ primer

前五本應該屬於入門書籍,後面的屬於學習難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。

其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。

業界有這樣一種說法,因為JAVA這門語言包含了C++的一些特性,掌握了C++,就等於掌握了JAVA的80%,

在掌握了C++之後(我說的掌握指的是,可以熟練用C++編程序了,並沒有要求你完全掌握C++的所有部分,沒有人能達到這一點,因為C++太龐大了,如果能堅持不懈的學習C++兩年到三年的時間了,你就可以學習其他的語言了)可以試著學習一些其他的語言,如JAVA,VC++等等比較復雜的語言.

這時候可以說你已經對程序設計語言有個大體的認識了,可以明確自己學習的方向,根據自己的學習情況而定,是學習一些自己比較感興趣的語言啊(從興趣出發),還是為了找工作啊,開始進行納判更深入的學習.比如學習windows下的框架編程和.net編程等等比較復雜的語言.

如果是為了找工作的話我建議你學好C,C++,JAVA三門語言.

在我國目前的軟體開發行業中,北方C,C++,JAVA的需求量是非常大的.南方以VB為主.

關於英語對學習程序設計有沒有幫助的文章這個話題已經有很多人議論過了,我個人建議把計算機專業術語弄明白了就可以了,你可以買一本計算機英語教程看一看,對程序設計是有幫助的。其實程序設計當中的英文都是一些非常簡單的,如for,else,while.......並沒有太高深的,而且學習程序設計不像學習網路,如CCNA這類認證需要掌握大量的英文。但是在學習程序設計的時候身邊有兩個工具應該足夠了-----------金山詞霸,計算機詞典。相信你一定能學好程序設計的。

學習數學和學習程序設計有一個共同點------鍛煉邏輯思維能力。在程序設計的學習中涉及到數學的地方並不多,所以也沒有必要去認真的學習數學也可以學好程序設計的。

如果你是一個肯吃苦,肯用心學習程序設計的人,具有堅持不懈的精神的人,我相信,只要你認認真真去學,即使你的英語數學水平再差,你也一定能夠學好程序設計的。

我是一名大三的學生,我也正在學習C++這門語言,一年多的時間,學習的感覺真的很累的,希望能和你成為朋友!

好了,說了這么多,可以參考一下,為自己做個學習計劃,要對自己有信心,最後祝你在學習編程的道路上走的更好更遠,祝你學有所成!!

㈢ 如何做一個優秀的Java程序員

C當然是基礎,抄在java下就襲可以編寫開發一些軟體,相對來說java下的程序適用的比較廣,可以在許多手機系統下使用。另外,塞班是目前比較成熟的一個手機系統,主要使用C作為集成化的開發環境,如果有興趣你可以去電驢上下些資料自學。

現在手機軟體最多的還是民間自製的,大都不是用於盈利的,實際盈利的軟體,最熱的恐怕是瀏覽器類的(如UCWEB)、殺毒安全類的(如網秦)、還有就是手機游戲了(主要是網攜斗游這塊比較來錢),而這類商業軟體的開發不會去找零散的程序員,項目相對也比較大,不是一個人可以勝任的。我的建議是你先自學,然後嘗試對一些民間軟體做漢化啊改進啊之類的工作,去一些國外論壇上移植國外的民間軟體也不錯,自己找項目這種事也不是徹底沒譜,不過是很困難的。最多可以在學校聯系下,如果有商家委託學校唯隱輪開發一個東西,你可以參與進去就是不錯了。

根據開發的程序不同時間上當然會差別很大,這個問題也意義不大,短時間依靠個人就可以開指信發出來的軟體會有多大的價值么?

㈣ 如何自己編寫一個程序

編程是一項系統而繁瑣的工作,不僅需要程序員有一定的基礎,還需要良好的編程習慣和風格。良好的編程習慣和風格不僅可以使程序代碼更容易閱讀和修改,更重要的是可以使程序結構更加合理,有助於提高程序的執行效率。下面是我編程的一些經驗,供大家參考。

設計順序

我們剛開始學編程的時候,要寫一個程序,總是先做一些思路,然後邊寫代碼邊調試。這種方法一般只適用於非常小的程序。根據軟體工程的特點,按照這種方法設計所有的程序是不合理的。

其實設計過程就像我們蓋高樓一樣。首先,我們要設計圖紙,然後開始施工。因此,對於個人編寫程序,應該遵循以下步驟:

1.問題分析:通過編程的方式系統地分析我們想要解決的問題,了解程序是做什麼的,想要達到什麼樣的效果。

2.結構設計:即設計程序的整體框架,設計我們需要使用的模塊,繪制流程圖。

3.用戶界面設計:在這里,我們應該設計一個輸入輸出界面,用於與用戶進行交互。

4.代碼設計:在這一步,我們將編寫代碼。

5.調試:處理程序中正在發生或可能發生的各種錯誤。

6.維護:一般來說,維護就是升級程序,修改原來的錯誤。

對於上面的步驟,我想大部分人都認為代碼設計是最重要的,但是如果程序的結構還沒有明確,我們寫代碼的時候就會出現混亂。一個程序的性能主要取決於它的合理結構。因此,在程序設計中,我們應該盡可能地注意這一點,從而使我們的程序更加完善。

設計環境

好的編程環境可以防止我們寫程序時各種資源的無序,避免資源的流失。建議您在存放源程序的目錄下建立一個「程序」文件夾;然後用你要寫的程序名和版本名創建一個文件夾,用來存放整個源程序和各種資源;最後分別建立幾個文件夾,「文檔」:用來存放程序文檔,包括流程圖等。「資源」:用於存儲圖片、聲音、電影等資源;「調試」:用於存儲調試程序。「版本」:用於存儲最終版本的程序。

例如,如果我們要製作一個名為「english」的1.0版英語學習軟體,那麼我們的編程環境中應該存在以下文件夾:

[drive]:\?\程序 英語1 調試

[驅動器]:\?\程序 英語1 文檔

[驅動器]:\?\程序 英語1 資源

[驅動器]:\?\程序 英語1 發布

另外,最好建立一個專門的文件夾來存放各種模塊,這樣代碼就可以重用了。這樣我們每次寫程序都不用重寫所有模塊,編程速度會大大提高。

設計技巧

如果代碼寫得亂七八糟,程序就不容易被閱讀和修改。因此,編寫代碼時應注意以下幾點:

(1)注釋:雖然寫注釋需要一定的時間,但是在閱讀和修改代碼的時候會節省很多時間。所以建議你在定義函數的時候,把函數寫在函數的第一行,把函數的參數解釋在一行,在每個變數的定義語句後面給函數加註釋。

(2)變數和函數的命名:每個程序都會用到大量的變數和函數。如果隨意給變數和函數命名,每次使用時都必須在變數或函數的定義語句中找出變數和函數的數據類型和名稱,隨意命名會導致變數和函數的重復定義。

建議您使用匈牙利命名法。方法是:每個變數或函數的開頭以其數據類型的縮寫命名,然後加上代表這個變數或函數的功能的英文單詞縮寫,形成變數或函數的名稱。比如定義整數變數count進行計數,其定義語句為C c++:inti count;基本:dim icount為整數.這種定義既能有效避免變數和函數的混淆和重復定義,又能保證數據類型的匹配。

(3)控制項命名:如果在windows下編程,可能會用到很多控制項。如果不嚴格管理控制項名,會造成很大程度的混亂。因此,建議在給控制項命名時,使用控制項類型的縮寫和表示該控制項功能的英文單詞的縮寫來構成該控制項的名稱。例如,如果要命名一個要刪除的按鈕控制項,控制項名稱可以命名為cmddel。

不是每個人都能成為頂尖的程序員,但我們都在程序員的道路上不斷進步,追求更完美、更專業的程序。你不妨改革一下你的程序,你會從中感受到很多好處。

㈤ smt程序員做程序的步驟

不管用什麼設備,程序製作的流程一般都不外乎以下步驟:
1.RD提供Gerber檔、座標檔
2.導入程序製作軟體(文惠系統、望友軟體等)
3.製作出對應設備的貼片程序。
4.程序貼片順序優化。
5.上傳至貼片設備試打!

㈥ 要做程序員需要學會什麼

其實簡單來說,程序員的工作就是使用編程語言,根據需求寫出一個程序。
但是,在這個過程中,涉及如下幾個方面:

使用的編程語言 程序員需要選擇一門或者多門語言來編程,不同的語言適合編寫不同的程序,目前主流編程語言包括,Java、JavaScript、python、C++、php以及其他小語種等等,每種編程語言適合開發的程序有所不同。目前從程序應用分來,主要可以分為三類a 企業應用,主要用於解決企業業務。各種企業管理後台系統,銀行系統,公安系統,圖書管理系統等等。
b 互聯網應用,面向互聯網用戶,為互聯網用戶提供各類服務。比如現在的京東淘寶各類電商系統等。
c 移動應用,各類在移動端使用的APP,有面向互聯網用戶的APP,也有面向企業內部的APP。
目前相對而言,在移動應用和互聯網應用方面,資本投入比較熱的風口,程序員的薪資較高。企業應用,發展了很多年,相對平穩。

2. 明白需求,實現需求
需求就是編寫程序的要求。一個程序要編寫成什麼樣子,具備哪些功能,都是由需求來具體說明。程序員要需要能看懂需求文檔,並且能准確地使用編程語言,根據需求中的要求來編寫成程序。企業開發的項目,往往會由該程序的架構師提供一個程序框架,程序員在該框架的規范下進行編程,實現需求的功能,以確保程序的規范、可讀,以及可維護性。

3. 日常工作寫程序
一個軟體開發一般流程是產品經理根據用戶需求做一個項目出來,然後UI設計師做一些圖片設計,前端開發編寫頁面,後台開發編寫核心編程,然後介入一些大數據和人工智慧,通過測試之類上線實施,後期還有運維進行相關維護。
程序員一般大多指的是前端和後台寫代碼程序的開發人員,除了編寫代碼,可能還需要通過介面和其它系統對接,實現系統間的數據交換。像單體測試,是程序員對自己寫好的程序單元進行測試,檢測這個程序單元數據輸入和數據輸出是否符合預期等等。測試出來的問題,需要修改正確,然後再測試,直至沒有問題。和同事共同開發的時候也需要聯合測試,以及用戶測試過後如果存在BUG繼續進行修改。

㈦ 程序員教你如何快速製作一個有漂亮大氣的網站

像我這樣的程序員來說經常被設計這個詞嚇到,因為我是一名程序員而不是設計師,雖然只是一名程序員,但我還是想讓自己的網站看起來更加吸引人。雖然比不上真正由設計師操刀做出來的效果,但對像我這種沒有設計能力的人來說還是很有幫助的。可是程序員如何快速製作一個漂亮大氣的網站呢?一、色調在有著設計師存在網站,設計師都會負責進行網站色調的調整,為了保證網站的一致性,所有按鈕和導航一般是三到四種顏色。 二、紋理知道如何讓一個網站看起來更加高雅優雅一些嗎?是的,紋理。但是這些紋理效果應該去哪裡尋找呢?設計師Atle Mo 的Subtle Patterns網站是個不錯的去處,我們接下來就使用這個網站上的Cream Dust紋理。點擊下載,將紋理圖片保存到本地,然後放到根目錄下的/img/ 目錄文件夾中,最後到CSS 樣式表中加入代碼body { background: url (/img/cream_st.png) repeat 0 0;} 即可。 三、字體修改網頁字體是讓網站看起來更有特色、有現代感的捷徑,我們可以去谷歌的字體服務(免費正版)中隨意挑選自己喜歡的字體,但是要注意字體間的搭配。 在網頁頭部中加入此代碼:在CSS 樣式表custom.css 中加入以下代碼:h1, h2, h3, h4, h5, h6 {font-family: 'Corben',Georgia, Times, serif;} p, div {font-family: 'Nobile',Helvetica, Arial, sans-serif;} 添加完後刷新即可查看效果了,現在我們的網站樣式已經變了,看起來比默認好多了。此外,除了谷歌的字體服務外還可以使用像Fontdeck或Typekit字體服務,它們的字體更多。 四、背景圖片 首先需要下載背景圖片,然後放到/img/ 文件目錄中去。1、將此圖片設置為的背景圖(background-image): $.backstretch (/img/winter.jpg);2、加入背景圖後網頁主題部分會產生遮擋,所以可以讓其透明,這樣網站效果看起來會更加現代、有設計感。這里可以使用這個技巧將網站變得透明,代碼見右邊,.container-narrow {background: url (/img/cream_st_transparent.png) repeat 0 0;}五、CSS將上面都搞定後接下來要做的就是再加點CSS特效了,如果時間不夠的話簡單的添加上盒陰影box-shadow和字體陰影text-shadow就可以讓網站增色不少,CSS 代碼如下。 h1 { text-shadow: 1px 1px 1px #ccc; } .div-that-you want-to-stand-out { box-shadow: 0 0 1em 1em #ccc; } 如果經歷過了上面所說的流程的話,相信你已經可以在比較短的時間內製作出了一個還能拿得出手的網站了。

㈧ 程序員製作教程時有很多圖(不是流程圖),一版都是用什麼工具做的呢

低級一點word就可以,稍微高級一點可以用 visio 也是 ms出品的

㈨ 要成為一名專業的程序員,從零開始需要怎麼一步步來比較好,要把最底層的先學精通嗎(個人認為)求學長

前言
你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)
建議:
不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少10年通用。
回顧一下歷史,看看歷史上時間線上技術的發展,你才能明白明天會是什麼樣。
一定要動手,例子不管多麼簡單,建議至少自己手敲一遍看看是否理解了里頭的細枝末節。
一定要學會思考,思考為什麼要這樣,而不是那樣。還要舉一反三地思考。
註:你也許會很奇怪為什麼下面的東西很偏Unix/linux,這是因為我覺得Windows下的編程可能會在未來很沒有前途,原因如下:
現在的用戶界面幾乎被兩個東西主宰了,1)Web,2)移動設備iOS或Android。Windows的圖形界面不吃香了。
越來越多的企業在用成本低性能高的Linux和各種開源技術來構架其系統,Windows的成本太高了。
微軟的東西變得太快了,很不持久,他們完全是在玩弄程序員。詳情參見《Windows編程革命史》
所以,我個人認為以後的趨勢是前端是Web+移動,後端是Linux+開源。開發這邊基本上沒Windows什麼事。
啟蒙入門
1、 學習一門腳本語言,例如Python/Ruby
可以讓你擺脫對底層語言的恐懼感,腳本語言可以讓你很快開發出能用得上的小程序。實踐項目:
處理文本文件,或者csv (關鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
遍歷本地文件系統 (sys, os, path),例如寫一個程序統計一個目錄下所有文件大小並按各種條件排序並保存結果
跟資料庫打交道 (python sqlite),寫一個小腳本統計資料庫里條目數量
學會用各種print之類簡單粗暴的方式進行調試
學會用Google (phrase, domain, use reader to follow tech blogs)
為什麼要學腳本語言,因為他們實在是太方便了,很多時候我們需要寫點小工具或是腳本來幫我們解決問題,你就會發現正規的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,學會如何配置代碼補全,外觀,外部命令等。
Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日誌會更快更有效率。
3、 熟悉Unix/Linux Shell和常見的命令行
如果你用windows,至少學會用虛擬機里的linux, vmware player是免費的,裝個Ubuntu吧
一定要少用少用圖形界面。
學會使用man來查看幫助
文件系統結構和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
學會使用一些文本操作命令 sed/awk/grep/tail/less/more …
學會使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目錄下的各種配置文章,學會查看/var/log下的系統日誌,以及/proc下的系統運行信息
了解正則表達式,使用正則表達式來查找文件。
對於程序員來說Unix/Linux比Windows簡單多了。(參看我四年前CSDN的博文《其實Unix很簡單》)學會使用Unix/Linux你會發現圖形界面在某些時候實在是太難用了,相當地相當地降低工作效率。
4、 學習Web基礎(HTML/CSS/JS) + 伺服器端技術 (LAMP)
未來必然是Web的世界,學習WEB基礎的最佳網站是W3School。
學習HTML基本語法
學習CSS如何選中HTML元素並應用一些基本樣式(關鍵詞:box model)
學會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網頁結構,並動態修改。
學習使用Javascript操縱HTML元件。理解DOM和動態網頁(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 網上有免費的章節,足夠用了。或參看 DOM 。
學會用 Firefox + Firebug 或 chrome 調試Javascript代碼(設置斷點,查看變數,性能,控制台等)
在一台機器上配置Apache 或 Nginx
學習PHP,讓後台PHP和前台HTML進行數據交互,對伺服器相應瀏覽器請求形成初步認識。實現一個表單提交和反顯的功能。
把PHP連接本地或者遠程資料庫 MySQL(MySQL 和 SQL現學現用夠了)
跟完一個名校的網路編程課程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要覺得需要多於一學期時間,大學生是全職一學期選3-5門課,你業余時間一定可以跟上
學習一個javascript庫(例如jQuery 或 ExtJS)+ Ajax (非同步讀入一個伺服器端圖片或者資料庫內容)+JSON數據格式。
HTTP: The Definitive Guide 讀完前4章你就明白你每天上網用瀏覽器的時候發生的事情了(proxy, gateway, browsers)
做個小網站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網站。
進階加深
1、 C語言和操作系統調用
重新學C語言,理解指針和內存模型,用C語言實現一下各種經典的演算法和數據結構。推薦《計算機程序設計藝術》、《演算法導論》和《編程珠璣》。
學習(麻省理工免費課程)計算機科學和編程導論
學習(麻省理工免費課程)C語言內存管理
學習Unix/Linux系統調用(Unix高級環境編程),,了解系統層面的東西。
用這些系統知識操作一下文件系統,用戶(實現一個可以拷貝目錄樹的小程序)
用fork/wait/waitpid寫一個多進程的程序,用pthread寫一個多線程帶同步或互斥的程序。多進程多進程購票的程序。
用signal/kill/raise/alarm/pause/sigprocmask實現一個多進程間的信號量通信的程序。
學會使用gcc和gdb來編程和調試程序(參看我的《用gdb調試程序》)
學會使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
IPC和Socket的東西可以放到高級中來實踐。
學習Windows SDK編程(Windows 程序設計 ,MFC程序設計)
寫一個窗口,了解WinMain/WinProcere,以及Windows的消息機制。
寫一些程序來操作Windows SDK中的資源文件或是各種圖形控制項,以及作圖的編程。
學習如何使用MSDN查看相關的SDK函數,各種WM_消息以及一些常式。
這本書中有很多常式,在實踐中請不要照抄,試著自己寫一個自己的常式。
不用太多於精通這些東西,因為GUI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:「 我覺得GUI確實不那麼熱門了,但充分理解GUI工作原理是很重要的。包括移動設備開發,如果沒有基礎知識仍然很吃力。或者說移動設備開發必須理解GUI工作,或者在win那邊學,或者在mac/iOS上學」。
2、學習Java
Java 的學習主要是看經典的Core Java 《Java 核心技術編程》和《Java編程思想》(有兩卷,我僅鏈了第一卷,足夠了,因為Java的圖形界面了解就可以了)
學習JDK,學會查閱Java API Doc Java Platform SE 6
了解一下Java這種虛擬機語言和C和Python語言在編譯和執行上的差別。從C、Java、Python思考一下「跨平台」這種技術。
學會使用IDE Eclipse,使用Eclipse 編譯,調試和開發Java程序。
建一個Tomcat的網站,嘗試一下JSP/Servlet/JDBC/MySQL的Web開發。把前面所說的那個PHP的小項目試著用JSP和Servlet實現一下。
3、Web的安全與架構

學習HTML5,網上有很多很多教程,以前酷殼也介紹過很多,我在這里就不羅列了。
學習Web開發的安全問題(參考新浪微博被攻擊的這個事,以及Ruby的這篇文章)
學習HTTP Server的rewrite機制,Nginx的反向代理機制,fast-cgi(如:PHP-FPM)
學習Web的靜態頁面緩存技術。
學習Web的非同步工作流處理,數據Cache,數據分區,負載均衡,水平擴展的構架。
實踐任務:
使用HTML5的canvas 製作一些Web動畫。
嘗試在前面開發過的那個Web應用中進行SQL注入,JS注入,以及XSS攻擊。
把前面開發過的那個Web應用改成構造在Nginx + PHP-FPM + 靜態頁面緩存的網站
4、學習關系型資料庫
你可以安裝MSSQLServer或MySQL來學習資料庫。
學習教科書里資料庫設計的那幾個範式,1NF,2NF,3NF,……
學習資料庫的存過,觸發器,視圖,建索引,游標等。
學習SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
學習如何優化資料庫查詢(參看《MySQL的優化》)
實踐任務:設計一個論壇的資料庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評論最多的文章,最活躍用戶。
5、一些開發工具
學會使用SVN或Git來管理程序版本。
學會使用JUnit來對Java進行單元測試。
學習C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關C語言非常簡單的文章——《編程修養》,這樣的東西你可以上網查一下,一大堆)。
推薦閱讀《代碼大全》《重構》《代碼整潔之道》
高級深入
1、C++ / Java 和面向對象
我個人以為學好C++,Java也就是舉手之勞。但是C++的學習曲線相當的陡。不過,我覺得C++是最需要學好的語言了。參看兩篇趣文「C++學習信心圖」 和「21天學好C++」
學習(麻省理工免費課程)C++面向對象編程
讀我的 「如何學好C++」中所推薦的那些書至少兩遍以上(如果你對C++的理解能夠深入到像我所寫的《C++虛函數表解析》或是《C++對象內存存局(上)(下)》,或是《C/C++返回內部靜態成員的陷阱》那就非常不錯了)
然後反思為什麼C++要干成這樣,Java則不是?你一定要學會對比C++和Java的不同。比如,Java中的初始化,垃圾回收,介面,異常,虛函數,等等。
實踐任務:
用C++實現一個BigInt,支持128位的整形的加減乘除的操作。
用C++封裝一個數據結構的容量,比如hash table。
用C++封裝並實現一個智能指針(一定要使用模板)。
《設計模式》必需一讀,兩遍以上,思考一下,這23個模式的應用場景。主要是兩點:1)鍾愛組合而不是繼承,2)鍾愛介面而不是實現。(也推薦《深入淺出設計模式》)
實踐任務:
使用工廠模式實現一個內存池。
使用策略模式製做一個類其可以把文本文件進行左對齊,右對齊和中對齊。
使用命令模式實現一個命令行計算器,並支持undo和redo。
使用修飾模式實現一個酒店的房間價格訂價策略——旺季,服務,VIP、旅行團、等影響價格的因素。
學習STL的用法和其設計概念 - 容器,演算法,迭代器,函數子。如果可能,請讀一下其源碼
實踐任務:嘗試使用面向對象、STL,設計模式、和WindowsSDK圖形編程的各種技能
做一個貪吃蛇或是俄羅斯方塊的游戲。支持不同的級別和難度。
做一個文件瀏覽器,可以瀏覽目錄下的文件,並可以對不同的文件有不同的操作,文本文件可以打開編輯,執行文件則執行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
學習C++的一些類庫的設計,如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能會太難了,但是如果你能了解其中的設計模式和設計那就太好了,如果你能深入到我寫的《STL string類的寫時拷貝技術》那就非常不錯了,ACE需要很強在的系統知識,參見後面的「加強對系統的了解」)
Java是真正的面向對象的語言,Java的設計模式多得不能再多,也是用來學習面向對象的設計模式的最佳語言了(參看Java中的設計模式)。
推薦閱讀《Effective Java》 and 《Java解惑》
學習Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學習Java的設計,如IoC等。
Java的技術也是爛多,重點學習J2EE架構以及JMS, RMI, 等消息傳遞和遠程調用的技術。
學習使用Java做Web Service (官方教程在這里)
實踐任務: 嘗試在Spring或Hibernate框架下構建一個有網路的Web Service的遠程調用程序,並可以在兩個Service中通過JMS傳遞消息。
C++和Java都不是能在短時間內能學好的,C++玩是的深,Java玩的是廣,我建議兩者選一個。我個人的學習經歷是:
深究C++(我深究C/C++了十來年了)
學習Java的各種設計模式。
2、加強系統了解
重要閱讀下面的幾本書:
《Unix編程藝術》了解Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗。你一定會有一種醍醐灌頂的感覺。
《Unix網路編程卷1,套接字》這是一本看完你就明白網路編程的書。重要注意TCP、UDP,以及多路復用的系統調用select/poll/epoll的差別。
《TCP/IP詳解 卷1:協議》- 這是一本看完後你就可以當網路黑客的書。了解乙太網的的運作原理,了解TCP/IP的協議,運作原理以及如何TCP的調優。
實踐任務:
理解什麼是阻塞(同步IO),非阻塞(非同步IO),多路復用(select, poll, epoll)的IO技術。
寫一個網路聊天程序,有聊天伺服器和多個聊天客戶端(服務端用UDP對部分或所有的的聊天客戶端進Multicast或Broadcast)。
寫一個簡易的HTTP伺服器。
《Unix網路編程卷2,進程間通信》信號量,管道,共享內存,消息等各種IPC…… 這些技術好像有點老掉牙了,不過還是值得了解。
實踐任務:
主要實踐各種IPC進程序通信的方法。
嘗試寫一個管道程序,父子進程通過管道交換數據。
嘗試寫一個共享內存的程序,兩個進程通過共享內存交換一個C的結構體數組。
學習《Windows核心編程》一書。把CreateProcess,Windows線程、線程調度、線程同步(Event, 信號量,互斥量)、非同步I/O,內存管理,DLL,這幾大塊搞精通。
實踐任務:使用CreateProcess啟動一個記事本或IE,並監控該程序的運行。把前面寫過的那個簡易的HTTP服務用線程池實現一下。寫一個DLL的鉤子程序監控指定窗口的關閉事件,或是記錄某個窗口的按鍵。
有了多線程、多進程通信,TCP/IP,套接字,C++和設計模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP伺服器(帶線程池)
實踐任務:通過以上的所有知識,嘗試
寫一個服務端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁碟I/O和網路I/O可能會很有問題,想一想怎麼解決,另外,請注意網路傳輸最大單元MTU)
了解BT下載的工作原理,用多進程的方式模擬BT下載的原理。
3、系統架構
負載均衡。HASH式的,純動態式的。(可以到Google學術里搜一些關於負載均衡的文章讀讀)
多層分布式系統 – 客戶端服務結點層、計算結點層、數據cache層,數據層。J2EE是經典的多層結構。
CDN系統 – 就近訪問,內容邊緣化。
P2P式系統,研究一下BT和電驢的演算法。比如:DHT演算法。
伺服器備份,雙機備份系統(Live-Standby和Live-Live系統),兩台機器如何通過心跳監測對方?集群主結點備份。
虛擬化技術,使用這個技術,可以把操作系統當應用程序一下切換或重新配置和部署。
學習Thrift,二進制的高性能的通訊中間件,支持數據(對象)序列化和多種類型的RPC服務。
學習Hadoop。Hadoop框架中最核心的設計就是:MapRece和HDFS。MapRece的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapRece就是「任務的分解與結果的匯總」。HDFS是Hadoop分布式文件系統(Hadoop Distributed File System)的縮寫,為分布式計算存儲提供了底層支持。
了解NoSQL資料庫(有人說可能是一個過渡炒作的技術),不過因為超大規模以及高並發的純動態型網站日漸成為主流,而SNS類網站在數據存取過程中有著實時性等剛性需求,這使得目前NoSQL資料庫慢慢成了人們所關注的焦點,並大有成為取代關系型資料庫而成為未來主流數據存儲模式的趨勢。當前NoSQL資料庫很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

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

首要之首:不要急於選擇一種語言 新手們有一個常見的錯誤就是猶豫於判斷哪種編程語言是做好的、最該先學的。 我們有很多的選擇,但你不能說那種語言「最好」。 我們應該理解:說到底,什麼語言並不重要。 重要的是理解數據結構、控制邏輯和設計模式。 任何一種語言—甚至一種簡單的腳本語言—都會具有所有編程語言都共有的各種特徵,也就是說各種語言是貫通的。 我正在攻讀我的計算機學學位,我編程使用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「程序(註:可能需要代理才能看這個視頻)。 耐心,刻苦,嘗試,失敗 好的程序員都有一個不達目的誓不罷休的品質,他們會驚喜於通過長期推敲和失敗換來的一點成績。 學會編程會有很好的回報的,但是學習的過程可能會是飽受挫折和孤獨的。 如果有可能,最好找個伴一起陪你做這件事。 想精通編程,這和其他事情一樣,需要堅持,反復嘗試,獲得更多的經驗。

閱讀全文

與程序員製作方法相關的資料

熱點內容
遵義聯通伺服器地址是什麼 瀏覽:29
ansys約束命令流 瀏覽:814
解壓軟體電腦版如何下載 瀏覽:791
閃電匕首演算法球 瀏覽:692
linuxredis停止命令 瀏覽:670
大麥賬號怎麼加密 瀏覽:113
穿越火線怎麼找伺服器 瀏覽:526
秘密加密社交軟體app 瀏覽:256
c語言編譯器怎麼找文件 瀏覽:835
數學不好能編程嗎 瀏覽:254
微雲里的視頻加密 瀏覽:41
3大加密貨幣交易平台 瀏覽:647
鈑金激光切割機編程 瀏覽:496
vivo手機手電筒app在哪裡 瀏覽:787
單片機晶振電路電容 瀏覽:887
穿越火線河南一區伺服器雲主機 瀏覽:41
文件夾與快捷方式顯示一致 瀏覽:879
幻影伺服器怎麼看金錢 瀏覽:349
小米手機怎麼用app減肥 瀏覽:893
本機如何與雲伺服器互通 瀏覽:652