Ⅰ java程序員面試問題,你在項目中遇到什麼困難,你是怎麼解決的,說簡單了又不像,有哪些復雜的困難,解決
生 : 30歲,我的程序員夢想
作 者: redbridge (雪燃)
30歲,開始實現我的程序員夢,從一個編程愛好者,從一個業余的程序員,一個水平不高的程序員,一個半道出家的程序員......
我的經歷到這里就告一段落了,五年裡跳了五次槽,不知道和大家比算不算多J,沒有什麼太多起伏,但我想很多朋友可能會和我有類似的經歷,不知道能不能引起你們的共鳴。我想對我上面所說的話給一個總結:
1. 如果你覺得自己應該追求什麼,不管遇到什麼困難千萬不要放棄,一定要堅持下去。
2. 不要因為自己年輕就找理由揮霍時間,少玩一點SC、CS、魔獸3、傳奇、魔力或者…….,多看點書,多練練題。
3. 如果你還是在校的學生,英語很差,專業課也很差。沒關系,想怎麼學計算機就怎麼學計算機吧。其它地只要能混到畢業證就行了。除非你對自己的未來沒有信心。(當然,如果你的理想不僅僅是要做一個程序員,那你別丟掉英語。)
4. 如果你不是科班出身,想要轉行而不知該怎麼開始的話,建議你先看兩類書:(1)計算機原理;(2)數據結構和演算法。(看數據結構之前先看C語言)。
5. 什麼時候努力都不晚,關鍵是你明白要努力了,大器晚成總比一事無成要好的多。
6. Java、.net、C++、PB、VB、Delphi、匯編到底應該學哪個?我的經驗,哪個最簡單就先學哪個、公司用哪個你就學哪個、哪個和你有緣(比如剛好你認識一個願意幫助你的Delphi高手)你就學哪個,如果你都學,或者三天兩頭的換,我可以告訴你結果肯定是什麼都不會,不要心浮氣燥,他們都只是工具,學精一門其它的就相通了,重要的是掌握編程的思想。如果你問我面向對象(好像現在已經是面向需求了)、UML、WebLogic、WebService、軟體工程、XML…….應該怎麼學呀,對不起,這些我也確實不是都會,但請相信,你先實實在在的寫上十萬行以上的代碼以後,那些東西你自然就慢慢會了。
7. 不要以為程序員的工資都很高,程序員之間的水平差異也大。公司衡量一個人的待遇標準是他能給公司帶來多大的效益。如果你體現了自己的價值,公司會主動給你加薪的,當然你也可以自己主動提,但一定要在你表現出了自己的價值之後。
8. 輕易不要跳槽,如果非要跳,也要保持工作經驗上的延續,而不是從新開始,不然就會象我一樣走很多彎路。
9. 如果你以為程序員都是熬夜熬出來的,那麼你錯了,因為它的代價就是縮短你的青春!大家不要象我一樣,真的,熬夜一點也不好!記住老毛的話:如有恆,何須三更起,半夜眠;最怕莫,三天打魚兩天曬網,竹籃打水一場空!
10. 這一點是我覺得最精華的一點:「君子性非異也,善假於物也。」這句話的本意是一個水平很高的人本身並不一定很高明,關鍵是他善於利用別人的高明!我在這里做個借鑒,就是要充分利用自己身邊的資源,不放過任何一個可以提高自己的機會。大家不要誤會,這里的假於物可不是指抄襲別人的源代碼,而是指通過學習別人的源代碼把他的思想擴展到自己的思想里去。
註:上面的十大「精華」純屬我個人的「謬論」,您自己看著消化,有用的收下,沒用的請拖入「回收站」。如果你覺得這些總結不過是一些浮華之詞,那請你先問問自己:「是不是在行動上都真正做到了。」
這就是我,一個不算優秀,不算勤奮;玩能玩通宵,學也學能學通宵;對夢想的追求很執著;到了30才開始真正寫程序;一個很平凡但又不甘於平凡的人……我的經歷相信很多朋友都有過的,我現在也不能算是一個成功人士,但我相信我的經歷卻是值得大家借鑒的,因為我終究代表了一類人。
最後我還想說一點:現在很多朋友都抱怨中國的軟體業環境太差,前途渺茫。確實是這樣,我有同感。不過我想軟體業不過是千萬個行業中的一種,每一個行業總是會有起落的,中國的軟體業環境差有她的歷史原因,我們不要總是簡單地和印度相比。抱怨沒有意義,已經這樣了,抱怨不能使她變好,希望我們每一個人多貢獻一份自己的力量,總有一天她會變的比印度還好,甚至比美國還好。
最後:希望所有的程序員和擁有成為程序員夢想的朋友們在新的一年裡心想事成,萬事如意。請相信我:明天不一定更美好,但美好的一天一定會來!
Ⅱ 程序有bug,怎麼跟程序員溝通
正式一點的話要提測試用例,把你的整個測試過程整理成文發給他,說明問題的嚴重程度,當然還得多溝通,不要一上來就:怎麼?「又」在寫bug?(手動滑稽)。
小問題么口頭說一下就好了嘛,解釋一下怎麼發生的,或者委婉一點地問他:我是哪裡操作的不對嗎?這里該怎麼怎麼做?什麼的。
當然,如果你平時比較強勢,直接要害地說哪裡哪裡有問題也可以的。
我就是程序猿,我巴不得別人發現問題趕緊告訴我我好及時改,不然以後上生產真出了問題那就麻煩了。
Ⅲ 請程序員大神們檢查下哪裡出錯了,C語言初學者,謝謝!
錯誤好多,從上到下來吧!
第一個:mian函數中if(is(i)=1)這里改成==,一個等於號是賦值,兩個等於是比較
第二個:mian函數下面is(int number);這里,函數定喊檔義和聲明不一樣,聲明後需要分號,定義不需 要分號,需要{}大括弧
第三個:inta,b,c這里,int後面加個空格
第四個:return是關鍵字,無法作為變數,所以不能那麼定義,沒看到顏色是藍色的嗎鄭棚?
第五個:number/100和(number/10)/10有什麼不同嗎?
第六個:result的值沒有用return返回出去。喊滲則最後貌似少了右大括弧
Ⅳ 這個c語言代碼錯哪裡了
C編譯的程序對語法檢查並不像其它高級語言那麼嚴格,這就給編程人員留下「靈活的餘地」,但還是由於這個靈活給程序的調試帶來了許多則激不便,尤其對初學C語言的人來說,經常會出一些連自己都不知道錯在哪裡的錯誤。看著有錯的程序,不知該如何改起,通過對C的學習,積累了一些C編程時常犯的錯誤,以供參考。
1、書寫標識符時,忽略了大小寫字母的區別
main() { int a=5; printf(「%d」,A); }
編譯程序把a和A認為是兩個不同的變數名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。
2、忽略了變數的類型,進行了不合法的運算
main() { float a,b; printf(「%d」,a%b); } %是求余運算,得到a/b的整余數。整型變數a和b可以進行求余運算,而實型變數則不允許進行「求余」運算。
3、將字元常量與字元串常量混淆
char c; c=「a」;
在這里就混淆了字元常量與字元串常量,字元常量是由一對單引號括起來的單個字元,字元串常量是一對雙引號括起來的字元序列。C規定以「」作字元串結束標志,它是由系統自動加上的,所以字元串「a」實際上包含兩個字元:『a』和『』,而把它賦給一個字元變數是不行的。
4、忽略了「=」與「==」的區別
在許多高級語言中,用「=」符號作為關系運算符「等於」。如在BASIC程序中可以寫 if (a=3) then …
但C語言中,「=」是賦值運算符,「==」是關系運算符。如:
if (a==3) a=b; 前者是進行比較,a是否和3相等,後者表示如果a和3相等,把b值賦給a。由於習慣問題,旁盯老初學者往往會犯這樣的錯誤。
5、忘記加分號
分號是C語句中不可缺少的一部分,語句末尾必須有分號。
a=1 b=2
編譯時,編譯程序在「a=1」後面沒發現分號,就把下一行「b=2」也作為上一行語句的一部分,這就會出現語法錯誤。改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。
{ z=x+y; t=z/100; printf(「%f」,t); }
對於復合語句來說,最後一個語句中最後的分號不能忽略不寫(這是和PASCAL不同的)。
6、多加分號
對於一個復合語句,如: { z=x+y; t=z/100; printf(「%f」,t); }; 復合語句的花括弧後不應再加分號,否則將會畫蛇添足。又如:
if (a%3==0); I++; 本是如果3整除a,則I加1。但由於if (a%3==0)後多加了分號,則if語句到此結束,程序將執行I++語句,不論3是否整除a,I都將自動加1。再如:
for (I=0;I<5;I++); { scanf(「%d」,&x); printf(「%d」,x); }
本意是先後輸入5個數,每輸入一個數後再將它輸出。由於for()後多加了一個分號,使循環體變為空語句,此時只能輸入一個數並輸出它。
7、輸入變數時忘記加地址運算符「&」
int a,b; scanf(「%d%d」,a,b); 這是不合法的。scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。「&a」指a在內存中的地址。
8、輸入數據的方式與要求不符
①scanf(「%d%d」,&a,&b); 輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:
3,4 輸入數據時,在兩個數據之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
②scanf(「%d,%d」,&a,&b); C規定:如果在「格式控制」字元串中除了格式說明以外還有其它字元,則在輸入數據時應輸入與這些字元相同的字元。下面輸入是合法的:
3,4 此時不用逗號而用空格或其它字元是不對的。 3 4 3:4 又如:
scanf(「a=%d,b=%d」,&a,&b); 輸入應如以下形式: a=3,b=4
9、輸入字元的格式與要求不一致
在用「%c」格式輸入字元時,「空格字元」和「轉義字元」都作為有效字元輸入。 scanf(「%c%c%c」,&c1,&c2,&c3); 如輸入a b c
字元「a」送給c1,字元「 」送給c2,字元「b」送給c3,因為%c只要求讀入一個字元,後面不需要用空格作為兩個字元的間隔。
10、輸入輸出的數據類型與所用格式說明符不一致
例如,a已定義運升為整型,b定義為實型 a=3;b=4.5; printf(「%f%d 」,a,b); 編譯時不給出出錯信息,但運行結果將與原意不符。這種錯誤尤其需要注意。
11、輸入數據時,企圖規定精度
scanf(「%7.2f」,&a); 這樣做是不合法的,輸入數據時不能規定精度。
12.switch語句中漏寫break語句
例如:根據考試成績的等級列印出百分制數段。
switch(grade) { case 『A』:printf(「85~100 」); case 『B』:printf(「70~84 」); case 『C』:printf(「60~69 」); case 『D』:printf(「<60 」); default:printf(「error 」); }
由於漏寫了break語句,case只起標號的作用,而不起判斷作用。因此,當grade值為A時,printf函數在執行完第一個語句後接著執行第二、三、四、五個printf函數語句。正確寫法應在每個分支後再加上「break;」。例如
case 『A』:printf(「85~100 」);break;
13、忽視了while和do-while語句在細節上的區別
(1)main() { int a=0,I; scanf(「%d」,&I); while(I<=10) {a=a+I; I++; } printf(「%d」,a); }
(2) main() { int a=0,I; scanf(「%d」,&I); do {a=a+I; I++; }while(I<=10); printf(「%d」,a); }
可以看到,當輸入I的值小於或等於10時,二者得到的結果相同。而當I>10時,二者結果就不同了。因為while循環是先判斷後執行,而do- while循環是先執行後判斷。對於大於10的數while循環一次也不執行循環體,而do-while語句則要執行一次循環體。
14、定義數組時誤用變數
int n; scanf(「%d」,&n); int a[n]; 數組名後用方括弧括起來的是常量表達式,可以包括常量和符號常量。即C不允許對數組的大小作動態定義。
15、在定義數組時,將定義的「元素個數」誤認為是可使的最大下標值
main() { static int a[10]={1,2,3,4,5,6,7,8,9,10}; printf(「%d」,a[10]); }
C語言規定:定義時用a[10],表示a數組有10個元素。其下標值由0開始,所以數組元素a[10]是不存在的。
16、在不應加地址運算符&的位置加了地址運算符
char str[20];
scanf(「%s」,&str);
C語言編譯系統對數組名的處理是:數組名代表該數組的起始地址,且scanf函數中的輸入項是字元數組名,不必要再加地址符&。應改為:
scanf(「%s」,str);
17、同時定義了形參和函數中的局部變數
int max(x,y) int x,y,z; { z=x>y?x:y; return(z); }
形參應該在函數體外定義,而局部變數應該在函數體內定義。應改為:
int max(x,y) int x,y; { int z; z=x>y?x:y; return(z); }
免責聲明:本文系網路轉載,版權歸原作者所有。如涉及作品版權問題,請與我們聯系,我們將根據您提供的版權證明材料確認版權並支付稿酬或者刪除內容。
北郵在線9月免費訓練營報名中,可免費試聽課程,學不學你說了算!
報名方式:
戳下方二維碼↓↓↓
回復姓名+電話即可報名參加~
往期精彩內容:
北郵在線教育:相信品牌的力量!
北郵在線公司的十五大優勢
熱烈慶祝北郵在線論壇隆重上線!
北郵在線網易雲課堂上線啦
西安這家IT教育,刷爆了朋友圈
企業喜歡招聘什麼樣的Java程序員?
北郵在線學員入職華為,挑戰高薪
北郵在線為何值得信賴?揭秘北郵在線強大之謎!
北郵在線Java培訓,擁有前沿技術課程緊貼企業時代需求
Ⅳ 新手程序員易犯的六個錯誤
新手零基礎學習編程,每天不可避免的都會遇到各種問題,難免會感覺很迷茫。昆明北大青鳥http://www.kmbdqn.cn/整理了新手程序員易犯的五個錯誤及解決措敬正臘施,希望能讓大家少入坑。
不使用版本控制系統
一旦你開始對代碼有點熟悉的時候,學習如何使用VCS就應該成為你的首要任務。
這個系統有很多的高級功能,這對我們來說很重要。但一開始,通常會專注於settinguprepository以及committing,這有助於新手跟蹤開發的進度。然後,學習fetching/pulling和pushing的概念也是很重要的,這樣就可以擁有一個在線備份存儲庫。
2.不去閱讀比你優秀的程序員的代碼
北大青鳥校區老師相信這是學習的一個重要部分。新手學員常常疑惑,我為什麼還要花時間去讀別人的代碼,在一個較大的開源社區里,學習者會有機會向優秀的程序員學習。在這里,新手可以找到一些使用你熟悉的代碼編寫的項目,並對它們進行深入挖掘和理解。當然不必理解所有的內容,只需要分析其中一小部分代碼,這些都會讓你受益匪淺。
3.快速切換語言或技術
的確,能學到一點東西的感覺會很好,在語言和技術之間切換也是有趣的。但如果新手學習者在學習清搭過程中經常這樣做,就會適得其反,也會給造成很大的損失。相反,如果對一項技術有很深入的了解,想要切換其他技術語言就會變得很容易。
4.沒有完成主要項目
這是北大青鳥校區老師在觀察學員自我學習過程中易犯的一個問題。一大部分新來的學員對軟體體系結構有著很大的興趣,喜歡嘗試不同的模式,框架和方法來學習一些特定需求很好的編程實踐。但通常,部分在編寫了代碼的核心部分以形成一個很小的工作演示後,就傾向於「置之不理」,然後轉移到別的項目上。
5.不關心代碼質量vs過於關心代碼質量
沒有質量問題的醜陋代碼比有質量問題的漂亮代碼更好。一開始可以不關心代碼質量,只要你對這個問題有意識,並且願意在編程結束時進行清理和解決問題。代碼質量是很重要的,但如果沒有找到平衡,就可能會過度框架住新手的應用程序。亮滑
6、不對代碼進行單元測試
單元測試可能會讓你覺得在莫名其妙地重復著工作。但是,將測試加入到學習的工作流程中,這從很多方面看都是有益的。
Ⅵ 作為一個程序員,為什麼出了問題都說我程序不對,只想說為什麼要這樣。。。很討厭,而且明明領導的錯,慢
在中國,任何大小公司都有飯桶,尤其是大企業,越大的企業慧沖鄭,管理層的飯桶越多,因為管理層根本就不是靠本身上的,華為應該是不屬於國企把,你去看看華為前頌底層員工怎麼評價中層管理的,這就是中國國情,你我都無法改變,在這個社會中只判滑能適應這個社會,該背鍋就背鍋,該做事就做事,該玩就玩,每個月工資准時到賬就行,你管不了那麼多
Ⅶ 程序員是怎麼確定bug
斷點是調試器的功能之一,可以讓程序在調試運行時中斷在需要的地方(如vc中按F9),斷點名是break-point,BUG的定位主要應該是靠程序員自己的判斷,不應該把什麼都交由調試器來完成。另外,bug的確定必要時還需要藉助一些檢測工具(如 PC-Lint、Insure++等)。
Ⅷ 應聘java程序員問到:你在做項目的時候遇到了哪些問題是如何解決的
常見的問題 需求調查方法 增加了新的需求 邏輯錯誤 代碼錯誤 多人開發時候的版本控制 任務的記錄和迴流 單元測試設計 平戚圓擾台依賴性 還高旦有就是單元測試設計。做項目腔答的時候,真正的問題一般都應該是出在需求和設計上,而且一般都有多種解決方案,可以談很多東西。
Ⅸ 程序員在職業生涯中易犯的7個錯誤
1.沒有明確的職業目標
沒有目標的人生,就像無根的浮萍,水流到哪裡就飄到哪裡,一生漂泊。
如果你想要在軟體開發領域獲做唯得真正的成功,那麼就必須知道該何去何從。或許面對遙遠的未來,你已經有了一個粗略的目標了。但是除了這點還不夠,你應當堅實自己的目櫻胡虧標——清楚的定義在實現過程中的每個重要時間點所需要達到的效果。
我認識許多程序員和其它方面的專業人士,數十年來他們都在相同的職位上反復地做著同樣的事情。是的,你沒有看錯,是數十年。接受職業現狀,不做任何改變,是造成這種悲劇的根源。對於未來,如果你沒有明確的職業規劃,這樣的悲劇就很可能會發生在你身上。
面對於此,你該怎麼做呢?
從現在開始,花一些時間來認真規劃一下職業並確定最近的目標。一旦你達到了這個目標,你就要選擇一個新的目標了。在職業生涯中,這樣的目標會一個接著一個。你可以把這些目標寫下來,放在一個每天都可以看見的地方,這樣就可以讓你隨時回想起當前需要做的工作。
2.不重視「軟技能」或非技術的東西
我認識許多擅長寫代碼的程序員,他們可以用所寫的演算法把我耍得團團轉,他們對復雜架構的理解力和思考能力令我自愧不如。
但是真實的狀況卻是:技術不如他們的我,軟體開發領域的職業發展卻全面超過了他們,除了職位,還包括薪水、生產力等諸多方面。
在這里我並不是為了吹噓自己多了不起,而是為了向那些只埋頭專研技術的程序員們說明「軟技能」對於職業發展有多重要。
作為一個軟體開發者,我相信你也清楚,編寫代碼並不是工作的全部。在通往成功的道路上,還需要學習很多其它技能。我們需要長期與他人打交道,所以必須學習為人處事;軟體開發面臨長期的趕工與不同的需求變化,所以需要學習對心態和注意力的調整;在不斷變化的環境里有許多事情需要處理,所以應當學習對事情劃分優先順序以做到效率的最大化。另外,我們對待身體健康應當和對待自己收入一樣敏感,這個才是革命的本錢。
我還可以繼續列舉出更多的東西,關於了解開發者應當掌握的「軟技能」你可以去閱讀我寫的《SoftSkills:TheSoftwareDeveloper』sManua》一書。
總的來說,在生活中無論從事什麼樣的工作,那些軟技能通常都比硬性的技術能力更為重要,所以請保持不斷地學習這些技能。
3.不融入社區生活
在程序員生涯中有一樣東西令我受益頗深,它就是社區的幫助。成為這個大群體的一部分,不僅讓我擁有了歸屬感不再孤獨,也幫助我改進了自身的技能,向著更高的平台發展。
如果你還沒有參與社區生活的話,我強烈建議你融入這個圈子裡來。它是一個比自我寬廣得多的平台,有助於你的發展。
如果你感覺自己的軟體開發工作停滯不前,費勁腦力也無法獲得更大突破的時候,最好的方式就是加入脊神社區,與一群有志同道合的人共同探討所遇到的困難,獲得有助於解決問題的建議。另外,融入社區生活還能夠聚集人氣,培養人脈,這對於提升自身的職業發展也有很大幫助。
但是,如何才能融入到社區生活中呢?
這很簡單,世界各地都有很多開發者團體,你可以通過程序員網站找到並加入到他們當中去。你還可以參加開源夏令營,這是一個一年一度的免費地方性活動,眾多開發人員會聚在一起分享他們的工作,任何人都可登記參加自己感興趣的話題。
如果你不希望在現實生活中與過多的人接觸,也可以選擇加入虛擬社區。
那些大眾的程序員社區會是你的第一選擇。在社區中你會發現有一些非常厲害的程序員,他們會在自己的博客上寫一些精闢的文章並解答大家的問題。除此之外,還有另外一些不錯的在線社區,比如大牛們的博客網站、各種技術論壇、討論群等。
當你開始學會分享,把自己的所知與所想都寫出來的時候,你就真正的融入進了社區生活——而這個博客就是我為自己加入這個程序員社區所做的第一件事。:-)
4.沒有專長
如果你過去常訪問我的博客或者YouTube視頻,你會發現我很多時候都在談論這個話題。這個話題是如此重要,以至於我一有機會就會說到它。
俗話說,術業有專攻。你應當選擇一項想要專精的技術並努力磨煉它。但這並不意味著你就可以放棄對其它技術的基本理解而一味地去專研某項技術——我對那些會數種語言的人是非常欣賞的。這一點非常重要,尤其是在你職業生涯的早期培養一技之長的時候。
專長可以滿足更高級的需求,因此,在同等條件下,它會帶來更豐厚的報酬並更快的積累聲望——這些對於業界對你的認可是很有幫助的。
有專長的人好比是小池塘中的大魚,受人矚目。或許最終這條大魚會跳入更寬廣的池子,但是所累積的聲望和名氣同樣有助於在軟體開發行業的其它領域的發展。
凡事只要七分就好,對於專長技術的研究學習同樣如此。過度的投入會對程序員的時間與精力造成浪費,這是得不償失的。
5.無視個人品牌價值
生活中充滿著各種變數:搬家、結婚、換工作、一夜暴富、突然發福等等。無論如何,有一樣東西始終會伴隨著你一生,而這個東西就是——名字。
你的名字會貫穿於你的全部生活,難道它還不值得你去重視么?
你的名字或者也可以稱作是你的個人品牌是一件非常有投資價值的東西,可許多軟體開發人員對此卻一無所知。
對於獲得工作、取得晉升、客戶端的登陸以及工作的開展等,名字無疑都展現了其強大的作用。毫不誇張的說,假如你臭名昭著的話,會萬事難行,而如果你有良好的名譽的話,大多事情只需通過簡單的握手就能搞定。
我認識很多的軟體開發人員,他們從不擔心自己會失業,這是因為他們投資了時間和精力來打造堅實的個人品牌。他們知道,無論發生什麼事情,在他們失業後的幾個小時內就可以獲得一份新的工作,這是因為他們在業界有良好的聲譽。
對產品和服務進行的投資看起來很正常,但是你是否考慮過自我營銷的價值?要在軟體開發行業建立起自己的個人品牌,我的建議是從創建自己的博客開始,選擇將自己的專長或者有很深了解的領域作為提高自己影響力的跳板,學會把自己的名字一步步做成行業的金字招牌。如何快速的提高自己的影響力呢?最好的方法之一就是創建對別人有幫助的文章。
就拿這個博客為例吧。這個博客建立了我在互聯網上的個人品牌和聲譽,如果你認為我的文章或者網站是有價值的,你會選擇進行分享。甚至你有可能把它列入收藏或者進行訂閱,以方便以後繼續訪問。而這只是其中一種打造個人品牌的方式。同樣的,你還可以選擇視頻網站、播客等媒體,或者在書刊上發表文章,在會議上演講等方式。如果你對如何在軟體開發領域深度挖掘自身的品牌價值很感興趣,這個網站會告訴你如何去做。
6.荒廢業務時間
在工作之餘,你應當做一些項目來練練手。
做業余工作有許多你不知道的好處。首先,它可以有效的改進你的專業技能,特別是那些在平時的工作中很少用到的技術。相比起平時朝九晚五的工作,業余工作類型多變,對於專業技能的提高更有好處。其次,它有助於你對新的開發技術和技巧的學習。這對於日後你想從事新的工作是很有幫助的。我碰到過許多程序員,他們向我抱怨在當前工作中沒有機會去學習新技術,這讓他們今後無法在工作市場上立足。而我向他們建議工作之餘去做一些小項目,使用他們今後想要立足的新技術——這種方式對於提高相關技術是很有幫助的。
除此之外,我們不要忽視做業余工作所帶來的經濟利益。人們常認為業余時間做的那些小項目是掙不到什麼錢的,而事實上它卻是額外收入的重要來源。4年以前,我在業余時間里開發了一個在Android和iOS平台上使用的應用程序,而到現在,這個應用程序還能為我創造價值。
我還認識一些程序員,他們從業余工作做起,最後把這些工作發展為了全職工作。而事實上我就是這些程序員中的一位。這個博客本身以及SimpleProgrammer周圍的其它部分現在成為了我的全職工作。我喜歡稱自己為程序員的生活導師,但是也有很多人認為我是一個專職的博客寫手。
業余工作可以讓你充滿樂趣,它能夠把你從那些你不喜歡但又必須去做的工作中解脫出來。作為一種釋放工作壓力的好方法,它會每天帶給你新的希望。
7.沒有自我學習的計劃
在我面試軟體人員的時候,我首先會問到的一個問題就是關於他們的自我學習和持續完善的計劃——如何進行自我完善。程序員如何在這個快速變化的領域保持技術與觀念上的更新?我希望獲得的回答是他們能告訴我對於自我學習與成長他們有著一個實際可行的計劃。因為一個致力於不斷學習進步的人不僅能夠讓自己邁向成功還能影響到周圍的人,使他們一同邁向成功。
然而,有如此之多的程序員對於自我學習沒有任何計劃。假如你是這些人中的一員,你就應該立即行動起來做一個自我學習的計劃。
這兒有一個可供參考的個人簡單計劃:
堅持每月讀一本關於技術學習或者職業發展的書籍。
這意味著一年時間里你需要閱讀12本書。對於我來說,我會在每天用至少45分鍾時間來閱讀。當我在跑步機上運動的時候我會同時閱讀一些與我個人職業發展相關的文章。
積沙成塔,集腋成裘。每天只需花費30分鍾時間來閱讀書籍,一兩年時間之後你的人生境遇就會發生很大的改變。