導航:首頁 > 程序命令 > 程序員修養教程

程序員修養教程

發布時間:2023-05-31 08:35:21

『壹』 成為優秀程序員的十個有效方法

如何快速成為一個優秀的程序員?


優秀的程序員是在穿過一條單行道的時候還會往兩邊看的人。


作為一個IT行業的軟體程序員,每天驅使我們日復一日的辛勤工作的,是來自我們對編程的興趣和激情。但是要讓編程變得始終有趣,我們必須學會堅持某些成為優秀程序員的基本原則。


我並不是要寫出一些咒語,你照著執行就可以成為一個優秀程序員了。我的目的是想記錄下我學習到的和用過的一些有用的經驗,它們幫助我獲得比較好的結果。對於優秀程序員是沒有明確定義的,這里北大青鳥web前端培訓專家(web.te.cn)指的是那些創造出了優秀IT解決方案的以及幫助這個行業增長的那些人。


對於任何行業任何工作來說,融會貫通是獲得成功的關鍵。一個人想要成為優秀程序員,就必須有堅實的基礎。核心理念的理解會幫助你用最好的方法設計和實施出最完美的方案。如果你感覺到不能掌握核心的計算機科學或者某個編程語言的知識點,現在開始回顧基礎一點都不晚。


1.開始為你寫過的代碼貼上標簽(怎麼做,做什麼)


我發現優秀的程序員和普通程序員漏森之間有一條明顯的分界線,優秀程序員渴望深究每行代碼做了些什麼,以及如何實現的。有那麼一小群人,他們一定要弄懂每一行代碼。我知道如果時間非常緊張的時候,我們經常不能夠遵循這個原則,僅僅寫出些代碼,知道它實現了需要的功能。如何處理這種情況又是另外一個話題,但是作為一個程序員,我們經常要盡可能深入探索。相信我,隨著時間的推移這會變成一個習慣,之後每次你都會不知不覺的這樣做了。


2.幫助他人,你可以學到更多


許多人都有個共同特點,只有當他需要幫助的時候,他才會求助於論壇或者群。優秀程序員不同之處在於他們會經常瀏覽論壇去幫助他人。相比較於靠別人幫助解決問題,他們幫助他人讓自己學到更多。在一個團隊中也是一樣,幫助他人解決問題收獲更多。相信我,了解他人的問題,思考並最終提供解決方案吧,你會比之前學到的更多。


3.寫簡單易懂,有邏輯性的代碼


正如KISS原則(保持短小精悍)適用於生活的方方面面一樣,它也適用於編程。盡量寫有邏輯的代碼,避免復雜化。有時人們寫復雜的代碼僅僅是為了展示他們有能力寫出這樣的代碼。我的經驗告訴我,簡單而富有邏輯的代碼非常的好,會產生的問題更少,也更容易擴展。我記得一句話:


好的代碼本身就是最好的文檔。當你想要加註釋的時候,問問你自己,「我能如何改進我的代碼,才能不寫注釋也讀得懂呢?」


4.花更多的時候分析問題,你將會花更少時間去解決問題


花更多的時間理解和分析問題,然後再設計方案吧。你會發現剩下的事情很容易了。設計不是說要用建模語言和工具,可以是僅僅看看天空在腦子里構思。那些在遇到問題就開始敲代碼的人往往會最終偏離需求。


如果你洗澡的時候不能理清整個程序的結構,那麼你還沒准備好開始編程。_RichardPattis


5.成為第一個檢查你的代碼的人


雖然有一點點難,但試著在其他人修改你代碼之前修改它,隨著時間的推移,你會寫出幾乎沒有bug的代碼。對你的代碼做沒有任何偏見的檢查,也不要猶豫讓其他人來檢查你的代碼。和其他優秀的程序員一起工作,接受他們的意見能夠幫助你也成長為一個優秀的程序員。


6.不要迷失在快速更迭的科技世界


在IT行業中,我經常遇見許多人,他們對現在的工作不滿,甚至離開它去追尋新的工作,理由是因為他們想要學習最新的科技。我們每天聽到的都是新工具、介面、框架,能讓程序更簡單,速度更快。這在科技世界中司空見慣並會一直如此。但是最基本的最核心的科技變化比那些框架、工具和介面的變化小得多襪尺。就像大海,大海表面上波濤翻滾,但大海深處卻相當平靜,而那裡才是水生生物生存的地方。所以將你自己置身於核心技術的大海深處吧。舉個例子,在java企業級應用中,每個星期都會返好畝出現新的框架,但是核心的技術是不變的,譬如基於客戶端-伺服器端的請求,MVS模式,filters/servlets/JSP,數據源綁定,XML解析等等。所以要花功夫去學習核心概念,而不是去擔憂日新月異的框架和工具的出現。相信我,有了核心技術的基礎,你會發現學習新的框架,工具以及介面變得更容易了。


7.應急方案不會持續很長時間


很多時候軟體師們會採用應急方案(可能是時間不夠,可能是問題理解不透徹或者是缺少經驗)。但是這樣往往帶來的結果是,代碼混亂,缺乏可擴展性和維護性,後來浪費了更多的時間。請在你清楚整個方案後再開始實施。我知道有些情況下應急方案無可避免,就好像,一個人應該說實話,但是你在某些情況下不得不說謊。


