1. 互聯網前輩總是說「bug是改不完的」,新入職的程序員該怎樣應對bug
互聯網前輩總是說“bug是改不完的”,新入職的程序員應對bug:
2. Java程序員 剛進公司 項目經理分配給的bug 怎麼樣去著手改
首先,看看主要的開發文檔。
第二,請教經理大概講解些平台整體結構,
第三,請教同事幫你講解一些怎樣快速的尋找或定位到那個類和那個頁面的方法。因為是他們開發的,所以他們熟識。最好讓他給我演示一二回如何尋找頁面和類。
第四。修改時多用一些輸出語句,在JAVA用System.out.println()
在JS里有alert();在JSP頁面用out.println()等。
第五。記得多問,切記,這是成長的途徑,最適合新手了。
3. 程序員為什麼要一直改bug,不能一次性寫好嗎
軟體可能在使用過程中沒有任何問題,但不符合產品的預期下圖源自「How projects really work?」,很形象的突出了客戶需要的產品和最終得到的產品不一致。
所以軟體想要變得成熟,Bug收集和處理機制是非常有必要的,比如:會影響客戶使用的優先順序高的Bug要優先修復。Bug是軟體的影子,也是程序員的噩夢實際上不能存在沒有bug的軟體,Bug和軟體如影隨形。就像我們使用的Windows,窮盡無數優秀的軟體工程師來設計給用戶優秀的桌面體驗,但也有各種層出不窮的bug。
程序員對Bug有多愛就有多恨,Bug無處不在,即使再牛逼的程序員也逃脫不了Bug的魔掌。想要完全避免Bug幾乎是不可能的,所以也不在一次性就寫好的程序。以上個人淺見,歡迎批評指正。認同我的看法,請點個贊再走,感謝!喜歡我的,請關注我,再次感謝!
4. 如何向 程序員 描述 bug 笑話
1.程序員寫出自認為沒有Bug的代碼。
2.軟體測試,發現了20個Bug。
3.程序員修改了10個Bug,並告訴測試組另外10個不是Bug。
4.測試組發現其中5個改動根本無法工作,同時又發現了15個新Bug。
5.重復3次步驟3和步驟4。
6.鑒於市場方面的壓力,為了配合當初制定的過分樂觀的發布時間表,產品終於上市了。
7.用戶發現了137個新Bug。
8.已經領了項目獎金的程序員不知跑到哪裡去了。
9.新組建的項目組修正了差不多全部137個Bug,但又發現了456個新Bug。
10.最初那個程序員從斐濟給飽受拖欠工資之苦的測試組寄來了一張明信片。整個測試組集體辭職。
11.公司被競爭對手惡意收購。收購時,軟體的最終版本包含783個Bug。
12.新CEO走馬上任。公司雇了一名新程序員重寫該軟體。
13.程序員寫出自認為沒有Bug的代碼。
5. 程序員如何自己創業
30歲,對於每一個程序員來說都是尷尬的年齡,彷彿舞台上不知不覺間已經謝幕,而自己仍在獨舞;創業,對於每一個程序員來說都是曾經或者正在憧憬的夢想,可是夢想與成功之間難以逾越的距離卻也讓多少人望而卻步……以下是我為大家整理的程序員如何自己創業相關 文章 。
周鴻禕談程序員創業
很多人都嚮往著有一天自己創業,程序員更是如此。如果你想創業,那麼該怎樣創業、需要有哪些准備、自己還有什麼不足等等這些問題你考慮過嗎?本文就跟大家分享周鴻禕在接受某媒體采訪時給程序員上的創業課。
程序員創業的特別之處
關於程序員創業,我之所以願意談我的觀點,是因為我是程序員出身,也是從小公司做起來的,我自認為對待很多程序員個人包括共享軟體作者和一些小網站還是很好的。我希望和他們分享一些 經驗 和體會。
首先,我想說的是聰明人不一定能成功,很多程序員很聰明,但我一看就知道他們不會成功。因為我看到了一些問題,而且現在太多程序員存在很多誤解。因此,我希望把我的觀點告訴程序員。或許有一些程序員能夠清醒,某個人可能因為我的某一句話有了感覺,對他以後的成長產生了幫助,這就足夠了。
要知道,程序員總是以為自己優秀所以就能成功,其實不是。中國的程序員大部分是盲目的:看看一些論壇就能夠感覺到,要麼有一群人自我感覺極端的良好,以專家自居,要麼就是一群藍領埋怨公司和社會環境不行,待遇不好。
應該說,中國程序員創業的成功率也是很低的。放眼望去,中國互聯網成功的人士有幾個是真正寫過十年軟體的。事實上,現狀和我們所能聽到的媒體宣傳的 故事 很不一樣。
很多程序員的最高理想就是寫一個共享軟體,一年可以掙幾百萬。但我希望談的不是告訴程序員如何掙錢,掙錢很容易,而是要告訴程序員如何去創業。比如雖然FlashGet的作者收入很高,衣食無憂,但從創業的角度看,它並沒有以商業公司的方式創業成功。
程序員在創業方面的欠缺
首先,我看到中國程序員的合作心態非常缺乏,我認為這是中國程序員最大的問題,當然這是有很多原因的。
大家經常說這句話:態度決定一切。但事實上好程序員基本上都比較傲氣,因為程序員往往會覺得自己在做世界上一件十分偉大的事情,這就是驅動機器,修改一行代 碼,機器就能夠工作,可以產生各種不同的行為。這很容易會讓程序員產生一種錯覺,認為自己可以Control Everything。程序員的自信在編程上是非常需要的,但不是適合一切場合。如果我們不說這些,可能很多程序員到現在還不知道自己錯在哪裡,仍然認為 自己是King of the World。
事實上,程序員的能力只是控制了一個機器。但創業僅僅具備了和機器打交道這一種能力是絕 對不夠的,他還需要和合作夥伴、競爭對手、投資人、員工甚至整個社會環境打交道。很多程序員因為已經習慣了和機器打交道,不善於也不願意 其它 的工作。很多程序員會內心認為“營銷不是很簡單嘛,市場很簡單啊,管理也很簡單啊,”我認為這種心態是非常害人的。
程序員還是一個很固執的人群,他覺得自己是機器的統帥,因此不會靈活,不會妥協。我當時也喜歡寫程序,但我知道如果自己沉迷於寫程序,肯定沒戲,所以是逼著自己改變角色。
優秀的程序員不要自負
這兩天,我收到幾封程序員的來信。有一封信中大意說“我是個如此優秀的程序員,為什麼我就不能成功呢,請你指點。這里有我的blog地址,看完你就 會了解我了。”我想說的是:如果真的希望別人幫忙,就要把情況真實的說出來,而不是上來就說自己很優秀,這種語言就會讓別人覺得很不舒服,不是很好的交流 方式。我還真看了那個blog,但看完之後,覺得這個程序員就是一個空想狂。
可以說,很多程序員實際上是優秀帶來了自負,這種自負使得其不要說創業,可能在在公司中工作也會遇到問題。所以,我甚至認為程序員在創業方面遇到的困難比其它類型的人員更大。如果程序員希望主導一個創業,可能首先就要逼自己不是一個程序員。
程序員應持開放心態,尋求團隊合作
程序員首先要學會和別人合作。提到這點,很多程序員都會說“我正在帶著其他程序員寫程序啊,我會合作啊。”但這種合作是片面的,我所談的不僅僅是程序員和程序員之間的合作,而是包括了程序員和其它各種角色之間的合作。程序員相親,他們的語言比較能夠容易理解。但作為一個程序員,你能不能商業人員、銷售人員很好的合作呢。
我這些年還看到很多這樣的例子:程序員動不動就把目標定為比爾·蓋茨。其實,比爾蓋茨不應該成為程序員崇拜的目標對象,這會讓程序員迷失方向,因為微軟另外一個創始人保羅·艾倫才是真正的程序員。再看其它一些例子,Google的第20名 程序員都可以獲得五億美元。Adobe公司兩個創始人也是一個精通技術,一個對商業精通,這樣的搭配才能夠更好的成功。因此,對於很多程序員來說,一定要找准真正的榜樣,不要被外界的故事迷惑了頭腦。如果剖開一些故事的外表,你會發現國外很多成功的程序員,背後一定有一個很強大的商業感覺的人或者一個團隊。
程序員的商業感覺其實並 不是很好。即便有商業感覺,其實這只是一個靈感,一個創意,但要要做成、做大還需要一系列的管理、市場、運營,這些對於程序員是不可想像的。程序員要明 白,在自己不擅長的領域,找到一個可以彌補自己缺陷的合作團隊才是出路。加入一個創業團隊,可能個人佔10%,但因為更容易成功,而且團隊可以做100分 的事情。而如果只是一個人做,很可能就失敗了。
這方面,國外的程序員對自己的長短比較清楚。在矽谷,很多程序員技術上都很牛,但他們 都非常知道自己只是在技術這個領域水平比較高,出了這個領域,自己什麼都不是。正因為有了這種心態,他們特別懂得與人合作。我認為國外的程序員已經普遍意 識到了這點,他們很願意成為創業團隊中的一員而並非自己創業。
因此,程序員需要調整心態,不要把自己當作精英人物,要承認自己在編程方面是優秀的,但永遠有人比自己更優秀,對於其它的領域,很可能自己很無知。要知道,其實程序員的選擇其實是最少的,因此抱有開放的心態是最重要的。
程序員與創業要求還有哪些差距
我認為現在的很多程序員經驗過於不足,他沒有認真踏實做過很多工作就奢談創業。如果一個程序員沒有在編程方面深入過,沒有積累,也就是半瓶子醋。這 樣的程序員我接觸過很多,他們自己也不清楚問題出在哪裡,讓人感覺又愛又恨。我認為程序員既然要憑借自己的技術,那就一定要踏實,要能夠實現任何創意。
但現在一些程序員自己沒有商業意識,卻又很自負,不相信別人,不理解的事情就不做。我遇到過很多程序員,他們對公司做什麼方向都質疑。他 們希望自己先想清楚,可是一想就浪費了很長時間。很多程序員就可悲在這里,積累的不多,看不到方向,但他也不相信自己的公司和老闆,這是一個悖論,需要程 序員深刻反省。要知道,每個公司都有懂商業的人。
就這樣,一些程序員極端自負,另外有一些程序員碰了很多釘子之後,感覺很自卑,於是便認為國內軟體業不行,最後 出國 或者打工,很少有程序員能對自己能做公正的評價。
國內環境是否造成程序員浮躁的因素
我以前沒有仔細考慮過這點。但我想,不管怎樣,程序員需要先從自身找問題,因為大環境就是這樣了。我承認一個現實:程序員生存狀態並不是很好,但程序員很多報怨其實是一種不切實際的期望值和自身的缺陷產生的反差。
首先,產品沒有大小,只有市場的大小。很多人總是覺得這也小,那也看不上。認為公司做的產品很無聊,要做就要像某些人宣揚的那樣:做游戲一定要 做3D引擎,好像只有這樣才夠牛。這其實就是一種浮躁。很多程序員寫軟體總是很多bug,基礎知識也不牢固,沒有參加幾個項目,沒有寫過十萬行代碼,就奢 談做大項目,這有價值嗎?
而且我還發現有些程序員特別憤青,罵環境,罵老闆,其實這只能把自己的心態搞的很壞。很多人剛進公司時做的很差,雖然工資少,但他沒有想到給公司增加了很多bug,公司實際上是在給他出學費。論壇上大家都在討論哪裡活幹得少錢拿的多。甚至還有人列了一些黑名 單。這種做法的結果就是程序員自己將周圍環境搞的烏煙瘴氣了。
有的程序員還非常喜歡指點江山,指點公司。我個人覺得這不是不可以,但 指責別的公司對個人沒有什麼好處,因為存在就是合理的。如果看不到,恰恰證明是自己看不到。我看到很多程序員也寫blog,技術交流的我認為非常好,但有 些人是寫評論。我是覺得程序員不要做評論家,中國不缺評論家,最缺的是實幹家。
總之,程序員一般過於自我。總生活在自我的世界中,就不可能真正了解世界是什麼。我很早就意識到了這些問題,也努力的去客服。我的經驗就是看別人如何做的好,為什麼能夠做的好,什麼是我所不能理解。程序員要學會慢慢站在別人立場上看問題。
最後給希望創業的程序員一點建議
對程序員來說,現在要做的也很簡單,這就是需要大量的實踐,要慢慢培養對產品,對商業的感覺。我的建議說出來可能有些忠言逆耳。對絕大多數程序員來 說,自己一個人成功的機率是很小的,所以我認為加入一個創業的團隊可能更為合適。現在有很多初期創業的公司,也需要很多優秀的程序員加盟。如果有理想,可 以選擇加入一個團隊,也有相應的股份,這方面我可以充當一個橋梁。
看看前網路程序員是如何創業的?找合夥人已經OUT了!
“來吧,做我的CTO,給你股份,咱自己當老闆。”
因為同學的一句話,前網路研發工程師YK辭職創業。一群毛頭小子,技術能力過硬,但畢竟資源不足,經驗欠缺,不到半年,項目無疾而終。 互聯網創業 盛行的現在,一個好的技術抵得過一支團隊,更別說出身BAT了。
但很多人不知道的是,就是這一樣一支技術實力超強的團隊,最終竟然也輸在了人上——過於強調技術,沒有頭腦足夠清醒的團隊成員及時制止。這也是為什麼要選背景不同、經驗不同的一群人一起創業了。曾經和YK聊過很久,項目失敗的背後是他對創業更多的思考,特別是對於那些擁有好工作的人來說,拋下一切投身創業需要付出的成本太高,但如果只是給創業者打工,那還不如守著原有的工作,至少更體面、更有保障。
就在我以為他會重新安安穩穩工作的時候,卻意外的在創業大街再次見到了他。細聊起來才知道,他並非辭職重新開始創業,而是用自己擅長的技術加入到新的創業團隊中,以外部合夥人的身份幫助兩個不同方向的項目解決技術開發問題。這次來到大街,是專門和一支團隊開技術碰頭會的。
他的這個選擇意料之外,卻又情理之中。意料之外的是他居然理智的沒有辭職,情理之中的是他選擇了成為外部合夥人,用業余時間一邊做顧問、一邊寫代碼,實現了時間、能力價值的最大化。
其實,說到外部合夥人就不得不提智籌平台。去年3月,正是看到了毛大慶宣布 離職 但依舊擔任萬科外部合夥人的新聞後,智籌將“外部合夥”作為創業者&人才之間對接的一種新的合作關系。現在,創業者來智籌發布任務,除了能與互聯網高級人才建立長期顧問、短期兼職、駐場辦公、遠程協作等合作關系之外,也能通過部分現金+可回購股份的方式,與人才建立外部合夥關系。外部合夥人是一個沒有行政職位,但依舊為企業、團隊做貢獻的人。
對於創業團隊來說,外部合夥人解決了以下問題:
1.快速成長,度過難關。
按照原本的思路,YK服務的兩支團隊還陷在滿世界尋找CTO、找程序猿的泥沼中,但有了外部合夥人,更低的參與門檻吸引了更多人才願意加入,不僅解決了燃眉之急,更推動項目度過難關、快速前行。
2.滿足了人才的多樣性。
一個合夥人已經很難找了,更不用說基因不同、知識不同、經驗不同的一群人。外部合夥人大大降低了對人才的束縛,而這樣的一種合作模式,讓越來越多的人才願意加入到創業中來,組建這樣一支多樣化團隊更容易。
3.更快找到,成本更低。
外部合夥人是通過股權激勵撮合到一起的一群人,利用可回購股權讓人才把創業者的事當做自己的事,目標、利益一致,做事更用心、更高效。股權支付的方式又可以降低初創的資金壓力,創業者不用支付很高的現金,也能請到非常NB的人才來解決難題。
外部合夥人極大的緩解了創業找人難的窘境,但當創業者真正去尋找外部合夥人的時候,往往又會擔心外部合夥人的時間、效率怎麼保證?水平怎麼衡量?什麼人才適合做外部合夥人?
首先,時間自由是第一標准,至少是時間可控,能夠拿出足夠精力完成任務。否則,連時間都不能自由支配的外部合夥人也太不稱職了,CEO找你開會,你卻說你在公司加班,即耽誤了創業者的時間,又降低了自己的口碑。
其次,獨擋一面的能力絕對必不可少。做得了合夥人的,都是某方面十分擅長的專業人才,那麼做的了外部合夥人的,需要更高的水平。從一開始我就強調,外部合夥人一定是高級人才,不然沒資格幫助創業者解決問題,甚至指導方向。俗話說,沒有金剛鑽不攬瓷器活,想做外部合夥人,一定得先有過硬的水平。
第三個標準是認可股權模式。中國基金報曾發表評論稱,未來十年,如果你與股權無緣,可能無法實現財務自由。在如今樓市低迷、股市重挫的時候,股權投資卻異軍突起,特別是在大眾創業、萬眾創新的激勵下,全國創業氛圍濃厚,涌現了一大批優質有潛力的新興企業、互聯網企業。也許你不是土豪,沒有錢參與眾籌,而此時外部合夥人模式的出現,讓普通人也能參與,只不過是用能力和時間參與創業、解決任務,換取股權。
智籌在幫助創業團隊對接外部合夥人合作的過程中,通過實踐 總結 出了最適合做外部合夥人的群體:自由職業者、大企業主管級以上在職人才、工作室、外包團隊等等。這些人能夠站在實戰的高度,不只提供經驗分享,更能夠有針對的解決具體問題,融入到項目和團隊中。
對於很多創業小夥伴來講,找錢、找人是躲不開的兩座大山,有錢了當然可以請NB的人才加入,有人了事兒干好了錢自然不愁,先有雞還是先有蛋的問題永遠都在,找到一方的突破口自然事半功倍。這時,外部合夥人就是打破這一死循環的關鍵鑰匙,只是需要創業者用開放的心態接受、嘗試,畢竟改變原有習慣肯定難受,甚至懶得嘗試。但創業原本就是不破不立的事,只有打破舊有習慣,才能接受新鮮事物,才能有更多新的收獲。
從另一個角度來看,參與創業的門檻降低,意味著越來越多的人能夠將自己的智力換成股權,幫助推動創業的同時,也是對未來的投資。根據智籌平台的數據顯示,當 創業項目 獲得融資後,人才所持的可回購股權將會以最少3倍的價值兌現,這對於很多人來講也是不小的吸引力。外部合夥人模式,降低初創資金成本的同時,也讓越來越多的高級人才加入到創業中來,大大激發了創業活力,無論創業還是參與創業,用起來都是極好的。
6. 程序員改bug 問題是怎麼改好的
其實程序員改bug也是有學問的。程序員改bug跟醫生治病是一樣一樣的,無非一個是給機器看病,一個是給人看病。首先,一定要准確的定位引起bug的真正原因。定位問題,需要程序員去讀代碼,了解流程,弄明白來龍去脈。其次,定位bug源頭之後,就需要去分析解決問題的方法。分析問題,需要綜合相關知識,熟悉它所用到的一些機制,找到最佳解決方案。拿Android來說吧,比如修改wifi的bug,就需要弄清楚wifi的流程,stateMachine機制,消息機制,當然最基本的四大組建及其機制是必不可少的,哪裡都有用到。然後,才是去coding。當然coding,也應該注意一些問題,比如,風格盡量和源碼保持一致。Google那批程序員功底還是可以的。注釋一定要清晰,包括作者,改動時間,以及原因。最後,要強調一點,改bug一定要徹底。不能改一個bug一起另外一個或者一堆bug。一定要避免這樣的情況發生。我們公司就一個剛畢業沒多久的程序員,改bug不徹底,只改了界面顯示,弄的實際功能廢掉。對於這樣的代碼,我只想說兩個字:垃圾。另外,改bug要和相關模塊的工程師討論,因為他們或許就是這方面的專家,這樣才能寫出優秀的代碼。
有的人改bug改了幾個月,就會分開發的任務,或者層次更深一點的任務。有的人從進公司就一直改bug。不能否認公司方面有一定問題。但程序員也應該從自身方面找找問題。你寫的代碼是最高效的嗎?你寫的代碼讓別人很容易看懂嗎?你寫的bug讓別人呲之以鼻還是贊嘆不已?如果你做的不夠好,就不要整天抱怨:「又讓老子改bug,老子從進公司到現在都一直在改bug!」
7. 程序員如何讓自己的程序少出BUG(轉)
軟體測試心得
,而且還經常寫一些工作上的事,現在感覺自己老了似的,開始轉型了,會選擇寫一些總結而不是瑣碎,也許這是我以後當領導的徵兆吧。
程序員是善於思考的一個職業,做過這行的都知道,寫一個程序的過程都要經過構思、設計、寫代碼、測試到最後運行這幾個步驟。慢慢地,這個習慣也被搬到了生活中,現在我才覺得,我平時做事這么的冷靜善思考原來是工作影響的原因。
象我一樣,大多程序員都有一個毛病,或者說一個習慣,自己編寫過的代碼都不願意測試,他們憑著自己的習慣,理論上完成了代碼的編寫就認為自己的工作結束了,剩下的工作應該交給測試人員了。但實際上來講,如果代碼存在BUG,造成軟體在運行期出錯,那麼測試人員和客戶肯定會發現這些BUG的,再等到測試人員或者客戶把BUG反饋回來的時候代價就已經很大了,不僅僅是時間的浪費,更重要的還有1、影響了客戶對產品以及公司的信任度,2、影響了程序員自己的聲譽,3、影響了代碼的可讀性以及質量,4、增加 了DEBUG的難度,5、對程序員的心理造成一定的影響。
首先,程序員應該克服自己身上的一些缺點,這是很重要的一點,因為每個程序員都有自己的編程習慣,而且每個程序員對自己剛剛完成的程序都會信心百倍的說「絕對沒問題」,實際上這種想法很正常,因為每段代碼都是通過程序員認真謹慎的思考和設計之後才寫出來的,在設計時已經排除了很多問題,所以程序員不會將自己認為不正確的判斷寫到程序里,但這僅僅是理論上的想法,但人哪有不反錯的時候。其實程序員在讀其他人寫的程序的時候,就會很謹慎,仔細找到程序上的錯誤,但對自己的代碼就很難這樣做,如果把這種謹慎應用到自己的代碼上來,BUG會減少到最少。軟體工程所說的各階段工作想必大家都清楚,前期的設計以及需求分析才是一個軟體工程的重點,這里也是花費時間最多的地方,當對要寫的程序有了一個清晰的輪廓之後再動手編寫代碼。
第二,剛剛提到的前期設計,是指在編寫代碼之前所作的工作,這要求程序員對系統的整個結構以及邏輯有很清楚的理解,這也要求對系統的需求做到位。我沒有寫過文檔,所以這里不談文檔了。思路清晰很重要,但每個人並不能將系統的整個設計思路都記在腦袋裡,那最好就寫下來,特別是一些復雜的邏輯結構關系還有復雜的演算法。
第三,代碼的編寫,要盡量減少拼寫的錯誤,嚴禁使用關鍵字作為變數來使用,要盡量做到代碼模塊化,並且保證其正確性和可重復使用性。因為是模塊組成的,寫過之後可以將每個模塊部分單獨測試,因為代碼量少了質量自然提高了。對順序執行要求很高的函數盡量不採用調用子函數的方法,讓程序按順序走吧。
第四:代碼檢查以及系統功能測試,這是保證代碼質量的最後一步了,我們可以寫一些代碼模塊或者小工具來進行測試工作,跟蹤變數值的變化,使用一些小技巧在這個階段都是必要的,這里和測試人員的測試不同之處在於:仍然讓程序員的注意力放在其自己的代碼范圍內,減小了排錯的難度。
按照如上步驟來走的話,那麼我想你的系統應該足夠健壯了。
把對待別人代碼的態度放到自己的代碼上來,也就是反復的Review自己的代碼檢查邏輯錯誤也是相當好的辦法。別把自己辛苦寫的代碼看的很值錢,在團隊中盡量與別人分享、Review代碼這是實際工作的經驗。
作為一個優秀的程序員要具備這些習慣,看自己的代碼就象對待自己的一樣,愛惜、呵護是必須的,同時也要象園丁一樣及時修剪多於的樹枝來讓自己的代碼走正確的道路。
8. 程序員遇到百度不出來的bug都是怎麼解決的
筆者不同意下面網友的回答。程序員如果解決bug的水平停留在網路,那麼本質上只是一個「面向搜索引擎的代碼搬運工」,是不合格的程序員。
程序員對面bug,正確的「打開方式」是像福爾摩斯和柯南那樣,尋找線索、運用邏輯推理來縮小問題可能的根因范圍,最終精準定位。
常用的方法有:
1. 壞境上下文變換法
2. 工具調試法
3. 版本回溯對比法
4. 代碼審計法
……
沒有編程問題是stack overflow和Google解決不了的,假設你在編程中遇到了問題,你自己解決不了、你周圍的的人都解決不了的時候,我覺得stack overflow、Google是你最好、也是最後的幫手。
作為一個程序員,我覺得Google、stack overflow是你必須要學會使用的兩個工具,這兩個工具本身並沒有使用門檻,只不過因為一些眾所周知的原因,很多人不能使用Google和stack overflow這兩款工具。
Google主要還是方便,而且很多編程問題都需要用到英文搜索,當然現在網路在專業能力上也提升明顯,不過跟Google也還是有比較大的差距,因此我還是強烈建議要學會使用Google,這會幫你在工作、學習上事半功倍。假設Google確實因為某些原因沒辦法很好的使用,我也建議你至少要會使用Bing搜索。
現在可以說stack overflow上沒有你找不到的問題了,從IDE環境安裝問題,到各類編程語言問題。演算法問題,數據結構問題,調試,重構等等,幾乎這里就沒有你找不到的答案,可以說在stack overflow上你可以找到任何解決方案,並且上面的回答者基本上都是非常有經驗,而且都是實際中遇到的問題分享出來的,這個工具一定要會使用。同理,除了stack overflow這個專業的垂直程序員問答社區,你也可以使用Quora這個綜合問答社區,這上面也能找到很多問題的答案。
一些比較優秀的文本編輯器: Emacs/Vim,Visual Studio Code,Sublime Text,Atom,Ultraedit,Hbuilder等。
一些比較非常出色的IDE集成開發環境: visual studio,IntelliJ IDEA,PhpStorm,Haskell for Mac ,eclipse,WebStorm,GoLand,CLion,Android Studio,Xcode,QT等。
macOS平台比較好的第三方包管理工具: Fink,Macports,Homebrew等。
一些比較好的終端工具: Zoc7,iTerm2,Cmder,terminus,hyper等。
一些比較好的筆記軟體、markdown工具、效率工具: Evernote,有道雲筆記,為知筆記,Ulysses,MWeb,FileZilla,Snipaste,Kantu等。
虛擬機軟體、容器軟體: Parallels Desktop,VMWare Fusion,Virtual Box,Docker等。
我是個程序員,職務是linux底層驅動工程師。平時的主要工作是調試驅動,但產品遇到諸如死機、重啟、不開機之類的問題時,也要參與查找原因。一部分問題,確實可以查看相關的log,然後網路這些log的關鍵字來解決;但更多的問題,牽扯的條件太多,並不是簡單的網路就能解決的。
觀察了周圍同事們的做法,我總結出以下幾種解決方法:
網路因為競價排名的原因,搜索出來的結果有很多廣告的成分,所以有時候要翻好幾頁才能看到一條相關的答案,有些甚至要翻幾十頁。
因為網路搜索使用的是SEO技術,即普通用戶可以通過優化網站內容來提升關鍵詞排名。
而這就會導致一個問題:你搜索關鍵詞後展現出來的結果是有人想要讓你看到的,並不是質量最好的。
也就是說,網路搜索結果被人為干預了。所以網路一直被網民所詬病。
但網路搜索不出結果,未必是網路的原因,也有可能是自己輸入的搜索詞不準確造成的。所以對於網路,我們要做到如下幾點:
除此之外,網路搜索還有點小技巧,粥左羅《萬字干貨,徹底講透搜索技巧,10倍提升你的搜索力(免費教程)》這篇文章寫得非常好,我整理幾點,僅供參考:
01 過濾目標內容
命令:「+」「-」
用法:通過「+」和「-」來對搜索結果進行過濾
比如在關鍵詞後加上「-推廣 -推廣鏈接」就可以排除搜索結果中包含相應字樣的鏈接。如果你發現廣告還沒有排除干凈,你也可以再加上「-廣告」通常就能徹底的消滅廣告。
02 搜索包含某關鍵詞的內容
命令:「intitle」
用法:通過「intitle」命令指定搜索結果中要包含的關鍵詞,注意「intitle」後邊連接的冒號是英文狀態下的。
03 搜索某一個格式的文件
命令:「filetype」
用法:通過「filetype」命令可以限制我們要搜索文件的類型,注意「filetype」後邊接的冒號也是英文狀態下的。
04 搜索特定時間范圍的內容
命令:「時間..時間」
用法:通過「時間..時間」命令可以限制我們要搜索的文件的時間,注意兩個時間的中間頓號沒有空格。
相對網路,谷歌、必應對於技術搜索,就相對准確許多,所以當你網路搜索不到時,嘗試下別的搜索引擎,說不定會有新發現。
現在程序員使用的機器語言,都是國外的,更准確的說,都是美國的。所以很多論壇、資料等,都是英文。如果你只會用中文來搜索,某些小眾的問題,當然搜不到啦。
所以,要學會使用英文關鍵字來搜索。
有時候甚至要去國外的一些論壇來搜索想要的答案,這就要求要有一定的英語閱讀能力,不能一看到英文帖就放棄。
有時候不管你如何搜索,都找不到自己想要的答案,該怎麼辦呢?這種情況下,就只能硬著頭皮嘗試自己解決了。
或者,尋求同事或朋友的幫助,尋求大腦風暴,說不定就會有思路。
如果有些問題是因為新器件帶來的,還可以找到器件供應商,讓他們安排技術支持幫忙查找原因。
除此之外,還可以把問題整理好,寫清發生的條件、復現步驟、測試方法、相關的LOG截圖等資料,去一些技術論壇發求助帖,尋找大牛的幫助。
做技術時間久了,發現有些問題確實無解,根本沒有辦法去解決它。
這時候,我一般會嘗試把它繞過,就是說,想辦法讓它無法復現,雖然問題還是存在,但是能把它掩蓋過去。
比如有些驅動在開機啟動時會載入不正常,那麼就讓它晚點啟動,或者手動載入。這也不失為一種解決問題的方法。
以上就是我的建立,希望對你有幫助。
首先作為一個程序員,一個優秀的程序員最最最重要的能力就是解決問題的能力。這里解決問題的能力當然就包含了解決 bug 能力了
畢竟,程序員這一生,可能會寫無數個 bug ,沒有說哪個程序員敢保證自己寫的程序沒有 bug 。 所以,寫了 bug ,遇到 bug 並不可怕,可怕的是你沒有解決 bug 的能力 。
作為一個程序員,解決 bug 的途徑有哪些呢?我們來一起聊一聊!
其實,每個程序員在學習編程的時候,都會使用編程工具,而現在的開發工具,其實功能都很強大。如果你自己合理利用編程工具,都了解和懂得開發工具的一些技巧,其實不僅僅能夠提高開發效率,而且還能夠幫助你解決很多編程中的實際問題。
debug 調試,大部分你常用的開發工具,都會有調試模式的,簡而言之,就是你編程的時候,遇到了不是自己所想的結果的時候,你可以使用 debug 模式,來一步一步的調試,在調試模式下一般每一步都會顯示所執行的結果,你可以看看在哪一步出錯了,執行的結果與你預想的結果不對,那麼你就能夠找到問題所在了。
還有就是,開發工具的控制台,都會提示出報錯信息的,現在的開發工具,都會直接告訴你哪一行,報了什麼錯。其實,很容易定位到錯誤的。你只需要在編程的過程中積累經驗,知道報什麼錯,用什麼方法來解決就行啦。
可是,提示的報錯信息,我不知道用什麼方法來解決的時候,該怎麼辦呢?這就是你需要積累的,也是問題中所描述的,就是通過搜索引擎來找答案。
不對,這里不應該是合理使用搜索引擎,應該是學會正確使用搜索引擎。比如:網路,你就不要用了,搜出一堆重復的信息,而且廣告也多。作為程序員,建議你使用谷歌搜索。
其實,你在編程中所遇到的幾乎所有的問題和 bug ,別人也同樣遇到過,因為不管是經驗豐富的老程序員,他技術再牛逼,也是初學者過來的,也都踩過你踩的坑。所以,互聯網是個好地方,裡麵包含了你想要的問題的答案。
你只要把報錯信息往搜索引擎上一放,回車一下,很多關於這個 bug 的答案就出來很多,你只需要找到跟你一樣的 bug ,就能找到答案了。
在這里必須提一下這個網站,所有的程序員有必要學會使用這個網站,其實,你編程中所遇到的問題,這個網站上幾乎都是由解答的。
Stack Overflow 可以說是最好的軟體程序類問答網站了,給軟體開發人員工作和學習提供了非常大的便利,以至於像小白,離了 Stack Overflow 簡直都不會寫程序了。
所以,建議大家一定要學會使用這個網站,對你編程肯定會有非常大的幫助的。
通過上面的方法,幾乎應該能夠解決到你所遇到的問題,但是,實在找不到答案的話,你可以問經驗比你豐富的老程序員,實在解決不了,那就換種方法吧!
網路,谷歌,debug,斷點調試,業務上的bug就需要問下同事或者產品。如果能知道大致范圍,哪一部分錯了,就換一種方法唄,一般都不會只有一種方法。
1.reload
2.restart
3.rewrite and then goto 2 or 4
4.reboot
5.rm -rf /
6.原諒我編不下去了[捂臉][捂臉][捂臉][捂臉][捂臉][捂臉][捂臉]
找bug跟醫生看病的思路是一樣的,要對症下葯。得先把問題的根源找到,找到根源以後問題就容易處理了。搜索引擎找不到的問題,說明這個問題不是一個常見的問題,具有獨特性,那麼從bug出現的路徑上一步一步去排查。必要時可以用排除法,盡可能的縮小排查范圍。另外,當軟體的業務邏輯比較繁多復雜的時候,一個結構清晰的架構能為你節省不少找bug的時間。還有,充分的單元測試能夠幫你減少出bug的機會。以上均為個人看法,歡迎討論!
一般程序員能碰到的bug無外乎其他上遊程序員寫庫時手抖留下些不匹配或者容易溢出的問題,搜一下差不多能解決問題。如果是自己寫的,那無非就是時序錯誤類型錯誤之類的,用break point一行行的調就好了。
再復雜點的bug就是程序員拿高薪的根本了,只可意會,不可言傳~
僅僅靠搜索引擎、其他網站那必然無法解決大量問題,因為很多問題是跟業務邏輯相關的,是沒有直接答案的。比如 游戲 開發有個界面一直無法顯示,這個問題就不是網路可以解決的。問題需要調試分析,這和破案非常像,但在開發過程中更有利的是問題有機會可以重現。破案是逆向工程,需要反推。解決代碼問題不僅僅可以反推,也可以通過閱讀代碼正向分析。下面說說如何debug一個業務邏輯問題。回到剛剛的例子,有個界面一直出不來,我們如何快速去定位:
1.思考這個問題發生的可能性。比如 游戲 內大量界面都是正常的,那麼可以對比正常界面代碼和異常界面代碼的區別,這是對比法。
2.假設創建正常界面和這個異常界面的邏輯代碼是一樣的,那麼問題就落到了這兩個界面內部,繼續在內部重復上面的對比法進行判斷,直到鎖定最終位置。
上面說的方法基本上可以杜絕卡在一個簡單問題上,這是擺脫新手的一個過程。選擇使用對比法或者其他方法的前提都是基於觀察和對項目的認識,所以,搜集「案發現場」是最關鍵的。
其他的問題,不屬於邏輯的,像其他網友說的那樣,有些通過到github、stackoverflow等地方解決的。這些問題也不是直接就去查找的,它通常也有個分析過程。比如你使用了一個庫,但是目前它不支持你的模塊。對於新手,就是直接網路或者google了。實際上這樣的問題也是有「案發現場」的。對於作者提供的api介面的統一性和便捷程度去推斷作者在相關支持模塊的位置以及命名以及拓展,再嘗試在文件夾中搜索。如果都找不到,再去Google上獲取更多的信息。重復推斷、分析,決定如何拓展或者繞過。
綜合上面的幾種問題,可以看到的是都離不開對現場的觀察和推理分析。這種能力也被稱為經驗。但是一般情況下你看不到它們這個分析過程,你能做的就是在實際環境中反復逼迫自己去思考,去訓練。這個推理的培養,不僅僅是對事情,也是對人。
我在入行 游戲 開發的前期,也是類似的情況。卡在不同種類的問題上,有些在簡單邏輯,有些在別人的代碼支持上。後面解決的問題多了,就會發現裡面共通的思維方式。常用的一些方法如下:
1.對比法,比較正常與異常代碼區別
2.二分查找法。分段注釋找問題,也會用在很多方面。比如最近版本突然出了一個奇怪bug,可以通過svn還原來定位。這個還原不是一個一個版本還原,而是用二分法去還原。
3.增加信息。在懷疑的位置或者過程添加日誌或者打斷點輔助自己更好的推理。
4.相似推理。比如一個引擎在api、性能使用程度上都非常友好,那麼它在別的地方也有可能相對表現比較好。這時候如果有個功能我們的實現需要很復雜才能完成,那麼就有可能是我們用錯了。相似推理不一定都能正確,但會提供一些幫助。
以上。
9. c++程序員如何創業案例
程序員,是一個很累的行業,經常要熬夜趕代碼。以下是我為大家整理的c++程序員如何創業案例相關 文章 。
c++程序員如何創業案例:
這是我多年來招聘培訓游戲程序員的一點想法。一直想匯總一下。主要目的是為了更好的對公司新進C++程序員進行培訓,並且建立起游戲程序員培訓,發展,成才,成為核心骨幹,管理層,期權收益人等一整套體系。因為對於MMO游戲製作來講,解決好C++技術隊伍,是保證合格軟體的基礎之一。
我在的H3D Studio核心技術人員和游戲製作管理人員全部是SMTH BBS游戲製作版成員。從99年開始截止BEGINER的歷任版主都在H3D STUDIO里工作過。在這里我把具體的培訓以及技術隊伍組建的內容去掉,只和大家聊聊關於游戲程序員切身利益相關的事。
另外這不是居高臨下來評判什麼事情。我本人也不是多麼高級的技術人員或者管理人員。只是堅持做一件事情年頭很長教訓很多而已。所以有些體驗。文中所有評判其他結構或人水平低,並不是說我本人水平有多高。不要誤會。
一、C++游戲程序員現狀
中國C++程序員100%都是自學的。因為中國幾乎沒有象樣的C++培訓機構。大家都知道社會培訓是賺錢為主要目的。能在那裡成才是個大運氣。也不象JAVA有SUN公司一手推行。中國大學 教育 里也根本沒有C++教學。關於C/C++基礎課的知識,只是讓學生入門。但對於實際的C++軟體工程應用,大學課本知識實踐意義不大。最重要的是,大學里沒有合格的C++老師。編程是門技術,叫手藝也行。而大學是搞科研的,多的是科學家,靠出PAPER教科憑職稱為生。並不是技術員。沒有10萬行以上代碼 經驗 和成功軟體項目經驗的人,很難教出中高級C++程序員。
游戲製作業對C++程序員的要求是比較高的。比一般行業軟體高很多。因為任何一個MMO都是個中大型軟體項目。日使用人次達到幾十萬上百萬,同時使用人數幾十萬在線的大型網路多人交互軟體,集成了超過十幾項專業領域編程技術的軟體,想不大都不行。
另外,中高級C++程序員能力一般都很強。因為都是自學成才,這需要較高智商,很強的自學能力,解決問題能力,和克服困難的毅力。但是這種人才在游戲行業里人數並不多。拋開鳳毛麟角具備整體大型軟體架構能力的高級人才不談。能夠承擔獨立模塊開發,具備獨立解決問題的能力,寫出在空間,性能,可維護性等幾個方面達到要求的C++程序員,也是很難找到的。而具備這些能力,同時又具備一些專業領域技術的人(圖形引擎,網路引擎,等),更加稀少。
所以,即便是大游戲公司,對於C++游戲程序員的需求,也是永遠不能夠得到滿足。而已經在公司工作的C++程序員,不經過短則3個月,長達1年的鍛煉,也無法真正勝任獨當一面的C++游戲程序開發工作。
二、MMO游戲開發對C++游戲程序員要求
前面提到,所有MMO游戲都是中大型軟體。軟體佔用空間,穩定性,性能,可維護性等各項衡量軟體質量的指標,對MMO游戲軟體的要求都非常嚴格。遠大於普通行業軟體。這種規模和銀行系統類似。而客戶端和軟體邏輯比一般的商業軟體又要復雜很多倍。這就要求軟體編寫人員具備較高的程序編寫素質。
游戲軟體中,解決好軟體工程部分,只是項目的1/3。另外兩部分是策劃和美術/音頻。從經驗來看,需求變更對於MMO游戲軟體,不是偶然事件,而是一種MMO游戲軟體開發的基本屬性。游戲軟體投入大,周期長,風險高。MMO市場變化也大,交互電子游戲發展迅速。游戲軟體必須面對外界變動。又因為開發周期長,所以軟體需求變動成為了軟體開發的一種基本屬性。猶如復雜性是軟體工程的一項基本屬性一樣。
這導致游戲軟體的開發充滿了不確定性。交互娛樂不同於商業應用。娛樂是屬於理性和感性之間的領域。而C++開發面對就是0和1的二元世界邏輯。這兩個領域存在著不可調和的矛盾。這種情況,對C++游戲程序員提出了更高的要求。
首先,基本C++知識,C/C++運用技能,必須極其扎實。並不是游戲軟體開發用到什麼平時書本上很難得到的知識點或者技能點。游戲C++開發的知識體系和技能體系,利用現有C++書籍就可以滿足。比如《C++ PAORGRAMMING LANGUAGE》《C++ PRIMER》《EFFECT C++》《MORE EFFECT C++》等。但是在開始游戲編程之前,把這些書本吃透並且實踐熟練的人,非常難遇到。當然能夠真做到這點的人,已經是個中高級C++程序員了。我曾經遇到過一個, 畢業 工作不久就去了GOOGLE
其次,對於面向對象的深入理解。是非常重要的。熟練掌握C/C++語法,編程技巧,只是滿足了C++游戲程序員一部分要求。而面向對象觀念的深刻理解,會為大型C++項目開發帶來翻天覆地的變化。 有時候,在一個10人以上並行開發的C++游戲項目中,面向對象 方法 會成為救命稻草。《設計模式》以及《設計模式解析》相關的書籍,也是必修課。
最後,好技術人員的本質是自大的。這屬於正常。但是如果這種習性影響了自身繼續提高和團隊合作。以及影響了其成為技術管理者和項目技術核心時,那麼這種技術人員的自身價值會大打折扣。 如果早日越過自命不凡這一關,擴大眼界,繼續在綜合素質上提高。在技術管理能力,架構能力上提高,其自身價值才會繼續增長。落到實處,就是待遇和身家增長。
由於游戲開發的本質是團隊開發。任何時候,只有對一個團隊有價值的技術人員,其本身的價值才有可能得以體現。
三、成長和技術發展路線
一般技術人員發展有幾個階段
1 、具備獨立開發局部功能的能力
比如為某個UI編寫邏輯介面函數。為某個LOGIN對話框編寫自繪制控制項等。
2 、具備獨立開發和攻關某個功能模塊的能力
比如為游戲增加一個小型邏輯功能模塊。
3 、具備獨立設計並開發某個系統的能力
比如設計和開發AUTOPATCH 系統
4 、具備解決技術難題,設計架構的能力
比如開發網路同步模擬系統,開發一個中大型游戲製作工具
5 、具備整體架構,管理,協調其他人共同開發一個大系統的能力
客戶端主程,伺服器主程,引擎主程等
6 、技術director
制定技術發展方向,技術團隊建立,技術管理等
在邁向每個階段的過程中,伴隨的都是巨大的工作量和工程壓力。有時候是跨越1年的失敗等等。在公司項目不成功時轉換單位,重新開始,或者繼續做為核心團隊留在公司繼續從新的機會做起,都是好的辦法。但關鍵是吸取經驗教訓,盡量多學多練。並且結合自身長處發展。當然,游戲製作人員,最好還是依靠一個核心團隊。成為核心團隊的一員。
能夠達到第三檔的程序,已經是公司不可缺少的人才了。但往往程序員自身對自己的認識,和公司對其的認識,有時候會有差異。我碰到過一些人,腦子好用,寫東西很快。各種技術都有涉獵。但總是不放心讓他獨立開發設計某個系統。哪怕是相對獨立的工具。也會被搞得一塌糊塗。要後面人不停擦屁股。可自己還覺著自己水平很高。這種人浮躁,眼高手低,不願意細致周全的做好一件完整的事。所以就可以看到他不停的跳來跳去,可在新公司的職位也沒有見多麼提高。公司非常重視交給一個程序員一件事,他是否能完整,考慮周全的把事情做完。哪怕時間長一點,也不能不做完。這會給工程帶來致命的後果。
四、發展待遇
從自身經驗出發談一下公司是怎麼考慮技術員工待遇的。
前面提到的6檔,粗略了劃分了待遇水平。其實到了第三檔,你的待遇已經是這個行業所決定的了。而不是某個公司決定的。因為游戲業大量缺乏這樣的C++程序員。如果具備這個水平,在幾個大城市游戲公司找到工作並不難。大公司提升慢,還有我這種不到百人規模的公司要。所以行業價格才是公司要考慮的。如果給少了,軟體項目的C++程序員流失會帶來較大影響。但給的多,其實是 C++程序員自己的價值增長瓶頸。如果幾年下來一直以為自己水平就該拿這么高,結果到了一家整體技術水平比較高的企業,就會徹底傻眼。這個時候再放低心態去重新開始,對技術員來講就是件很艱難的事了。
在目前游戲行業技術水平普遍較低的情況下,哄抬程序員工資水平對程序員自身好處也不會很大。就算一個新手本來拿幾千的水平,給他1萬。他根本就不會知道自己到底有多少水。一年下來也就多拿了3-4萬人民幣。可耽誤的是學習,影響了心態。而那些心態好,知道努力方向的技術人員,干個3-5年後如果有拿期權和股權的機會,比那些一開始虛高的人,身家就不知道高多少倍了。
c++程序員如何創業案例:Visual C++程序員 職業規劃
有很多的程序員剛畢業時充滿活力,經過幾年的工作之後,激情就會慢慢消失,現在軟體行業環境變化很快,一旦無法跟上行業發展的步伐,工作上就更難有所進境了。對於應屆生,以前只要考得一個資格認證,會受到很多企業的青睞,現在證書滿天飛,企業更加註重求職者的能力。應屆生的第一份工作也是越來越難把握。很多人在求職的過程中開始轉行。對於讀者你,是否有職業的危機感呢?
對於應屆生或者經驗不多的程序員,或許有很完備的理論知識,但是公司衡量員工的標準是效益,誰能創造效益,就會收到重視。應屆生往往很難找到一份滿意的工作。第一份工作是職業生涯的開始,是需要慎重的,然而,究竟用怎樣的標准選擇工作呢?由於實踐經驗的缺乏,應屆生不必關注第一份工作的薪水,時常聽到一些人為找不到工作而發愁,他們已經接收到了幾個公司的錄取通知,但是因為薪水的原因,選擇了放棄。其實沒有必要攀比第一份工作的薪水,這在剛剛走出校園的大學生中是很常見的,然而必須明白,我們的工作經歷可能要持續到60歲左右,是一場 馬拉松 長跑 。起跑最快的未必是最後的勝者。剛踏足社會,在500強公司一個月大概能拿到4000左右的工資,有些特別才能的人會拿到8000左右,而5年以後,工資水平也就5000到10000了,增幅也是有限的。後面的年輕人追趕的壓力卻愈來愈大。所以第一份工作找一個符合自己專業的或者能力的公司去,你的開端會低點,但是你會有很持久的耐力。
在工作了一段時間後,有時會發覺自己的工作和想像相去甚遠,甚至會覺得自己入錯了行業。為自己的待遇沒想像的好感到委屈。這時候需要冷靜的思考一下自己的處境,看是否是因為自己過於理想化的結果。如果是,就有必要對當前行業的現狀進行深入的了解,搞明白當前的行業發展在向什麼方向前進,由於環境的突變,這點有時很難做到,但是適當的理性分析是很必要的。如果一味的埋怨下去,工作沒有做好,還耽誤了自己的職業發展。如果原因出在自己身上,比如說個人習慣等問題,就要看能不能改正一下自己的習慣,慢慢的適應當前的環境。
程序員在一個發展良好的工作上做久了,就會積累豐富的技術經驗,再往後發展的途徑有很多。到底該如何選擇?要結合自己的興趣和當前的技術水平。在做了幾年的技術之後,對於程序員來說,可有幾種基本的職業規劃:技術專家、軟體架構師、高級顧問銷售或自主創業。程序員畢竟是偏重技術的職業,主要的發展方向會是資深技術專家。無論是那種領域,都要努力讓自己成為專家,然後在發展為架構師。有些人當架構師工作一生,有很好的待遇,然而這種工作很有限,而且,在中國,架構師的需求量比較少。
我們想要達到的目標,往往就在起初確定了,而且註定了我們職業的目標不是一蹴而就的,相對於我們所能工作的年限來說,職業生涯可能要終其一生。然而我們在不同的職業階段有階段性的目標,應屆生希望在工作上積累經驗,經驗達到了自己當初的所想,我們就離自己的最終目標近了一步。職業規劃並不是一成不變的,會有很多的機遇和經歷改變你的思想。但是不論你會有怎麼的規劃,都要把社會條件考慮進去。我們進入一個階段,思想認識更加深刻,眼界更加開闊。有時會對自己未來的職業進行更加深入的思考。這時候是需要慎重的。我們都需要過一個階段點評一下自己。看自己是否在進步,下一步又該如何做。我們發現現在的環境不能滿足自己的發展要求,就要考慮換個合適的環境,或者考慮從自己的目標是不是過於理想化,適當的貼近現
實考慮一下。不論會作出怎樣的決定,都要保證你在向進步的方向前進。不要因為一時的放鬆而斷送了即將到來的目標。
工作是一件需要理智的事情,不要因為自己懂的多而在工作上耍個性,現在公司注重員工的團隊意識,大型軟體的開發過程,需要一隊人的共同參與,自己耍個性並不能幫助提升你的工資,也可能阻礙你的職業發展。所以工作中要謙虛學習,努力的學習新技術,從別人身上學習優點,會幫助你發展的更好。
每個人依照自己的興趣會有不同的職業規劃,不要偏求自己的目標多麼偉大。也不要輕視任何一個努力工作的人。職業規劃不是一成不變的,很多人在不同的人生經歷後會改變自己發展方向。但是有一條,不要希望奇跡的出現,勤勤懇懇工作是成功的基本法則。
追求目標的實現更多的是為了享受成功帶來的歡樂,不要因為一時的攀比搞亂了自己的職業發展。如果你做好了自己的職業規劃,那麼,不要等待明天,從現在開始,行動起來吧!
c++程序員如何創業案例:
1.什麼是創業
關於“創業”二字有必要重新學習一下,找了兩個相對權威定義:
創業就是創業者對自己擁有的資源或通過努力能夠擁有的資源進行優化整合,從而創造出更大經濟或社會價值的過程。——網路 網路
創業是一種思考、推理和行為方式,它為機會所驅動,需要在方法上全盤考慮並擁有和諧的領導能力。創業必須要貢獻出時間、付出努力,承擔相應的財務的、精神的和社會的風險,並獲得金錢的回報、個人的滿足和獨立自主。——互動網路
兩者都給出了明確的創業定義,這里想著重想強調一下創業的目的:物質目的和精神目的,現代社會唯金主義人群不乏少數,提到創業自然而然想到“賺錢”,其實創業的目的不僅是“收入大於成本”,還有精神豐收。按照網路+互動網路的說法,最終極的創業應該是個人物質精神、社會物質精神四豐收。
當然,不是人人創業都追求“四豐收”,完全可以只追求個人金錢豐收,或是追求其中的任何一項或幾項,但要注意——千萬不要損害未選的,比如為個人賺錢損害社會或他人利益。
2.怎麼才算創業成功?
創業的成功(這里定義為達到創業初級制定目標)一定是依賴於合理的目標+個人的努力+合適的方法+良好的運氣+主動把握機遇,各個條件沒有順序也沒有主次,但這五點缺一不可,相互有機結合才有可能成功。
成功的創業往往在最初一兩年甚至五年或更長時間收入會低於預想,虧本很正常,只要目標堅定,不斷改善,因為獨立自主,上升空間會很大。
當然每個人的想法、定位都不一樣。你想創業,那你想創個什麼規模的事業?什麼才算得上事業有所成?
如果你認為騰訊、阿里巴巴這樣的才算“業”,那麼我建議你最好別輕易去“創業”,即使你比馬雲、馬化騰等人更聰明,也未必能成就這樣的業,因為機遇不同。
如果你只是想比一般打工的更強一些、更自由一些,收入比打工要高一些,能養家糊口同時還有點閑錢,那你隨時都可以去創業!
3.創業的方法、步驟都有哪些?
每個人都有適合自己的路子,不能說通用,只能算是一點個人心得吧。
(1).必須建立一個網站,這是你在網路上的“門面”,可以展示你的作品,也可以讓別人通過這個網站找到你。
無論是否程序員創業,都應該有個網站。網站的傳統主要目的是為了宣傳,現代網站還可能有互動、管理、實驗等多種功能。需要注意的是,無論哪種功能,當沒有積累到一定程度,即不知道網站上放什麼內容的時候,不要建網站,更不要抄襲別人的內容,切忌打腫臉充胖子,金玉其外敗絮其中。和字如其人一樣,網站也反映企業的 文化 底蘊;
(2).早期,豬八戒之類威客,作為你早期練手和積累人氣還是可以的;
(3).真沒客戶找的話,可以開個淘寶店,接軟體定製(我認識有幾個網友都是這樣干,並且幹得還不錯);
(4).也可以主動出擊,去一些外包網站尋找客戶,比如GAF、Elance、GetACoder、ScriptLance等站上有很多外包的信息,大家可以自己上去看看;
(5).最好的方式還是自己定位一個產品,用心把這個產品做好,然後努力去推廣,推廣好了的話,以後賣注冊碼、賣授權就夠了。
4.產品該如何定位,什麼樣的軟體才能寫?
這個問題,有很多網友都問過我,他們總在擔心,現在幾乎各種軟體都有現成的了,都被佔領了市場,這時候自己該寫什麼軟體呢?
我覺得,首先該問問自己,你的軟體、產品,需要達到什麼樣的程度、佔有多少市場才行?要超越那些成熟的軟體嗎?那是很難的,不僅僅是技術層面,還有用戶的積累這都是很難超越的。
這些成熟的產品,都是通用的,適合大多數用戶,但總是有部分用戶的需求是不同的。那麼你的產品,未必要超越誰,只要能滿足這些不同需求的用戶、能做出一些特色功能,那你就能佔有一定市場、擁有一定用戶。
5.創業應該注意的一些事情
注意積累、項目的成功和失敗都要積累,每個項目都要 總結 ,為下一個更大項目更省時省力地完成做准備。
無論是守株待兔或主動出擊,首先不應接違法、違背道德的單子,其次無論單子大小,都應該當做一個正規項目完成,即(按具體情況)需求分析、簽訂合同、設計、編碼、測試、寫文檔等步驟逐一完成。比如完整項目一共有十五個步驟(有國標),小單子可以選關鍵五個步驟,大一點的單子相應增加。若不會,可以自學軟體工程師、IT項目管理的相關課程。
這里想著重強調一下“爛筆頭”的重要性。雖然設計、編碼、測試、文檔等都可以用計算機完成,但是往往不及白紙黑字的效率。因為其一:計算機屏幕容納的信息量不及紙張,即屏幕大小往往會限制你的思路。其二:大腦思考的速度快於手寫速度,而手寫速度要快於敲鍵盤、點滑鼠的速度,也就是說,手寫更能跟上思考速度。
想要做大做強,不可能一直單干。這時就需要組團了,就需要學習新知識,變為新身份、進入新領域。而主動出擊一般需要一個團隊。
所謂創業難守業更難,何來守業——創新。好的產品、代表作,或是好的服務固然需要,但是如何保持?這時要不斷創新,或者說是一如既往的創新,圍繞主要產品不斷改進,不斷與時俱進,不斷挖掘潛能,不斷比競爭對手稍好一點。
起初僅是學技術的階段,無需注重寫什麼軟體,哪怕是一無所用的工具,或是已被寫爛的“通訊錄”、“記事本”、“快捷啟動”,都可以,著重積累。附帶一句,無論學什麼語言也無所謂。
多使用其他成品軟體,善於發現優缺點,歸類整理,著重對其他軟體的缺點思考,並結合實際用戶的需求,用戶的不方便就是商機。
6.經典案例
(1).外貿公司邊打工邊創業
一位在外貿公司打工的網友,因為自己工作上經常要做一些重復的工作,就自己編寫了一個工具軟體,自動完成這些工作,提高工作效率。一開始在同事之間使用,經過同事們提意見之後逐步完善、增加功能,成為了一款功能比較完善、操作比較方便的軟體。然後他想,既然自己公司工作上用得上,其他同類公司應該也有需求吧?就開始在附近的同類公司里推廣、銷售這款軟體,慢慢的積累了一定的客戶,這名網友就辭職了,專門銷售軟體,收入頗豐。
(2).小網管成立軟體公司
一位在網吧工作的網管,平常工作比較輕松,很多時間自己操作電腦、學習編程,偶爾到網路上接點小軟體定製,賺點外快。越做自己技術越好、客戶也積累越多,最後辭職,自己在家接軟體定製,後來自己做不過來就成立公司,專做外包。
(3).發現真空市場的創業歷程
某網友,一直都想創業,但苦於沒找到適合的項目,無從開始。一次偶然的機會,在一個IT交流群里,另一個網友發給他一個軟體(單機版),問是否可以做,當然可以做,一個簡單的單機版辦公軟體嘛,這有何難?但是這個網友並不想長期做外包,於是去調查使用這個軟體的行業,發現這一行業居然還處於信息化真空狀態。世面上基本上沒有一套該行業的管理系統。
之後去 拜訪 網路上的那位朋友,聯系系統的需求方,是政府部門里的人。開始調研這套系統的需求,發現需要做的不僅僅是一個單機版,是一套基於廣域網的協同辦公系統。開始談價格,價格分為研發費用,安裝費用,以及維護費用。仔細評估下來,客戶給的研發費用實在是太少。價格陷入僵局,為了能拿下這套系統,為了占據這個行業,這名網友決定自己墊資進去,開發出這套系統。
不管怎樣,開始著手做吧,不為別的,只為夢想!開始組建團隊,租場地,買設備。一個月後,經過大家的努力,終於把Demo開發出來了,開始與客戶一起到各政府部門、各個企業去演示。效果還挺不錯,客戶反饋說,很多企業需要安裝。
這就表明,最初墊資進去開發是正確的,安裝的企業一多,自然就開始盈利了。創業的第一步算是成功了。