A. 程序猿真的都那麼呆嗎做程序猿的女朋友是什麼感受
身為一名計算機專業相關的大學生,我深知這一行簡單的講就是高智商的搬磚工,做一名程序員真的是一件很苦逼的事情,每天面對著很多數不清的符號,這些符號每天都在你的面前群魔亂舞,搞得整個世界都是代碼。有人說程序員很呆很萌很可愛,可是程序員真的就那麼呆那麼不懂事嗎?我想不是的。
誰說程序員非常難找女朋友?都是騙人的。首先,程序員中女性同樣不在少數,而且程序員男生還有更多和其他男生不同的一面。他們更加了解普通男生不知道的事情,而習慣了理性邏輯化與客觀思考的他們對待女生的關心的方式也與普通男生不同,所以現在程序員男生並不是不被女孩子喜歡,而是不善於發現喜歡自己的女生,也不善於在可能喜歡自己的女生面前表現自己與普通男生不同的一面。
作為一個程序員,我可以發現一名程序員身上不同於普通人的特質,程序員不是呆萌,而是從不同的角度看待這個世界,對待女朋友就像對待代碼一樣細致,關懷女朋友的程度也比其他的男生更為給力,如果你的男朋友是一名程序員,雖然他可能沒有時間陪你,但是她會用自己的方式愛你,給你其他的男生給不了你的驚喜,不為別的,程序員的愛就像他們對待代碼一樣專一。
B. 程序員,架構師,軟體工程師的區別
1、程序員,架構師,軟體工程師的能力要求不同,程序員是從事程序開發、程序維護人員,但是不擅長寫文檔。軟體工程師的技術要求比較全面,會熟練的寫語言代碼,也會寫一些項目的文檔。架構師是軟體開發過程中的重要人物,主要負責大系統項目的架構設計。
2、程序員,架構師,軟體工程師級別不同,程序員分為初級程序員、中級程序員,軟體工程師是從事軟體職業的人員的一種職業能力的認證,架構師是團隊領導型人物,是需要從資深軟體工程師裡面提升為架構師。
3、程序員,架構師,軟體工程師平均年薪不同,美國谷歌程序員的工資最低年薪平均水平為12.8336萬,軟體工程師平均工資較高,谷歌軟體工程師年薪平均水平為25-30萬美元,架構師的工資水平是最高的,谷歌大數據架構師年薪為50-60萬美元。
C. 程序員的出路在哪裡
【原創】下面四千字的東西,打了三個小時,又花了兩小時修改,體會來自於自己的經歷。既為樓主也為自己,也希望能給他人帶來一點幫助,因為自己也曾苦於出路這個問題許久,徘徊於技術與銷售之間。其實,最重要的是,想清楚自己要的到底是什麼,而實現的方法有很多,選擇其中的一個,然後耐心去做,注意做的過程中,要多方面發展。不斷提高自己的綜合能力才是硬道理——這才是出路之所在!!!。
【出路】
在職業選擇上,很多人都會問一個問題,這個職業有什麼出路?想得到正確的回答,必須先搞清楚,自己究竟想得到什麼東西。對於程序員這個職業,如果你要的是錢,很多的錢,程序員沒有出路;程序員工作繁忙,有時不規律,連續著加班很有可能,如果你要的是休閑的生活,程序員沒有出路;程序員都是與電腦打交道,工作就是坐著,如果你要的是跟人廣泛的交流,而且坐不住,程序員沒有出路;寫程序都是很邏輯的東西,如果你不喜歡這種解題式的思考方式,頂不住整天思考所帶來的疲憊,程序員沒有出路。
程序員跟民工的區別就是,高強度的腦力勞動者和體力勞動者。雖然程序員的待遇看起來還不錯,想想其實不是,假如八點半上班,加班到十點,沒加班費,平均下來,一個人相當於幹了將近一份半的工作,除下來收入付出比就少了半截,收入多是因為付出的勞動多。這是開始做程序員時常有的事。
假如純往技術上走,干幾年熟手了,情況會好,但是,當你對比起幹了幾年銷售的朋友時,你會發現,你的勞動力太廉價了。一個小公司的銷售,普普通通干三年後,一年拿十萬塊的提成是很有可能的,而一個程序員,普普通通干三年,能拿月薪一萬的不多。還有人家銷售有許多的報銷,你有么?如果有天賦而且努力地干,銷售,大學畢業三年買車買房的多的是,當然不是說噬老族那些;程序員呢?有多少能!也許研究生,而且讀的好的那款還比較可能,但此時那些本科或者大專,甚至中專就出來跑銷售的,已經工作好幾年了,說不定此時正在三亞曬太陽呢!
你說銷售的應酬多,呵呵,喝酒;要去拍人馬屁,去求人什麼的!ok,這就是銷售,你敢保證當你看到他們的收入時,還有看到他們拿著公司的錢,請客戶去各種高檔的地方消費時,甚至說句不好聽的,花公司的錢請客戶到處吃喝嫖賭時——客戶也是人,許多客戶就這些個的愛好,所以要滿足他,他才買你的帳,很正常——嚴格意義上講,這樣的工作比坐在電腦前埋頭苦幹來的輕松多了,其實是一種享受,看到這些,你敢保證你一點都不眼紅?呵呵,如果不眼紅,那就專心干程序員吧!
或者說,你對這種「一點科技含量都沒有的工作」——在你眼中,高iq的人才是牛b的人,那就安下心來干程序員吧。但我想說,在這個社會上,賺錢最多最快的,最舒服的,永遠是銷售。當然,干技術乾的好的,最終都是比較受人尊重的——專家,當然是五十年如一日投身於技術那種人才能成為專家。如果你能刻苦地干程序員,想成為架構師、系統分析員,成為軟體專家,那就專心干程序員吧!
或者說,你實在干不來與人交際,還要挖空心思去維護各種人際關系的工作是,那就安心下來干你的程序員工作吧,就像民工一樣,有誰樂意去干民工,但是沒辦法,能力所限,只能幹民工了。但我想說,能力都是學來的,給民工們上大學,他們畢業後一樣會有很多牛人。有人說:「哪有那麼好的條件給他們上大學啊!」。條件很多時候要自己去創造啊!難道每個成功的人都有一個高人,手把手地拉扯著他,給他良好的成長環境和資源嗎?沒有什麼東西學不來,只是學得快和慢的問題,要真正去學學看才知道,而不是停留在大腦中。如果你學編程學得很快,而且學得很開心,即使學的過程很累,那就專心干程序員吧!
接下來,告訴你一個好消息,史玉柱出身技術、馬化騰出身技術、唐駿出身技術、比爾蓋茨出身技術、傑克•韋爾奇出身技術,等等,他們都成功了!假如這是你想像中的出路的話。我不是說要達到他們那種水平,而是走技術路線,來獲得事業有成,獲得成功。寫過程序的人都知道,想實現某個功能,有很多種實現方法。獲得成功也是一樣,有很多的路可走。這就是我為什麼拿銷售來做比較,每種職業都能到達成功的彼岸,不管是做技術、行政、財務、銷售,等等。
出路是什麼?不就是人生價值的實現,有的人要的是成就感,有的人要的是幸福,有的人要的是健康,有的人要的是金錢,有的人要的是地位名氣,有的人要的是貢獻全人類,有的人要的是玩樂、享受,其實這些都是不同人的人生價值。而實現自己人生價值的方法實在太多了,不管從事什麼職業,不管是java程序員,c++、c#,都能成功的,最最重要的是想清楚你想得到什麼,接下來就是做具體的計劃,然後實現計劃。實現的過程不能拘泥於技術,應該多方面發展,不斷提高自己的綜合能力!想做項目經理、做cto,或者用自己的技術去創業,都必須發展自己的綜合能力。
回到剛才,馬化騰、比爾蓋茨、唐駿等等這些技術員為什麼能成功?技術過關是基礎,甚至技術過硬,唐駿日本、美國留學,比爾蓋茨哈佛。接著,最重要的是:超前的眼光。qq其實不是什麼很難的技術,比什麼量子物理簡單多了,而且icq還是以色列人開發的,馬化騰就照著開發了qq,當時在中國就是超前的東西;比爾蓋茨的windows,讓三歲小孩也能使用電腦,而不用記一大堆的dos命令,這就是超前;唐駿發明了卡拉OK評分器、大頭貼,你自己可以想像一下大頭貼有多少的技術含量,然而它帶來的經濟效益是多少!所以說,想法太重要了,好的技術不是它有多高深,而是它能給人的生活帶來多少的便利,而往往第一個想到的人能獲得巨大的回報。第三,人際關系,別老以為做了技術就能以高姿態出現,有人很鄙視銷售,認為沒技術含量、俗;銷售還很鄙視技術呢,窮、死板。其實,沒人能靠自己一個人贏得一切,技術要靠銷售來賣自己的產品,銷售要靠技術生產產品,誰都離不開誰,這其中還有一連串的其他人呢,財務、行政、前台mm、老闆等等。現在越來越提倡團隊合作,跟隊友、跟上級、跟客戶之間的溝通是必修課,溝通不好必然配合不好,你的才能永遠無法施展,何來的出路。
第四,求人,其實求人是人際關系中的一個,為什麼單獨在這里講,因為他太重要了。機會很多時候是靠求人得來的,例如唐駿,他去日本留學的機會就是求了一大堆人得來的,他當時考研究生,在北京郵電分數最高,但因為大學沒得過一次「三好生」,北郵沒給他出國名額。他給各個大學的研究生處打了三天電話,問還有沒有留學名額,得到的大多都是這樣的回答:「我們自己的學生都不夠呢,哪裡輪得到你?」,如果臉皮薄,沒耐心,早就放棄了,後來他找到了北京廣播學院(現在的中國傳媒大學,就是陳魯豫讀的那個學校,據說當時很水。。。),吳懷仙老師,當時他們的對話是這樣的:
「看你的成績很好,你們北郵應該取你呀!」
「北郵當然取我。但是,我從小愛看電視愛聽廣播,未來中國的廣播電視事業一定會有很大的發展,為了這項事業,我願意放棄北郵,來到北廣。」
「照你現在的說法,你不是為廣播事業而來嗎?怎麼又跟出國有關?」
「中國的廣播事業很落後,需要去國外學習一些先進的理念、先進的技術回來呀!」
「老實說你來有風險,如果教育部不批的話,你不能出國,就必須留在廣播學院讀書。可是北廣沒有碩士學位的授予權,你只能取得研究生學歷,得不到學位。」
「我來的目的很明確!為了中國的廣播事業,有沒有學位沒那麼重要。」
你知道當時的實際情況是怎樣的嗎,北郵根本就沒有給唐駿名額,唐駿根本就是說了一個無傷大雅的謊言,所以,你看看、你看看,善於變通對於一個人的成功是多麼的重要,唐駿他們都不是一味地干技術就能成功的,很多時候必須好好包裝自己、銷售自己的。在這里我不是在說要去騙取利益,而是說,在遇到困難的時候能改變思路,轉個彎繞過路障!!求人很重要,有個強硬的後台幫忙,少奮斗十年!後來唐駿又去教育部門口站了幾天崗,等人、求人,呵呵,其實只是問了幾聲好,這是後話。
第五,超越物理層。凡是要獲得大的成功,賺大錢,或者說更容易地賺錢的,都不能拘泥於物理層。只有大老闆能給你建個實驗室,讓你搞深層次的技術;而只有你的實驗室能不斷做出可以賣錢的產品時,你的實驗室才不至於被關閉。走入公司的決策層,你才能決定該往那走,什麼技術該大力發展、什麼技術該好好改造、什麼技術該放棄。這個道理相信不用講你也明白,那麼,如何進入決策層,靠高素質、靠綜合能力。學習能力、溝通能力、領導能力、管理能力、玩的能力(品酒、打扮、奢侈品、打高爾夫等等),一大堆的能力呢!沒有一所學校、一個組織能教授全部,這些都要靠自己去學、去領悟,前提是,你要有去學、去領悟的想法。
說實在的,世界是很復雜的東西,要的是你去適應它,它不會來適應你。唐駿說:「性格能改變嗎?很多人說不能。可是我認為,本性是不能改變的,但性格是一定能改變的」。傑克•韋爾奇,通用電氣前ceo,打小有自卑心理,到了成年還略帶口吃。他母親激勵他,這算不了什麼缺陷,只有面對現實,堅持與別人溝通,讓別人了解你,才能主宰自己的命運,別人才會跟你做朋友,這是這個偉大而平凡的母親給予傑克的最大財富。事實上,如果你自己不在意,那麼那個缺陷也就不太重要了。略帶口吃的毛病並沒有阻礙傑克的發展,實際上在後來,注意到這個弱點的人大都對傑克很敬佩,因為他竟能克服這個障礙,在商界出類拔萃。趕緊改變,讓自己更好地適應這個復雜多變的世界。
想清楚自己要的是什麼,做一個兩年計劃,因為超過兩年變數就太大了,然後制定實現的步驟,也就是一個個短期計劃,從第一步開始實現。這些計劃應該是具體、可行而且能在預定時間內完成的,最後靜下心來,耐心實現自己的每個計劃!!不要老是問人,我這樣做對嗎,我該怎麼做。哈佛退學就一定是錯的?北大賣豬肉就一定不好?外企就一定是好歸宿?你該做的就是,想清楚自己想要什麼,金錢、美女、名利、地位、權勢,還是過平凡的日子,做善事做好人,都沒問題,只要真的是你想要的就好,然後考慮怎麼去實現它。其實實現的方法有很多,選擇其中的一個,然後耐心去做,注意做的過程中,要多方面發展。不斷提高自己的綜合能力才是硬道理——這才是出路之所在!!!
D. 如何成為一名程序員 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、了解你選擇的編程領域的相關技術和編程語言。
小提示不管你想嘗試哪種編程,不管你想達到何種水平,考慮去學校或本地社區大學上課。不要被諸如「計算機科學」一類的術語嚇到。你參加的任何不需要預備課程的課程都應該集中教一些編程的基礎知識。在上課之前先咨詢一下老師或客服,確保這門課是你想要的,像「計算機文化」這樣的課很有可能更多地集中在教你更熟悉辦公應用之類。
E. 把孩子送到沖殼實驗室編程學習,只是玩游戲還是真的有作用呢
不知道什麼時候開始「X歲時候開始編程」「X歲時候編寫了某程序」已經作為了優化孩子履歷的一塊前門磚。那麼到底應不應該送孩子去學習編程呢?我的答案是肯定的。懂一點計算機的都知道,編程就是在給定的條件下給計算機下達相應的命令,以獲取最後的結果,讓計算機幫助我們省去運算過程。對於孩子而言接觸編程不一定說以後就一定要當程序員或者相關工作。
在學習的過程中,專注力必定會得到提升,只有高度集中的狀態才能理解和運用運算條件。此外為了達到一個預期的目標,命令的選擇、輸入的位置都要經過一番思考,這對於強化孩子的思考能力也有一定幫助。程序運行過程中,能夠正常,成就感爆棚,報錯的話,要求孩子找到問題,最終解決,這對於在學習生活中解決問題同樣有用。說得再現實一點,計算機設有很多青少年等級考試,如果真的有這個天賦,取得一些成績,對於以後的升學也有很大幫助。
不過現在少兒編程的水也比較深,一定要做好試聽,聽取孩子反饋後再決定。也不是說大機構就一定好,他們模式話的教學可能適合大多數孩子,但不一樣適合你家的孩子。沖殼實驗室確實是一家不錯的培訓學校,他們會根據孩子的各種情況量身打造教學方案,這點絕對是其他連鎖機構沒有辦法比的。
F. 程序員脫單實驗室是真實的嗎
不是。程序員脫單實驗室是騙子,客服團團,收了1033元拉黑客戶,大家一定要小心被騙。程序員(英文Programmer)是從事程序開發、程序維護的基層工作人員,分為程序設計人員和程序編碼人員。
G. 程序員的一天是怎麼樣的
022年2月17日,周四,多雲轉陰,那天很冷。
但!我的心情!是火熱的!!!因為這是我新學期開學的第一天!我正式迎來了我在T大度過的第18個學期!
老當益壯,寧移白首之心!我暗自下定決心,本學期我將以更加飽滿的科研精神面貌在學術道路上再創輝煌!從我做起從現在做起,就從開學第一天開始!以下為開學第一天實錄。
8:00,鬧鍾准時響起,准備起床。
8:10,鬧鍾二響,思考人生。8:20,鬧鍾三響,思考人生。
8:30,鬧鍾四響,起床成功,順便喊呋喃起床。
9:00,抵達實驗室,發現老闆沒來。新學期第一天早上刷臉失敗,有些惆悵。
9:00-9:20,與一整個寒假沒見面的兄弟們聊天,從大家的返校時間聊到家鄉的過年習俗,再聊到我的鬍子,快樂。
9:20-9:30,把去年離開實驗室時沒喝完的茶蒸發後的殘渣倒掉,清洗落灰的杯子。泡茶,准備開啟新一天的科研工作!
9:30-9:45,剛准備開始科研,發現桌子有點臟亂。一屋不掃何以掃天下?果斷開始擦桌子。
9:45-9:50,剛准備開始科研,發現一個寒假過去,桌上的綠植有點撐不住了,趕緊給綠植澆水。
9:50-10:00,剛准備開始科研,發現兄弟們桌子上的綠植也快撐不住了。大家的綠植都是我上學期送的,還是照顧一下吧。於是給大家的綠植都澆了一波水。
10:00-10:15,剛准備開始科研,發現鍵盤都有點落灰了。鍵盤是程序員吃飯的傢伙式,臟了很影響心情,趕緊清理鍵盤。
10:15-10:25,剛准備開始科研,發現忘記清理我的主鍵盤了,趕緊補上!不要嘲笑它,高端的程序員編程往往只需要最樸素的按鍵。
10:25-10:30,剛准備開始科研,發現馬上10點半了,決定湊整圖個吉利。
10:30,開機!
這咋windows還過期了呢!趕緊win + R然後slmgr.vbs /xpr,發現2月27號,清華的windows就過期了,惆悵。
與旁邊兄弟討論後,打開cmd,一通slmgr.vbs /skms激活成功,快樂。
10:40,剛准備開始科研,又有新的兄弟來實驗室了,聊天,快樂。
10:50-10:55,又有新的兄弟來實驗室了,聊天,快樂。
10:55-11:00,打開Vscode,登錄自己的伺服器賬號,發現代碼都還在,滿意地關掉。畢竟馬上要吃飯了,吃飯前這么點時間也幹不了什麼。
11:00,討論午飯吃什麼,准備出發
H. 程序員是干什麼的啊
程序員是寫程序的屬於電腦IT行業。
程序員(英文Programmer)是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員。
軟體從業人員分為初級程序員、高級程序員、系統分析員,系統架構師,測試工程師五大類。
一年可報考軟考程序員考試兩次,但一次考試只能報考一種資格,因此報考了程序員考試則無法再報考軟考其他級別或科目的考試。
同時軟考程序員考試採用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一標准、統一證書的考試方式。