8.閱讀文檔


閱讀很多文檔是作為優秀程序員的必備習慣之一。可能是產品說明書、JSR、API文檔、教程等。閱讀文檔幫助你獲得必要的基礎知識,寫出更好的代碼。


9.你可以學習他人的代碼


我接觸過一些優秀的程序員,他們在IDE裡面一直放著JAVA源代碼,並經常在日常工作中閱讀和查閱。他們這樣做不僅是滿足求知的渴望,還從中學習了如何寫優秀的程序。閱讀和查閱那些你認為可靠的出名的開源代碼或者比你資深的程序員的代碼,你會寫出更棒的程序。


最後,我想說的但沒有將其列在上面的:不要和他人比較


和他人的比較往往會造成消極的情緒和不健康的競爭。每個人都有他的長處和短處。揚長避短很重要。我也經常看到一些基礎很厲害的程序員范很低級的錯誤。所以僅僅和自己比較,列舉你自己需要改進的地方,並持續改進它。編程是很有意思的事情,享受它吧。


任何一個傻瓜都能寫出計算機能理解的程序,而優秀的程序員卻能寫出別人能讀得懂的程序。

『貳』 作為一個程序員,有哪些職業自我修養呢

保持對代碼的熱情,持續學習
從現實工作的角度考慮,這可能不是最重要的一條,畢竟持續學習這類話,已經老生常談到快厭煩的地步了。比起學習,可能在每個寫過的類裡面加上你的注釋,甚至包括姓名還有聯系方法更實用些。但我想說的是,保持對本行業持續熱情,並不斷學習,應該是每個從業者最基本的素養,而對於程序員來講,就是保持對代碼的熱情。
當然,這里的保持熱情、不斷學習,並不是一句空話,而是要真正做到的。從長遠角度講,只有不斷提升自己的專業技能,才能更好的應付將來對本職工作提出的新的要求。同時,對於自己來講,也只有不斷學習,才能讓自己時刻保持出色的競爭力。
養成良好的工作習慣
從編程本身來講,盡量寫出邏輯嚴密的代碼,多寫注釋,少留bug,不要給後人挖坑,經常做代碼評審(code review)和代碼重構(code refactoring)。一個好的編程習慣可以提高效率、減少重復工作等等。從職場溝通角度來講,養成即時反饋,定時匯報的工作習慣,可以避免因為溝通不暢導致多走許多彎路。
因此,對於一個程序員來講,養成一個良好的工作習慣,也因該是作為一個程序員的基本自我職業修養。(高中上完想學電腦編程,電腦編程培訓多少錢)
及時調整心態的能力
大多數程序員的工作,都是項目制的。在項目期間,996甚至007都是常態,因此可能會有比較大的壓力。同時,在項目實施過程中,遇到挫折也要及時調整心態重整旗鼓。所以,作為一名碼農,也要有及時調整心態的能力。

『叄』 程序員入門應該怎麼學

如果是想通過自學的方式、而不是上外面的各種培訓班的方式來學習編寫程序的話(在這里以 C 語言為例),那麼最、最簡單易行的方法就是:在自己的 WINDOWS XP 系統下面,安裝一個 Microsoft Visual Studio C++ V6.0 編程環境。然後再購買一本難度適合自己的 C 語言教材,按照教材上面的每一章例題、以及每一章後面的練習題,親自把書上的每一個源程序輸入到電腦中,親自上機編譯、體會、調試通過、並運行每一個源程序。只有這樣,你的編程水平才能夠在一個較短的時間內,有一個較大的提高。

但是在這里有一個問題必須要注意的就是:任何一種高級語言(C、C++、python、JAVA等)都只不過是一種編程工具而已,如果將來希望能夠勝任大型軟體開發工作,那麼還必須要學習計算機軟體專業的相關課程,例如:計算機操作系統、數據結構(各種排序演算法、以及查找演算法)、計算機演算法及其復雜性分析、各種數學知識(主要用於在大型的軟體項目中進行數學建模)等。否則的話,即使掌握了高級語言的編程,那也只能夠編寫一些小程序,絕對無法勝任大型軟體的開發工作。

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

前言
你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)
建議:
不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少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等。

『伍』 電腦程序員怎麼學

計算機編程的學習過程雖然具有一定的難度,但是只要有一個系統的學習規劃,大部分人都能學得會。對於初學者來說,可以按照以下步驟完成編程入門:

第一:選擇一門編程語言。雖然目前編程語言有600種左右,但是比較流行的編程語言只有幾十種,所以盡量選擇流行程度比較高的編程語言來入門編程。對於沒有明確編程場景的初學者來說,盡量選擇全場景編程語言,比如Java、Python、C#等就是不錯的選擇,不僅應用范圍廣泛,而且也有大量的開發案例可以參考學習。

第二:建立基本的編程思想。編程語言本身的難度並不高,只要掌握了相應的編程規則就能逐漸建立起自己的編程思想。建立編程思想的第一步是了解編程語言的基本語法規則,以Java語言為例,要掌握各種抽象概念,比如類、對象、屬性、方法等;第二步是了解基本的編程過程,比如類的定義、對象的創建、方法的調用;第三步是學習經典的編程模式。

第三:注重實驗。學習編程語言一定要重視實驗,實驗不僅能夠幫助理解各種抽象概念,也能在一定程度上積累編程經驗。

