Ⅰ 網路工程師、軟體工程師、程序員哪個比較簡單、待遇方面比較好
要待遇比較好的一般都是不簡單的,有難度的待遇才會好,越難的事情做的人越少,待遇就越好。在這幾個裡面程序員算是最簡單的吧,但待遇最好的是最難的軟體工程師,網路工程師也不錯,難度較大,涉及的知識面非常廣,待遇也不錯
Ⅱ 程序員學習技術是深度優先還是廣度優先
個人建議廣度優先。 因為你必須知道適合什麼, 才能夠確定自己想要深入的。公司有個孩子做了四年流媒體,發現根本不是自己喜歡的行業, 然後轉行ios, 又開始從最底層做起。 轉型有痛點, 如果不能博覽整個行業, 沒有一個整體的知識體系, 很容易淪為重復勞動的碼農。
Ⅲ 一個程序員要具備的基本素質是什麼
團隊精神和協作能力 :
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。
文檔習慣:
作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。
規范化,標准化的代碼編寫習慣:
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
需求理解能力:
作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。
復用性,模塊化思維能力:
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作。
測試習慣:
軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
學習和總結的能力:
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高了。但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。
Ⅳ 由程序員到架構師,應該是先注重技術的廣度還是深度
架構師要對框架的原理理解透徹,對設計模式深入理解。
而程序員更多的是熟練掌握一門語言,在需求設計明確之後予以實現(此時框架都已經確定好了)。
二者所需的領域知識是不同的,不是技術的廣度和深度問題。
Ⅳ 普通的程序員和大神級的程序員有什麼區別
知識面,經驗。
大神能看到問題的本質,程序猿只能看到表象。
大神一般是某個領域的,有更豐富的背景,更深刻的認識。
Ⅵ 現在程序員有前途嗎我一直想從程序員做起,然後構架師什麼的,我不是學計算機專業的,學編程就是自學的
作為一個不是科班出身、沒有正規學習過計算機知識的架構師,想在這里把我這幾年學習的經歷體驗和大家分享一下,談談自己對架構師成長之路的一些感想。
奠定扎實的理論基礎
千里之行,始於足下!技術不是一蹴而就的事情,而是長時間積累的成果。扎實的基本功是做好所有事情的開始。到現在我還記得對我影響非常大的幾本書:
■《C++編程思想》
■《深入淺出MFC》
■《Windows 核心編程》
■《數據結構》《編譯原理》
我學習計算機正是按照這幾本書的順序,之前學習C的經歷就不必說了,而轉折點正是《C++ 編程思想》——它讓我感覺到程序和語言竟然這么有意思,至今仍對虛表的概念記憶猶新,尤其指針的用法,對我以後學習Java語言有很大的幫助,對多態和語言的特性也有了很高的認識。
《深入淺出MFC》這本書,記憶最深刻的還是其中強大無比的宏定義和對象層次設計。然而學習MFC的過程中,我遇到的最大問題就是:很多東西都是黑盒的,這引發了我刨根問底的慾望。所以後來我學習了《Windows核心編程》,這本書給我的最大收獲,就是了解了很多操作系統底層的知識,操作系統是如何運行的。不過遺憾的是,如果當時從Linux 或者Unix 開始學習,應該會了解得更系統一些。
之後我深入學習了《數據結構》和《編譯原理》。這是我經過了很多實踐以後,又回過頭來重新學習。拿《編譯原理》來說,以前對這門學科的了解非常有限,後來為了實現一個東西,要用到腳本語言,找來找去找到了Velocity(後來想想使用Groovy 應該更好一點),用了以後覺得很好。以前修改程序邏輯,是需要重新編譯或者修改配置重新發布才能OK,而現在只需要編輯然後保存一下,就能得到自己想要的結果。這令我著迷,於是想知道它是如何實現的,翻看源代碼才曉得原來還有 JavaCC這個東西。就這樣,我從解釋語言入手,逐漸開始了瘋狂學習編譯原理的過程,越發覺得編程語言非常有意思。
回頭想想以前和現在學習的語言,感覺程序語言就是在不斷抽象:從匯編、C、C++, 再到Java、C#,再到更動態一點的語言如Perl、Python、Ruby 等等。不管它再怎麼變、再怎麼抽象,還是編譯原理應用的產物。
講了這么多,就是想強調理論基礎知識的重要性!雖然我們現在使用的框架如此之多,但是如果你有了扎實的基礎理論知識,這些東西就跟玩具一樣。基礎就是一個無招勝有招的殺手工具。
培養完善的抽象思維
抽象的能力也是作為一名好的程序員必須具備的能力。我們在考慮問題的時候可能會遇到錯綜復雜的場景,從這些迷霧中找到一條明路是我們做好程序員的關鍵。這些年來學習了很多框架,回過頭來想想自己都有點後怕,這也令很多初學者望而生畏。但認真想想,真的有那麼可怕嗎?
讓我們從語言層面逐漸剖析這個問題,應該很容易做出解釋。程序語言就是我們在某種場景下交流的工具,匯編是機器語言;C和C++ 是編譯型語言,它們是一種針對匯編的高級抽象;而Java 和 C# 就是更高級的抽象了,甚至於抽象了一層虛擬機出來(這個產生的影響就是,之後的很多高級語言評判標准,都是「是否支持虛擬機」),再到後面的許多動態語言,那就是更抽象了。說到這里你會問到,講這么多語言類的東西和學習框架有什麼聯系?讓我慢慢道來。
我們使用一種語言就是用它的語法進行編程,而學習一個框架實際也是為了用這個框架所提供的語言來寫程序:Struts——我們使用很多配置還有 Action 和Form ;Spring——我們使用Bean 模型,這是它的最基本模型(現在 Spring 已經龐大得讓很多人無法學習了);iBatis——我是用它的XML-SQL 模型;JBPM——使用它所謂的GOP模型(面向圖元的編程);Web flow——是在使用它的頁面流模型。這樣的例子我可以舉出很多(這也是DSL現在如此流行的原因)。
很多人會說:學習這么多我已經暈掉了!不妨想想,為什麼會有這么多東西存在? Struts 是為了解決Web編程的困擾;iBatis、Hibernate 是為了解決在資料庫編程時的麻煩;原有的Web頁面編程都是獨立的具體單元,Web flow能夠讓這些頁面形成流的形式,讓開發更順其自然;從JBPM的GOP可以看出,JBoss 的開發人員對抽象的理解度很深。我舉這么多例子,實際是讓大家不要害怕現有的這些框架,有了扎實的基礎,抽象的概念是很容易理解的!缺乏抽象的能力,你就不能更快更好地解決問題。
實際抽象能力衍生出來的一點就是,需要我們對已學過的知識定期進行梳理。這樣能讓你鞏固已有的知識,為以後的學習做好准備。知識就好比一棵生物進化樹,最終目標都是一樣的,關鍵是看如何選擇進化的路線,讓自己的知識結構能夠有機的結合在一起。做到學以致用。過一段時間就梳理一下,你會有更多的發現。
擴充現有的知識層面
在鞏固原有知識結構的前提下,我們更需要擴充現有的知識面。井底之蛙,看到的永遠是井口大的那片天,只有跳出來,才能看見無限美好的藍天白雲。我曾經也常常局限在自己已熟悉的那塊領域沾沾自喜,但是走出來以後才發現,自己原本是多麼膚淺!學習的知識越多,對新事物的洞察力將會越准確!這樣有助於你鞏固已有的知識,系統地學習新的知識。
那我們是否需要無限平行式的學習知識呢?我的答案是「No」。人的知識面是有限的,我們需要一個T型的知識結構。你的知識面要廣,但是對於某些技術點要專,這才是做好一個架構師的關鍵。有時 「專」可以讓你對很多「廣」的知識產生觸類旁通的感覺。
實踐也是非常重要的一環,不要有畏難心理,覺得這個東西太難,我無法完成!有時候事情的結果可能是糟糕的,但是過程是非常寶貴的,其中可以學習到很多東西,同時也可以讓自己避免輕浮的心理。
還要著重培養自己良好的溝通與解說能力。架構師面對客戶群具有多樣性,有技術工程師、業務人員、公司管理層,甚至直接面對客戶等。要把一個高度抽象又復雜的系統說清楚,這對於架構師來說也是一種挑戰。所以架構師必須掌握技巧,應用多種表達方式來闡述架構與產品設計、與具體業務、與公司戰略之間的關系等。培養良好的溝通能力,多和周圍的人進行溝通,你能夠學到更多的知識!
「平衡」是架構設計的藝術,我們設計一個東西,就是在平衡各方面的利益。平衡有可能是時間上的,比如需要支持多少年的系統可用性;平衡有可能是縱向的,比如要支持系統的向下兼容性,要保證程序員編程模型上的簡單性等等。這種平衡就是因人因時因地而異了。平衡的把握很可能就是評判一個架構師架構水平的標准!架構師在設計的時候應該權衡維度、整體性和擴展性,考慮問題時不要局限於自己的一畝三分地。多種點田,會長出很多莊稼的!
擁有一個扎實的基礎,不斷擴充自己的知識面、完善知識體系,在對現有知識抽象的基礎上,不斷去溝通實踐,你將獲得更強的架構平衡能力。最後我還要說,業務知識非常重要,這個是你實踐的關鍵!
Ⅶ 求助,有人清楚現在IT程序員的就業前景是怎樣的嗎
IT行業的迅猛發展,帶動了企業對IT人才的大量需求,很多人都准備從事IT行業。那麼IT行業學什麼好呢?IT行業發展前景怎麼樣呢?
首先要看自己的興趣,其次要根據市場需求來選擇,現在很多IT行業技術都非常火熱,具體還得看自己的興趣與市場需求來確定。
IT行業發展前景怎麼樣呢?
優勢之一:前景好,就業容易
據相關資料顯示,未來五年,我國IT人才缺口多達60到100萬人,隨著智能手機的發展,IT人才將更加吃香。
優勢之二:有錢途,收入更高
國內有一到兩年開發經驗的軟體工程師年薪達10萬以上,據知名獵頭公司的預測,未來幾年,高端IT人才的薪資將會持續上漲。
優勢之三:工作輕松,環境好
軟體企業都在寬敞明亮的辦公大樓,工作環境好,程序員大部分的朝九晚五雙休的工作,工作更加輕松,生活有規律。
優勢之四:更體面,高端時尚
IT行業,薪資待遇高,工作更體面,高端,時尚,是時下性價比最高的技術,選擇IT行業,你的未來將擁有更大的發展空間。
Ⅷ 企業對JAVA程序員,是喜歡知識面少而精的,還是要廣而希的。
最好是又廣又精 ^_^
其實都是相對的,很多東西就是個 API 的調用,用過沒用過又有多大的差別
所謂的精,你又能做到多精?個人比較不推薦那種研究源碼的,太花時間、意義不大
事實上,企業面試比較講究獨立思考、處理問題的能力
我面試通常都要求應聘的把最近的項目背景、技術情況介紹一遍,然後針對其中處理的細節提問。
Ⅸ 程序員應具備哪些知識
邏輯思維能力強(理工科)
英語閱讀能力好
能承受較大的壓力
具有團隊精神
Ⅹ 關於考程序員的一些問題
恩,樓主的分法已經過時了。
自從軟考改革後,就分為:程序員-軟體設計師-系統分析師 這三個級別。
程序員大概等於原來的初程和中程,軟設就等於高程,
程序員考的比較簡單,但是面比較廣,如果你是計算機專業的,基本上看看清華出的輔導書:《程序員考試輔導》,然後做下真題,過一點問題都沒有。