❶ 什麼是電腦程序員相關知識
程序員是從事程序開發、維護的專業人員。一般我們將程序員分為程序設計人員和程序編碼員,但兩者的界限並不非常清楚,特別是在中國。
作一個真正合格的程序員,應該具有的素質。
1:團隊精神和協作能力
團隊精神和寫作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
2:文檔習慣
文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模塊化思維能力
作為一個優秀的程序員,他的思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員、項目經理。
作為高級程序員,乃至於設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:
1、 需求分析能力
2、 整體框架能力
3、 流程處理能力
4、 模塊分解能力
5、 整體項目評估能力
6、 團隊組織管理能力
❷ 程序員是做什麼的什麼是程序
程序員:
程序員是從事程序開發、程序維護的專業人員。程序員一般需要會做:確認通過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。
通常情況下將程序員分為程序設計人員和程序編碼人員,軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。
程序:
程序是一組計算機能識別和執行的指令,運行於電子計算機上,滿足人們某種需求的信息化工具。以某些程序設計語言編寫,運行於某種目標結構體繫上。
程序就如同以英語(程序設計語言)寫作的文章,要讓一個懂得英語的人(編譯器)同時也會閱讀這篇文章的人(結構體系)來閱讀、理解、標記這篇文章。
(2)我們是誰程序員擴展閱讀:
程序員的日常工作:
1、確認通過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。
2、安排項目要求在編程序列分析要求;准備工作流程圖和使用計算機知識的能力,題材,編程語言和邏輯圖。
3、編碼工作流程的信息轉換成計算機語言的項目要求。
4、通過輸入編碼信息的計算機程序。
5、確認程序操作進行測試,修改程序序列和/或代碼。
6、准備寫操作指令供用戶參考。
7、保持歷史記錄,通過記錄方案的制定和修訂。
參考鏈接:網路-程序員
網路-程序
❸ 什麼叫程序員
程序員(英文Programmer)是從事程序開發、維護的專業人員。一般我們將程序員分為程序設計人員和程序編碼員,但兩者的界限並不非常清楚,特別是在中國。
作一個真正合格的程序員,應該具有的素質。
1:團隊精神和協作能力
團隊精神和協作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
2:文檔習慣
文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模塊化思維能力
作為一個優秀的程序員,他的思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員。
❹ 中國有多少程序員世界有多少程序員
現在談到中國軟體業時,總是與印度軟體業相互比較,是基於這兩個國家有很多相似性。在80年代中期,中印兩國軟體業並無太大差別。中國軟體業並未將印度軟體業放在眼裡,此拜中國高速發展之賜,我們戲言曰印度阿三(是就經濟而言,亞洲國家,日本第一,中國居二)。但到了現在印度軟體業成了全球老二,叫一向自大的美國人也不敢小瞧,蓋茨稱其為繼美國之後的下一個超級軟體大國。中國軟體業卻看起來是王小二過年了,增長率比起國內其他行業尚可自慰,比起其他軟體大國則相形見絀。國內67%的市場份額被外國巨頭拿走(的確就是拿,沒有被狙擊)而且是高端市場。企業在技術競爭力上與外國巨頭的差距是越來越大了。大部分軟體公司都是在進行一般應用開發,為事企業單位開發管理系統。開發工具是別人的,後端資料庫是別人的,絕大多數服務支撐軟體也是別人的(修路的利潤哪能跟提供大型工具的利潤比)。要不是中國盜版猖獗,很多小公司光買開發工具就夠嗆了。不僅僅是技術差距加大,連從業人員的士氣都大受影響。以前,開發出了產品雖然盜版猖獗,但大多贊譽有加,現在,有時連盜都不盜國產軟體。過去的程序員們也沒多富有,但常被不少愛好者追捧,聲望甚著,現在,大概只有出校門沒幾年的「青光「才為自己的程序員身份得意了。幹了幾年後,再不願說自己是光干編碼的程序員。中國的程序員們盡管並不認為自己的水平比印度同行差,但大都承認了軟體業與印度的差距。也沒什麼人認為中國軟體業形勢大好,高歌猛進。至於中國軟體業為什麼會落敗於印度,已有不少總結,在此不表。來看一看業界人士們開出的在網上引發大爭議的救業良方。印度軟體業這幾年的迅猛發展吸引了全球目光。中國軟體業業界人士紛紛以玄奘西行的架勢前往取經,這是無可非之。業界人士們取經的結論比較具共性的是:中國軟體業需要進行職能化分、大量培養軟體藍領、開拓海外市場等。進行職能化分、實施軟體工程、加強管理這些沒多大的爭議。爭議集中在軟體藍領這個新玩意上。在目前關於美國、日本、西歐等其他軟體發達地區的報道中鮮見著軟體藍領這一劃分和論述(大師和普通程序員當然有別,哪裡都一樣)。這是個我們從印度帶回來的特產。原因是印度人用高中生在編程,再加上那幫傢伙軟體工程、項目管理搞的很好,居然能按時上下班,幾乎跟哪裡都不一樣。於是就得出一個軟體藍領的概念(是印度人首創,還是我們的新發明,待考)。可是我要提醒的是印度信息技術部部長2000年5月在華盛頓放言印度每年能向世界輸送20萬信息專業技術人員,美國現有IT人才簽證配額的一半被印度人占據,看來輸送的可不是一抓一把的高中生。老美還沒那麼笨。以印度現在的培訓體系現狀和實力,那幫高中生經過培訓是必然的了。他們可是在中學就接受扎實的計算機教育。我們的所謂的科班出身,不也是從高中拉了一撥人進行再教育嗎?我們的大學技術教育是不是比他們的培訓體系強,這我沒法量化比較。我倒知道譚浩強教授在一次計算機教育會議上說他對中國現在的計算機高手大部份是非計算機科班出身感到迷惑不解。非計算機科班出身的高手得大部分自學吧,還有不少超過天天接受計算機教育的。我也還知道印度IIT被稱為亞洲的MIT。我也還知道印度的培訓系統來中國幫我們培訓技術工程師。盡管業界人士對軟體藍領語帶不屑,但要真是我們的教育培訓比他們好,那倒是我們應以幫助第三世界兄弟的名義去幫他們。怎麼掉過來了。那種因為印度很多編程人員沒有大學學歷,就把人當作是一抓一把的高中生的人是否也太過皮相之見了。盡管他們不會告你行業污衊,但我建議有關人員在爆炒軟體藍領時先仔細斟酌一下,去考察一下別人受到的計算機教育再說不晚,程序員里沒幾個人跟你們搶「軟體藍領」這個詞的話語權。也許吧,他們的培訓系統比我們差,我們的認證培訓系統可以讓一個文秘專業的MM在一個月內拿MCSE,真是天才輩出!軟體的開發畢竟還是創造性的活動,你得把要處理的事務進行邏輯轉換,再變為程序邏輯,編出代碼。即便引入軟體工程,把事務進行細分,分成更小的功能模塊。你也得進行邏輯轉換,離不了思考。要是不想讓整個程序慢如老牛,還得仔細考慮對全局的影響。軟體工程搞得再好也不能讓前一個程序員寫if,後一個程序員寫else,再後一個打個大括弧。要真是不需動腦就能寫,用能代碼自動生成的開發工具就行了,哪用得著一個人。就是不給薪水也得用一台計算機呀,還浪費能源。你要是在業務流程、核心邏輯不變的情況下改來改去,那是叫維護還是叫開發?開發就是這個樣子?如果開發真是做個界面,拉兩個控制項,改改屬性就行,那你還是找一個會Photoshop的人吧,效果肯定好。繼續說這個軟體藍領,我們既然學習印度的管理經驗,又帶回軟體藍領這個詞,還要大力走向世界,看來我們的確是「師印長技以制印」了。前文曾有對世界軟體業產業類型的描述。美國的模式,我們現在又缺資金、又缺技術積累,也沒合理的產業群落,一時還學不了,以後吧。愛爾蘭也沒法學,搞20多個版本賣給誰?菲律賓軟體產業的增長速度都叫我們吃驚。我們就來看一看印度軟體產業,印度產業大部份是外包。我們倒還多了一個國內市場作後院,很占優勢吧。仔細來看一看!大家認同的說法是,印度人能拿到外包業務的原因是:官方語言為英語,有語種優勢,勞動力成本低廉。當然,還有常提的一句話:中國人和印度人都適合編程,無它,從小重視數學爾。怎樣超趕呢?語種優勢?印度比我們強。品牌優勢?也沒法比。我們跟他們比聰明?還是等這方面專家來解釋吧,先別那麼想。那就拼價格吧!我們就打一場價格戰吧!家電業都能打,我們怎麼就不行。拼價格那得先降成本,軟體的成本主要就是程序員的工資。讓一個人均GDP847美元、現有程序員16萬人、現在每年培養科班技術人員5萬多人的國家跟一個人均GDP300多美元的國家、現有程序員40萬、現在每年培養近20萬技術人員的國家打人才價格戰!當然,我們的認證培訓機構能用一個月時間將一文秘專業的MM培養成MCSE技術專家,看來勝利在望!再來看一看我們的後院。我們現在有16萬名程序員,分布在近6000家軟體公司。這么多的軟體公司都能活,那恐怕得感謝這幾年的信息化熱潮。盡管大部分的軟體公司都是做行業應用、管理軟體的。但一些大型的行業應用軟體並不是由本土企業來完成的。Satyam和Multitech拿下了華為、中興和聯通的幾個重要訂單,而中國航空系統的管理軟體也落入印度軟體公司的囊中。一通訊公司的網路核心軟體也是其印度研究所完成,這也可算中國軟體公司。但卻不代表中國軟體業的真實水平。有人已在冷思信息化的熱潮:雖然各個企業之間千差萬別,但同一行業的業務流程卻有著驚人的相似,行業應用的標准化這恐怕是這類軟體的方向。被譏為「做系統缺少資產; 做應用缺少溝通;做信息缺少分類;做工程缺少規范;做管理缺少制度; 做團隊缺少組織「的大多數軟體公司如不圖變,恐怕無力擔當這一責任。在印度幾頭軟體大象已經開始涉足中國市場的時候,我們先不要全都忙著打出去吧!我們有什麼優勢:管理?資金(軟體企業的積累)?技術積累?人力成本?
❺ 程序員是做什麼的
程序員一般的工作是從事程序開發、程序維護。
程序員是從事程序開發、程序維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。具體工作職責如下:
1、負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態。
(5)我們是誰程序員擴展閱讀:
職業要求
一般的程序員都有四年的在專業領域的學習,需要一個在程序領域的學士學位獲得者,不論是數學方面的還是工程方面的都是可以的。
大約有20%的人在這一領域的計算機科學和工程學擁有更高的學位。還有很小一部分程序員是自學的,盡管一些專業性的學校或者綜合大學可以提供,但是也需要一些別的途徑來提供相關的人才。
盡管學歷是比較重要的,但是公司經常把重點放在應聘者的工作經驗上,很多剛從大學畢業的大學生雖然有引人注目的學位證書,但是他們找不到工作是因為他們缺乏經驗。
一個程序員雖然沒有正規的學歷,但是如果一個人擁有程序設計的深厚知識背景或者豐富的工作經驗的話,那麼他的機會要比有學歷的應屆畢業生大得多。
對於職業程序員,另外一個重要的方面就是,程序員需要不斷提升自己的業務技術,他的技術必須一直保持在一個較高的水平,並且要不斷發展,程序員也要尋找貿易的機會,要參加研討會,在周刊上發表文章和接受職業教育,這些使程序員在自己的領域中分級或者不斷並排前進。
❻ <%@ info="我們是java程序員!"%>
<%@ info="我們是Java程序員!"%>
本來就是一個錯誤的語句命令,加上去肯定報錯啦
❼ 誰說我們程序員只會編程
我個人的觀點認為:作為一個合格的程序員,絕對不應該只滿足於自己會編寫程序源代碼。而是應該必須再提高自己的計算機軟體開發綜合素質。
例如:再多學習一些計算機軟體專業的其它課程。像:計算機操作系統、數據結構及其演算法、高等數學、高等代數、離散數學、概率統計等都是非常重要的課程。多學習一些數學課程,主要是為了在將來承擔大型的系統軟體、或者是應用軟體時可以根據自己打下的堅實的數學基礎,建立起相應的數學模型,從而才能夠在此數學模型上實現系統軟體(或者是應用軟體)的非常復雜的功能。而這些理論知識的積累遠遠要比只會使用程序設計語言編程重要得多。
❽ 程序員是什麼職業什麼職務
程序員(英文Programmer)是從事程序開發、程序維護的專業人員。
一般將程序員分為程序設計人員和程序編碼人員。
軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。
職務:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
程序員職業要求:
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系統內核實現機制的信息很少,但是通過Internet仍然可以獲得很多信息。了解網路協議TCP/IP。
❾ 什麼人算是程序員
mod=viewthread&tid=314起因先聲明,只是談自己看法,和大家討論一下,沒有別的意思 我根據自己的經驗把程序員分為以下幾種 單純沒有腦子的 這種程序員是最讓經理氣的一種,因為大多是剛入門的,或是學生剛走出校門,不喜歡問,也不懂得分析,只是一味的很聽話,為什麼說他們單純呢?那是因為他們從來不會問,不會說也沒有自己的想法,你讓干什麼就干什麼,讓自己怎麼干就怎麼干,聽上去感覺特好的員工,很聽話,如果只是這樣就好了,可怕的是他們沒有腦子,比如你說讓他完成一個增加的功能吧,他們很聽話的給你做出來,但只是一個增加的功能,他根本不會在增加功能之後再給你處理一下刷新數據的問題,或是做一些必要的驗證,更說不上代碼的擴展性,那都是見不著邊的事,不可能。 你說讓做一個查詢功能,他完全有可能給你做出來一個查詢所有的功能,不會管你要不要根據時間,要不要分頁,或是其它的方式的查詢,人家還可有理,會告訴你,你需求上沒說啊,只說要有一個查詢的功能?然後你無語。 有腦子先斬後湊的 這類程序員大致是工作有一年或是兩年工作經驗的人,自認為自己有些經驗了,做了幾個項目,感覺自己NB的不得了了。分配一個功能總有一些自己的想法,其實他自己不知道這些想法還不成熟,只是個人主觀意向,你說讓人家做一個導航條吧,你清楚的告訴他是在頭部用的,要直排下拉類型的。 好了得到需求了,他根本不管你為什麼要這樣做,在做的過程中,他發現自己以前做一些項目里有導航條的,而且很好看,他們想,經理是怎麼想的,設計的還不如我設計的好看,我給他改一下說不定還能得到他的獎勵,於是自己把直排下拉的導航改成了,直排出面板那種的,因為好看,而且還不告訴經理,想給大家一個驚喜,誰知道經理一看,說怎麼改需求了,客戶不要這樣的,然後他就跟你講理,說這樣的好看,而且什麼擴展性還好,技術先進,流行,然後你會很無耐的告訴他,你做的確實很好看,但是客戶不付錢怎麼辦,於是沒辦法在你的強逼之下他不得不改,於是你對他的工作很不滿意,首先是這個人不好管,老自己做主,不把你當回事,怎麼辦,好點的經理會慢慢引導一下,脾氣大的經理會直接扔出兩字滾蛋 我們來分析一下他的心理, 第一種可能就是感覺自己做了很多項目,有一點自大,目中無人的心態,看不起別人設計的東西,總以為自己的技術和代碼很棒了,因為自己在程序界摸爬滾打一兩年了,也算是有所見識了。但他們確不明白,現在的自己正像當前的曹仁學曹操一樣,只是學得其形而為盡其神。大部分的軟體,網站,不能只看網站本身的價值,成功不成功,不是自己說了算,也不是經理說了算,還得看客戶,一句話客戶喜歡的就是好東西,客戶不懂技術啊,你寫的再好,客戶不懂哦,所以一定不要亂改需求,軟體要和市場結合才能真正體現出它的價值,做讓大家喜歡的軟體,而不是單純的技術堆積。 第三種可能是自己實現不了,而又不想學習,感覺浪費時間,所以直接改動一下得了。感覺自己如果寫的話,寫好了還好說,寫不好,耽誤時間,一個導航幾天能不完,會很丟人的。於是要加速。 有腦子,很聽話,很認真,但基礎不好,代碼有局限性 這類型的程序員大多是工作一到兩年的程序員,但和上面的不同,他們很有腦子思路很好,而且很聽經理的話,做東西很認真,做不完了自己會加班寫,學新的東西也很快,但是有一點不好的是,他們有很多理由說自己沒時間學習基礎,這些人一般是在學校沒有學好,出來之後後悔了,學起來很認真,由於學了些新的知識,起點高,看不起基礎的東西,從不想著沒事去看看編程基礎,看看演算法,看看數據結構,總是以為我都能做出這樣的項目了,還看那些小東西會很丟人的,於是在公司從不看回家更不想看,時間長了,技術會有很大的局限性,對某一塊技術很不錯,但是對其它技術不怎麼好,於是在接到一個項目時,總喜歡使用自己現有的,會的技術去實現,轉了一圈又一圈總算是把東西寫出來了,而且還是加班完成了,但是代碼的性能,穩定性,和效率上差的很遠,擴展性也談不上,時間一長,項目一多起來,就會出現多次反工,因為需求是會不斷變化的,於是自己的代碼也要變化,感覺很是理所當然,一個項目沒事,接手的多了就麻煩了,新項目剛到手,老項目就出問題了,不是這里有點小毛病就是那個功能要升級,於是新項目放下,著手改老項目,手上能有三四個項目時,就會忙個不停,改的多了,沒辦法再改了就得重新設計,或是直接說這個功能實現不了。 其實在這個階段的朋友很有潛力的,只要花點心思補習一下自己的技術缺陷,多看看高手的代碼,寫之前想一下,設計一下,自然事半功倍,千萬不要有眼高手低的心態。 不隨便改變需求 他們不會主觀的改變一些東西,不管是對還是錯,如果要改的話他們會在開會時,或是私下跟你提出來,通過後再改,否則會按需求辦事 2.不寫沒有思想的代碼 在寫功能時會加上一些人性化的功能,比果加個小圖標,加一些驗證,處理一些操作習慣,加加快捷鍵,處理好Tab順序,等這些,不用你說,他們自己會處理好。 3.不寫沒有遠見的代碼 4.不寫不負責任的代碼 我們寫代碼一是為客戶用,二是方便其他人看,不單單是自己維護,要對自己的代碼負責,從自己手上出去的代碼代表的就是自己的臉,代碼不好,人家會打臉的。他們不願意挨打所以他們負責。 高手在編程效率方面可能並不比普通程序員快多少,因為他們會吝嗇自己敲下的每一行代碼。這種吝嗇有兩方面的含義,一是項目的架構性和整體性考量,二是從性能和優化的角度進行Coding。其實,這里所映射的是一個開發者的技術視野。 有多位技術專家強調項目執行時的全局觀。面對一個項目,即使是團隊中的普通一員,也要力求從項目整體架構的角度審視開發需求,對各個模塊、介面和通信做最優化的預想和配置。這樣可以從全局審視整個項目的技術布局,預判可能出現的問題。 在確定了整體之後,落實到具體的模塊實現,每一行代碼不但有上下文的考量與規劃,還要具備模塊間的整體布局。這是模塊內的技術視野,比如介面的定義、注釋的可讀性、代碼的執行效率等。當你寫下一行代碼前,要考慮它是否會對整個系統造成影響,是否方便其他介面進行調用,這些都是一個開發高手的技術潛意識。 據一些經常帶領入門級開發者的技術經理介紹,多數人只考慮自己所負責的模塊進行開發,缺乏一個全局性的技術視野和對代碼性能苛刻的態度,這樣雖然能按交付日期完成項目,卻對項目質量和開發者的自我提高有很大阻礙。 開發高手是代碼閱讀者。大多數技術專家的代碼閱讀量是普通程序員的百倍,代碼閱讀的時間比寫代碼的時間要長得多。 多數程序員只把程序開發當成一份工作,他們在乎平台的前景、語言的優劣、報酬的高低;他們不願為一個技術點反復鑽研,不願為一個bug精心測試,不願為自身技術水平的提高多花時間。而開發高手往往具有單純的技術夢想,願意為技術付出自己全部的時間。這幾段話是來自
❿ 什麼是程序員什麼是代碼
程序員所寫的代碼,是為某一特定程序或某一個應用程序所制定的編碼和內部測試的組織實施,使此應用或程序應能夠在程序員編寫的代碼中,實現各種功能。程序員(英文Programmer)是從事程序開發、程序維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。代碼又臭又長
我見過最長的方法是5000多行,那段代碼沒人敢動,只敢往下加 if else,每次需要改這段代碼的開發都戰戰兢兢,生怕出現什麼莫名其妙的bug。java 可是一門面向對象的語言,一個方法裡面有5000多行可以說是很可惡的事情了。我想一開始代碼長度可能沒這么誇張,是什麼導致這種結果的?一個是當初寫這段代碼的人本身寫的是直來直去的方法,一堆if else ;後面迭代的開發,面對這么長的代碼瞬間失去了從頭讀到尾的耐心,直接繼續在後面加 if else 迭代,最後這個方法就變成了一個縫合怪一樣的玩意。
好的 sql 可以很大程度上簡化代碼的復雜程度,但是太過復雜sql 本身就會給後來的開發人員造成閱讀困難,結果又是變成一條無人敢動的祖傳代碼,我想這應該是不少公司極度抵制存儲過程的原因之一。當然不少銀行應用開發還是大量使用存儲過程,存儲過程有用武之地的,但是一個又臭又長的存儲過程就等著變成祖傳代碼吧。當年我見到一個60多個join的sql,看到第一眼就驚為天人從此難以忘懷,當然那段sql也成了沒人敢去動的代碼了。
代碼邏輯不明
代碼邏輯不明所以是我們開發很容易去犯的毛病,是一個不致命卻煩人的毛病。在代碼上的體現是,邏輯判斷寫的比較反人類各種雙重否定是肯定,不把你繞暈不罷休。或者是寫起代碼來東一榔頭西一棒槌,讓人不知道你想幹嘛。導致這個的原因有可能是開發人員在需求理解上出現偏差,做到後面發現不對勁,再回去改又不大可能了,只能硬著頭皮往下寫,結果就是代碼彎彎繞繞;還有很重要的鍋是在產品經理,任意變更需求,想一出是一出,開發人員無奈只能跟著想一出寫一出。還用可能是開發人員方法或者類命名太藝術了,什麼四川方言拼音這種沒有十年腦血栓想不出的命名咱就不說了。就說那種國產凌凌漆式的無厘頭命名——這看上去是個刮鬍刀實際上是個吹風機,就這種不知道讓人說什麼好。
規劃代碼的核心思想
吐槽了一堆代碼規范問題,接下來我們說說如何去規范我們的代碼以及如何做到就算開發人員更換了,或者項目轉手給他人了,仍然可以讓後面的開發可以無礙的去閱讀代碼修改代碼。當然各個公司/團隊都有自己的一套代碼規范,比如項目的結構、代碼命名風格、代碼格式等等。不同團隊有不同的風格,但核心思想是大同小異的。接下來我就我個人的開發經驗來分享一下一些代碼規范的思想。