最後,在學習編程語言的過程中,也需要同時學習計算機網路、資料庫等相關知識,在當前的雲計算和大數據時代背景下,還需要掌握如何通過雲計算(PaaS)來輔助開發,以及如何利用大數據平台的各種資源。

『陸』 程序員的必要修養有哪些

一、注意細節,尤其是最小的細節
「差不多」、「很接近」是只能在做馬蹄鐵時用的詞,在軟體開發中,95%的正確仍然是不能用,一個「差不多」能用方法或一個使圖片很「接近」居中的CSS樣式都是不合格、不能用的。這剩下的5%對於整個軟體的有效性十分重要,能造成完全相反的結果。
二、 學無止境
起初這句話聽起來會很迷人,你會很喜歡!我喜歡學習新事物!尤其是當你來自於一個無聊的工作或像釘馬掌這樣永遠不變的事情時。然而,經過了一段時間後,你會發現,這變成了一條永不停息的知識河流,如果你不喜歡水,你會感覺困在了無盡無邊的知識瀑布前,無法停止,也無法窮盡。我每天大概有學到10-20種新的東西,我喜歡這些!我的弟弟卻希望事情永遠不會變化,始終如一,他對我說他永遠都不願意去學編程。
三、 面對壓力、緊張和限定期限
沒錯,每個人都喜歡使用軟體,但你喜歡面對任務的最後期限和最終目標嗎?需要什麼時候完成?做完這些要花多少時間?我們能在這段時間里完成更多的任務嗎?是否還記得要注意細節?你怎麼辦?急匆匆的完成?加班加點希望能多完成一些?在理想世界裡,編程是一個很有趣的活動,我們寫出代碼,讓它們完成很酷的事情,吃著批薩,喝著可樂。而在現實生活中,有的是壓力,雖然不是時刻都這樣,但事情會比那種做一個30分鍾的簡單在線輔導要不同的多。我喜歡挑戰我的極限,我渴望成長,變成一個更棒的程序員,所以我不介意。
你面對時間限制和工作壓力會怎樣?如果你想迴避這些壓力,那你將無法成為一名程序員。
四、有組織能力
我知道有些程序員的生活一塌糊塗,看起來他們似乎沒自我組織能力,但我說的不是這些,我是說管理好工作流程的能力。比如,能否迅速容易的在你的計算機里找到一個東西?我認識的優秀的程序員通常能迅速的定位一個需要的文件,能夠用工具或腳本幫他們處理繁雜的事物,這些都是高效的工作。
當你學到了一個新東西時,你是否把它寫下來?你是否喜歡想出辦法來替你完成那些重復的工作?你能很好的安排各種不同的任務嗎?
五、好奇心
當我還是十幾歲時,教堂里的一位夫人幾乎每月都會對我說一次,她說我應該停止問那麼多為什麼,她說這讓人討厭。雖然受了批評,最終我還是清楚的認識到,優秀的程序員總是在問「為什麼?」這個應用的工作原理是什麼?那個橫跨街道的建築是怎麼建起來的?程序員之間的對話聽起來總是像這樣開始的:「很奇怪他們為什麼要這樣做…?」以前我以為問這么多為什麼是很奇怪的表現,但現在我明白,至少是在軟體開發中,這是一個好的品質。
六、學習能力
我知道,很多的程序員都上過大學,出自高校的,但這不是我要說的。優秀的程序員總是在鑽研程序代碼和文檔,來弄清楚東西的工作原理,他們不會敲開老闆辦公室的們說:「我需要找專業老師,學習這款新軟體」。優秀的程序員在不斷的學習,不斷的靠自己研究出事情的原委——不論是有高學歷還是沒有學歷。
七、人際交往能力
這在程序員中不是一個普遍的特徵。真正優秀的程序員善於與人交往,但大多數程序員缺乏這些能力。如果你善於溝通,你的老闆、你的公司會非常喜歡你。而且,不要因為他們不會編碼就瞧不起他們。

『柒』 一個優秀的程序員必須學習什麼課程呢

一個優秀的程序員必須不斷學習的課程:
1、專業的的理論教程,系統的知識學習面。
要成為一名出色的程序員,從數據結構、演算法。資料庫都需要系統全面的了解和認識,並可以靈活運用。對自己所從事的編程語言要靈活調用。
2、不斷嘗試,樂於挑戰。
編程高手都是從不斷的失敗和嘗試中走出來的,所以對於一個剛入門的新手來說,任務就是不斷的去編程,發現自身存在的缺陷,以及更熟練的掌握各種數據介面的調試和數據調用的應用。
3、好學,不恥下問。
成功都是建立在無數次嘗試的基礎上的,同時也需要利用前輩們已經得出的一些規律,盡量的少走彎路。
4、保持良好的心態。
編程每天對著的都是一些枯燥的單詞以及數據,所以保持一個良好的心態是至關重要的,只有擁有一個良好的心態,才是端正自己學習和勤奮的根本。
5、善於從生活中發現需求。
每一個程序都是為了滿足網名的一種需求,所以發現網名的的需求,並把這種需求利用程序解決,可以極大的促進自己的職業發展。
6、擴大自己的視野。
編程的同時,我們也要緊跟時代的步伐,學習更多的前進的經驗以及技術,更好的為自己所用。
以上,可以總結為《一個優秀程序猿的自我修養》。

