1、您是一名系統(tǒng)程序員還是一名應(yīng)用程序員?
系統(tǒng)程序員與保持計算機系統(tǒng)運行的代碼打交道,這些代碼包括框架、工具、編譯器、驅(qū)動程序、服務(wù)器等。另一些程序員是他們自己的主要聽眾,他們很少與非程序員打交道。應(yīng)用程序開發(fā)者與此不同,他們所編寫的程序被非程序員用來完成其工作,他們與非技術(shù)人員的互動更為頻繁。
2、您喜歡編寫用戶界面嗎?
如果是這樣,而且如果您擁有這方面的技能,那就要恭喜自己的好運氣了。用戶界面設(shè)計是極為講究的工作,容易被批評,很難做好,特別是在要考慮國際化和易用性問題的時候。
3、您善于除錯嗎?
如果您認(rèn)為在自己的代碼中除錯已經(jīng)是夠麻煩了,請想像一下替別人的代碼除錯是怎樣的感覺。這需要很強的分析能力和解決問題的能力。找到并消除缺陷可能是很有價值的,但肯定不是每個人都適合這項工作。
4、您喜歡測試嗎?
測試也稱為品質(zhì)保證,或縮寫為QA,常常遭到缺乏經(jīng)驗的程序員的詆毀,但那些有經(jīng)驗的程序員非?粗鬲毩y試的價值。好的測試人員很難找到。編寫工具和自動化的測試用例常常需要編程技能。
5、您是一名架構(gòu)師還是一名編碼人員?
每一個編碼職位都需要某方面的設(shè)計能力,但某些工作比其他工作更需要設(shè)計能力。如果您喜歡設(shè)計甚于喜歡編碼,軟件架構(gòu)師的職位可能更有吸引力。也就是說,架構(gòu)師的職位可能涉及許多與他人的互動,較少涉及編碼或根本不涉及編碼,盡管您需要很好地理解如何進(jìn)行編碼才能有效地進(jìn)行架構(gòu)設(shè)計。除非您接受軟件架構(gòu)方面的正規(guī)培訓(xùn),否則成為一名架構(gòu)師的一般途徑就是先參加編碼工作,然后展示出您在設(shè)計和項目各部分集成方面的才能。
前面這些問題涉及您對哪一種類型的工作感興趣,下面的問題與編程無關(guān),但也是需要考慮的:
6、您對管理有興趣嗎?
某些程序員的長期目標(biāo)是成為一名經(jīng)理,但另一些程序員對這個想法會產(chǎn)生恐懼。但如果您的目標(biāo)是成為管理者,就需要培養(yǎng)自己的領(lǐng)導(dǎo)才能,并展示出您在處理技術(shù)問題的同時,也能夠管理軟件開發(fā)中“人”的問題。如果您的目標(biāo)不是成為管理者,請尋找那些提供良好的技術(shù)職業(yè)發(fā)展途徑的公司,這樣在提升時就不需要被迫去管理人。
7、您想為大公司工作嗎?
在大的公司中工作既有好的一面也有不利的一面。例如,大的公司通常能夠提供更大的工作穩(wěn)定性,以及某種類型的職業(yè)發(fā)展途徑。它也可能擁有非技術(shù)人員知道的品牌。但在另一方面,您也可能對大公司中常常發(fā)生的繁文縟節(jié)、要求嚴(yán)格和公司內(nèi)部斗爭感到窒息。
8、您想為小公司工作嗎?
薪水可能少一些,但隨著公司的發(fā)展和成功,從底層進(jìn)入一個新公司肯定對將來有好處(可能會帶來相當(dāng)大的報酬)。當(dāng)然,不好的一面是大部分新的嘗試都會失敗,您可能在一兩年內(nèi)失去這份工作。
9、您更喜歡開放源碼項目嗎?
絕大部分編程工作通常都涉及知識產(chǎn)權(quán),封閉源代碼的項目,某些程序員是反對這一點的,F(xiàn)在有一些向更開放的軟件開發(fā)轉(zhuǎn)變的傾向,為像您這樣的人提供了更多的機會,可以參與開放源碼項目并同時獲得報酬。
10、您希望參加長期的項目還是短期的項目?
某些程序員渴望改變,最多在每個項目上花上幾個月的時間。如果您喜歡短期的項目,而且不介意出差,那么成為一名咨詢公司的雇員可能比成為一名傳統(tǒng)公司的雇員要更好一些。重要的是您必須明白,這些問題沒有標(biāo)準(zhǔn)答案,沒有正確或錯誤的答題方式。但是,您在這些問題上對自己越誠實,就越有可能找到真正喜歡的編程工作。