張彩華
達人名片:永清,青島某外企軟件工程師
達人語錄:堅持就是勝利!很多時候,成功和失敗只有一步之遙,在堅持不下去的時候,再耐心地往前走走,你就能看到美麗的風景。
我見到永清是在青島軟件園的一個寫字間里,當時他正和同事在一起測試一個剛剛寫好的程序,他的喜悅之情溢于言表,想必一定是測試通過了。這是一家外企,主要開發(fā)網上銀行安全系統(tǒng)的產品,永清是其中的一名軟件工程師,負責編寫程序和軟件開發(fā)。
拼的是耐力,靠的是信心
永清是一個特別簡單的人,生活簡單,和同事的關系也很簡單,他們之間沒有鉤心斗角和互相算計,只需要共同合作圓滿完成任務即可。他告訴我,大多數軟件工程師都是這樣的,他們穿著隨意的休閑裝,過朝九晚五的白領生活,偶爾會加班,或者把干不完的活帶回家熬夜,一天的大部分時間,他們都和電腦還有代碼在一起。
軟件開發(fā)本身是一個寂寞的過程,因為軟件工程師面對的是一大堆沒有生機的龐雜數字和一個個復雜的程序,同時軟件工程師又需要這種寂寞,因為只有寂寞才能讓他們看清程序的邏輯,看到問題的本質。“沉浸在這種‘0和‘1的世界里,我覺得很興奮,因為那里有神秘、未知,也有挑戰(zhàn)?!庇狼甯嬖V我,為了寫好一個程序,他常常會在位子上坐一整天,會忘了吃飯,忘了喝水,腦子里全是數字和代碼,沒有十足的耐力是很難做到這一點的。
“永遠都不要說一個項目做不出來?!边@是軟件工程師的一個信條,他們需要這樣的信條支撐自己在未知的世界里不停地探索、研究,直至成功。軟件工程開發(fā)的特殊環(huán)境造就了大多數軟件工程師好勝和不服輸的性格,“面對每一個新項目,首先想到的就是征服”。
在這里,永清給我講了一個讓我印象非常深刻的例子。那是2015年,當時他還在中國海洋大學信息學院讀研究生,不過在導師的培養(yǎng)和日常鍛煉下,他已經是一名合格的軟件工程師了。那時他接到了自己人生中的第一個大項目——利用ARM嵌入式操作系統(tǒng)控制打印機,在鮮花、指甲、蠟燭等物品上面打印出自己喜歡的圖片或者文字,而這個技術在當時沒有任何人做過,連一丁點線索和參考的資料都沒有,但是他和幾個同學還是把它接了下來,因為他們相信沒有做不出來的項目。終于,通過60多個日日夜夜的寂寞研究,他們找到了突破的方法,項目做成了,參與項目的幾個同學卻失眠了,那種寂寞過后的開懷,枯燥過后的興奮,讓永清真正體會到了只要付出就有回報的快樂和幸福。
要的是激情,要的是創(chuàng)新
當我問到作為一名軟件工程師需要具備的素質時,永清說:“有耐力、能吃苦,具備扎實的專業(yè)基礎,富有邏輯思維。若是在外企工作,還要加上一點,那就是能說一口流利的英語。其實,最重要的就是要有良好的心理素質和永不消失的激情,這是在這一行業(yè)中堅持做下去的基礎,因為軟件行業(yè)是一個變化和更新很快的行業(yè),行業(yè)之間以及行業(yè)內部到處都充滿了激烈的競爭,軟件工程師時刻都面臨著巨大的挑戰(zhàn),如果沒有良好的心理素質和不斷創(chuàng)造的激情,很難在行業(yè)中立足?!?/p>
一個軟件項目的開發(fā)大致需要這幾個流程:軟件工程師拿到一個項目,首先要去調研,研究項目需要什么技術,是否已經有人做過這個項目;然后就是立項估算時間,這時大家會互相分配任務,一個項目會分成很多塊面,軟件工程師之間需要非常默契地配合;最后就是軟件的各個模塊組裝測試?!霸谖覀冞@個行業(yè)里,團隊精神至關重要,因為沒有誰可以獨立完成一個項目,只有同事之間默契配合,我們才能成功?!庇狼逭f。
說到寫程序,永清也有自己的理解?!皩懘a就像建筑師蓋大樓、作家寫文章一樣,一個好的軟件工程師,寫出來的代碼一定要嚴謹而且邏輯清晰,甚至讓一個門外漢都能看懂?!彼χf,“還要有自己的創(chuàng)新,如果沒有自己獨有的東西,那么軟件工程師就成了‘代碼搬運工,只是去把這些代碼從一個地方搬到另一個地方,就好比一輛汽車的很多零件,你只是把它們組裝成汽車,而不是去親手造一輛汽車,這樣的工作毫無意義?!泵鎸@一切,一個成功的軟件工程師要做的就是在巨大的挑戰(zhàn)中時刻保持高昂的激情和不斷創(chuàng)新的精神,因為激情可以激發(fā)他們創(chuàng)造的靈感,而創(chuàng)新則是他們不斷走下去的法寶。
做的是精專,練的是本領
當問到永清在工作中是否遇到過困難時,他說:“工作的困難是肯定有的。有些情況下拿到項目后也不可能馬上做出來,我們都是在通過項目的需求來查找相應的技術,也就是通過實踐來推動理論學習,這和學校的學習正好相反,盡管這樣的學習有時候會有遺漏,但是速度快,理解深刻。軟件行業(yè)是一個高端的行業(yè),技術更新很快,這就決定了干我們這行的需要終身去學習?!?/p>
軟件行業(yè)使用工具的更新頻繁是眾所周知的,但第一次聽永清給我講到這么多的編程語言時,我真的有種找不著北的感覺,算是徹底迷惑了?!皬淖畛醯拿嫦蚩刂频恼Z言到現在面向對象的語言,從最基本的C語言到C++、Java、C#,再到目前很流行的Ruby、Python,我們都需要不斷學習,至少需要了解?!睂τ诤芏嘬浖こ處煻裕@些東西都需要在工作中慢慢去體會、去學習,但是在這些繁雜的編程語言和數學原理中,軟件工程師又一定要有自己的工作重點,也就是常說的做專做精,畢竟人的精力是有限的,不可能面面俱到,這就需要打造出自己的專長。
要想成為一名合格的軟件工程師,從大學時就得開始積累豐富的理論知識和實踐經驗,其中計算機、電子和數學專業(yè)的學生最適合從事軟件行業(yè),這與他們在大學期間學習的數據結構、編譯原理、操作系統(tǒng)、軟件工程、離散數學等課程密切相關,這些都是軟件工程師必不可少的理論知識。
每一位軟件工程師都是在巨大的挑戰(zhàn)面前不斷學習、不斷提高自己,盡管這樣的過程很艱辛,但是他們很欣慰。項目成功后的喜悅,每個月七八千甚至上萬元的薪水,使他們看到了自己的價值,所以他們又是快樂的。