『捌』 程序員入門:如何自學編程_自學程序員怎麼入門

首要之首:不要急於選擇一種語言新手們有一個常見的錯誤就是猶豫於判斷哪明睜種編程語言是做好的、最該先學的

我們有很多的選擇,但你不能說那種語言「最好」

我們應該理解:說到底,什麼語言並不重要

重要的是理解數據結構、控制邏輯和設計模式

任何一種語言—甚至一種簡單的腳本語言—都會具有所有編程語言都共有的各種特徵,也就是說各種語言是貫通的

我正在攻讀我的計算機學學位,我編程使用Pascal,匯編,和C語言,事實上我從來沒有把它當成職業以求獲得回報

我一直在自學編程,工作上用不到它,我使用現有的知識,參考各種文檔和書本,學習它們的用法

因此,不要急於選擇何種編程語言

找出你想要開發的東西,使用一種能夠完成這項任務的語言,這就可以了

根據各種開發平台的不同,有很多不同的軟體開發形式可供你選擇:從網站應用到桌面軟體到智能手機軟體到命令行腳本工具

這篇文章里,我將重點介紹一些很受歡迎的入門教程和資源,它們能幫助你學會如何在各種主流的平台上編程開發

我先假設你是一個悟性很強的讀者,但對於新手,當我談論程序代碼時還是要按照入門級的水平

因為即使是你自己看一篇編程入門手冊,如果發現都能理解時,心情自然會很高興,這樣利於你進一步學習

桌面腳本想要動手在Windows里或蘋果系統里編程,最簡單的方法是從一種腳本語言或宏語言開始,例如AutoHotkey(Windows)或Automator(蘋果系統)

如今一些硬體程序員沖著他們的屏幕大喊大叫,說AHK和AppleScript並不是「真正」的編程語言

也許他們說的是對的—技術上,這些種類的語言只能做一些上層的編程

但是對於那些只是想來脫盲、想在他們的電腦里實現一些能自動運行的程序的新手來說,這些語言會是一個絕妙的入門入口—而且你會吃驚於它們豐富的功能

例如,大家都喜愛的Texter就是Adam使用AutoHotkey開發的能獨立運行的Windows應用程序,所以說這種腳本語言遠不是只能開發小規模腳本軟體

如果你想從AutoHotkey入手,可以參考Adam的指導:(然後,你可以下基亂載Texter源代碼看看這個功能齊全的使用AHK開發的Windows應用程序的內部結構)

Web開發HTML和CSS:開發網站,你第一件要知道的事情就是HTML(網頁就是由它組成的)和CSS(一種讓外觀更好看的樣式標記)

HTML和CSS並不是編程語言—它們只是頁面的結構和樣式信息

然而,在開始開發web應用程序之前你必須要學會如何手工的編寫簡單的HTML和CSS,web頁面是任何webapp的前端顯示部分

這個HTML指導是你入手的好地方

JavaScript:當你可以通過HTML和CSS構建一個靜態頁面後,事情就開始變得有趣了—因為到了該學JavaScript的時候了

JavaScript是一種web瀏覽器上的編程語言,它的魔力就是能在頁面里製造一些動態效果

JavaScript可以做,腳本,和Ajax,所以它是web上各種好東西的關於因素

學習JavaScript從這里開

伺服器端腳本:一旦你學會了網頁里的知識,你就要開始對它添加一些動態伺服器操作—為了實現這些,你需要把目光轉移到伺服器端腳本語言,例如PHP,Python,Perl,或Ruby

舉個例子,如果想要製作一個網頁形式的聯系方式表單,根據用戶的輸入發送郵件,你就需要使用伺服器端腳本來實現

像PHP這樣的腳本語言可以讓你跟web伺服器上的資料庫進行溝通,所以如果你想搭建一個用戶可以登錄注冊的網站,這樣的語言正是你需要的

Webmonkey是一個優秀的web開發資源網站,裡面有大量的各種web編程語言的指導手冊

閱讀一下他們的PHP初學者指南

當你感覺差不多了的時候,看看WebMonkey』sPHPandMySQLtutorial學習如何使用PHP跟資料庫交互

網上最好的要數PHP語言官方的在線文檔和函數參考了

每個知識點上(例如strlenfunction這個)都在後面列出來用戶的評論注釋,這些對於文檔的本身是非常有價值的

(我很喜歡PHP,但還有很多其他種伺服器端的腳本語言你們都可以選擇

)Web框架:過去數搏槐檔年裡,web開發人員在開發動態網站的過程中不得不一遍又一遍的針對重復遇到的問題寫出重復的代碼

為了避免這種每次開發一些新網站都會重復勞動一次的問題,一些程序員動手搭建了一些框架,讓框架替我們完成重復性的工作

非常流行的RubyonRails框架,作為一個例子,它利用Ruby編程語言,為我們提供了一個專門面向web的架構,普通的web應用程序都能使用它來完成

事實上,Adam使用Rails開發了他的第一個正式的(而且是嘆為觀止的!)web應用程序,MixTape

me

這就是他的如何在沒有任何經驗的情況下搭建一個網站

