1. 程式人生 > >專訪安曉輝:Qt是最佳的跨平臺解決方案

專訪安曉輝:Qt是最佳的跨平臺解決方案

從技術支援中途轉戰軟體開發,如今從事程式設計工作已十多有餘,2014年CSDN博文大賽程式語言組冠軍、CSDN Qt論壇的版主安曉輝老師從今天開始,坐鎮的 第十四期,屆時會接受廣大網友的提問,歡迎各位網友前來與安老師一起交流。

當Qt跨界牽手Android,移動開發會有什麼不同?初學者如何藉助Qt開發Android應用?安曉輝老師將攜 《Qt on Android 核心程式設計》一書,接受網友們關於的相關提問,與此同時,也歡迎大家來與安老師交流程式設計師入行、心態、技能等方面內容。

2014年CSDN博文大賽程式語言組冠軍、CSDN Qt論壇的版主安曉輝 

安曉輝( 部落格), 2014年CSDN博文大賽程式語言組冠軍

( 小組賽文章、 決賽文章)、CSDN Qt論壇的版主(http://bbs.csdn.net→移動開發→Qt)。他於1998年保送入西安交大教改班,2002年畢業進入西安大唐電信從事售後技術支援工作,2005年3月離職,始習程式設計之術。在此期間,有個人文集收錄於各大文學站點與論壇,部分散文、小說、書評見諸雜誌與報紙。國內第一本BBS原創文集《指尖的飛翔》(兵馬俑BBS原創文學精選)作者之一。網路文學選集《竹林聽海》作者之一。2005年4月加盟西安信利軟體科技有限公司,參野狐禪,走開發路。

2008年見Qt而傾心,用之於GUI、網路伺服器、嵌入式開發,帶領團隊成功開發出基於 Qt 的網際網路電視機頂盒。2012年移植 Qt Embedded 4.5.2 到 Android平臺並應用於智慧機頂盒專案。著有《Qt on Android 核心程式設計》和《Qt Quick核心程式設計》。

能文能武的技術人

CSDN:請和大家介紹下你和目前所從事的工作。

安曉輝:我始終覺得自己的身份是一個程式設計師,是手藝人,我覺得靠技術吃飯是純潔、高尚、值得尊敬的,有詩為證:閒來就寫青山賣,不使人間造業錢

我從技術支援轉做程式設計師,做到現在,已經有將近十年。一路走來,專案經理、部門經理、專案總監,很多角色都幹過,現在入夥朋友的公司,算是最小的合夥人。公司在做的事情還不能說,沒做出來呢,做出來了再說。不過我們正在招人,Android、iOS、Java,感興趣的朋友可以聯絡我(郵箱:[email protected])。

CSDN:你是如何走上軟體開發之路的?

安曉輝:其實當時我轉行做開發,是形勢所逼,覺得自己幹不了別的。

寫小說出版不了養活不了自己吧,搞銷售又沒有臉皮和嘴皮,還能幹什麼……幹技術活兒吧,於是就決定做開發了。當時還有一個考慮,覺得軟體開發是有創造性的工作,應該和寫小說有差不多的樂趣。現在看來,確實有很多東西是相通的。這一點已故的文壇外高手王小波已經證實:他本人既是一流的小說家,又是一流的程式設計師!

猶記得我畢業那會兒通訊行業很火,大中華(大唐、中興、華為)很流行,我隨著滾滾人潮就進了大唐電信,去做技術支援。幹了兩年,覺得自己要廢掉了,整天東奔西跑插拔程控交換機、換板卡、跳線、更新版本,沒有挑戰。另外老出差,也不是個事兒,就想轉行,不打算再做技術支援了。回到西安後,沒能在公司內部轉研發,我就辭職了。

大學學過PASCAL,可是很少有軟體公司用這個,讀了幾天Java,覺得不對胃口,就去學C語言,經典的《the C Programming Language》,很對胃口(關鍵書薄薄的一本,感覺比較好征服)。大學時宿舍有個哥們兒從教改班轉到了計算機系,擅長C,指標指標指標的滿嘴跑,很高深的樣子,有點兒印象,這也是我選擇C的一個原因。

花了一個星期,粗讀了一遍書,我就開始顛顛地跑著找工作了,目標就是軟體開發。當時也不會幹別的,做技術支援時程控交換機裡的軟體是公司的牛人們做的,我覺得這也是個不錯的行當,帶著憧憬就奔它去了。

理想是美好的,現實是殘酷的。對於我這種半道出家的野和尚,就看了幾天書,居然敢於跑到要求熟悉這個精通那個的公司去應聘,也是逼不得已。我記得花了一個多月的時間還沒找到工作,不斷被鄙視吧。唯一的收穫就是C的筆試題做了好多,到最後終於覺得可以順利通過一部分公司的筆試關卡了。後來面試華為,過了三面,因為沒有經驗,推薦我去慧通,我嫌慧通不是嫡系,就沒去。整整行囊,拍拍灰塵,繼續找吧。

人品總是會爆發的,只要你多堅持那麼兩天。再後來比較幸運,遇到了信利的謝總勝落,願意把我招入麾下,我就這麼在西安信利軟體科技有限公司開始了我的軟體開發之旅。

時間如箭飛逝,已經快10年了。

CSDN:通過你的簡介瞭解到,你就讀於具有深厚理工科傳統的老牌名校西安交大,卻是國內第一本BBS原創文集《指尖的飛翔》(兵馬俑BBS原創文學精選)作者之一,也是網路文學選集《竹林聽海》作者之一,能簡單介紹你涉獵文學寫小說的情況?

安曉輝:上大學的時候,已經喪失了學習的興趣和動力,整日無所事事。彼時網路又剛剛興起,痞子蔡的《第一次的親密接觸》打開了網路文學的窗戶,大家都覺得網路上寫小說這種事兒,會碼字就成,碰巧計算機掃盲掃過了,會碼字,於是就在兵馬俑BBS上混起來了,做了幾個文學版的斑竹。當時榕樹下、紅袖添香、西陸文學、網易文學論壇、故鄉、天涯舞文弄墨等都還挺有人氣,也混了一陣子,還拿了一屆西陸文學的十大明星寫手,不過水平有限,到現在基本不寫了,而當時曾經擦肩而過的一些寫手,如今很多都是文學界的寵兒了。

CSDN:如今走上技術之路,平時寫的都是技術博文,接下來還會再提起筆?或有其他一些規劃嗎?

安曉輝:其實我對寫小說還是情有獨鍾。當年紅袖添香文學大賽有個哥們兒寫了一長篇武俠,獻給自己的女兒,據說都是在把女兒哄睡之後寫的。小說寫得特別好,我印象深刻。我有女兒時我還想,也要為女兒寫一部武俠小說,可惜到現在還沒開始動筆……武俠小說技術性太強(主要是武鬥場面金古樑溫已基本寫盡很難出新),我是幹不來了。最近在考慮以程式設計師為背景的小說,也許過陣子會寫,也許沒幾天又忘了。

CSDN:你對文學用情頗深,你對技術又有著怎樣的情感?

安曉輝:人的生活應該有多個支點,技術和文學是我的兩個支點。我個性內斂,悶頭幹活的事情我喜歡,靠自己就靠得住的事情我喜歡,技術恰巧就是這類事情。我一直不覺得自己對技術有多痴迷,可我媳婦說他就害怕我寫程式,因為寫起來什麼都不顧,這讓她覺得壓力很大。所以前一陣子我辭掉一個公司的總監職位時,她就表示特別的擔心,因為看起來是要再幹開發的節奏嘛。現在看來, 技術已經是我的立身之本了,我身上也已經被打上了深深的烙印 ,到駕校都有同學說我一看就是搞開發的……

CSDN:成功者總是在不斷的學習,每個人都有自己的學習之法,你的一路以來是如何學習的?

安曉輝:軟體開發會經常接觸新東西,必須有足夠的好奇心和興趣,才能不斷的學習進步

至於如何學習,每個人都有自己的模式,我受現行教育體制荼毒比較深,學一門技術時,遵循的是看書、實踐、再看書、總結這樣一個模式。

在實際工作中,我有一個基本的理念,那就是:用到一分,你就往廣裡多學一分,往深裡多學一分。這樣時間長了,自然會不斷豐富自己,脫胎換骨。

回憶過往,我高三以來一直沒好好學習(對不起父母對不起毛主席啊),能進交大的教改班那是因為高一高二的底子好混了個保送名額。大學的時候基本上就徘徊在被淘汰的邊緣(教改班實行末位淘汰),泡BBS(兵馬俑),玩遊戲(仙劍、軒轅劍、星際爭霸、三國志、英雄無敵等等),踢球……就這麼過了四年。所以談到學習,真是非常慚愧。但我覺得大學生活也沒白過是吧,我現在的看法是:你知道怎麼學習,那什麼時候學都不晚。 不是說朝聞道夕死可矣嗎。

因為大學沒怎麼學,什麼作業系統、訊號原理、模電數電、計算機組成原理、資料結構等等,都不知道考試怎麼及格的,後來又幹了兩年技術支援,對於軟體開發,實在是知之甚少啊。

八小時之內是現在,八小時之外是將來。什麼意思呢,你懂得。

我其實還是一個比較愛鑽研的人,畢竟初中、高中的各種奧數、奧物、奧化競賽都拿過獎;另外我也是一個心裡存不住疑問的人,所以我不但剛開始幹軟體開發的時候業餘時間老是買各種技術書看,後來幹熟練了,依然抽時間學習技術。這已然成了習慣。當你工作中用到一項技術,可能只是用其一點,那還有與這點關聯的很多點,那這門技術必然還有很多相關的技術,用心的話,會想了解更多,於是,以點帶面,就會持續不斷地學下去。好好學習,天天向上麼,這時候才發現這不是一句空話。

如果你發現了自己的學習模式,願意學並且能堅持,我覺得沒什麼能阻擋你征服軟體世界的腳步。每當我遇到一個問題,常常會茶飯不思,吃了也是味同爵蠟,我腦子就離不開這個問題了,直到有一個答案,很多時候我都是夢裡還在思考某條路線到底能否走通某個BUG能否解決,也有不少次半夜醒來的時候。人家女孩子午夜夢迴是看了《午夜凶鈴》,我們幹開發的,有時候半夜突然坐起來是因為不小心想到自己把雷埋在哪裡了。

都說IT這行日新月異,那確實,還真沒哪個行當可堪比擬。對開發者來講,自然是需要不斷學習的。但我覺得更重要的一點是:發現自己的學習模式。一旦你能夠用模式來指導你的學習,有意識地踐行、改進你的學習模式,那年齡我覺得也不是問題,到40歲,到50歲,依然可以跟得上技術的發展。

Qt是最佳的跨平臺解決方案

2008年,當時如日中天的諾基亞公司宣佈以1.53億美元收購奇趣科技(Trolltech),並更名為Qt Software。這次收購一度被業界視作諾基亞意在加快移動裝置和桌面應用的跨平臺軟體戰略部署,加速推出網際網路服務業務。但世事無常,隨著諾基亞宣佈放棄Symbian系統,以及IOS/Android系統的快速崛起,2011年3月,Qt的商業授權和技術支援業務被Digia收購,2012年8月,Digia宣佈完成對全部Qt技術平臺和智慧財產權的收購。

CSDN:作為一款跨平臺圖形介面軟體,Qt開發工具可實現在多作業系統以及移動裝置之間一致的跨平臺使用者體驗,你覺得被收購後的Qt至今發展如何?

安曉輝:發展得還不錯,在嵌入式和很多行業都有更好的表現,目前又支援了Android 、 iOS等移動平臺,作為跨平臺的解決方案,始終是最強悍的。

具體情況,在我的《Qt on Android核心程式設計》一中也有提到,摘錄如下:

Qt 被 70 多個行業中數以千計的主要企業所使用,內部使用 Qt 的數百萬計的裝置和應用,你每天都會使用。

Qt 強有力地支援著來自 70 多個行業中的主要企業開發了數以百萬計的產品,也是財富 500 強企業裡前10個企業中的5個所選擇的開發技術。 Qt 的完整框架功能(包括直觀的 C++ 庫、工具和 Qt Quick UI技術)使它成為汽車、手機制造商、工業自動化、消費電子產品、石油和天然氣、國防和各種各樣的其他領域內頂級玩家的首選技術。

CSDN:每一個工具都有適合的使用場景,Qt也不例外,對於開發者來說,是否選用一種技術,要看這個技術和他的需求是否契合。Qt適合的應用場景有哪些?

安曉輝:Qt特別適合跨平臺開發,比如你要支援Windows、Mac OS X、Linux、Android、iOS等等平臺,那Qt絕對是值得考慮的技術方案。

比如辦公軟體,要跨平臺,支援Windows、Mac OS X、Linux、Android、iOS等,就可以選用Qt。又比如用於企業辦公的網路會議系統,也需要同時支援桌面和移動平臺,Qt也是很棒的解決方案。又比如一些行業軟體,醫療、工業自動化、自動控制等,都有很多使用Qt的。當然你也可以使用它做遊戲,“吃藥了”這款遊戲就是用Qt做的,還有很多其它的遊戲也選擇了Qt。

CSDN:Qt支援的平臺包括Windows、Mac、Linux等桌面作業系統,QNX、VxWorks、Embedded Linux等嵌入式平臺,還包括Android、iOS、WP/Windows Runtime三大移動作業系統,和Java跨平臺相比有什麼區別?前者的優勢是什麼?

安曉輝:Java在做web端應用時很有優勢,跨平臺也威力強大。但是目前的移動端,客戶端應用,如果說你在Android上用Java,沒有問題,因為Android使用Java作為基礎語言構建了針對Android的一套UI框架,但是你在iOS上使用Java來做應用,在Windows Phone上使用Java來做應用,還有其它的一些平臺,都是非常吃力的,沒有好的解決方案。

而Qt的跨平臺,在桌面應用開發,在移動端應用開發,所有平臺都是一致的體驗,它針對各個平臺編寫平臺相關的QPA外掛,直接與各個平臺融合在一起,最終既不損失效能又跨平臺,對開發者來講,一次編寫,多次編譯,到處執行,這實在是太迷人了!

CSDN:日前,你出了《Qt on Android 核心程式設計》一書,能否談下寫這本書的緣由?期間有什麼難忘的事?

安曉輝:因為我有寫小說的夢,也寫過不少未發表的小說,對寫作其實是有情結的。我想有一本自己的書,但其實沒想到會是技術書。

2008年在西安信利軟體使用Qt開發機頂盒產品接觸 Qt,一見傾心,她優雅從容,非常好看。之前也用過MFC、WTL、Win32等等框架,但僅僅是用而已。我用Qt做嵌入式開發,工作之外我也想研究她,看看她到底是什麼回事兒,從外到裡,一層一層剝剝看,所以就去讀了原始碼,慢慢就對Qt有了較為深入的瞭解,形成了有問題看幫助,幫助不行看原始碼的習慣。

我覺得一個人技術做到一定程度,會願意與他人分享,不介意把自己辛苦得來的技能和經驗講給他人來聽。這是一種自發的行為吧,也算是一種修煉。知識這玩意兒是為數不多的越分享越多、越碰撞越好的東西。

13年底時我恢復了在CSDN的部落格更新,其實這個時候我工作已經很少用Qt了,但Qt剛好出了支援Android的版本,我就想研究它。Qt還出了Qt Quick這個迷人的小姑娘,我也想研究它。於是不斷地在部落格上記錄我的學習歷程,我知道的都講出來給大家看,不作保留。

後來電子工業出版社博文視點的策劃編輯高紅霞老師聯絡我,問我願不願意出書,那當然願意啊,我有出書的情結嘛。說幹就幹了,我們一個電話沒打過,事情就敲定了,我開始挑燈夜戰,天天晚上都寫,不是一點就是兩點。不寫的時候也在琢磨怎麼寫。週末也搭上了。連女兒我也很少陪她玩兒了。總之我全身心地投入了這件事情當中,也沒在意老婆說的“萬一賣不好豈不白辛苦”這種問題,我喜歡,我願意這麼幹,我就這麼幹了。老婆善解人意,支援我,女兒小小年紀也支援我,這是最令我開心的事兒。

《Qt on Android核心程式設計》這本書就這麼出來了,我人也瘦了十來斤,不過我要說的是,做了,愛了,享受了這個過程,無怨無悔。

在寫《Qt on Android核心程式設計》的時候,我發現Qt Quick這個框架無論如何不能包含在裡面了,而這麼好的東西如果我不把她展示出來,那就太暴殄天物了。於是我跟高老師講我還要做一本書,Qt Quick的,而且目前國內沒有同主題的書,於是我就做選題做大綱,於是又通過了,事兒就這麼成了,於是我馬不停蹄又投入了新的寫作。於是幾個月後《Qt Quick核心程式設計》出來了。

請容許我講講這兩本書吧。

《Qt on Android核心程式設計》主要分兩部分,一部分講述Qt核心的概念,比如訊號與槽、元物件系統、網路、Qt Widgets等等,非常適合Qt初學和進階;另一部分講解Qt在Android上的開發主題,比如觸控、手勢、感測器、JNI擴充套件等等,適合對使用Qt開發Android應用的感興趣的朋友。總之這本書既可以作為Qt入門參考,也可以作為Qt移動開發的入門參考。

  《Qt Quick核心程式設計》是專門講述Qt Quick技術的,從QML語言、Qt Quick基本元素、Model-View、動畫、多媒體、網路、Android主題……該講的都講了,不該講的也講了,總之我覺得它是業內第一本系統講述Qt Quick的書,是填補空白之作,對於初學 Qt Quick(QML)的開發人員和想進階的開發者都有很好的參考、借鑑意義。

CSDN:當Qt跨界牽手Android,移動開發會有什麼不同?

安曉輝:有這麼幾點,我覺得非常重要。

1. 跨平臺,之前說過了,你為Android開發的應用,稍作改動,就可以支援iOS和其它平臺,想想就興奮嘛。你只要學了Qt,就擁有了全平臺的神器。

2. 開發的便利性,比方說你開發Android應用,需要模擬器,而AVD又慢得要死要活的。Qt就不同了,你直接可以在桌面環境下除錯你的應用邏輯、甚至是介面,非常方便。Android就不行,因為介面是必須依賴Android系統。

3. 豐富、成熟、強大的類庫 ,比如網路處理的類庫,以http為例,天生是非同步的,很好用。而Android提供的Http類庫,比較難用,想非同步,就得配上執行緒,不友好麼,這點從我寫的一篇介紹AsyncHttpClient的博文的點選量就可以看出來,大家都在尋找更好用的Android網路類庫。Qt還有很多其它的類庫也很強大,看我的《Qt on Android核心程式設計》就知道了。

4. 經驗的延續性 ,比如你用過Qt開發桌面軟體,用它開發Android等移動軟體,你的經驗一脈相承,沒有陡峭的學習曲線。而就算是Java開發人員,要開發Android應用,也要重新學習Android的UI類庫。

CSDN:初學者如何藉助Qt開發Android應用?

安曉輝:只要針對Android的環境搭建起來了,其它的事情和桌面開發差不多,很方便。

注:更多精彩敬請關注安曉輝老師的Qt on Android專欄

漫談程式設計師

安曉輝老師也是半路出家學程式設計,經歷了一個痛苦過程,如今十年過去,一路從程式設計師、小組長、專案經理、部門經理就這麼走著……今年他完成了兩本書的寫作、換了工作了,新工作也告別寫程式碼……作為一名老程式設計師,在面對開發群裡經常有學生問面試、擇業等問題時,有感而發特開闢了《漫談程式設計師》專欄,以幽默的筆調深受網友們的喜愛,由於文章詼諧指數高入雲霄,在這裡我們也請安老師以一個比較正式的口吻來分享,讓我們來一起關注程式設計師成長。

CSDN:作為十年的程式設計師,你是如何看待程式設計師這一角色的?

安曉輝:程式設計師,就是手藝人的角色,吃的是技術飯。他當然有很多的酸甜苦辣鹹,與其他行業並無不同。關鍵是我們自己的心態,你喜歡,你就有樂趣,如果你純粹是把它當作一個掙錢餬口的手段,那可能就會慢慢厭倦這種高強度高更新頻率的工作,要麼麻木要麼轉行。

其實程式設計師沒有比其它人苦逼多少。你說夜班計程車司機苦逼不,天天熬夜……你說建築工人苦逼不,累死個人還被小市民鄙視……你說明星苦逼不,結婚了都不敢說,酒店開房還要被抓……你說國家領導人苦逼不,該頤養天年的時候還得四處奔波,還說不定哪天就被揪鬥了……關鍵是心態,所謂此心安處是吾鄉,每一行都有它的苦樂憂愁,花開富貴一季紅,竹生平凡千日青,放平心態,一切都會不同。

CSDN:你也是中途踏入軟體開發之路,程式設計師的門檻幾何?與此同時,你認為普通程式設計師和優秀程式設計師的不同之處在哪裡?

安曉輝:程式設計師沒什麼門檻,但是從普通到優秀,從優秀到卓越,這裡面各有很長的路要走,對很多人來說,窮其一生也不一定能走完這中間的旅程。

關於普通和優秀的差別,從做事結果上看,優秀程式設計師做出來的軟體可能有更好的易用性、健壯性、安全性、靈活性;從行為上看,優秀程式設計師會更積極一些,自我成就慾望強一些,最終表現在解決問題的思路、手段、能力等更強一些。

CSDN:一個程式設計師該如何學習技術以及選擇技術方向?

安曉輝:對多數人來講,你所做的事情決定你要學習的技術以及你將來會走的技術方向。當然有相對的一面,有些人,是先選技術後選事情,根據技術選要做的事情。但不管哪種,到最後,我個人觀點,具體的技術都不再重要。重要的是,解決問題的能力。因為程式設計師的職責其實不是編寫程式,而是解決問題。

如果非要講如何學習技術,那還是奉行“實踐出真知”吧。

至於選擇技術方向,雖然說技術無高低,但還是要選擇有發展潛力的吧,有些沒落的,走下坡路的,就不要選擇了,比如MFC之類的。需要說明一點的是,很多技術都有其特定的應用場景,我們在選擇某一個技術方向時,實際上也選擇了你工作的方向。這點可能會給將來的就業帶來很大的影響,所以決定要學一門技術時,還是要了解一下它能解決什麼問題,在什麼行業得到了什麼樣的應用。

CSDN:有一定的技術後的準程式設計師們怎麼找工作?以及有哪些職業風險?

安曉輝:這個話題比較大,我在漫談程式設計師系列中也有談及,感興趣的可以 移步閱讀。

其實幹什麼都是有風險的,對於開發人員來講,最大的風險是什麼呢?選錯一門技術?幹錯一個專案?做錯一個產品?跟錯一個老闆?……也許都不是,也許是沒有在合適的年齡找到合適的妹紙…… 

對於開發人員來講,最大的風險是:在職業規劃上沒有延續性地亂跳槽

有人跳槽為了漲工資,不跳不漲麼。一年都能換幾次,也不管工作內容、技術路線什麼的。這其實也無可厚非,是吧。龍生九子,個個不同。理解萬歲。橋歸橋,路歸路。

我是比較遲鈍的人,到了 30 多歲才第一次正式地來審視“怎樣找工作、找什麼工作”這個問題,可能是年齡大了吧,覺得不能再玩從零開始的遊戲了。有人早慧,可能大學沒畢業就明白了這個道理。真的,我有一同學,畢業時放著微軟不去,堅定地找嵌入式的機會,真給他找著了,並且幹得風生水起……還有個小盆友,小學時就說長大了要當校長,原因呢,是因為他的老師老打他手心,他當了校長就可以直接開掉這個老師……

當年我在參加一家公司的面試時對面試官說:要在兩到三年內做到不可替代。結果被拒了……你懂的,單位都討厭這個。可是作為開發人員,這是你時刻要牢記在心的:培養自己的稀缺性

為什麼這麼說呢?物以希為貴麼。如果你很牛X,乾的活兒很重要,別人又替代不了,你自然受重視是吧。

CSDN:你做過五六年的專案經理,你對好產品的理解是什麼?

安曉輝:說說我早前的經歷吧,工作上回到老東家,是因為老闆對我說要做產品,做一個視訊相關的產品,具體是什麼還不清楚。那時我雖然還有點兒糊里糊塗,聽過很多道理,還沒過好這一生。可畢竟已經不是懵懂少年,多少有了些自己的看法。覺得做產品比較靠譜,比外包靠譜,比外企有更大的可能性,沒準一下子紅了呢?風水輪流轉,明年到我家,也許就可以鮮衣怒馬走天涯…… 

這是我當年的一個認識吧:

有產品做,就不要做外包;有獨擔一面的機會,就不要去做外企或者大公司的螺絲釘。

當然很多人與我見解不同,理解並支援你們!王小波是羅素的信徒,羅素說,參差多型乃幸福之本源。本來麼,求同存異,不能視見解與己不合的人為異端,那是法*西斯。工作中其實也是一樣的。

吭哧吭哧幹到了 2014 年,從 08 年到 2014 年,發生了很多變化,老婆孩子什麼的都有了,人生有幾個六年呢……有了白頭髮了…… 

如今,再來說一下我對好產品的理解,大概是這樣的:

  1. 解決使用者痛點
  2. 所處行業前景光明
  3. 產品有延續性,可持續性發展 

好產品加上靠譜的公司,基本上就是比較靠譜的工作了,甚至可以做成事業。

總的來說,能解決使用者痛點的產品就具備了好產品的基本條件。如果還能給企業帶來效益,那就是真正的好產品了。這就是好產品的兩面。 

CSDN:怎麼判斷公司靠譜呢? 

安曉輝:我有一些經驗,用來鑑別不太靠譜的公司或工作: 

  1. 只關注你過往能力和專案的匹配度
  2. 只想用你已有的技術能力解決公司遇到的問題
  3. 面試你的人對公司產品沒有熱情,自己都不瞭解公司的產品遠景,也不瞭解公司的遠景,說不出個一二三
  4. 沒有新產品,招你就是維護性開發 

如果新公司靠譜,有實力(有一幫牛人、有資本投入)把這個產品做好,那是最好的了。 

對於如何瞭解一家公司呢。我認為網際網路搜尋、熟人打聽、公司網站、招聘要求等都是途徑。還有一個就是面試,一定要牢記,面試是雙向的,不但是公司選擇你考問你,也是你最好的瞭解這個公司的機會,有時機就問一些思考過的問題:為什麼自己要離開現在的公司、自己想幹什麼、將來的路怎樣規劃等。

我在面試一些應聘者時,通常在最後會留機會讓他們問問題,經常遇到有些求職者說我沒什麼問題……這麼好的機會都放過了,一般這種情況,這個人我就不再考慮了…… 

CSDN:對於那些正在大學的準程式設計師和初級程式設計師,你最想對他們說什麼?

安曉輝:假如一句話來概括的話:

不畏浮雲遮望眼,風物長宜放眼量。

另外,作為開發人員,我們需要了解自己的能力邊界,清楚自己能幹什麼不能幹什麼,多多發揮、打磨自己的長處。所謂自知者明自勝者強,有些短處傾其一生也是無法改變的,天生的,沒必要在意。而有些長處經過打磨會越來越好,如果你不去發掘、培養它,那它也可能慢慢萎縮掉。

還有非常重要的一點,開發人員需要在軟體開發之外建立另外的一個興趣。人生需要多個支點,多樣的生活會更加有趣。 

未來暢想

CSDN:你如今的生活節奏是怎樣的?

安曉輝:上班就是朝九晚五。我一般五點多就起床了,或者看書,或者寫部落格,或者乾點兒別的。這是上班之前的事兒。下班之後,基本上是陪女兒。女兒睡了之後,基本上是再看會兒書、寫點東西,或者研究一些技術問題,或者錄製我的視訊課程。

週末的話,有時陪女兒上各種興趣班,有時出去玩一下。

CSDN:談未來和夢想,很多人都說太空洞,但還是想聽下你接下來的規劃,以及你的小說夢和技術夢。

安曉輝:大學時泡BBS,寫小說多一些,當時想著將來出版自己的小說,也想過開一家溫馨的小書店……不過隨著參加工作,慢慢都淡忘了。有一陣子我的簽名檔是:瑣碎磨滅夢想。

可我們真的有夢想嗎?

夢想還是要有的,萬一實現了呢……所以,還是捋一捋生活,放空一下自己,看看什麼是想要的,然後為之努力。

那我現在有什麼夢想呢?我這人其實比較隨性,這也行那也行,走哪兒都行,要說具體的規劃基本是沒有的。近兩年就希望入夥的公司的產品能成。再遠一些就希望能財務自由。

其實我最大的夢想,還是出版自己的小說,寫出有意思的小說來。前一陣子重讀王小波,感覺又不一樣了,剛好那陣子想法比較多,對軟體開發這10年也有很多感悟,就和老婆說要續寫王小波的未競之作《黑鐵公寓》,把我老婆嚇了一跳,擔心我神經也會錯亂。其實我真的想做這樣的事情。王小波的另一個身份,也是非常優秀的程式設計師,這從他的小說《萬壽寺》《紅佛夜奔》《未來世界》《2015》等等中都能看出來,你看他行文的節奏、結構,裡面包含了很多軟體開發的東西,迴圈、迭代、遞迴、跳轉,等等,如果從軟體開發的角度來解讀他的文字,將是非常有意思的事兒。

另外,我最近幾年一直希望能做一些可以給女兒玩的遊戲,可是相關的技術都還沒來得及瞭解,有時間的話會學習,希望不要我做出來時女兒都上了大學。另外Qt也還有很多東西不熟悉,有時間的話會繼續學習,當然也希望使用Qt做出一個跨移動平臺的重量級應用來。 

CSDN:你是什麼時候接觸CSDN的?它對你學習和工作都帶來哪些影響?同時,對CSDN有什麼建議?

安曉輝:翻翻我的部落格,最早的文章是2008年寫的。其實從2005年我做開發,就接觸CSDN了,不過那時都是搜別人的部落格借鑑別人的經驗。

CSDN是非常棒的平臺,上面有很多不錯的技術部落格,給予我很大幫助。我寫部落格後,CSDN給了我更大的幫助,一是我有一個地方可以總結、回顧自己的技術之路,二是它也讓我在客觀上獲得了一些機會。在此一定要感謝CSDN。

我對CSDN的建議麼,一個是希望CSDN更多地甄選和推薦原創、優秀的博文、博主,另外還希望CSDN可以建立回饋博主的機制以便更多的人能夠分享自己的經驗。

友情提醒:從技術支援中途轉戰軟體開發,如今從事程式設計工作已十多有餘,2014年CSDN博文大賽程式語言組冠軍、CSDN Qt論壇的版主安曉輝老師從今天開始,坐鎮的第十四期,屆時會接受廣大網友的提問,歡迎各位網友前來與安老師一起交流。

當 Qt跨界牽手Android,移動開發會有什麼不同?初學者如何藉助Qt開發Android應用?安曉輝老師將攜《Qt on Android 核心程式設計》一書,接受網友們關於Qt on Android 的相關提問,與此同時,也歡迎大家來與安老師交流程式設計師入行、心態、技能等方面內容。