A. 將來作為一個程序員,如何讓自己很好的融入團隊中去
多和別人交流經驗,學會分享和學習。
B. 如何才能修煉成一名不可替代的程序員,避免裁員危機
程序員,就是從事程序開發、程序設計、程序維護的專業人士。
作為一種專業性極強的技術性專業,程序員的工作難度非常高,只有專業技能水平高超的人才能在這個領域獲得良好的發展前景。……那些實力不足的人,只能被最終淘汰。
因此,要想在程序員這一行里成為不可替代的人,避免自己被淘汰出局的情況,就必須具備以下幾方面能力:
1,高人一籌的專業技能。
在職場上,要想確保自身生存,就必須具備一項專業技能。……要想確保自己不被淘汰,就必須具備高人一籌的專業技能水平。
因此,要想讓自己成為不可替代的程序員,要想讓自己避免被淘汰的情況,就必須確保自己的專業技能水平高人一籌。
2,強大的羅輯思維能力。
程序,是一個邏輯性極強的系統。
一個程序的各個部分之間、各項功能之間,都存在著極強的關聯,也擁有著非常強的邏輯關系。
因此,要想編寫出性能優異的程序,就必須擁有極強的邏輯思維能力。……這是確保自己擁有更強實力、確保自己不被淘汰的重要能力。
3,高超的數學水平。
程序的表象,是一段代碼。而其核心,則是數學模型,是具體的演算法。……只有具備高超的數學水平,才有能力編寫出演算法精妙、邏輯嚴謹的程序來。……這是自己具備更高水準的關鍵因素。也是自己高人一籌,不可替代的關鍵因素。
4,精通至少一門編程語言。
編程語言是程序員在編程時所用的工具。……只有熟練掌握手中的工具,才能讓自己編寫出優秀的軟體。……編程語言有很多種,一個程序員不可能面面俱到。……但是一個合格的程序員必須掌握至少一門編程語言,這就是自己工作時最得力的工具。……運用這個工具,自己就可以編寫出優秀的軟體,就可以獲得更好的業績,最終成為不可替代的優秀人才了。……自己也就不可能被淘汰了……
C. 一個java程序員剛進公司,如何適應企業開發
上司叫你幹嘛就幹嘛,別偷懶。事情做完了去找事情做,別乾等著。
不需要去考慮現在做的事情 有沒有意思之類的。剛進工作的人,不是考慮這些的時候。
過了幾年就知道 什麼才是重要的了
D. 剛踏入職場的程序員,如何快速踏實地提升自己的能力
程序員提升主要靠實踐,跟一個完整的項目能最大限度的提升項目能力,以後找工作不用愁啊,現實工作中很難達成,你可以去找找培養這方面人才的,提升一下自己,你看看願碼ChainDesk,有你需要的
E. 程序員剛工作時如何快速融入工作
剛工作的時候一定要去像一些自己的前輩虛心請教,然後了解一下這個公司的流程,還有一些規則,就能夠迅速融入工作。
F. 公司大多數是程序員,該怎麼讓大家活躍起來呢
一個互聯網團隊中,企業的研發部大多都是男性,女性成員的加入可以調節和活躍團隊氛圍,並適當平衡團隊中的男女比例。
經歷過的所有大大小小公司,在同等甚至女的能力差男的不是太大,都是優先招聘女的,因為男的太多了…招女的也是活躍公司氣氛的一種辦法。一方面是男女確定有比較大的差異可以互補,另一方面男女搭配。
G. 做電腦程序員應該從什麼學起
一位仁兄說的「程序員寫的程序不是『演算法+語法』,而是要能夠滿足用戶需求的工具」我非常
贊同。要想達到用戶需求就必須從各個方面來考慮,如業務、人機交互 、效率等方面,而不只是一
個語言(語法)的問題,語言(語法)只是工具,只知語法不知其他那就真是編程機器了!編程機
器在印度高中生經過幾個月培訓,按照嚴謹的軟體工程方法,加上較高的管理,就可以勝任了!大
家相信嗎,我是相信的!
談到這里我就不禁說到了國內教育界最近在探討的問題「計算機科系的畢業生特別是本科大專
生到底出來幹啥、如何適應社會要求」。大家也看到了很多計科系大學生說「精通 N 種語言,熟悉
N 種工具」,不知道學校里的其他知識到那裡去了,甘願做編程機器,浪費了人民的納稅,干高中
生能乾的事,比較可惜吧!在國內現在就是這樣了。國內的軟體開發業到底是需要哪些人?如果僅
僅是編碼機器,那我估計中國矽谷還是做夢去吧!
社會似乎也需要編碼機器,翻翻招聘廣告,做應用開發的都要求精通某某語言,熟悉某某工具,
很少需要懂管理懂軟體工程的人。以我個人一點偏激的想法,民族軟體產業要騰飛,更需要的是能
管理使用編碼機器的人,即管理人員。國內軟體產業編碼機器已經很多了。希望不要惹怒了那些
編程高手!System Develop 與 Application Develop 在國內到底哪個能養活你,能賺錢?諸位仁
兄想必也知道,況且俺也沒發現幾家水平高的公司招這方面的人。畢竟 OS,DB MS,COMPILER 都被
國外做了;另外也別跟我談 LINUX,畢竟還是少數燒錢的人做的事情,我先喂飽肚皮再說。我手下
的很多搞4GL語言的程序員都想轉行學VC等所謂的更低級的語言,我總是說「在 XX 城市,先用 4GL
工具生存,以後再學習 VC 吧!」 。說的簡單一點:先解決肚子問題。
如何判斷自己是否是編程機器?
1、面對需求不考慮用戶,只是考慮用哪些程序技術展示自己的語言語法技巧。
2、學習了 N 種語言。
3、從來不學習或實踐軟體工程。
4、語法語言水平在眾人中遙遙領先、特別是一些稀奇古怪的語法。憑著興趣和創造力去干,卻
重復繁瑣的勞動,做著沒有意義――唯一意義是賺錢,而且真是出了半斤力,拿不足八兩。終日勞
累,卻不能學自己想學的。最終結果是跟不上社會科技的發展 ,人已衰老。悲哀!!!
開發軟體的關鍵是要有想法,一個好的想法比什麼都重要。尤其是有關網路方面的就更是如此。
實際上一個程序員最終的技術需要和實際相結合。當編程水平到達一定水平時候,語言的使用並不
是最大的障礙,對整個項目的把握、軟體工程的把握、資料庫的設計以及執行效果的分析等等才是
需要進一步考慮的東東!否則,為何大多數公司要求有編程經驗了!這些不是程序員必須學的。但
軟體工程、數據結構、離散數學、編譯原理、操作系統原理等是必須要學好的,英文也要多看,
不懂計算機英語可不行。
我以前是學機械的,(後來自學了計算機),我非常了解在傳統的製造業是如何的規范,設計
人員設計圖紙,然後經審核,再到車間試樣,再根據情況,修改圖紙,如此反復幾次後才能一個產
品定型。而在軟體界,就沒那麼好了。領導會說,這個你做,那個他做,也沒有經過很細的分析
(國內很多都是這樣),在我們這里也沒有系統分析員,每個人都是設計員,也是編程員。雖然這
樣對個人來說,能學到很多東西,但不利於項目。我國的軟體過程水平確實令人擔憂,目前為止只
是幾個人十幾個人的小軟體,還沒有能拿得手的大型軟體。
至於中專生編程問題,我認為只要入了這個行,就不會比本科生差。因為對他來說沒有優越的
學歷條件,那麼只好埋頭苦學,但這正好適應當前計算機軟體迅速發展的今天。學歷只能代表過去
和基礎。更需要的是有能力的人,解決問題的人,實乾的人。我也是個中專生。有時我確實有點自
卑,沒有上過高中和大學(由於那個年代,我只知道能為父母減少一點負擔就行了),所以我一直
在努力地學習(Corba,UML,Java,軟體過程等),目前為止我並沒有覺得我的構架能力和編碼水
平比他們差(只是覺得 English 實在太差)。所以我覺的中專生並不比一般大學生差(當然有些重
點學校除外 //hehe),有時中專生有更大的壓力逼迫自己去學習。學歷不是重要的,關鍵是一個人
的素質。我們不能將目標定位在做程序員或編碼員(Coder)上。光會寫代碼有什麼用?那叫「編碼
員」,在國外是屬於體力勞動的,不像國內,會寫程序的就叫高科技。重要的是分析問題、解決問
題和規劃的能力,系統分析,系統設計及項目規劃才是正途。
程序員不應依賴開發工具,程序員更應該擁有的是一種思維、一種精神、一種觀念。就像
Richard.M.Stallman 一樣,有自己的精神,為自由軟體而奮斗。就像求伯君,為民族軟體的振興而
奮斗。這才是真正的程序員。應該說,他們更注重的不是技術,而是軟體的思維,軟體的靈魂!!
每個人都有自己的學習方法,也許這種方法對我來說有用,但不見得就對所有的人有用。所以,
請不要盲目的跟著別人的學習方法學習,要思考屬於自己的學習方法。但以下幾個原則是要遵守的:
1. 堅持,堅持,再堅持。首先要有毅力,對編程的狂熱也可以在一定程序上起到幫助。我就是
這樣的。起初,我學習 VC 是三天打魚兩天曬網,學習進度很慢,幸好對編程的執著,使得自己堅
持下來了。我周圍有幾個人,他們比我先學 VC 近半年,但現在仍然學不會;而我現在雖說不是很
厲害,但基本的應用程序是不在話下。我就是天天看書,上機實踐,幾乎所有的時間都泡在裡面,
有時連吃飯都在想,為什麼?因為我確實想啃下這塊硬骨頭,我不想半途而廢,我覺得學習 VC
不僅僅是學到了更多的東西,最主要的是培養了我們自己一種堅持克服困難的毅力。
2. 實踐,實踐,再實踐。當你學到了一種新的技術或知識時,多實踐是鞏固學習的一種最好
最有效的方法。這個實踐不是照著書上的例子做一遍,而是根據自己的能力,給自己出題,然後去
完成它。只有這樣,你才能發現自己的不足,同時又增加了編程經驗。但要成為合格的程序員,光
會寫代碼是遠遠不夠的,更重要的是思考。謀定而後動,是不變的真理。
3. 掌握編程思想。學一門語言,不能僅僅是語言,還要注重語言背後的思想方法,獲得提出問
題,分析問題,解決問題的能力,不是為編程而學習。看它是如何來解決某一問題的,為什麼要這
樣去做,他總是要符合客觀事實的,就像人說的話一樣,存在某種邏輯,數據的組織,信息的傳遞,
靠你自己的頭腦去建立,然後看該怎麼樣用編程語言來表達自己的想法。只要你認真實踐,努力去
做,尋求樂趣,就會達到目標。
4. 耐心、細心、平常心、團隊協作精神。在這個網路時代,資料到處都有,無論什麼先進的技
術,只要查到資料,不會的快的學上幾天慢的一兩個月也能學會。現在已沒有寫不出的程序了,寫
不出是因為你沒有寫完它。我以為現在的程序員不一定要多麼聰明,而更需要他有完成枯燥項目的
耐心,找 BUG 的細心,對於金錢的平常心(不要為了早日拿到錢而趕進度),最後最重要是有顧
全大局,團隊協作的精神。
如果你從來就沒有接觸過編程,那你學習 VC 的速度可能會比學過面向過程編程的人要慢一些,
因為你要去理解命令及語句的含義。但只要你努力,並且可以得到別人的幫助,在半年內你會對 VC
有一定的認識。
也不要以為學過面向過程編程就很容易學會面向對象編程。面向過程與面向對象實在是區別太
大了。就拿封裝一詞來說吧,當初我是左想右想才想通的。所以不要自己學過編程,就會在學習
VC 的通道上比別人輕松。學習VC是一項費時費力的艱苦學習過程。為了真正用好 VC,你不得不
先從 OOP 開始學起,也許瀏覽一本純理論的書要更有意思。你將從另外的角度考察 OO 思想。
接下來學習 C++,學習 Windows API,學習 MFC,剖析 MFC,擴充 MFC,創造自己的類庫(不要企
圖寫一個和 MFC 同重量級的類庫),然後精通 Microsoft C 編譯器的各種參數,研究微軟 C/C++
語言編譯器的進化歷史(結合各種背景知識)。掌握了編程的思想,征服 VC 只是時間問題。
現在有一種現狀應該讓我們注意,我發現有很大一部份初學者覺得 VC 是一種語言,C++ 又是另
一種語言。有的初學者竟然還認為學 VC 為什麼就沒必要學 C++!我想這個問題是很多人都沒有注
意到的。就是 C++ 對 VC 學習的重要性。我這有個例子,跟大家講一下。我有個同學,他接觸編程
比我要早,在我還在為 VC 中「::」號怎麼標記的時候,他學習 C 已經很久了。後來,我對 VC 稍
有理解的時候,他也發覺 C 的跟不上時代的腳步了。我便提議他從 C++ 語言學起,可他認為自己
有 C 的學習功底,根本就用不著再去學習 C++。可在學習 VC 的當中,遇到的困難真是數不勝數。
最近,他還是去買了一本學習 C++ 的書,從頭學習 C++。 我希望通過這個例子,能讓廣大的初
學者知道 C++ 對學習 VC 的重要性。
在我的理解,VC 只是一個編程工具,就如 BC、BCB、Delphi 一樣,其實對於編程最根本的就
是三個方面,語言、開發包、 操作系統 API,他們三個方面應該說是相對比較獨立的。
學習 VC,必須有對 C++ 深刻的理解。舉例,對於虛函數,不僅要知道有這么一個東東,更要
知道它的內存鏡像 。這樣才能對 VC 中很多的東西舉一反三,事半功倍。本人學習 VC 近 2 年,
但自覺第一年由於心情浮躁,把 VC 的書翻了一遍又一遍,卻每次都只看了一點就無法再深入。直
到畢業前夕,痛定思痛,克服浮躁,認認真真的從最基本的開始學,把每一點都搞的水落石出,經
過三個月的刻苦,終於大成。直到現在,半月搞定 COM / DCOM,都托當日刻苦之福,因此勸告想學
VC 的朋友,一定要頂住開始的艱難歲月。成功屬於刻苦者。
學習 VC,還要對 WINDOWS 運行機制有深刻理解,才能成為高手。這需要學習微軟的技術,其
中 Windows 編程,Win32 系統(實際上 Win32 系統實現了很多我們在屏幕上能看到的東西,最起
碼 NT 的內核並不大)是一定要學會的。另外,COM(深入研究它,理解對象是如何跨越進程邊界的,
最終能夠自如地在 EXE 中實現自己定義的介面才算到家了。不過這多少有些不太必要)、Dcom、
ActiveX、Windows DNA 等等,如果你有能力,學吧。
我不贊成濫用 ActiveX,一來我以為它的性能很成問題,真是又大又慢又不穩定(可能是我有點
偏激了吧),二來用了它您的程序今後就要被別人牽著鼻子走了。有次我用了個控制項,程序都寫了
大半了,它給我來個繼續使用請支付 333 美元,我兩個多月的工錢,煩不煩人?現在我盡可能用別
人寫的源代碼(我已收集各類代碼3-400MB了),用起來一樣方便,還能邊用邊學,必要時還能自已改造。
VC 是 MS 開發的,所以針對的是 Windows API,你可以不會 C++, 也可以在 VC 下用 C
寫出很優秀的程序,當然如果你比較熟練 C++,並且熟悉開發包 MFC 的話,工作可能要輕松不少。
所以在我看來,學習的過程可以是這樣的:
1. 先學習 C 或 C++,在 Windows 的 Console 環境下編寫不太深入涉及 API 的程序;
2. 在基本上掌握了語法之後,開始接觸簡單的系統 API,學習 Windows 的編程原理和機制;
3. 在可以編寫簡單的菜單程序,可以簡單地在 WM_PAINT 下操作 GDI 函數後,開始學習 MFC,
可以從 Step tourist 學起,看 MFC 的源代碼,理解幾個關鍵的宏的定義與實現,特別是
MESSAGE _MAP。在學習的過程中為了給自己增加點挑戰,盡量不要使用 Resource edit,試著自己
編碼實現控制項的創建、消息的響應。再就是看自己的造化了,動手做一些小工具,特別是自己平常
需要的,對自己的提高也應該是很有幫助。究竟我們要的是結果!良好的分析問題高效清晰地肢解
問題的能力才是我們真正要不斷學習的。
對於 VC,我有幾點經驗:
1. 技術為本,語言為次。
2. MFC 的單個類有用,DOC / VIEW 要小心。
3. OOP 要小心,使用不當反而造成大量的工作和糟糕的代碼。
4. 如果可能,考慮選擇使用 Delphi ( CBuilder+ VCL )。
5. 到了一定程度,一定要學 COM。
學習 VC++ 有相當的內容要學,而最後的深度則看個人的悟性與勤奮了。
1)掌握最新標準的C++。(2個月)
如果曾經在大學里自以為學過 C/C++,還對dynamic_cast/static_cast/template/try/catch/throw/stl/...
感到陌生,那你該 Refresh 一下新的 ANSI C++ 標准了。
――此與VC++無甚關聯,G++ / BCB 均有所支持 。
2) 學習 SDK 編程。(6個月)
痛苦是暫時的,必要的,堅持就是勝利! 建議用 Lccwin32/Masm32/Tasm 編寫小而精的工具軟體。
《Windows Programming Guide》、《Advanced Windows Programming》
3) 研究 MFC 源代碼。(6個月)
不要被一大堆的宏所蒙蔽,just track and dig into it!! 在知道 MFC 如何擴展、包裝
SDK 之後,自可功力漸進,不被其 MFC 系統框架所困繞。
(《MFC Internals》)
4) 研究 OLE / COM 技術。
COM / ActiveX 技術是 MS 的核心技術,只有徹底洞察其理論精髓才可以體會現在的操作系統
的技術趨勢,以不變應萬變。
(《Inside Ole 2》)
***幾點建議***:
1) Delphi / BCB / VB 可以很快構築界面,但對於想真正學習、理解系統不是一個好的平台,
但如果有時間讀一讀 VCL 的源碼,看看 Borland 是如何封裝系統的,也可借鑒不少。
2) 學習 ASM 對理解 C++ 有很大益處。Soft-ICE 也是和 VC++ 結合在一起的好工具。
3) 語言本身是皮毛,演算法是筋骨;無論高級語言如何發展,在理解操作系統的基礎上不斷提高
自我創新能力。如果精髓一旦瞭然於胸,選擇何種開發工具都可以駕御,一見如故了。
H. 作為程序員,感覺與社會脫節了怎麼辦
窮人無社交,想要融入現在的社會最好的辦法就是多賺錢,等你發達了社會活動自然會找上你。
I. 女程序員如何在職場提升自己
首先要樹立一個觀念,那就是成長是一個適應社會的過程。選擇成為一名程序員需要長期的堅持,而非三分鍾的熱度。走彎路或遭遇困難是常有的事,考驗的不僅是自己在學習中積累的技術,還有自己的智慧。
如果是程序員新手,初入職場一般會被安排一些簡單而基礎的工作,按照分配的任務開始寫代碼,和在學校學習的內容基本一致。如果對相應語言的代碼比較熟練,工作效率會很高,也不會出太大的錯誤。在這一階段也是對自己學生時代學習成果的一種檢驗。在參與過幾個項目之後,你會擁有一定的成就感。在剛入職的3年內,可以在業余時間來自學彌補一些知識上的不足,同時對所做的工作熱情而專注,這是今後職業生涯的一筆財富。
在經過3年的職場鍛煉後,可以根據自己的技術特點,揚長避短。當然,這是以後要討論的,這里暫不詳細闡述。
1、初入職場,要有平和的心態
上班不僅僅是工作,也是在與人相處。學編程的朋友或多或少都有一個大牛夢,希望通過一波高端的操作來獲得同事和領導的認可。該表現的一定要表現,這無可厚非,筆者要提示大家的是當我們初來乍到就獲得好的成績,不能沾沾自喜,而要總結成功的經驗,找到自己的位置;如果遭遇挫折,也不用氣餒,人非聖賢孰能無過,但一定要清楚挫折的由來,不要重復昨天的故事。拿得起、放得下是高情商的人共有的特點。
2、學會學習,增強「自身造血」能力
優秀的程序員到底需要幾萬行代碼的積累?其實因人而異。人和人的悟性不一樣,但要記住,在工作中所敲的代碼不應僅僅是為了應付工作,而要從中吸取營養。當自己能夠接觸到工作幾年的同事寫的代碼,要留意幾分,看看有沒有自己值得學習的地方。
及時關注行業內新的趨勢。IT技術更新換代很快,在從事Java開發的同時,不要甘於滿足這一領域,可以了解Python、AI開發方面的技術,在業余時間可以去嘗試一番,如果公司有新的業務需要勇敢地嘗試,不要保守在自己的已知領域。學習和工作並不沖突,若是能夠從工作中理清思路,找到需要彌補的地方,這樣的學習才是可持續的。
3、拳不離手曲不離口
不論是Coder還是Programmer,對代碼的態度絕不應該停留在「知道」和「看懂」的水平上。很多編程的經驗就是從無數次敲代碼中得到的。為什麼新手敲代碼IDE會頻繁地報錯而老程序員不會?原因就在這里。程序員一般都面臨很繁重的工作,如果每敲一段代碼都要用力去回憶自己當初是怎麼學的,而不是信手拈來,那麼,工作將成為一筆沉重的負擔。要讓編程語言和母語一樣熟練,遇到問題就知道調那個函數和變數,不假思索地敲出代碼,這才是大牛應當具備的功力。
4、樹立項目全局觀
項目全局觀有廣度也有深度。一個團隊負責一個項目,每個人都有不同的分工,那麼在熟悉掌握自己的工作范圍之後也要把眼界放寬,看看自己的模塊是如何與別人的模塊銜接的,開發流程是怎樣的,整個項目的架構是怎樣的情況。然後了解一下該項目的應用場景,實施的意義,問問自己目前的架構能否解決客戶的需求,有哪些需要改進的地方,把自己思考的內容記錄到工作日誌中,經過一段時間,你會發現自己成長的很快。除了在廣度上有所突破以外,還要研究的有深度。筆者曾經看過JavaEE框架的源碼,其中涉及到的演算法、數據結構、設計模式等編程思想,當下不一定會理解,但可以記下來結合自己的工作內容慢慢消化,這樣今後遇到一些底層的問題會處理得游刃有餘。