還有一些其他的web開發框架包括CakePHP(針對PHP編程者),Django(針對Python編程中),以及jQuery(針對JavaScript)

WebAPIs:API(應用層序編程介面)是指不同的軟體之間相互交換的程序途徑

例如,如果你想在你的網站上放一個動態的地圖,你可以使用GoogleMap,而不需要開發自己的地圖

TheGoogleMapsAPI可以輕松的讓你通過JavaScript在程序中引入一個地圖到你的頁面上

幾乎所有的現代的你所知道的和喜愛的web服務都提供了API,通過這些API你可以獲取到他們的數據和小工具,在你的應用程序里就可以使用這些交互過來的東西了,例如Twitter,Facebook,GoogleDocs,GoogleMaps,這個列表遠不止這些

通過API把其他web應用集成到你的web應用里是現在富web開發的前沿地帶

每個優秀的主流的web服務API都附帶有完整的文檔和一些快速入手的指導(例如,這個就是Twitter的)

瘋狂吧

命令行腳本如果你想開發一個程序,讓它讀取文字或文件、輸入輸出一些有用的東西,那麼,命令行腳本語言將是個不錯的選擇

然而它並不像web應用程序和桌面應用程序那樣有吸引力和好看的外觀,但是作為快速開發的腳本語言,你卻不能忽視它們

很多的在linux平台上運行的web腳本同樣能以命令行模式運行,例如Perl,Python和PHP,所以如果你學會了使用它們,你將能在兩種環境中使用它們

我的學習道路一直沒離開Perl太遠,我自學Python使用的是這本優秀的在線免費書DiveintoPython

如果成為一個Unix高手也是你學習的目標,那麼你絕對要精通bash這個腳本語言

Bash是Unix和Linux環境下的一種命令行腳本語言,它能夠為你做所以的事情:從自動備份資料庫腳本到功能齊全的用戶交互程序

起初我沒有任何使用bash腳本的經驗,但最終我用bash開發了一個全功能的個人代辦任務管理器:Todo

txtCLI

插件(Add-ons)如今的web應用程序和瀏覽器都可以通過一些擴展軟體來豐富自己的功能

由於一些現有的軟體,例如Firefox、WordPress越來越受到開發人員的關注,插件的開發也日益流行,人們都在說「ButifonlyitcoulddoTHIS」只要你掌握了HTML,JavaScript和CSS,你就可以在任何的瀏覽器里開發你想要的很多東西

,scripts,和Stylishuserstyles這些軟體都是用的更普通頁面一樣的語言寫成的,這幾個東西都值得你去研究一些

更高級的瀏覽器擴展程序,例如Firefox的擴展,它們可以幫助你很多

開發Firefox的擴展,舉個例子,需要你精通JavaScript和XML(一種標記語言,類似HTML,但具有更嚴格的格式)

早在2007年我就寫下來howtobuildaFirefoxextension,這是我在笨手笨腳的研究網上的一些學習資料後獲得的成果

很多免費的、受歡迎的web應用程序都提供了擴展框架,例如WordPress和MediaWiki

這些應用程序都是用PHP寫成的,所以只有對PHP熟悉你才能做這些事情

這個就是如何編寫WordPress插件

而想駕馭GoogleWave前沿技術的開發人員可以從使用HTML,JavaScript,Java,和Python寫小組件和小工具開始

我寫的第一個Wavebot是跟著這個一個下午時間的快速入門指導開始的

開發桌面上的Web應用程序學習編程最好的結果是你在一個環境下學的東西可以應用到另外的環境中

先學習開發web應用程序的好處就是我們有一些方法可以讓web應用程序直接在桌面上運行

例如,AdobeAIR是一個跨平台的即時運行平台,它能讓你編寫的程序運行在任何裝有AIR的操作系統的桌面上

AIR應用程序都是由HTML,Flash,或Flex寫成的,所以它能讓你的web程序在桌面環境中運行

AIR是開發部署桌面應用程序的一個優秀的選擇,就像我們提到過的10個讓你值得去安裝AIR的應用程序

移動應用開發能在iPhone或者Android智能手機上運行的手機應用程序的開發如今正呈現井噴之勢,所以你也可以夢想一下如何在iTunes應用商店裡通過你的天才程序大賺一筆

但是,作為一個編碼新手,直接奔向移動開發所經歷的學習曲線可能會很陡,因為它需要你熟悉高級的編程語言,例如Java和ObjectiveC

然而,你當然應該看看iPhone和Android編程究竟是什麼樣子的

閱讀這個簡單的iPhone應用開發例子可以初步認識一下iPhone程序的開發過程

Android程序都是由Java寫成的,這有一個簡單的視頻教程教你如何開發第一個」HelloAndroid「程序(註:可能需要代理才能看這個視頻)

耐心,刻苦,嘗試,失敗好的程序員都有一個不達目的誓不罷休的品質,他們會驚喜於通過長期推敲和失敗換來的一點成績

學會編程會有很好的回報的,但是學習的過程可能會是飽受挫折和孤獨的

如果有可能,最好找個伴一起陪你做這件事

想精通編程,這和其他事情一樣,需要堅持,反復嘗試,獲得更多的經驗

『玖』 如何自學成為程序員

