2009-11-26 41 views
1

我是一名中級C++程序員,使用ACE做了一些工作,現在我想學習其中一個庫,徹底進入我的職業生涯。那就是爲什麼我需要你的親切幫助來做出決定,那我應該先學什麼。另外請考慮我的目標是成爲專家網絡程序員和協議設計師。感謝您提前給予您的時間和友善的答覆。ACE和Boost之間進行學習的選擇

回答

5

這可能不是您要找的答案,但我強烈建議您在職業目標方面不要人爲地限制自己。計算出你作爲一名程序員繼續工作多長時間,然後問自己,你是否(a)真的能看到自己只在這段時間內進行網絡編程,以及(b)如果你真的相信一個庫你選擇你的深入知識將能夠滿足你現在對於你職業生涯的其他需求,而不會停滯你的職業生涯。

從長遠來看,維持您的編程生涯的不是對單個庫或兩個庫的深入瞭解,而是您作爲程序員的整體能力。圖書館是工具(除非你是一個圖書館設計師),就像編程語言是工具一樣(除非你是一個語言設計者),一個好的程序員的一個標誌就是他或她能夠爲任務選擇合適的工具。我建議每個C++程序員至少應該知道boost以及像智能指針庫,正則表達式等一些核心庫的事實。我不希望任何人爲我成爲Boost所有方面的專家,但我確實希望即使經驗不足的C++程序員也知道他們可以在哪裏找到它,並且使用Boost代碼更好,而不是嘗試寫入自己的合併內存分配器。我給出的例子可能看起來並不像它們直接適用於最狹義的網絡編程,但它們在大多數不重要的程序中肯定會需要。

跟上Boost的另一個很好的理由是很多最終將會/可能使它進入C++標準庫的技術來源於Boost。繼續關注Boost的發展方向將允許您關注C++社區的某些發展,因爲新的使用習慣用法仍在C++中開發;語言及其規範的用法不是「固定的」,至少不是現在,再次,如果您計劃從事C++程序員的長期職業,那麼您將不得不跟上這一點。

相關問題