一個十幾年程式設計師給所有新老程式設計師的忠告
吉日噶拉(在外企、上市公司工作過,自己也創業失敗過,遇到過很多失敗挫折,甚至露宿街頭,但是最後還是挺過來了),是一個十幾年的程式設計師了,裡面介紹了他的相關經歷,以及他的一下經驗,無論是對剛入門的程式設計師,還是工作了十年八年的程式設計師都有一些經驗值得借鑑學習。這裡我也把《程式設計師你傷不起》這本書中的部分精華分享給大家,希望對大家有幫助!
值得注意的是書中的作者本身是一個小牛,沒畢業前已經在大企業工作過很長時間了(.Net開發為主,C、java都有獵取),03年前就可以自己接企業專案了,但是後來還是遇到過很多挫折,主要是創業方面的慘痛經歷。
通過本書,你會看到,即使你並不天賦異稟,成不了喬布斯和馬雲,但你依然可以有所成就,成為幸福的人。
(一)三年前的一個專案經驗
主要講的是作者幫公司拉了一個政府的專案,但是由於經驗較少,談的價格很低,還有很多細節剛開始沒有談到,後面相當於收了很少的錢,給政府幹了一個比較完善的專案,這節的經驗就是:程式設計師一般不應該直接和客戶談專案,應該讓專業的人去談,他能把10萬的專案談到50萬或更多。
(二)2005年我的第一次軟體創業,燒掉30萬,兩年時間打水漂
-
教訓1.手上有技術,但是沒有客戶,沒有產品,就靠著一腔創業的熱血和對軟體行業的愛好!
-
教訓2.團隊不穩定,各種經費、雜費、水電給、租房費、裝置費,制度不夠完善,成本沒有控制好。
-
教訓3.自己辛苦培養出來的技術人才,被客戶三兩下就要走了!人員的思想工作要做好。
-
教訓4.小公司創業不要把財務完全交給別人,熟人也不行。可能最後生意失敗,自己一點錢都拿不到了!
-
教訓5.做公司不是做技術,更多的是做人,我做人本就不到位,做公司必敗!
-
教訓6.創業注意的問題點:
(1)為什麼要創業
(2)我是個有經營頭腦的人嗎
(3)如何判斷一個專案是好專案
(4)財務預算和控制
(5)如何與人合夥
(6)把自己擺正位置
(7)創業其實改變不了一個失敗的打工者
(8)對行業的認識,上游和下游的掌控
(9)害人之心不可有,防人之心不可無
(10)靠人的買賣是最不可靠的
(11)偶然和必然的概率。。。
(三)投遞簡歷請換位思考及前臺頁面設計比後臺實現更值錢
-
-
簡歷
一般要資訊全面,排版工整。
-
-
-
前臺設計
前臺設計是藝術,這個是沒那麼容易學來的,越往後寫程式的會越不值錢,設計的相對會值錢一點。程式是技術,設計是藝術。技術可以批量生產,但是藝術無法批量製造啊。
-
(四)團隊工作氛圍很重要,沒有好的氛圍難出好的產品和專案
一個開發團隊、軟體公司需要有一個 良好的氛圍,大家人心穩定,每個人都在有條不紊地忙乎實際工作上的事情,每天都有一點點成果,大家平時工作開開心心,一步一個腳印的發展。專案做的有條理,客戶也滿意,收款也及時,這才是軟體公司生存發展的硬道理。軟體如果做不好,軟體公司肯定是開不下去的!
(五)奔三的程式設計師,平時都忙啥?想些啥?以後有啥計劃?
每個人總要給自己尋找個方向,每個人都需要有個信念,沒有信念,活著就沒意思,無聊,覺得沒有奔頭了。作者是比較喜歡做技術那種,可以做到五六十歲那種,並且看到過更老的程式設計師!
1.比較喜歡技術,會經常學習,人需要不斷提高否則很容易落後 2.看一些技術方面的書,管理經營方面也看,畢竟以後很有可能走上這條路。 3.多關心人情世故,多聯絡朋友、同事、親人,努力建設和諧社會!其實是因為人脈比技術更加重要! 4.溝通能力很重要,文筆也是需要一點的,寫報告,各方面交流都是會有的,畢竟技術能力不低了。 5.參與公司部分銷售工作,做技術銷售也是很重要的,也要讓客戶知道我們公司的技術能力是很強的。 6.軟體系統的核心部分、通用元件部分、關鍵部分、標準樣式部分、標準框架部分,這些都是軟體系統的核心,不能指望新手來完成。 7.程式設計不只是20來歲做的事情,。可以走管理路線,也可以一直堅持技術路線。 8.生活不止有眼前的苟且還有詩和遠方!
(六)你要有大客戶,要有經濟效益好的客戶,你賺窮人的錢是很難的。
離職了也別成敵人,開開心心的離職,將來還是會有合作機會的,說不定還很大的機會。
你要有過硬的技術,讓客戶相信你,覺得這個事情你是專家,讓你來做沒錯,你要時刻讓自己的技術超出常人的水平。
拉客戶要有個過程,小事情幹好了,人家才放心把大事交給你去做,不可能一步登天。
不要做過於廉價的勞動力,那是在破化市場,尊重自己尊重別人,免費給別人當然可以,但如果那樣做,IT就更不值錢了。
賺錢的機會不是天天有年年有,要學會抓住機會,錯過了這個村就沒有這個店了。
大專案都是有比較的,不是隨便給你的,價格也不是亂開的,別人賺的錢也不是天下漂下來的,你需要戰勝對手,才能拿到機會。
(七)走火入魔閉門造車之.NET瘋狂框架經驗分享
好東西多得是,就看你如何看待它們。就像我下載的1G的C#文件一樣,電子垃圾一大堆,天天跟在新技術屁股後面,也難提煉出個啥來。因為你永遠跟不上時代的進步。你的積累也會變成你的包袱,除非你有驚人的毅力,不斷完善你的積累,那最起碼你要連續幾年不打遊戲,節省時間才能提煉出來,或公司出錢給你燒,也能燒出來。
不是新技術出來了,你以前的積累就推倒了,除非你以前的積累是經不起考驗的,否則是不會被推倒的,新技術只是錦上添花而已。軟體整體的開發不會輕易發生天大的變化,你需要的是不斷吸收新技術,瞭解新技術的長處和定位,然後把需要的新技術消化好,用到自己的整體框架中。
(八)最近幾年軟體專案的心得體驗
1.做軟體外包的經驗告訴我
做軟體需要人海戰術,做軟體需要大量的體力勞動,而不是腦力勞動
2.我們技術副總的主導思想
客戶的需求變來變去怎麼辦?客戶的需求變了,並不是壞事,讓客戶填寫好變更表,把工作量變化給客戶確認,秋後算賬。工作不就是乾點活做點專案嗎?哪裡不一樣,這個專案工作量越來越大,錢也是越來多,不是壞事。
3.我自己的主導思想
想多賺錢怎麼辦?直接找上級談,你能幹出啥來?想要多少錢?多長時間過好?對公司有啥好處?都談明白了,老闆也會答應的,大家都有好處,都在影響自己的心情,不能好好幹活。
4.身邊一直髮生的事實告訴我
與領導溝通好,報告寫好,比拼命幹活效果好幾十倍!別總埋頭苦幹,幹得累死累活,沒人知道你有多辛苦,及時向領導彙報情況交流。
5.我比較佩服的事業部經理告訴我
不能完成工作怎麼辦?最愚蠢的做法是通宵幾天,突擊幾天,然後累死累活,最後還是沒能按時完成,人也累趴下了。其實,不能按時完成工作多了去,這時要先分析清楚延時的原因,找上級說明原因,讓他們認可你的理由。然後把接下來的工作合理的進行安排,有條理的一個個做好。
6.我的自身N年工作經驗表明
做軟體為什麼那麼累?因為軟體是個細活,不是敷衍了事對付對付就可以的,需要一行行程式碼寫出來,不能思路混亂,也不能偷工減料。不管是太理論也好,太理想化也好,總得有個理論指導實踐的主導思想,否則這事就沒法幹了。
(九)不要給自己編織過多的理由,藉口是永無止境的
工作要有力度,不能老是沒完沒了找藉口,每個人都可以給自己編織出美麗的藉口理由來,聽起來事那麼地有道理,其實理由都是給自己編的,自己給自己下的套。
(十)打工和創業不同的心態
這幾年給人打工,感覺真是太幸福了,每個月不管業務好不好,不管客戶給不給錢,老闆都會按時給我發工資,卡里有錢了,不愁吃不愁喝,真幸福。
自己不開公司不知道賺錢有多難,自己不當老闆不知道給員工的工資已經很高了。不要以為自己創業就比打工可以賺更多錢,我見過很多朋友,自己創業創得很辛苦,但是他們打工的活可以很輕鬆拿到10K以上的薪水,但是他們非要自己創業,非要往火坑裡面跳。
(十一)IT創業光技術好,謀略定位不好,可能照樣會死得很慘。
你可能有了一個很好的創業思路,就感覺用這個思路去創業,成本地,風險低,成功的概率高,你會跟你的好朋友探討你的思路,會和你的好朋友講解你的經營模式、經營理念,甚至帶他到你的公司參觀感受一下你的成功。這時候你很可能在做一個錯誤的決策,你的朋友也不是吃素的,他也會模仿你,搶你的生意,搶你的機會。
我覺得我的積累還可以,還做出了娛樂場的計費軟體。我以前的合作伙伴偷了我的成果,銷售了幾十套。你的成果很容易被被人偷竊,你要學會保護你的勞動成果,你的勞動成果未必給你帶來什麼經濟效益,確定給你的敵人帶來更多的經濟效益。
小結:
1.開公司首要的是要明白你做什麼可以賺錢,而別人不知道,或者還沒抓住。你程式寫得好,專案寫得好,算個屁啊!全國程式寫得好的人多了去了。你努力啥的,更沒用,天下努力的人多了去!
2.身邊都是虎狼,都是人精,都想吸乾你的血,都是指望著跟著你或者從你身上撈一把的人。
3.創業千萬不要又出錢又技術。要麼燒別人的錢,要麼別人出技術。你全出了,風險大,壓力也大,甚至都沒有精力跑市場。
4.你要找比你強的人合作,你能從他身上學到東西,而不全是你給予別人。與比你強的人合作,你絕對不會損失啥。
5.創業了,玩人一定是比做專案、幹活更重要的事
6.小公司把股份分掉,你就是不要股份又能怎麼樣?等你玩透了,自己再開間公司又能怎麼樣。你給員工1%的股份,他都會很開心。甚至你賣股份給員工,還可以融資一把。</font>
(十二)為什麼我們每做一個專案軟體,總要被折騰得死去活來
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.後期有沒有在挖掘這個客戶,有沒有在挖出個類似的啥專案來?
當然還有很多很多可以通過實際的專案過程學到的有價值的知識點。
(十四)學習提高要積極主動,誠信對待別人,別人也會誠信對待我們
在一定的瓶頸階段,我們要學會想辦法去提高自己
,不管是向同事、朋友、網友,都可以進行交流學習
,最好是找一段時間面對面的實際交流
。並且要誠心誠意
,要有互動的過程,不能只是別人教你知識,你也要有可以交換的知識,這樣人家才願意。
(十五)如何突破月薪大關
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等都可以考慮用壓縮模式傳輸,那樣網路傳輸效率會更高一些。
11.其他。。。
最後送給大家一張圖共勉。
共勉:每每看到殘疾人的場景,都會有一些感觸。今天在車上看到兩個殘疾人在相互交流,當時感觸也是很深,不禁想起:自己有手有腳,為啥不去綻放更多的色彩,不能等到很珍貴的東西失去了再去後悔,其實之前可以做得更好。總之,不要讓自己以後後悔。