問題一:如何自學成為初級程序員 [經驗之談]30歲,我的程序,我的夢!
程序人生 : 30歲,我的程序員夢想
作 者: redbridge (雪燃)
30歲,開始實現我的程序員夢,從一個編程愛好者,從一個業余的程序員,一個水平不高的程序員,一個半道出家的程序員......
我的經歷到這里就告一段落了,五年裡跳了五次槽,不知道和大家比算不算多J,沒有什麼太多起伏,但我想很多朋友可能會和我有類似的經歷,不知道能不能引起你們的共鳴。我想對我上面所說的話給一個總結:
1. 如果你覺得自己應該追求什麼,不管遇到什麼困難千萬不要放棄,一定要堅持下去。
2. 不要因為自己年輕就找理由揮霍時間,少玩一點SC、CS、魔獸3、傳奇、魔力或者…….,多看點書,多練練題。
3. 如果你還是在校的學生,英語很差,專業課也很差。沒關系,想怎麼學計算機就怎麼學計算機吧。其它地只要能混到畢業證就行了。除非你對自己的未來沒有信心。(當然,如果你的理想不僅僅是要做一個程序員,那你別丟掉英語。)
4. 如果你不是科班出身,想要轉行而不知該怎麼開始的話,建議你先看兩類書:(1)計算機原理;(2)數據結構和演算法。(看數據結構之前先看C語言)。
5. 什麼時候努力都不晚,關鍵是你明白要努力了,大器晚成總比一事無成要好的多。
6. Java、、C++、PB、VB、Delphi、匯編到底應該學哪個?我的經驗,哪碧鄭余個最簡單就先學哪個、公司用哪個你就學哪個、哪個和你有緣(比如剛好你認識一個願意幫助你的Delphi高手)你就學哪個,如果你都學,或者三天兩頭的換,我可以告訴你結果肯定是什麼都不會,不要心浮氣燥,他們都只是工具,學精一門其它的就相通了,重要的是掌握編程的思想。如果你問我面向對象(好像現在已經是面向需求了)、UML、WebLogic、WebService、軟體工程、XML…….應該怎麼學呀,對不起,這些我也確實不是都會,但請相信,你先實實在在的寫上十萬行以上的代碼以後,那些東西你自然就慢慢會了。
7. 不要以為程序員的工資都很高,程序員之間的水平差異也大。公司衡量一個人的待遇標準是他能給公司帶來多大的效益。如果你體現了自己的價值,公司會主動給你加薪的,當然你也可以自己主動提,但一定要在你表現出了自己的價值之後。
8. 輕易不要跳槽,如果非要跳,也要保持工作經驗上的延續,而不是從新開始,不叢喊然就會象我一樣走很多彎路。
9. 如果你以為程序員都是熬夜熬出來的,那麼你錯了,因為它的代價就是縮短你的青春!大家不要象我一樣,真的,熬夜一點也悔滾不好!記住老毛的話:如有恆,何須三更起,半夜眠;最怕莫,三天打魚兩天曬網,竹籃打水一場空!
10. 這一點是我覺得最精華的一點:「君子性非異也,善假於物也。」這句話的本意是一個水平很高的人本身並不一定很高明,關鍵是他善於利用別人的高明!我在這里做個借鑒,就是要充分利用自己身邊的資源,不放過任何一個可以提高自己的機會。大家不要誤會,這里的假於物可不是指抄襲別人的源代碼,而是指通過學習別人的源代碼把他的思想擴展到自己的思想里去。
註:上面的十大「精華」純屬我個人的「謬論」,您自己看著消化,有用的收下,沒用的請拖入「回收站」。如果你覺得這些總結不過是一些浮華之詞,那請你先問問自己:「是不是在行動上都真正做到了。」
這就是我,一個不算優秀,不算勤奮;玩能玩通宵,學也學能學通宵;對夢想的追求很執著;到了30才開始真正寫程序;一個很平凡但又不甘於平凡的人……我的經歷相信很多朋友都有過的,我現在也不能算是一個成功人士,但我相信我的經歷卻是值得大家借鑒的,因為我終究代表了一類人......>>

問題二:如何成為一名程序員? 首先先選擇一門語言 現在比較火的是sun公司的java 和微軟的C#
友情提示:java移植性很好,這是網路平台所需要的。C#只能運行在微軟的平台,有局限性。
我不排斥其他的計算機語言 不過一般只要學懂一門語言後就相當進入程序的天堂,在學其他的語言時候就能簡單的多,因為很多軟體語言是相同的,學懂一門就能夠看懂其他的。
買書,見意買比較薄的書開始學,太厚的書看不完會打擊心靈。
需要有耐心,其實是非常有耐心,因為學軟體做軟體是一輩子的,沒有任何一門技術能做到老,必須一路學下去。每當度過一個階段盡量總結所學過的。
一定要沉得住寂寞,無論是學軟體還是做軟體。
只要認真學,一般一年自學都可以有所小成,程度還要看個人的領悟。
做軟體是需要注意很多細節,正是這些細節所以讓人很頭疼,所以需要耐心。
順便提一句:學軟體就盡量學比較火的,因為市場需要,才會火。
我不是鄙視某某某語言,而是實話說,畢竟學出來需要應付工作的,如果工作不需要,就算學的很有本事,沒人雇也沒用,對吧!
你完全可以去招聘網看看軟體這個行業哪些軟體需要的人才多。
別聽誰誰誰說哪種語言火,火不火招聘的數量就能說明一切。
一定要對軟體充滿信心,千萬別輕易放棄。相信軟體是有「錢」途的。
本人現在也是在自學軟體,也有三年的學習。
以上是我一些經驗,如果有需要,可以按右下角Hi我,相互促進。

