① 程序員是干什麼的
程序員是干軟體的。程序員的本質工作當然是寫代碼,用代碼實現功能。(就是用基礎語言(c/c++,java,objectc)等來編寫文檔一樣,不過這些文檔編譯後就變成可運行的程序)。
范面上看程序員就是干這些事情的:code、code、code。編碼只是程序員的一小部分工作,要是只是編碼這么簡單,就不會有程序員加班,通宵幹活了。程序員不止幹了這些。我們就以三個階段來說說程序員究竟幹了些什麼。
一、初級程序員
初級程序員的工作還是比較簡單的,一是知識經驗有限,主要是編寫簡單代碼和學習為主,只要完成一些基本的編碼任務,單一功能的實現。
二、研發工程師
有了一定的經驗後你就轉變為工程師了,這個時候你就不光是簡單的完成任務了。code這個還是你主要的任務,但除了這,你還要將設計,調試等等肩負起來。這時候一般都是多個功能模塊的設計實現(整體架構由架構師完成)。模塊內的詳細設計(功能的實現邏輯)文檔編寫,模塊調試。直到功能完善交付。
三、架構師
架構師就已經脫離了code了,因為他們已經不必關心代碼如何編寫了,更重要的事情是完成一個軟體、系統的設計架構。萬丈高樓得有一個好的框架。要不然你就只能蓋個2層小樓了。架構師負責從分析軟體需求,再到軟體系統的詳細設計,人員的配置,工作的量化,到完完全全的產品整個過程。
② 作為一個「碼農」(程序員),其可以獲得的職業價值觀滿足是什麼
作為一個「碼農」(程序員),其可以獲得的職業價值觀滿足是專業性。
一、程序員
程序員(英文Programmer)是從事程序開發、程序維護的基層工作人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚。隨著互聯網的不斷普及,現在網路上把男程序員稱作」程序猿「,女程序員稱作」程序媛「。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
③ 一個程序員要具備的基本素質是什麼
團隊精神和協作能力 :
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。
文檔習慣:
作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。
規范化,標准化的代碼編寫習慣:
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
需求理解能力:
作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。
復用性,模塊化思維能力:
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作。
測試習慣:
軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
學習和總結的能力:
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高了。但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。
④ 程序員職業規劃職業規劃
每一天的時間都非常珍貴,如何才能提升自己,職業發展順利呢?請好好規劃今後的職業發展道路。想必許多人都在為如何寫好職業規劃而煩惱吧,下面是我為大家整理的程序員職業規劃職業規劃3篇,歡迎大家分享。
第一,學習基礎,熟悉框架
第二,學習資料庫應用程序和WEB應用程序開發
第三。學習編寫需求程序設計文檔,測試文檔
第四。做項目經理,積累項目經驗
第五,做合作夥伴。
規劃是個長期計劃,使為了實現一個遠期目標而制定的計劃,然後又由數個或者數十個短期計劃分解組成,不斷實現。
關於職業生涯,很多人不能學以致用,將來的工作和自己的專業關聯性不大,在大學里學的東西只能用上20%,(當然除了專業性特別強的),主要的80%的技能都是進入社會中不斷學習逐漸實現的。
成功的職業規劃,主要的考慮因素在以下幾個方面:
1、你的興趣是什麼?你曾經想成為什麼樣的人?你對哪些知識比較有感覺,能夠深入發展下去?
2、你的性格適合做什麼?不同的工作,適合不同性格的人去做。認清楚自己的性格,是非常重要的一步。
3、你的優勢和特長是什麼?有哪些拿得出手的能力?對於自己欠缺的能力,應該怎樣去做?
4、你性格本身存在哪些弱點需要克服?不要讓弱點成為你成長中的絆腳石。
1、線性級:編程的時候好比低著頭走路,腦子里完全不進行規劃。就像蓋房子的時候,一塊磚一塊磚的壘,想到哪就干到哪。結果越壘越龐大,後面的代碼管理越來越混亂。這一境界相當於生產車間里的操作工,按照圖紙根據工藝要求操作機器進行部件加工,至於零件在於整個設備中的功能和作用不了解,也不去考慮。這一境界的目標是把本工序工作做好。
2、邏輯級:掌握了一定演算法經驗,對於現實業務比較了解,能夠撰寫出一些模塊和函數。邏輯比較嚴密,bug比較少。這一境界相當於生產車間裡面的車間主任,需要對本車間的生產加工業務比較熟悉,還能自己設計出一些便利的工裝器具,便於重復生產加工的時候,加快生產速度,保證加工質量。這一境界的目標是快速的高質量的把本車間工作做好。
3、架構級:掌握演算法,熟悉現實業務。對軟體進行架構,進行分層,指導團隊成員按照統一的目標進行工作。這一境界相當於製造本部長,對於整個產品的生產過程都非常熟悉,協調各個車間的生產進度,按照一致的交付目標進行生產加工。這一境界的目標是把產品按質保量的做好。
4、工程級:按照項目管理的理念,對軟體過程進行項目級管理。需要協調內外部各種資源進行統一工作。這一境界相當於事業部老總,需要協調市場銷售、材料供應、內部生產等內外部多方面的資源實現經營目標。這一境界的目標是低成本、快速的交付產品讓客戶滿意,實現營業利潤。
做自己喜歡與最擅長的工作
既然必須做出選擇,如何選擇就是關鍵。總不能寫幾個紙條,靠抓鬮來決定自己以後的命運。從眾多成功者的經歷來看,成功的.一個關鍵因素就是做自己感興趣的和最擅長的事情。如果沒有興趣,就沒有百分之百的激情與動力,如果不擅長,就不可能把一件事情做到最好。
劉翔是短跑冠軍,王勵勤是乒乓球冠軍,喬丹是飛人,巴菲特是股神……他們之所以成為英雄,正在於他們都是在做自己最擅長的事情,都是在拿自己的長處和別人的短處較量。他們本來是普通的常人,但因為在某一點上超過了所有的人,因而獲得了成功。
職業規劃的目的,不是要你變成另外一個人,而是要你變成最好的自己。搞清楚自己的優勢在什麼地方。做自己喜歡和最擅長的工作。不要羨慕別人的長處,不要絞盡腦汁地琢磨怎樣才能像別人那樣擅長某方面,不要幻想成為別人--做最好的自己!
成為行業專家
通常說到程序員的發展前景,一般是指如項目經理、軟體架構師之類的,這種規劃主要是在it行業內就業發展的規劃,更像一個職位的規劃。所以,無論是就職資源還是職業前景都包含一定的局限性。隨著it行業的競爭加劇和其他傳統行業的信息化進程,如今的程序員職業規劃發展目標應該超越本職業概念的"行業專家",這里所指的行業,並不是指編程的語言,而是比如電信、互聯網、銀行、電子商務之類的行業,成為一個領域在行業中應用的專家。而在現實招聘的需求中也大量地體現了這方面的要求,具有某一行業多年從業經驗的開發人員一直是眾多企業苦苦追尋的香餑餑。
堅持到底
除了選擇,最終要想獲得成功,唯一的辦法就是"專注".技術是層出不窮的,而人的精力卻是有限的,怎樣把有限的精力用到刀口上去,那就得認准了某個領域和某個行業堅持不懈地做下去,不但要成為這個領域的技術專家,還要成為這些行業的業務專家,你能熟知這個領域的點點滴滴,並能在這個領域的行業應用上發展創新,這樣的人才,我想才是目前最需要的人才。我的一個同學,畢業的時候被公認為是編程水平最高的,但3年來他換了6次工作,他總是對這個感興趣,對那個感興趣,做過很多,每換一個工作幾乎都是做的全新的東西,總在抱怨工作不如意,其實他換來換去,卻始終是在起點上轉。而另一個非常堅持的朋友,10年只跳了三次槽,第一個是程序員,第二個是部門經理,第三個是技術總監,不為什麼,就因為他是專家,10年來他只做一個行業。用10年來做一件事情,不成功都難。
世界上沒有完美的公司,重要的是,你要有自己的目標。知道你自己要的是什麼。有些人習慣不滿意就跳槽,跳槽可能會增加你的收入,但這種個人收入的增長,與一家企業由小到大而給員工帶來的成長是無法相提並論的。職業規劃就是要搞清楚自己的優勢在什麼地方,自己最適合做什麼。當有了自己堅定的目標和定位,打工就不再是為別人賣命,而是為了自己的目標在奮斗!用這樣的標准來衡量自己的成長和進步,那樣的人生也會變得輕松而快樂。
⑤ 如何成長為一個真正合格的程序員
優秀程序員都是很努力的
一個真正合格的程序員,除了要有扎實的理論基礎和代碼能力,還要有諸多的綜合素質。除非你只是一個純粹的碼農,除非你只是想做一點平淡的代碼工作,否則如果你想有更好的發展,那就必須「學習」。從我自己的發展經歷來講,其實我只是一個半路出家的程序員,我沒上過高中,只是師范畢業,學的還不是計算機,而是美術專業,從參加工作那天起開始自學計算機,花了半年學會了VB程序設計,寫了第一個vb程序,一個校園的自動播音系統,實現了校園鈴聲、升旗、課間操等定時音樂的自動播放,免費提供給學校使用,給學校帶來極大方便,從此我愛上了編程。後來為了宣傳單位的形象開始自學ASP腳本語言,一個月時間寫出了第一個ASP網站,在這個過程中學習了網頁前端布局,知道了前端可以有JS控制,知道了域名是什麼,知道了http協議,知道了WEB服務的發布。從那時起,我覺得網站建設就是一個商機,從此開啟了我的網站建設之路。其實也就是程序員發展之路,至此,我在這條路上一發不可收拾。
在這期間我開始接一些網站建設的活兒,一開始,在網上搜索一些開源的代碼進行修改,滿足客戶需求,但是很快發現一些問題,大多數代碼都是預先掛了一些廣告在裡面,如果對程序不熟悉,等你網站發布出來,你就只能看到滿山的網站,客戶當然就不滿意了,最後你還不知道這些廣告從哪裡冒出來的,甚至有些網站留了很多漏洞和後門,讓你防不勝防。所以,想想還是自己寫一套CMS系統,我只自己使用,只放在自己的伺服器上,這樣的話安全性高了很多,至少被攻擊的幾率少了多,也不擔心莫名其妙冒出來的廣告。於是,我開發了第一套產品,屬於我自己的CMS,期間我可以說學到了更多的知識,累積了不少的產品開發經驗。所以這里我總結一條,要成為一個合格程序員,最好完整的做一個項目吧。哪怕是項目的前端不懂,資料庫不懂,逼迫自己去學習,去了解,最終產品雖然不夠完善,至少你了解一個項目需要什麼,和什麼技術有關聯,這樣對你自己所擅長的東西就很有幫助。
不斷學習,與時俱進。我喜歡一句話叫萬變不離其宗。雖然程序語言有很多,但是基本原理還是相通的。我做了第一個ASP的CMS以後,很快發現ASP的程序網站已經不能適應項目開發的需求,需要更加高效的腳本語言來實現更多的功能。這個時候php就成了我首先研究的語言,因為我發現很多第三方開放的APi提供的都是PHP的,這讓我們使用更多其他第三方功能的時候開發會更加方便快捷,所以我花了一個周,學習了基本語法和函數,我發現從ASP遷移到PHP其實是很簡單的事情,只是語法不同,程序結構也是一樣的,條件格式、邏輯判斷、條件分支、循環處理也都差不多。經過學習很快掌握了這個語言,開始了項目開發之路。可見不斷的學習,也就是自我成長的一個重要的過程。
良好的思維能力,這是一個程序員必須具備的技能。思維能力就是一個能夠讓代碼在你頭腦中執行一遍的能力,也就是說你在寫代碼的時候你的腦海里就能呈現出代碼運行以後的結果,呈現給用戶的界面,把抽象的邏輯代碼轉成具體形象的能力。良好的思維還體現在,一個程序的處理其實都離不開計算機運行的本質,那就是數據輸入(數據從哪裡來),到數據處理(獲取的數據需要怎麼加工處理或者轉換為另一種形式),最後到數據輸出(給用戶呈現一個結果,圖像的、文字的、視頻的、聲音的或者是多媒體的)。程序整體是這個理念,分解到很多細小的模塊也是這樣,所以只要有這些核心理念,你的思維能力就不會有問題。
通過我的學習和發展,我總結了,要讓自己成長為合格程序員,離不開學習,離不開項目實踐,離不開思維的創新,更離不開努力勤奮和汗水,願有志青年都想有所成,學有所收,成就自我!
⑥ 程序員的職責是什麼
程序員就是簡單的把給你的語句轉化為代碼,很簡單;真正的程序員是不用動什麼腦子的.但是要有很好的語言基礎。
面向過程就是針對演算法過程的,面向對象就是編寫的內容都是針對對象的。舉個例子:過程就是寫個求階乘的函數,對象就是寫個自行車類 其中有鳳凰的車 捷安特的車等等...
基礎的話最好還是從C學起比較好 一定要打好基礎才行,然後看看C++、java,其他的語言就不必看了,不是很有用的,現在基本就這個足夠。
⑦ 程序員接到項目後應該怎麼做
第一步:分析需求。也就是必須找客戶把需求確認好,這一步最重要,最好能形成書面的東西,防止客戶反復修改
第二步:設計模型。這一步其實是需求的補充,有了一個具體的東西,雙方更好交流,也能給予客戶部分信心,當然時間能快點最好了
第三步:框架選用或者設計。一定要選擇一個靈活的框架,防止有後續開發或者需求反復變更
第四步:模塊設計。設計各個模塊,充分考慮其中的耦合
第五步:編碼,同時思考測試用例
第六步:測試
第七步:項目驗收,可能會goto第一步
第八步:收錢
⑧ 程序員常說的<項目>是什麼
···項目就是通常說的做一個系統,比如說某個公司或者團隊接了一個單,用做一個xx系統,那麼這個就叫項目