❶ 如何自學成為程序員
如何學習自學編程的方式最好的莫過於在網路上面查找資源。
目前,網路上電腦資源多不勝數。其中有很多都是基礎到精通的視頻教程。通過視頻講解。讓你明白重點知識。你通過查找一套適合自己的視頻。然後看完是基本。
這里推薦幾個可以在線學習的好網站:慕課、極客學院、傳智播客、如朋網、網易公開課等等做筆記在進行看視頻的過程中,一定注意要記筆記。
對視頻中重點的部分進行截圖,並加以文字解釋。就形成了自己的筆記。這些筆記對於你來說很重要。通過記筆記的形式,你就不需要重新觀看視頻了。只需要復習的時候查看筆記就夠了,這樣就大大的節約了時間。
下面介紹一個記筆記的好軟體:CherryTree多練習代碼在視頻中講解的代碼,我認為你至少需要自己寫三遍以上。在寫代碼的時候,就用到了上面寫的筆記了。通過看筆記截圖,即可自己慢慢摸索寫出來代碼。當然練習到一定程度,就需要你適當的做個項目。鞏固自己的知識。
程序員必備技能
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、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
❷ 如何成為程序員 自學編程的秘訣
你也許曾經想過要學習如何開發軟體或只是想臨時的寫出一個腳本但不知道如何入手。 幸運的是,現在的互聯網上到處都有豐富的學習資源讓你能在短時間里成為一個程序員。 因為互聯網的出現,使程序員們可以通過它討論軟體開發技術,發布學習指導,以及共享代碼實例讓其他人可以在線學習。 如果你感興趣如何才能成為一個程序員,從網上這些大量的優秀的培訓資料、學習向導入手將會是個不錯的開始。 首要之首:不要急於選擇一種語言 新手們有一個常見的錯誤就是猶豫於判斷哪種編程語言是做好的、最該先學的。 我們有很多的選擇,但你不能說那種語言最好。 我們應該理解:說到底,什麼語言並不重要。 重要的是理解數據結構、控制邏輯和設計模式。任何一種語言甚至一種簡單的腳本語言都會具有所有編程語言都共有的各種特徵,也就是說各種語言是貫通的。 我正在攻讀我的計算機學學位,我編程使用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開發 除了把自己約束在特定的編程語言和特定的操作系統上,你還可以在瀏覽器里開發你的殺手鐧程序,讓它在互聯網上運行,這就是webapp。 歡迎來到奇妙的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 初學者指南。 當你感覺差不多了的時候,看看WebMonkeys 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,所以如果你學會了使用它們,你將能在兩種環境中使用它們。 我的學習道路一直沒離開Peal太遠,我自學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, Greasemonkey user scripts, 和 Stylish user 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程序(註:可能需要代理才能看這個視頻)。 耐心,刻苦,嘗試,失敗 好的程序員都有一個不達目的誓不罷休的品質,他們會驚喜於通過長期推敲和失敗換來的一點成績。 學會編程會有很好的回報的,但是學習的過程可能會是飽受挫折和孤獨的。 如果有可能,最好找個伴一起陪你做這件事。 想精通編程,這和其他事情一樣,需要堅持,反復嘗試,獲得更多的經驗。 這篇文章里的內容就是對那些想通過自我研究達到學會編程目的的新手們的一些重要建議。 編程老手們:我有什麼遺漏嗎? 不論你的水平如何,請留下你的想法
❸ 想做程序員,要些什麼條件
程序員是一種技術工作,在IT的發展中有相當重要的地位,從底層硬體通訊協議的建立, 到數據傳輸層的處理,到操作系統的建設,到資料庫平台的建設,一直到應用層上各種數 據營銷平台的搭建,程序員在裡面都扮演著舉足輕重的角色並為IT事業的發展做出了巨大 的貢獻。
中國有很多精於編碼的人,但是中國軟體行業,尤其是網路應用開發方面誤區很大,很難 形成有規模的軟體開發力量和產品能力,不但比美國差距甚遠,和印度相比也是頗有不 如。這些問題不是在於中國程序員的智商和工作努力狀況,也不是在於國家和民間對開發
的投入程度,而是很大程度上,有一些對技術,對程序開發,對項目設計方面的思想誤 區,這些誤區,導致了軟體行業的產品化能力不足,缺乏規模化和大型復用系統研發能 力,可以說,改變認識誤區,是解決軟體行業小作坊模式和個體英雄模式所帶來的局限性 的重要工作。
中國有很多小朋友,他們18,9歲或21,2歲,通過自學也寫了不少代碼,他們有的代碼寫的 很漂亮,一些技術細節相當出眾,也很有鑽研精神,但是他們被一些錯誤的認識和觀點左 右,缺乏對系統,對程序的整體理解能力,這些人,一個網上的朋友說得很好,他們實際
上只是一些Coding fans,壓根沒有資格稱為程序員,但是據我所知,不少小網路公司的 CTO就是這樣的coding fans,拿著嚇人的工資,做著嚇人的項目,項目的結局通常也很嚇 人。
程序員基本素質:
作一個真正合格的程序員,或者說就是可以真正合格完成一些代碼工作的程序員,應該具 有的素質。
1:團隊精神和協作能力
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最 重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力量都是有 限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇跡,那些遍布全球
的為linux寫核心的高手們,沒有協作精神是不可想像的。獨行俠可以作一些賺錢的小軟 件發點小財,但是一旦進入一些大系統的研發團隊,進入商業化和產品化的開發任務,缺 乏這種素質的人就完全不合格了。
2:文檔習慣
說高水平程序員從來不寫文檔的肯定是乳臭未乾的毛孩子,良好的文檔是正規研發流程中 非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級 程序員和系統分析員,這個比例還要高很多。
缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇 到極大的麻煩。
3:規范化,標准化的代碼編寫習慣
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮 進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和 糾錯,也有助於不同技術人員之間的協作。
有些coding fans叫囂高水平程序員寫的代碼旁人從來看不懂,這種叫囂只能證明他們自 己壓根不配自稱程序員。代碼具有良好的可讀性,是程序員基本的素質需求。
再看看整個linux的搭建,沒有規范化和標准化的代碼習慣,全球的研發協作是絕對不可 想像的。
4:需求理解能力
程序員需要理解一個模塊的需求,很多小朋友寫程序往往只關注一個功能需求,他們把性 能指標全部歸結到硬體,操作系統和開發環境上,而忽視了本身代碼的性能考慮,有人曾 經放言說寫一個廣告交換程序很簡單,這種人從來不知道在百萬甚至千萬數量級的訪問情
況下的性能指標是如何實現的,對於這樣的程序員,你給他深藍那套系統,他也做不出太 極鏈的並訪能力。性能需求指標中,穩定性,並訪支撐能力以及安全性都很重要,作為程 序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險
和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經 驗才有可能有心得。
5:復用性,模塊化思維能力
經常可以聽到一些程序員有這樣的抱怨,寫了幾年程序,變成了熟練工,每天都是重復寫 一些沒有任何新意的代碼,這其實是中國軟體人才最大浪費的地方,一些重復性工作變成 了熟練程序員的主要工作,而這些,其實是完全可以避免的。
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一 些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在, 是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避
免重復性的開發工作,如果一個軟體研發單位和工作組能夠在每一次研發過程中都考慮到 這些問題,那麼程序員就不會在重復性的工作中耽誤太多時間,就會有更多時間和精力投 入到創新的代碼工作中去。
一些好的程序模塊代碼,即便是70年代寫成的,拿到現在放到一些系統裡面作為功能模塊 都能適合的很好,而現在我看到的是,很多小公司軟體一升級或改進就動輒全部代碼重 寫,大部分重復性工作無謂的浪費了時間和精力。
程序員應具備的素質中
6:測試習慣
作為一些商業化正規化的開發而言,專職的測試工程師是不可少的,但是並不是說有了專 職的測試工程師程序員就可以不進行自測;軟體研發作為一項工程而言,一個很重要的特 點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行
認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效 率和可靠性就有了最大的保證。
測試工作實際上需要考慮兩方面,一方面是正常調用的測試,也就是看程序是否能在正常 調用下完成基本功能,這是最基本的測試職責,可惜在很多公司這成了唯一的測試任務, 實際上還差的遠那;第二方面就是異常調用的測試,比如高壓力負荷下的穩定性測試,用
戶潛在的異常輸入情況下的測試,整體系統局部故障情況下該模塊受影響狀況的測試,頻 發的異常請求阻塞資源時的模塊穩定測試等等。當然並不是程序員要對自己的每段代碼都 需要進行這種完整測試,但是程序員必須清醒認識自己的代碼任務在整體項目中的地位和
各種性能需求,有針對性的進行相關測試並盡早發現和解決問題,當然這需要上面提到的 需求理解能力。
7:學習和總結的能力
程序員是人才很容易被淘汰,很容易落伍的職業,因為一種技術可能僅僅在三兩年內具有 領先性,程序員如果想安身立命,就必須不斷跟進新的技術,學習新的技能。
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高 了。
但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一 會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目 的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂
中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提 高。
善於總結,也是學習能力的一種體現,每次完成一個研發任務,完成一段代碼,都應當有 目的的跟蹤該程序的應用狀況和用戶反饋,隨時總結,找到自己的不足,這樣逐步提高, 一個程序員才可能成長起來。
❹ 程序員一般要學多久
如果零基礎,全日制學習,一般需要4個月左右,時間太短應該學不會。有短期的4個月和長期的2年,費用一般在1萬。
一般學習it技術需要花費的學費是不一樣的,不同的地方收費標准也是不一樣的,在學習信息技術的時候,初學者經常犯的錯誤是只要速度,而不注意基礎知識的學習,這樣無論是學習後期,還是參加工作後,都會覺得很難,因此一開始就要牢牢掌握計算機的基礎知識,比如軟體系統,計算機網路知識和資料庫知識。
(4)學寫程序員擴展閱讀:
程序員培訓注意事項:
弄清楚整體流程,掌握全局才能形成清晰的思路,就如同寫作文要先寫提綱一樣。
理順各個模塊之間的關系,才能更好的銜接各模塊來完成相應功能。
做介面時,要考慮使用者的感受是否易用,並且盡可能少的向使用者暴露內部的實現過程,簡化使用過程。
正常分支總是少數,大部分情況下都是異常分支,可以用2-8定律來形容,因此對異常處理很重要。
❺ 怎麼成為一名程序員,要從哪裡開始學起,先學什麼在學什麼
答:
首先你要清楚程序員也分很多種,從語言分,有C,C++,C#,JAVA,Delphi等等,你要考慮好弄自己向哪部分發展。
一般如果沒什麼理解可以從C語言學起,因為C語言比較貼切於機器語言,大學裡面一般也都是先學C的,學好了C語言,可以觸類旁通,更容易學其他的語言。
2.Java據說是現在最熱門的(所有程序員都覺得自己用的那個語言最牛逼),IOS或者android學了可以做手機軟體哦,Delphi和C#是用控制項拖出自己想要的結果,然後在後台寫代碼的,不過有人說Delphi相對落伍了,但好些大公司還是在用Delphi來搭框架的。
3.選定好語言後,如果覺得自己理解能力動手能力超強的話,自己買本入門的書,或者網上看些教學視頻,邊看邊實踐。不過這個對於初學者來說真的挺難的,因為第一次的話,可能連環境都搭不好,用來編程的軟體對初學者來說還是蠻麻煩的一種軟體,不是這個不行,就是那個設置錯了,或者連一些基礎的窗口啊工程啊項目啊的概念都沒有,網路起來又要答案一個一個看,浪費時間。而且還要自己搭資料庫啊什麼的,真的很難。有老師教的時候,還能掛科一大片的。不過入門了,之後就簡單了,自己隨便找本書,學學代碼用法啊,照著打就可以了。
拓展資料:
程序員(英文Programmer)是從事程序開發、程序維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。
崗位職責:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
網路詞條 程序員
❻ 怎樣才能成為一名程序員
一、要承受得住常人難也承受的孤獨與寂寞感;
二、要有良好的自學能力和邏輯思維能力;
三、要學習理論與實踐結合的法則;
四、要學會用搜索引擎搜索,最終得出你需要的答案;
五、要在知道答案的情況下,去分析和理解其中的奧秘與技術;
六、要有持之以恆,虛心學習,研究別人寫的代碼的精神。
七、要找准自己要學習的方向和目標(即語言),不要盲目的去學習與追求高級別的編程,一切從零開始。
八、當你找准目標後,就把你要學的這一門技術(語言)學精,其它的語言自然而然的就應忍而解了
綜上所述,如果你能做到以上幾點,將來你一定是一個高級的軟體工程師,祝你成功!
❼ 程序員需要學些什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
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很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
會編程、會計算機語言就能加入互聯網發展大潮中,享受數字經濟發展的紅利,一時間社會上的程序員培訓機構都變得格外火爆。
但是現在,專家的數據分析結果告訴你:若想跟上數字經濟發展的步伐,光會編程可不行,這個行業現在緊缺高端的、綜合型人才。
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、《活著》
❽ 初中學歷可以學習寫程序代碼,當程序員嗎
可以的。學程序不需要很高學歷,但是要對數學有一定基礎。恐怕初中學歷的數學不足以應付編程。
❾ 程序員難學嗎
高中學歷的知識儲備在你做初級甚至某些中級開發是夠用的,再往上就有難度,會涉及到很多高等數學之類的知識。但個人認為70%以上的程序員止步於初、中級開發者也過得算舒服
2、需要有一定的英語基礎,不一定要多好,但是你知道程序開發都是使用的英文(用易語言的不叫程序員,不是看不起它,但是你總不能拿個美圖秀秀叫做你會美工對吧,一個道理)。某些情況下直接查詢英文社區可能會得到更快的解決方案。另外很多開發文檔都是純英文的。當然,如果你實在英文不行,這條也關系不大。
3、這條很重要,你一定要有強烈的興趣和持續學習的心理准備和行動力。走向工作崗位之後你會發現很多東西需要你邊做邊學的。學校學的永遠不夠用。
4、這條更重要,如果你是因為怕吃苦或者成績不好乾脆沒上大學,或者覺得學其他東西麻煩,覺得軟體開發坐著吹空調寫寫代碼就能賺錢,所以想學的話,建議你腳踏實地一些。
5、如果以上你覺得都能做到,那麼個人覺得,由淺入深慢慢入門難度不會太高。