問題三:程序員能自學嗎? 首要之首:不要急於選擇一種語言新手們有一個常見的錯誤就是猶豫於判斷哪種編程語言是做好的、最該先學的。 我們有很多的選擇,但你不能說那種語言「最好」。 我們應該理解:說到底,什麼語言並不重要。 重要的是理解數據結構、控制邏輯和設計模式。 任何一種語言―甚至一種簡單的腳本語言―都會具有所有編程語言都共有的各種特徵,也就是說各種語言是貫通的。 我正在攻讀我的計算機學學位,我編程使用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, ......>>

問題四:如何成為一個程序員 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/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。熟知資料庫為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。對操作系統有一定的了解當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。懂得網路協議TCP/IP在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。

問題六:怎樣才能快速成為一名程序員 1 學習如何編程
這當然是最基本的黑客技術。如果你還不會任何計算機語言,我建議你從Python開始。它設計清晰,文檔齊全,對初學者很合適。盡管是一門很好的初級語言,它不僅僅只是個玩具。它非常強大,靈活,也適合做大型項目。
但是記住,如果你只會一門語言,你將不會達到黑客所要求的技術水平,甚至也不能達到一個普通程序員的水平---你需要學會如何以一個通用的方法思考編程問題,獨立於任何語言。要做一名真正的黑客,你需要學會如何在幾天內通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種不同的語言。
如果要做一些重要的編程,你將不得不學習C語言,Unix的核心語言。其他對黑客而言比較重要的語言包括Perl和LISP。 Perl很實用,值得一學;它被廣泛用於活動網頁和系統管理,因此即便你從不用Perl寫程序,至少也應該能讀懂它。 LISP 值得學習是因為當你最終掌握了它你會得到豐富的經驗;這些經驗使你在以後的日子裡成為一個更好的程序員,即使你實際上可能很少使用LISP本身。
當然,實際上你最好四種都會。 (Python, C, Perl, and LISP). 除了是最重要的四種基本語言,它們還代表了四種非常不同的編程方法,每種都會讓你受益非淺。
這里我無法完整地教會你如何編程---這是個復雜的活兒。但我可以告訴你,書本和課程也不能作到。幾乎所有最好的黑客都是自學成材的。真正能起作用的就是去親自讀代碼和寫代碼。
學習如何編程就象學慣用自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,又讀些,又寫點....如此往復,直到你達到自己在範文中看到的簡潔和力量。
過去找到好的代碼去讀是困難的,因為很少有大型程序的可用源代碼能讓新手練手。這種狀況已經得到了很大的改善;現在有很多可用的開放源碼軟體,編程工具和操作系統(全都有黑客寫成)。這使我們自然地來到第二個話題...
2 得到一個開放源碼的Unix並學會使用、運行它
我假設你已經擁有了一台個人計算機或者有一個可用的( 今天的孩子們真幸福 :-) )。新手們最基本的一步就是得到一份Linux或BSD-Unix,安裝在個人計算機上,並運行它。
當然,這世界上除了Unix還有其他操作系統。但它們都是以二進制形式發送的---你無法讀到它的源碼,更不可能修改它。嘗試在DOS或Windows的機器上學習黑客技術,就象是在腿上綁了鐵塊去學跳舞。
除此之外,Unix還是Internet的操作系統。你可以不知道Unix而學會用Internet,但不懂它你就無法成為一名Internet黑客。因為這個原因,今天的黑客文化在很大程度上是以Unix為中心的。(這點並不總是真的,一些很早的黑客對此很不高興,但Unix和Internet之間的共生關系已是如此之強,甚至連微軟也無可奈何)
So,裝一個Unix---我個人喜歡Linux,不過也有其他選擇。(你也可以在同一台機器上同時運行DOS,Windows和Linux)學會它。運行它。用它跟Internet對話。讀它的代碼。試著去修改他。你會得到比微軟操作系統上好的多的編程工具(包括C,Lisp, Python, and Perl),你會得到樂趣,並將學到比你想像的更多知識。
關於學習Unix的更多信息,請看 The Loginataka.
要得到Linux,請看: 哪裡能得到 Linux...>>

問題七:如果想成為一個程序員應該學習什麼知識 程序員需要學習程序的邏輯,其次是需要學習編程的語言,這才是最根本的,有了語言才能和計算機「溝通」
如果做一個專業的程序員:
1.基礎語言知識 :從底層的ASM 到結構化的C,到面向對象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一門
2.基礎數學知識: 高等數學(數學分析) 線性代數 離散數學,概率.數理統計等等
3.基礎計算機原理:操作系統原理,微機原理,編譯原理 資料庫原來等等

