吉日噶拉(在外企、上市公司工作過,自己也創業失敗過,遇到過很多失敗挫折,甚至露宿街頭,但是最后還是挺過來了),是一個十幾年的程序員了,本文介紹了他的相關經歷,以及他的一些經驗,無論是對剛入門的程序員,還是工作了十年八年的程序員都有一些經驗值得借鑒學習。
(一)三年前的一個項目經驗
作者幫公司拉了一個政府的項目,但是由于經驗較少,談的價格很低,還有很多細節剛開始沒有談到,后面相當于收了很少的錢,給政府干了一個比較完善的項目,這節的經驗就是:程序員一般不應該直接和客戶談項目,應該讓專業的人去談,他能把10萬的項目談到50萬或更多。
(二)2005年我的第一次軟件創業,燒掉30萬,兩年時間打水漂
(1)為什么要創業
教訓1.手上有技術,但是沒有客戶,沒有產品,就靠著一腔創業的熱血和對軟件行業的愛好!
教訓2.團隊不穩定,各種經費、雜費、水電給、租房費、設備費,制度不夠完善,成本沒有控制好。
教訓3.自己辛苦培養出來的技術人才,被客戶三兩下就要走了!人員的思想工作要做好。
教訓4.小公司創業不要把財務完全交給別人,熟人也不行。可能最后生意失敗,自己一點錢都拿不到了!
教訓5.做公司不是做技術,更多的是做人,我做人本就不到位,做公司必敗!
教訓6.創業注意的問題點:
(2)我是個有經營頭腦的人嗎
(3)如何判斷一個項目是好項目
(4)財務預算和控制
(5)如何與人合伙
(6)把自己擺正位置
(7)創業其實改變不了一個失敗的打工者
(8)對行業的認識,上游和下游的掌控
(9)害人之心不可有,防人之心不可無
(10)靠人的買賣是最不可靠的
(11)偶然和必然的概率。。。
(三)投遞簡歷請換位思考及前臺頁面設計比后臺實現更值錢
簡歷
一般要信息全面,排版工整。
前臺設計
前臺設計是藝術,這個是沒那么容易學來的,越往后寫程序的會越不值錢,設計的相對會值錢一點。程序是技術,設計是藝術。技術可以批量生產,但是藝術無法批量制造啊。
(四)團隊工作氛圍很重要,沒有好的氛圍難出好的產品和項目
一個開發團隊、軟件公司需要有一個 良好的氛圍,大家人心穩定,每個人都在有條不紊地忙乎實際工作上的事情,每天都有一點點成果,大家平時工作開開心心,一步一個腳印的發展。項目做的有條理,客戶也滿意,收款也及時,這才是軟件公司生存發展的硬道理。軟件如果做不好,軟件公司肯定是開不下去的!
(五)奔三的程序員,平時都忙啥?想些啥?以后有啥計劃?
每個人總要給自己尋找個方向,每個人都需要有個信念,沒有信念,活著就沒意思,無聊,覺得沒有奔頭了。作者是比較喜歡做技術那種,可以做到五六十歲那種,并且看到過更老的程序員!
1.比較喜歡技術,會經常學習,人需要不斷提高否則很容易落后
2.看一些技術方面的書,管理經營方面也看,畢竟以后很有可能走上這條路。
3.多關心人情世故,多聯系朋友、同事、親人,努力建設和諧社會!其實是因為人脈比技術更加重要!
4.溝通能力很重要,文筆也是需要一點的,寫報告,各方面交流都是會有的,畢竟技術能力不低了。
5.參與公司部分銷售工作,做技術銷售也是很重要的,也要讓客戶知道我們公司的技術能力是很強的。
6.軟件系統的核心部分、通用組件部分、關鍵部分、標準樣式部分、標準框架部分,這些都是軟件系統的核心,不能指望新手來完成。
7.編程不只是20來歲做的事情,。可以走管理路線,也可以一直堅持技術路線。
8.生活不止有眼前的茍且還有詩和遠方!
(六)你要有大客戶,要有經濟效益好的客戶,你賺窮人的錢是很難的。
離職了也別成敵人,開開心心的離職,將來還是會有合作機會的,說不定還很大的機會。
你要有過硬的技術,讓客戶相信你,覺得這個事情你是專家,讓你來做沒錯,你要時刻讓自己的技術超出常人的水平。
拉客戶要有個過程,小事情干好了,人家才放心把大事交給你去做,不可能一步登天。
不要做過于廉價的勞動力,那是在破化市場,尊重自己尊重別人,免費給別人當然可以,但如果那樣做,IT就更不值錢了。
賺錢的機會不是天天有年年有,要學會抓住機會,錯過了這個村就沒有這個店了。
大項目都是有比較的,不是隨便給你的,價格也不是亂開的,別人賺的錢也不是天下漂下來的,你需要戰勝對手,才能拿到機會。
(七)走火入魔閉門造車瘋狂框架經驗分享
好東西多得是,就看你如何看待它們。就像我下載的1G的C#文檔一樣,電子垃圾一大堆,天天跟在新技術屁股后面,也難提煉出個啥來。因為你永遠跟不上時代的進步。你的積累也會變成你的包袱,除非你有驚人的毅力,不斷完善你的積累,那最起碼你要連續幾年不打游戲,節省時間才能提煉出來,或公司出錢給你燒,也能燒出來。
不是新技術出來了,你以前的積累就推倒了,除非你以前的積累是經不起考驗的,否則是不會被推倒的,新技術只是錦上添花而已。軟件整體的開發不會輕易發生天大的變化,你需要的是不斷吸收新技術,了解新技術的長處和定位,然后把需要的新技術消化好,用到自己的整體框架中。
(八)最近幾年軟件項目的心得體驗
1.做軟件外包的經驗告訴我
做軟件需要人海戰術,做軟件需要大量的體力勞動,而不是腦力勞動
2.我們技術副總的主導思想
客戶的需求變來變去怎么辦?客戶的需求變了,并不是壞事,讓客戶填寫好變更表,把工作量變化給客戶確認,秋后算賬。工作不就是干點活做點項目嗎?哪里不一樣,這個項目工作量越來越大,錢也是越來多,不是壞事。
3.我自己的主導思想
想多賺錢怎么辦?直接找上級談,你能干出啥來?想要多少錢?多長時間過好?對公司有啥好處?都談明白了,老板也會答應的,大家都有好處,都在影響自己的心情,不能好好干活。
4.身邊一直發生的事實告訴我
與領導溝通好,報告寫好,比拼命干活效果好幾十倍!別總埋頭苦干,干得累死累活,沒人知道你有多辛苦,及時向領導匯報情況交流。
5.我比較佩服的事業部經理告訴我
不能完成工作怎么辦?最愚蠢的做法是通宵幾天,突擊幾天,然后累死累活,最后還是沒能按時完成,人也累趴下了。其實,不能按時完成工作多了去,這時要先分析清楚延時的原因,找上級說明原因,讓他們認可你的理由。然后把接下來的工作合理的進行安排,有條理的一個個做好。
6.我的自身N年工作經驗表明
做軟件為什么那么累?因為軟件是個細活,不是敷衍了事對付對付就可以的,需要一行行代碼寫出來,不能思路混亂,也不能偷工減料。不管是太理論也好,太理想化也好,總得有個理論指導實踐的主導思想,否則這事就沒法干了。
(九)不要給自己編織過多的理由,借口是永無止境的
工作要有力度,不能老是沒完沒了找借口,每個人都可以給自己編織出美麗的借口理由來,聽起來事那么地有道理,其實理由都是給自己編的,自己給自己下的套。
(十)打工和創業不同的心態
這幾年給人打工,感覺真是太幸福了,每個月不管業務好不好,不管客戶給不給錢,老板都會按時給我發工資,卡里有錢了,不愁吃不愁喝,真幸福。
自己不開公司不知道賺錢有多難,自己不當老板不知道給員工的工資已經很高了。不要以為自己創業就比打工可以賺更多錢,我見過很多朋友,自己創業創得很辛苦,但是他們打工的活可以很輕松拿到10K以上的薪水,但是他們非要自己創業,非要往火坑里面跳。
(十一)IT創業光技術好,謀略定位不好,可能照樣會死得很慘。
你可能有了一個很好的創業思路,就感覺用這個思路去創業,成本地,風險低,成功的概率高,你會跟你的好朋友探討你的思路,會和你的好朋友講解你的經營模式、經營理念,甚至帶他到你的公司參觀感受一下你的成功。這時候你很可能在做一個錯誤的決策,你的朋友也不是吃素的,他也會模仿你,搶你的生意,搶你的機會。
我覺得我的積累還可以,還做出了娛樂場的計費軟件。我以前的合作伙伴偷了我的成果,銷售了幾十套。你的成果很容易被被人偷竊,你要學會保護你的勞動成果,你的勞動成果未必給你帶來什么經濟效益,確定給你的敵人帶來更多的經濟效益。
小結:
1.開公司首要的是要明白你做什么可以賺錢,而別人不知道,或者還沒抓住。你程序寫得好,項目寫得好,算個屁啊!全國程序寫得好的人多了去了。你努力啥的,更沒用,天下努力的人多了去!
2.身邊都是虎狼,都是人精,都想吸干你的血,都是指望著跟著你或者從你身上撈一把的人。
3.創業千萬不要又出錢又技術。要么燒別人的錢,要么別人出技術。你全出了,風險大,壓力也大,甚至都沒有精力跑市場。
4.你要找比你強的人合作,你能從他身上學到東西,而不全是你給予別人。與比你強的人合作,你絕對不會損失啥。
5.我特意整理了一下,里面的關鍵不是靠幾句話就能講清楚,所以干脆錄制了一些視頻,很多問題其實答案很簡單,但是背后的思考和邏輯不簡單,要做到知其然還要知其所以然。如果想學習Java工程化、高性能及分布式、深入淺出。性能調優、Spring,MyBatis,Netty源碼分析的朋友可以加我新建的Java群:650385180,我會在群里分享我從業多年的工作經驗,以及Java大型互聯網技術的視頻免費分享給大家。
6.創業了,玩人一定是比做項目、干活更重要的事
7.小公司把股份分掉,你就是不要股份又能怎么樣?等你玩透了,自己再開間公司又能怎么樣。你給員工1%的股份,他都會很開心。甚至你賣股份給員工,還可以融資一把。
(十二)為什么我們每做一個項目軟件,總要被折騰得死去活來
1.軟件是個龐大的工程,不像蓋小民房,可以看得見摸得著,軟件是一個看不見的龐大工程,所以一個像樣的項目,一般沒那么容易就能搞定的。
2.客戶的需求變來變去,我們也要跟著被折騰來折騰去,沒有一個很確定的功能需求。
3.我們的技術不過關,寫的代碼質量不過關,稀里糊涂,對付來對付去,我們的代碼經不起客戶的折騰,沒折騰幾下,就可能被客戶的需求給弄死了!
4.客戶的需求無邊無際,沒有一個明確的范圍,其實客戶的需求范圍是需要限定再某個明確的范圍內的,工作就在這個明確的范圍內開展。
5.可能我們沒有一個成熟的開發框架,每個人都在摸索,每個項目都在摸索,那是很浪費人力物力財力的。
6.我們沒有嚴謹的分工分界思想,哪些功能應該是再哪些模塊做,哪些功能是在哪個實現才對,哪些功能應該在前臺做,哪些功能應該在后臺做,可能都是混亂的。
7.我們一直追求“差的不多就可以”,導致我們做出來的程序不好用。漏洞百出,錯誤多多,無法將注意力都集中在客戶的業務上。
8.公司沒啥積累,一切都要重新來過,做一個項目走一批人,一年又一年,原地踏步。
9.項目組人員,同時負責好幾個項目,東搞搞西搞搞,無法集中精力做好一個項目,哪個項目都是半成品,都是個噩夢!
10.拉一個項目,招聘一批人,各路神仙,思路不一樣,做事風格不一樣,寫代碼不一樣,驢唇對不上馬屁股,無法協調好!
11.老板不懂技術,以為有幾個人就可以搞定,沒有測試,沒有質量管理,沒有需求分析,瞎搞亂搞,折騰來折騰去。
12.軟件不像其他行業,是需要每行代碼仔細寫的,仔細琢磨,不能靠吹就能吹出來的,需要精細的編寫,最后才能出來結果,也不是買過來,賣過去那么簡單!
13。公司大部分都是眼高手低的家伙,平時東扯淡西扯淡,不踏實干活,盡搞些虛無縹緲的東西,沒人干實事。
14.公司里往往耕地的牛是不討主人喜歡的,汪汪叫的小狗卻會討主人疼愛,主人更喜歡小狗。但是做項目需要的是牛,不是靠小狗叫叫就可以了。
15.公司氛圍不好,心情也會不好,壓力會增加,代碼量也是會下降。
(十三)一個完整的軟件項目,最起碼要注意什么
1.項目是誰拉來的?如何拿到了這個項目?公司給了多少業務經費?如果自己是業務員,收入會如何?
2.客戶誰說了算?誰是這個項目的關鍵人物?這個項目的關系人都有誰,他們在項目中起到了什么重用?
3.項目的工期是多久?都需要哪些功能?客戶經理的理想工期是多久?客戶的期望值是什么?
4.項目的成員是如何組織的?人員是如何管理的?項目里分工是如何劃分的?
5.項目的預算是多少?預算誰說了算?計劃工期是多少?
6.項目總開發中的錯誤是如何管理的?
7.項目中遇到的難題是怎么解決的?
8.項目里的都用了什么技術框架?
9.項目里的技術分層是如何實現的?
10.后期發生的問題,是怎么處理的
11.上線是如何進行的
12.后期有沒有在挖掘這個客戶,有沒有在挖出個類似的啥項目來?
當然還有很多很多可以通過實際的項目過程學到的有價值的知識點。
(十四)學習提高要積極主動,誠信對待別人,別人也會誠信對待我們
在一定的瓶頸階段,我們要學會想辦法去提高自己,不管是向同事、朋友、網友,都可以進行交流學習,最好是找一段時間面對面的實際交流。并且要誠心誠意,要有交互的過程,不能只是別人教你知識,你也要有可以交換的知識,這樣人家才愿意。想要提高自己的,可以加我的Java交流群:650385180,進群備注好信息,阿里Java高級架構師免費直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!
(十五)如何突破月薪大關
IT軟件人生,人生的幾次升華:
1.能獨立完成任務,能做項目,升華一次。
2.技術過硬,思路嚴謹,升華一次
3.學會與別人工事,團隊協作,升華一次。
4。當項目主管,升華一次。
5.經營一個公司,升華一次。
6.安穩下來,有自己的家,升華一次。
7.結婚,升華一次
8.當爸爸,養孩子升華一次!
如果能力不夠還是要用力提升自己,能力夠了可以向上級提出要求,或跳槽都會有薪資的提升。
(十六)辭職也要辭得帥,辭得大家開心
辭職要注意的事項:
1.辭職需要提前一個月說好,最好能有書面的的郵件方式給相關的領導。
2.辭職的時候,最好先跟部門的經理說一下,不要直接跟老板講,管理上比較重視不要“越級”
3.辭職前,把手上的工作都整理好,把能結束的工作盡量結束。
4.如果是跳槽到到新單位上任,不要太急,最好等能最長的上崗時間,因為你跳槽了還需要辦理很多事情,例如你的檔案、養老金、公積金等等。而且規范的單位要初始上一個單位離職的證明,所以不要和上一個公司鬧扳。
5.年底不要輕易辭職,一般很多單位都有年終獎,一般多少都會有一些。
6.不要和同事的關系鬧僵,因為你的辭職,會導致有些事情要讓別人擦屁股,還有些恩恩怨怨,積累多了,不太好,人總要有一些朋友的,如果你結婚或辦什么喜事,想請一些朋友來樂一樂,也不會來幾個。
7.需要有一顆感恩的?,我們的技術、水平、機會,并不是靠自己的努力,很多是從同事那里學來的,是公司給的機會提高了我們的水平。
8.其實一個城市的IT圈子的不大的,很有可能你跳來跳去,還是跳到原來的公司,或者你以前的同事跳到了你公司當了部門主管。所以平時要注意不要得罪同事,不要以為好馬不吃回頭草,其實天下大也大,說小也很小。
9.有些機會是朋友、以前的同事、以前的客戶提供的,所以要珍惜眼前的同事、朋友、客戶。
10.不要說自己的公司的壞話,若你以前的公司很不好,那就代表著你也很一般。
11.就算辭職了,也要學會說人話,要感謝公司的培養,要感謝部門經理的栽培,要感謝同事的關系。你說點好話,公司領導也會另眼看你,說不定你在新單位混不好,混不開,還可以回到原來的單位工作!
12.其實這些軟件公司的老板們相互之間也是一個朋友圈子,也經常有來往的,你跳槽到另一個公司,他們也會通過其他途徑了解你在原工作單位的表現、為人、技術水平。
13.自己也曾經當過不成功的老板,也能感受到員工跳槽的痛,明明公司和客戶有外包關系,一看對方的公司比自己的公司有實力,就跳槽到對方的公司。生意也受到損失,培養的員工也都跳槽到客戶那里去了,還怎么賺客戶的錢?所以要選擇好及要的效果是損人利己還是損人損己?最好是哪個都不要損比較好。
14.跳槽從另一個層面考慮,也能變成好事情。
(1)從公司的角度考慮:這個公司不錯,別人肯挖這個公司的員工,說明信任這個公司培養出來的員工。
(2)從員工同事的角度看:跟我們水平差不多的人可以進入更好的公司,能拿到更高的薪水,那以后有機會了,我們也能拿到更高的薪水,會有更好的前途。
15.總的來說,公司是你的跳板,是一個臺階,你需要有點感恩的?。辭職時,跟部門里關系好的同事吃上一頓飯。
16.辭職從貶義理解就是
“逃避責任,逃避現實”
,其實不管是在哪個公司混,都差不多,我們比拼的就是技術能力、人品、為人處世而已。你在這個公司混不還,到另一個公司也是很難混得開。
17.辭職了,雖然脫離了苦海,但是很有可能進入另一個苦海。人走了,也不要一刀兩斷,能維護的,最好繼續給維護,能交接的盡量交接。以前的工作都是你的血與汗,別白流了,能讓后人重復利用,盡量重復利用。說白了,那也是你的孩子,你真的忍心拋棄你的孩子不管嗎?
18.從原公司辭職,公積金、養老金停止繳納了,最后一個月工資有爭議了,到新公司,又有三個月的試用期打八折。其實仔細算一下,這個一來一往,差距還是比較大的,所以多給個四五百就別跳槽了。我曾經的原則就是要多給個2000到3000才考慮。
(十七)一個老程序員的未來十年計劃及目標
廢話不多說,把自己的目標列出來,給大家參考參考:
1.現在本科學歷有點混不開了,我一直沒有時間讀碩士,應該抓緊時間讀個碩士來,再考慮是否讀個博士。不管是讀在職的,還是花錢深造都是可以選擇。否則有可能將來很不好混了,掃地的都是本科的了。
2.年紀也不小了,也該考慮,婚姻和孩子的事情了。
3.現在是公司的中層干部,爭取通過努力工作,拼搏到公司的高層,年收入有個穩定的三十到五十萬左右,養家糊口不成問題。
4.將自己的注意力從技術上轉移到人的方面。更多的不是玩技術,而是關注技術和管理,關注身邊的同事和客戶,同事再技術方面也希望跟上發展的腳步,不要落后太多,最起碼什么都懂一點。
5.勞逸結合,身體是革命的本錢,不能為了賺錢不要命,身體垮了,談什么事業,談什么將來。平時注意休息,鍛煉,爭取不得大病,小病也盡量避免。
6.做個全國行業內有點知名度的產品來
7.年紀大了,對泡妞也沒興趣了,總得有個喜歡的東西做做,例如釣魚、收藏、那我就來個以做軟件為興趣愛好。打發打發時間。
8.要成為某個領域的專家,精通此行的管理(當然不能說是軟件開發領域的專家,這個太不值錢,競爭也太激烈的,更新得又快)
9.開拓幾個有實力的合作伙伴,也沒有必要太多,精一些就可以了。
10.關注純軟件以外的知識領域,例如工業制造、數據采集,指紋系統,人工智能。也不指望深入底層,只要掌握一些集成的經驗及應用就就可以了,畢竟技術有專攻,跟行家是沒法比的。
(十八)我是如何學習一門開發語言的
1.每個年代學習的的途徑不同。我按當時的方式來講吧,想到圖書館去找,哪個本子都會翻翻看,然后哪個圖解多,我就會有買哪個的意向。而且圖解多的,看起來不累,還可以有個參考,就算沒電腦再旁邊,也會大致看明白啥意思。還是比較喜歡臺灣人寫的書,幾乎全是圖,沒幾個文字,而且學習的效果往往很好。還有就是,我一般購買
清華大學出版社
的書,相對質量會好點,其次是
人民郵電出版社
的。
2.學習也會很容易造成原地踏步的情況,因為你學前幾本書的時候,學到的東西很多,當時后面看的很多書,內容會類似,所以需要自己把握好。
3.書都自己購買就太浪費錢了,所以我一般是從圖書館中借書來看。
4.參加工作后,我的學習方式就有些改變了,經常看網上的技術文章,看技術文章的時候心里會想著我也要成為別人羨慕的高手,這樣就很有興趣看技術文章了。
5.其實也不要怕買書浪費,你能收獲到的知識的價值肯定比你買書的價值是要高很多了,前提是你買了就要看,不然就不要買。其次,不要買過時很久的書,因為現在知識更新還是蠻快的。
(十九)曾經想學很多很多,最后發現自己只能專心學好很少的那么幾個必殺技
1.軟件行業最終出來的還是產品,在某個領域不斷地優化,干多久就優化多久。當然要有敏銳的洞察力,能想先知一樣知道客戶將來需要什么,會需要什么,那你就離成功不遠了。
2.一把寶劍與1000把粗制濫造的刀比拼,最后哪個會勝利?1000把爛刀都拼不過人家一把寶劍。
3.十年后發現,很多東西,丟棄的丟棄,落后的落后,淘汰的淘汰,唯獨這么一個輕量級的開發工具庫一直伴隨著我的茁壯成長起來。
(二十)程序員12點,你睡覺了嗎
談談我的心得體會:
1.晚上熬夜,早上起不來,那就是天大的痛苦。早上趕車、擠車,因為你精神不夠很容易出事,或被小偷光顧。
2.你的領導、同事、客戶看到你平時工作精神不集中,對你的評價會比較糟糕,以后有好事情也一般輪不到你,這會影響你的前程。
3.由于晚上沒休息好,工作效率會很低,思路會很混亂,該做的事情沒仔細做好,迷迷糊糊、稀里糊涂的一天就過去了。
4.一個作息不規律,邋遢、做事稀里糊涂的人,我就是有個漂亮的妹妹也不會介紹給他。
5.不按時休息,很可能會影響家人。
6.晚上加班了,沒幾個人看到你加班,但是早上遲到了,所有的同事都看到你遲到了。
7.年輕時身體像鐵一樣,等過了30歲,通宵一晚上要痛苦三四天才能緩過來。若年輕時,不珍惜,過了30歲,啥病都找上門來了,賺的錢可能沒藥費多。
8.早上起來太晚,一般來不及洗臉刷牙,頭發也沒注意,形象還是要主意好的,能給別人好的印象。
同學們,經常熬夜真的會影響你的前程,還是按時休息吧,除非時要命的事。
(二十一)春節后被面試和面試別人的經歷
1.被人面試
書中的作者,投遞的簡歷方向都是十年左右的工作經驗的崗位,基本都是有面試通知,接著就是成果講解,項目介紹是少不了的。基本也是能上崗位,但是還是選擇了穩定的一點的那個。
2.面試別人
主要從下面幾個方面跟大家分享,對面試官和面試者都是有一定的借鑒價值:
(1)簡歷環節
①曾經跳槽單位不要過多,總要有幾個待了很長時間的公司,否則很難有高薪的機會。
②項目經歷不要寫那些幼稚的學習項目,寫上一百個都是沒有用,一看就是入門糊弄小孩的項目。
③項目經驗不要太假,工作才兩年,上十個項目,這么可能啊?走馬觀花?能長啥經驗?
④工作年限、期望工資寫清楚。
⑤其他方面,比如個人的詳細資料,聯系方式都是要有的,并且排版整齊
(2)筆試環節
①我們不是研究高新技術的,我們考的是你的基礎功,雖然面試題目很簡單,但是需要仔細認真的寫,代碼也要寫工整些。
②簡單的題目不會做,難的題目更不會做,無聊的時候還是要翻翻基礎語法的書,SQL的書等等。
③不要藐視簡單的題目,一般都是暗有玄機
④我沒見過筆試很糟糕的,真正干活卻很厲害的人。我記憶中的同事,平時工作厲害,筆試也不差。
(3)面試環節
①首先你不能有口臭吧,再窮也要買個口香糖,把口臭問題解決掉。
②帶上紙和筆方面不時之需。有厲害源碼或項目的可以帶上電腦。
③頭發梳理干凈,穿得像模像樣,第一印象是很重要的
④無法表現出對編程的熱愛,會是好員工嗎?
⑤筆試不好可以理解,但是幾乎沒有一個說得出口的自己擅長的東西,是不行的。
⑥溝通能力不好,或者自己的思路表達不清楚,一般是很難找到合適的工作的。所以平時工作要學會多交流,別跟你旁邊的同事Q來Q去,學會直接張口對話不時壞事。
⑦我們更愿意錄用那些看上去順眼,性情穩定,目標明確,有一計之長,工作經驗豐富、有實際工作業績證明的人。
(4)老板環節
①雖然前面兩關過了基本上不會有啥問題,但是也不要太隨意,上層領導更看重精氣神的表現。
②一些細節也要注意到:比如,敲門進入,坐著不要翹起二郎腿。
③老板也會很在乎你的溝通能力,職業規劃,價值觀,知識等方面
(二十二)想快速提高技術水平嗎?你需要找高手,給你的代碼來個深入點評
1.我們國內的程序員大多都不善于交流,即使善于學習,提高的還是不明顯。不少工作了五年的人與工作了一年多的人的水平本質沒啥區別。這種原地踏步的狀態,會讓人感到迷茫。
2.我們大多喜歡看技術文章,但是不喜歡把自己的代碼拿出來交流,讓高手看。說白了,其實高手也懶得看菜鳥的代碼,所以你得求人家看才行!因為大師給你點評,你就知道,你與他們的能力差距體現在哪里,哪些沒有注意到。
3.記得剛開始工作的時候,別人指出我,有些命名習慣不好,有些邏輯思維判斷可以更簡單寫,剛開始我是有點抵觸的,但是,后面想想,很多最基礎的東西都沒做好,怎么能算一個好的程序員呢?直到我現在認為,哪怕是一個字母的大小寫沒弄好,或包名沒設計好,都是很不應該,很幼稚的錯誤!
4.那些難以提高的人的特點:
(1)目中無人,自以為是的程序員
(2)聽不進別人的意見,總想搶著講自己的觀點的程序員
(3)不關心別人,天天閉門研究,而且著手與研究十年八年才能成功的項目的程序員—世界很大,你正在研究的很多問題,別人做就解決了!
(4)工作中,沒遇到大師和高手,想交流和切磋沒辦法,只能考網絡學東學西,再買幾本書看,難以掌握系統知識的程序員。
通常來說,拿來主義往往是見效最快的。有效的溝通交流,比自己努力強上至少5倍。很多時候,研究別人的成果比自己從頭研究要節省很多的時間。程序員總不是靠吹出來的,還需要靜心寫一寫,但別忽略了溝通交流的重要性。
(二十三)接近60歲的日本IT軟件小老頭在干什么?我們能從他身上學到什么?
很多軟件開發人員,好像過了30歲就迷茫了,30歲沒當上管理職位就面子過不去了。還記得在上海遇到一個60歲的IT小老頭,看看人家在干什么:
1.整個系統構架,都是由他選型的。例如整個系統分幾層,用什么開發語言大多,當然包括數據庫的選型。
2.到底用哪些三方組件,例如報表、三方協議處理軟件、展示控件,而且對他們了解非常深入。
3.整個系統的例子程序基本都是他寫的。并不只是選擇系統構架,他把構架選好,還能讓它跑起來,并且把范例程序寫好(大家都是安裝他的寫法寫程序)
4.編碼規范、注意事項,都是由他起草,并且寫得很規范。
5.幾乎所有的設計文檔,包括頁面的初步設計,都是他做的。他知道整個系統需要多少個頁面,每個頁面需要什么功能,有很明確的說明,很詳細。
6.數據庫的詳細設計都是他負責的,包括每個表、每個字段的名稱、類型、默認值等。
7.項目中難題的攻克,特別是控件上的特殊處理,都是這個老頭在負責維護更新。
8.項目的驗收、與客戶的溝通問題,項目的進度的安排和跟進、費用的計算都是由這個老頭來負責。
跟這樣的人一比,那些十年八年的老程序員,簡直是小菜。沒有個二三十年工作經驗,哪里來的那么強的技術能力。但是堅持學習二三十年的技術也不是一件容易堅持的事!
大家就當一個參考吧!
(二十四)技術人員需要先學會做人,在學會做事,之后才能成事。以成名得利。
1.其實兩個人做項目,既能體驗工作的樂趣,又能相互學東西,多了很多安全感,少了不少孤獨感。
2.經歷N多失敗也不是什么壞事,只要你不被失敗徹底打敗就好。沒有慘痛的教訓,就沒有深刻的體會。
3.以前總想用實力來證明自己是最強的。認為把實實在在的實力拿出來了,別人應該不得不承認你的能力。其實,好勝性格的人在剛開始工作往往會碰壁,身邊的同事也大都反感。
4.不管做什么事情,我們要記住一點。首先要得到領導的認可,從上而下執行的事情,往往會跟順利一些。
5.一些建議:
(1)壓住好強心理。
(2)先不要急于做事,低調低調再低調。
(3)遇到事情不要馬上就和同事溝通,想把思路捋好,試一試可行的辦法先。不要浪費人家大把時間。
(二十五)程序員找老婆—相親節目引發的一點思緒
簡單的說吧,在大城市里面的程序員找老婆不容易!年紀大了,程序員很多都是會去相親。
相親方面的劣勢:
一個方面性情不夠開朗,興趣不夠廣泛,物質條件優勢不大。而且陪老婆的時間不會太多。
還記得看非誠勿擾,一個片段,一個相親的男的說我是個PHP程序員,然后場上的燈,馬上滅了一大片,像打機關槍一樣,主持人都一臉懵逼。這個引人發笑,但是卻是值得我們程序員深思的!
(二十六)技術水平很高,但是正規公司為什么還是不錄用這些人?
其實公司都是希望來的都是大牛,但是也要合適的。
※ 不容易被錄用的情況:
1.越是規范的大公司多來的人,越不容易被錄用。因為大公司出來的人一般都只懂局限的一部分工作,綜合實力相對很弱。
2.越是規范的的大公司過來的人,往往不喜歡啥都自己做,已經習慣了做單種工作。
3.越是大公司來的人,薪資要求越高。
4.越是大公司過來的人,資歷高,眼界廣,管理難,你怎么指揮人家未必會聽。
5.一個人的力量畢竟往往是有限的,就是招聘了這么一個大牛,他也未必能在短時間內干出重大業績來。
6.很多所謂的牛人,都是兩手空空的牛人。
★ 容易被錄用的情況:
7.至少有兩年的工作經驗。實習生是很折磨人的,學得不好,公司又不想要,學的好的,又很有可能不久就跳槽!
8.做過幾個像樣的項目,手上有實際工作成果演示。很多時候公司不是要你的代碼,而是看你的工作能力。
9.筆試成績好,思路嚴謹,程序也寫得不錯,數據庫SQL語句也寫的條理性很強。
10.行業開發經驗越接近越好。
11.正規的大學本科畢業。
12.薪資要求合理。
13.長相雖然不要求很英俊,但是不能影響公司的形象,看上去干凈整齊。
14.經歷過一個完整的項目周期,從項目開始到項目結束為止,不僅會寫代碼,還能寫一些相關的文檔,有一定的設計能力,有一定的溝通表達能力。
15.肯努力工作,不時思路紊亂型的。水平差點,多教下,努力學習也是可以提高的。
其實程序員也就那么點工資,開始也不指望你做出什么驚天地的高深技術來。當然后期發展看個人情況。
(二十七)對普通員工而言,有效的溝通能力比技術能力更加重要
體現在下面幾點:
1.有些有難度的東西搞不定,也不跟領導講。不找同事問,不找技術領導問,只是自己悶頭研究,好幾天也弄不好。其實張張嘴,你身邊閑著沒事的
寂寞高手也是會愿意為你露一手的。這些人可都是過來人,都是有很多經驗的。
2.程序模塊寫好了,也不跟領導講一下。寫好后接著悶頭學習研究新技術,或看新聞等等。其實你的程序可能還有很多未知的問題,或要修改的邏輯。
3.修改了程序也不跟組員講一下。想怎么改就怎么改。這回讓程序代碼后期維護很難。
4.修改了Bug也不跟領導講一下。測試人員不知道,修改后量注解也不加上去。。。
5.工作任務無法完成也不跟領導說一下。不知道是處于面子問題,還是拍別人說自己能力不行,總之一大堆工作沒辦法按時完成,也不跟領導講一下。
其實吧,任務完不成也是偶爾會有的情況,要提前說一下,好讓領導有個充分的考慮,重新分配把一些任務,讓別人來完成一些,以免耽誤了項目的進度。 不能按時完成任務并不是天大的錯誤,沒有及時匯報無法完成任務才是天大的錯誤。
6.技術不行,你可以學,可以模仿,可以copy過來修改。但是溝通能力不行,不時一天兩天就可以改得來的。這就要求你平時要多注意有效的溝通技巧。
(二十八)從代碼質量檢查中感受生活的樂趣
由于沒有代碼檢查這個步驟,很有可能導致最后的錯誤被放大很多倍。沒有代碼檢查,既要耗費測試人員的時間,也耗費領導的時間,最后你還得改,可能有些功能自己都不太記得了!需要花一些時間理順思路!
所以及時檢查代碼是很有必要的,要把自己的代碼當成自己的孩子來看待,你會愿意自己的孩子,天生畸形嗎?
代碼檢查的幾個參考點:
1.要有比較可行的編碼規范,這樣可以統一規范大家,否則不知道誰說了算。
2.大家要有共識,有一個良好的代碼質量互查氛圍,每個人都有意識的相互檢查。
3.程序如人。程序有無Bug與做人好壞是一樣的道理,我寫出來的代碼程序就是我人的質量。不能容忍代碼程序有瑕疵。
4.要有強烈的責任意識。我的軟件有問題,哪里還能按時下班,安心的過生活?
5.檢查代碼也需要有高水平與高境界,不只是需要有這個意識。檢查代碼的能力也是可以提升的!
6.一個人努力做事情很重要,大家一起努力做事情更重要。
(二十九)談某些程序頑固的思維方式
下面是一些程序員的頑固思想例子:
1.沒有設計文檔
誤區:很多人會認為設計文檔瞎耽誤功夫。
其實吧,有設計文檔還是好一點的。就像向有設計圖紙,再有模型。。。設計的程序總要邏輯頁面吧,還有必要的備注呢。若一個軟件,連像樣的設計文檔都沒有,以后怎么上層次,怎么有提高?
設計文檔也是對自己思路的一種鍛煉,不管是工具的使用,還是實際設計。。。
2.拒絕重構
程序里面有一大堆命名紊亂,功能重疊的代碼和寫錯位置的代碼,這些很多都是只有當事人才清楚的。
很多人認為程序穩定,不出問題就可以了,但是后期維護的?有時候辛苦的還是自己啊。
3.拒絕使用現在新的方法和框架
其實就是害怕學習,一般的來說,新的東西大都有它的價值,舊的東西會被慢慢取代。比如說現在相應式編程就很流行哦。要多聽聽比你經驗豐富、能力更強的人的建議。
(三十)典型的國內小項目經驗分享
國內項目的幾個典型特點:
1.項目臨時性比較嚴重,突然要開發。
2.項目工期短,總共也就兩三個月時間。
3.項目人員變得大,開發人員不穩定。
4.項目成員少,有時是兩個,有時是一個人開發。
(三十一)創業前,你要思考的問題
有些人頭腦不冷靜,盲目走上創業之路,創業后自己辛苦不說,生意難做,還會遇到很多生存問題,資金問題,人力資源問題,可持續發展等等諸多問題。
下面是創業需要謹慎問題:
1.同一個時間過一個項目時,人的精力會很集中,這樣效率也會高。但是同時做好幾個項目,人的精力就會分散,往往處于應付表面的狀態,無法對項目進行有力的推動。
2.干自己的事情和干別人的事情境界完全不一樣,往往給你干活的人或者與你合作干活的人,不會那么拼命,不要期望太高。
3.項目人員變動的可能性很大,開發的周期相對比較長。而且就算自己不出變故,很有可能客戶會發生變故,整個項目的風險系數比較大。
4.剛創業時往往很難走產品路線,大多走的時項目路線。每一個項目的個性化需求,業務需求差異大,無法充分利用上一個項目的勞動成果。
5.為了可持續發展,就得一邊做現有的項目,一邊接洽下一個項目,這樣會耗費很多時間,而且分散精力。
6.若項目不是自己帶,往往很難控制它的規范性,嚴謹性,很容易進入一個一團糟的局面,后期收拾這個糟亂的局面,也要耗費N多精力和時間。
7.一個公司的房租成本、辦公成本、日常經營成本、招待費、差旅費等等開支也不少。
8.接下來很可能在不同的城市和行業,要同時打贏好幾場戰爭很不容易。
9.接一個項目容易,但是天天有項目不是那么容易的。開拓一個信任你的客戶比搶別人的客戶更難。
創業過程中一下子要花費幾萬塊是很正常的事情,和可能折騰幾下就虧空了。特別人沒有明確產品方向的軟件開發人員,創業還要謹慎。
(三十二)感受 結對編程 的威力
其實就是兩個人編程。
一個人編程遇到一定的階段難免會有松懈,并且思路相對狹窄一些。兩個人編程可以一起交流,一起探討并認自己的勞動成果時就不會那么無趣了。并且兩個人一起編程,誰也不好意思偷懶,代碼的檢查率也高了不少,出錯的概率會低很多。
親自體驗了一下結對編程的威力,不錯,值得推廣。
(三十三)用什么心態對待糟糕的程序員
這些年遇到不少糟糕的程序員。其實正在寫程序的人,普通IT公司大概只有1/3,有2/3不適合當程序員。還有部分時比較糟糕的。
為了減少這些程序員的出現,可以注意下面幾個方面:
1.招聘時一定要仔細看簡歷,核實簡歷的真實性,盡量防止把糟糕的程序員招聘到公司中。
2.招聘時一定要有筆試。筆試可以不難,就看基本功如何、表達能力是否可以,編程能力合格就行。
3.招聘時盡量別一個做主,盡量多做幾輪面試。
4.招聘時一定要有試用期,如果時糟糕的程序員可以把試用期延長。
5.若一個程序員比較糟糕,趕緊向領導匯報情況。長痛不如短痛。
6.糟糕的程序員寫出來的代碼是很糟糕的,后期維護改進是永無止境的痛苦。
7.糟糕的程序員一般思路紊亂。而能把一個不靠譜的人培養成一個靠譜的人,需要遇到高手,如果沒有這個能力還是讓別人去培養吧。
8.遇到不靠譜的程序員,就委婉的建議它干其他行業。
9.一般來說,不靠譜的程序員與學歷、工作年限是無關的。
(三十四)國內 IT生意難做,想生存發展大家還得多思考一下,出路在哪里?
國內項目的價格已經壓得很低了,還有些公司不計成本,虧本的買賣也干,導致現在國內的項目生意是非常難做的。賤買賤賣的實在太多了。
希望中國IT行業的殘酷的競爭環境能給那些想創業的開發人員潑個冷水,若是積累不過還是安心地好好打工吧,生活質量會更好。
(三十五)管理重要還是干活重要?
以前習慣了個人英雄主義,現在更多的是注重團隊合作。當然,從心底重視團隊合作與嘴上講團隊合作是兩碼事。
1.我們國家很可能做開發的人比美國多,但是由于管理水平沒人家好,我們再辛苦,還是干不過別人,因為缺少正在核心的管理。
2.雖然我們國家缺少非常優秀的大牛,但是相對優秀的開發人員還是不難找的。
3.能把一個龐大的隊伍帶領好,指揮好,是非常有挑戰性的,我們又有幾個人能管理微軟、Oracle、Google這樣的公司呢?
作為一個又十幾年檢驗的程序員,我也發現了,我們缺少的不是普通開發人員,缺的是有管理經營能力的人。
中國IT行業差的不是程序員,不是錢,而是精英管理人才。
(三十六)建議一個人做項目,也建議使用版本管理
項目管理的好處:
1.有時候由于操作失誤,程序覆蓋了,找不到原來正確的代碼,那會很辛苦的。
2.若同行看到你自己一個人寫代碼都在用版本管理管理軟件,他們都會覺得你很專業,將來指揮大家也會更容易一些。
3.如果需要別人幫你修改代碼,而你很早就在用版本管理器,在加上幾個人一起開發會很方便,效率也會很高。
所以代碼要保存好是很重要的。你最好隨時上傳到自己的服務器中,或公司指定的服務器中,并且不定時的把自己的代碼放到移動硬盤等設備中保存。
(三十七)為什么曾經的公司不做外包項目
理解:
1.現在很多商家不夠誠信,不遵守合約,在做外包的過程中往往會采取挖墻腳的戰略。
2.若碰到不要臉的、實力強大的客戶,他會主動索要你的員工。
3.做外包的過程中往往會有員工離職的情況,這時又要補充新人,重新理順項目。
4.做外包的過程中,很多技術、很多做法,都會被客戶學到,客戶自己學到了后,很少再有持續的合作,或者下次合作把價格壓得很低廉。
5.雖然做外包項目能有小的盈利,但是無法長期盈利。因為做成功的東西的版權都是客戶的,不是開發公司的。
(三十八)在北京做銀行項目的親身感受
總結:
1.銀行項目對軟件的安全要求比較高,信息的發送接收都需要有安全保障。
2.需要多重密碼來保證系統的安全性。例如登錄時需要密碼,進行數字簽字時需要密碼,交易時也需要密碼等。
3.所有的數據都需要進行數字簽名,采用公鑰、私鑰的方式進行不對稱的簽名驗證,以確保數據安全。
4.所有的窗體、數據、按鈕等都需要有嚴格的權限管理控制。
5.其他。。。
(三十九)這幾年養成的幾個比較好的工作習慣
1.做事情要有計劃,不蠻干,不瞎折騰。
例如,把需要做的事情都列好,哪個做好了,就打個勾,一個個把事情搞定。
2.沒有事情做了,向領導說一聲,領導安排下來的事情做好了,及時匯報領導,能做到這一點是很不容易的。
3.每天做了什么記錄下來,每周回顧下,偶爾有空翻看下,以前都折騰啥,以前的折騰是不是可笑,是不是做了正確的事情。
4.平時主張“站立式開會”,大家把需要解決的問題說出來,已經做好了什么,接下來做什么,別扯個沒完沒了。站著開會很節省時間。
5.盡量用電話+電子郵箱的溝通溝通方式,電話溝通及時有效,電子郵件有個依據,能留下痕跡,證據。
6.至少看《程序員》雜志,溜達CSDN,博客園,51CTO,了解一下行業的動態,別一不小心成了井底之蛙了。
7.平時多注意積累,不重復勞動,不盲目勞動,把自己的勞動成果盡量重復利用。
8.只為賺錢折騰,不賺錢的事情,就不折騰,人的精力是有限的,折騰來折騰去都會浪費不少時間和金錢。
若你有這些有點,那很容易變成管理型人才。
(四十)能親自構架萬人并發大數據量的軟件應該是職業生涯的榮幸
一般的企業信息管理系統,20幾個人用的就可以賣出20萬的價格,當然如果商務談的好可以賣出更高的價格。
做一個大項目,最難的是讓別人相信你能把這個高并發高壓力的系統搞定,這不是能靠關系或錢決定的,必須要有多年的積累,用事實證明你有這個實力,而且就算出了問題也能馬上解決好。
那么大項目中需要注意什么呢?
1.首先需要有非常好的寬帶,若要支持上萬人同時錄入數據,至少要10M以上。
2.需要有一臺牛X的Web服務器+一臺牛X的數據庫服務器。需要錄入1000萬條以上的數據,最好采用Oracle數據庫,經得起考驗一些。
3.需要進行適當的緩存優化策略。不是所有的數據都依靠數據庫訪問,而要盡量多的使用緩存策略。
4.需要一個牛X、經得起考驗的數據庫訪問層。如果是不好的數據庫訪問組件,或者不穩定的數據訪問組件,很容易導致系統崩潰。如果占用非常大的內存,也會導致系統崩潰。
5.需要優化分頁存取數據的功能,因為有可能有1000萬條甚至更多的數據。如果分頁沒做好,也會導致系統崩潰。如果上萬人同一個時間,或者在接近的時間點了查詢某頁的數據,那系統就真崩潰了。分頁存取需要做到極致才可以。
6.需要進行數據庫索引優化。有索引和沒有索引的性能差異有時候是100倍,有時候是1000倍或更多。
7.嚴謹的高效的數據庫事務處理。由于高并發,而且有些數據是需要同時寫入多個表,需要保證數據庫的一致性。
8.所有的系統操作日記、異常信息都需要完整記錄下來。當系統發生故障時,可以快速排查問題。
9.需要經常檢查系統的各項指標。例如各服務的內存使用情況、CPU使用情況,網絡寬帶使用情況。若服務器快受不了壓力了,就得馬上進行負載均衡,網絡寬帶不夠了就需要馬上增加寬帶,不要等到系統崩潰看再去做這些事情。
10.HTML、JS等都可以考慮用壓縮模式傳輸,那樣網絡傳輸效率會更高一些。
(四十一)關于技術
如果文中說到的一些知識體系還沒完全掌握的,還想不明白的,那么你可以跟著我的腳步,我來介紹一下我總結出來的幾大體系,如果你想學習這些內容,我可以向大家推薦一下學習交流群:650385180大家想學習的可以加群,但記得備注好信息哦。(記住:加群:650385180請備注好信息)
以下是總結出來的幾大體系圖:
一、源碼分析
二、分布式架構
三、微服務
四、性能優化
五、Java工程化
以上就是我在本文中所要表達的全部,希望以上的內容可以幫助到正在默默艱辛,遇到瓶疾或者正在自己創業的程序員們,我能幫你們的只有這么多了,希望大家在往后的工作中,遇到我在文中提到的注意事項時,可以圓滿解決。
覺得小編寫的文章不錯,能對自己有所幫助的,可以點個贊,加個關注。