問題八:20歲如何通過自學成為一名程序員 努力追求,堅定自己的信心,一直堅持。
不要揮霍時間,少玩一點電腦大型網路游戲,多看點這方面的書,多練練這方面的題。
建議看兩類書:(1)計算機原理;(2)數據結構和演算法。(看數據結構之前先看C語言)。
java、、C++、pb、vb、Delphi、匯編里自己認為哪個最簡單就先學哪個,不要都學,也不要過一段時間換一個學,不要心浮氣燥,他們都只是工具,學精一門其它的就相通了,重要的是掌握編程的思想。
調整作息時間,不要總是熬夜,有一個好的身體是做任何事的前提。
懂得充分利用自己身邊的資源,不放過任何一個可以提高自己的機會。

問題九:怎樣自學成為程序員並進入微軟 微軟的官方網站上寫著我們期待具有獨創性、開拓性的智者加入隊伍,我們的面試程序也是為網羅這樣的人才專門設計。程序員只是具備了編程序的能力,微軟看中獨創性和開拓性。所以職業潛力更重要,獨創性需要一些人文要求,開拓性需要一些創業能力,而不完全是就業的能力。

問題十:怎麼才能成為一個優秀的程序員 優秀的程序員要具備很強的分析,和思維能力,我是一個Java JSP 的程序員,以我自己的感覺,程序員的理解能力要很強,因為我們做一個業務系統需要了解這個業務的邏輯,才可以去開發,至於學什麼語言,我覺得只要你可以精通一種語言,其他的你就都可以自學的。但是C除外。
至今我都不是很懂那個,我剛開始學的時候就是學的VB,但是我覺得可以直接學JAVA。搐可以選擇JAVA .NET C# 這都是現在很流行的。
如果你可以的話C是最好的。我們單位C的 開的工資是我們的幾倍。你要學一種語言,就必須先了解他的思想,所以你還是先看看理論上的東西吧。呵呵,其實程序員挺枯燥的,你要有思想准備哦。最大的困難就是你需要讓自己有恆心。

『拾』 Java程序員需要學習哪些基礎知識

現今時代java語言應用非常廣發,職位也很多薪資就跟不用說了高薪是肯定的,但是想要成為一名合格的java工程師基礎一定要打牢,有一句話不就是說根基不穩地動山搖的嗎。如果基礎不好時做不了一名合格的java工程師的。IT培訓告訴你Java程序員需要學習哪些基礎知識?

一、面向對象的知識:JAVA是一個面向對象的開發語言,因此熟悉面向對象對學習JAVA很有必要,您要了解:什麼是對象,什麼是類;什麼是封裝,什麼是多態,什麼是繼承;什麼是抽象類,什麼是介面。了解了概念後,您還需要這些概念是如何體現的,如類和對象有什麼區別態叢?類是如何封裝的?


二、JAVA語法:如果您有C++等面向對象語言的開發經驗,您只需簡單的翻看一下介紹JAVA的相關書籍就可以了。如果您是新手,沒有關系,您下些工夫,好好研究一本JAVA初級教程之類的書就可以了。


三、java主要學什麼JSP和HTML:做JAVA程序員都少不了和JSP以及HTML打交道。因此,想成為JAVA程序員就不可避免的要熟悉JSP和HTML,您最好能知道JSP的幾個內置對象,如Session,Request,Reponse,以及常用的JSP標簽,如include,userBean等。如果您再熟悉一下JS和CSS就更好了,那會使您製作的頁面更友好。


四、WebServer:熟悉了以氏枝上三種,可以肯定的說您已經可以製作出來JSP頁面了,您也可以在您的頁面里使用自己開發的了,但您的頁面總要跑起殲閉敏來才能看到您要的效果,這就要求您必須熟悉一種WebServer,比如:TOMCAT,RESIN等。您要熟悉如何發布您的應用,如何利用WebServer的資料庫資源等。


五、開發工具:大家都知道,開發工具可以幫助您更好更快地開發,因此熟悉幾種開發工具很有必要。目前JAVA的開發工具比較流行的有JBuilder,IDEA,Eclipse,HTML的開發工具有Dreamweaver等。


六、java主要學什麼熟悉一種框架:熟悉一種框架其實是成為JAVA程序員的一種可選知識,但目前開發B/S結構的應用的開發小組,都差不多會採用一種框架來構建自己的應用系統。框架都會有許多可重用的代碼,良好的層次關系和業務控制邏輯,基於框架的開發使你可以省出很多的開發成本。目前比較流行的框架有Struts和Spring等。


閱讀全文

與程序員修養教程相關的資料

熱點內容
android賽風 瀏覽:226
程序員面試經歷 瀏覽:983
蘋果怎麼設置app只用數據 瀏覽:855
學以為己pdf 瀏覽:231
為什麼安卓手機進步很大 瀏覽:342
mfc軟體加密 瀏覽:326
ubuntu上傳文件命令 瀏覽:712
合約馬丁格爾源碼 瀏覽:971
慕課文件夾名稱 瀏覽:671
用app國潮手帳怎麼做 瀏覽:254
解壓娛樂編輯器 瀏覽:615
wppdf 瀏覽:265
sshlinux文件下載 瀏覽:175
使用ping命令檢查網路問題 瀏覽:751
金手指文件放哪個文件夾 瀏覽:44
想創app軟體怎麼操作 瀏覽:201
為啥電腦總是顯示沒有文件夾 瀏覽:675
iphone顯示無法驗證app怎麼回事 瀏覽:968
推薦解壓好游戲 瀏覽:277
cpu伺服器過載怎麼辦 瀏覽:620