1、初試牛刀
那年還是2023年。我剛上高中一年級,就在第乙個學期裡,學校設了計算機課,使用的計算機還是中華學習機,蘋果機和ibm pc機,那時候開機特別麻煩,老師叮囑了n遍,一定先開顯示器,再開主機,否則會損壞機器,關機剛好要倒過來,我在那年課程學會了basic語言,並對樹立提到的數學問題乙個乙個的編寫程式解決,我記得最清楚的一道題就是百雞問題,如下:
張邱建《算經》中提出「百雞問題」:雞翁一值錢五,雞母一值錢三,雞雛三值錢一,百錢買百雞,問雞翁,母,雛各幾何?
這是乙個不定方程組,如果人工計算,血藥不斷的嘗試,需要話費不少的時間。從那時起,我就覺得計算機是乙個很神奇的東西,心裡就喜歡上計算機了。
2023年我考上了大學,接觸計算機也比較高階一點,雖然還是286的機器,但開始學習操作dos作業系統了,還知道計算機不但可以計算數學問題,還可以玩很多遊戲,可以做很多的管理工作,比如說幫老師列印試卷,
在這學期,我也有過一次最深刻的計算機教育體驗課,內容也是別開生面的,不是真正的去實驗室做實驗,而是帶我們去他的工作室裡,開啟uitai當時算是比較高階的計算機,可能是486吧?開啟計算機並且啟動那個化學軟體,輸入一些引數就開始執行了,老師就開始給我們介紹怎樣計算,而那台計算機足足計算了兩小時,才把乙個簡單的分子式計算完成,這時才知道什麼是計算機效能,為什麼需要大型機器。
同年,我也開始學習計算機文化基礎,主要練習快速的鍵盤打字,還常常跟同學比賽打字,開水打得快,還蠻有趣的。同時,我也更加系統的學習了計算機的歷史,了解到計算機更加廣泛的應用,
2、開始學習程式設計
2023年,我開始學習c語言程式設計了,在這之前的大學課程都是學習fortran或pascal的,從那年看開始c語言越來越流行,不管是系統開發,還是應用軟體開發都是c語言的天下,因為unix是使用c語言能編寫的。所以unix下的軟體,大多數都是c語言寫的,當然dos下的引用軟體也越來越多是c語言寫的。記得當時使用的c語言編譯器是tc2.0,
它是整合開發環境,也就是說把編寫的**和除錯**放在一起,這樣大大提高了軟體的開發速度,算計一次軟體開發的歷史突破。
2023年,我開始接觸網路,當時網路才剛剛興起,上網也不知道能做什麼,只是知道可以手法e-mail,發出去別人立即就能收到,這是一種速度效率,當時上網的機會也是來之不易,是同學天天打**去電台裡答問題,得到的機會。同時,我在這一年裡就開始學習微機原理,了解計算機具體是由什麼組成,怎樣執行的。
接著,我開始學習使用組合語言控制8255a程式設計,了解cpu的基本指令,也慢慢開始學習c++程式設計,使用vc5.0開始編寫程式,剛開始發覺使用vc5.0編寫的windows的程式非常困難,基本搞不懂從**開始。
到了2023年,我開始學習多種程式語言,為此,我還購買了一台k6-2的電腦,這樣學習程式設計,就更加方便和容易了。
當時開發windows程式,還是使用vb比較容易一點,因此我變轉向學習vb程式設計,搞了幾個月,也能使用他程式設計;但後來發現使用vb編寫乙個撲克牌由此都非常慢,便放棄了vb 的學習,現在回想起來,應該是自己的基本功不過關,而不是vb不好,接著又
學習了delphi,並鑽研了幾個月,使用他來開發撲克牌有還比較快,但當我到圖書館看到linux時,發現全是c語言編寫的,又重新回到了c語言和c++的平台,接著為了看懂linux的源程式,我還專門列印了一本linux的原始碼,一行一行的看。
同時,這一年裡也是c和c++技術能力突飛猛進的一年。
3、入行的開始
2023年畢業後,我就直接進入了嵌入式軟體開發。這一年裡,學習makefile檔案的編寫,並開始看一萬行以上的工程**。畢竟以前看過linux**,座椅看那個嵌入式系統**,接顯得比較小了,接受的速度非常快,兩星期就完全搞懂,可以進入功能階段開發。開發這個嵌入式軟體,不是從頭做起,而是從原來別人的基礎上進行修改開發,那麼看懂別人
沒有注釋的**,就變成一種比較高了要求了。不過,這個系統是印度人開發的,畢竟文件寫的比較全,答題的程式架構是寫的非常清晰的。從這個專案裡我學習病人是到文件的重要性。
在2023年這一年,我開始轉向pc的軟體開發,也從一家大公司轉到一家小公司進行軟體開發。
記得那個小公司,我剛到的時候還沒有成立,我是公司的第乙個員工,算上經理才3個人,公司的辦公地就是一套三室一廳的房子,在這樣的小公司裡,經理主管銷售和策劃,我負責設計產品和產品開發,既當軟體開發工程師,
又當軟體測試人員,還當軟體培訓人員。為了適合多種角色,我開始每天晚上都看書,以便學習到多種技能。也是在那時,我開始每月買一到兩本書,並且都是晚上把書看完,白天起來就是寫**。
這段時間裡,我的程式設計技術提高了不少,比如com、c++模版、stl的使用,還接觸到當時最時髦的xml技術。以及進行dom解析技術。
4、跳槽
在2023年到2023年這三年裡,我又從一家小公司轉到一家大公司去開發軟體。在那個公司裡,主要開發銀行的信用卡軟體。這類軟體對穩定性和質量的要求都是非常高的。在這家公司,軟體開打人員應算不少了,
c++開發人員就有7個人,測試人員有3個人,系統分析人員有3個人,資料庫設計有兩個人,web開發人員有五個人,專案經理有5個人。
這25人的軟體開發團隊,使用的是一種全新的軟體開發方法,整個軟體開發過程都可以專案制進行的,也就是說專案經理對業務非常的了解,經過三個月左右時間寫出一分詳細的分析的功能書,然後再把整個功能書分成若干塊,模組的功能定義非常清晰,把這些模組功能說明書發到相關軟體開發人員手上,
讓軟體開發人員有三天左右的時間來設計整個模組。比如血乙個c++的模組時,軟體開發人員需要把整個c++模組畫出框架流程圖,並且把介面布局描述清楚,還要所有軟體開發人員在專案經理面前把自己的設計計畫和時間寫在會議室的白板上,並且要求讓所有參加會議的人都看得懂。
這樣下來,就會把編寫的**計畫全部定出來,決定所有估計的時間。然後根據所有工作的人員的計畫生成進度圖,把進度圖發給所有相關的開發人員。
雖然測試人員只有三個人,但他們全部跟蹤整個開發流程,比如讓他們寫測試程式,寫構造測試資料的程式,還要為巨大量資料測試作準備,為異常資料測試作準備等等。測試人員可以把介面上的每個功能都測試的很仔細,還需要對業務流程也進行測試,測試出來的bug實在是太多了,每一次改進都會穩定很多,在這幾年裡,我深刻體會到了專案管理和測試的重要性。
2023年春天,我又轉到了乙個相當大的軟體公司工作,在這公司裡,總共有300多左右,僅c語言和c++開發人員就有50人。
這麼多開發人員,也是分成幾個小組的,每組10個人,比如網路伺服器組,客戶端組、im客戶端組、資料庫伺服器組、基礎組建等。
大公司一般把工作分得相當細,比如vss版本管理器就有乙個人專門管理,並且只有這個人才可以發布軟體的版本和製作安裝程式。當然這個人還需要管理所有開發的文件,並且維護文件的完整性以及源程式的安全性工作,
比如每個星期就要被跟一次源程式和文件等。。
開發人員比較多,因此交流的成本也比較高,還好在這個公司裡可以使用先進的im工具,比如像qq、msn等進行人員交流和通訊,像乙個10人的工作組裡,開會經常是在qq或者msn上就解決,這樣節省了大量的時間,比如去定會議室 還需要等安排,在qq上所有會議記錄都會備案到歷史會議記錄裡,使用qq可以讓所有公司員工之間進行平等交流,無論是專案經理、還是老闆都隨時交流,提出所偶建議,一經採納都是有獎勵的。
對於乙個有100多人的大辦公室,居然一天裡聽不到幾個人在說話,全是聽到鍵盤的聲音。如果使用qq這樣的即時工具,每個人都起來說一句話,就像一天街道了,這樣對於深入思考工作的人員來說都是一種極壞的工作環境
會打斷深入工作的意境。這樣也是為什麼程式設計人員在夜深人靜的時候可以快速寫出**的原因,對於軟體開發公司來說,保持安靜的環境是非常重要的。我從這個公司裡學習到大小公司小組化的軟體開發,對於整個團隊的技術提高非常快速的。
在企業裡開發軟體也是一向持續的工程,任何專案都是從以前的東西改造過來的,而不是從頭做起,為什麼要這樣做呢?因為那些專案都投入了不少的資金如果放棄它們,就相當於把乙個公司的資產放棄了;更何況,立即開發乙個產品出來不一定就是滿足客戶的需求。
在企業裡,做軟體工程師,重要的不是天天去發明東西,而是天天改進產品,完善產品,提高產品的競爭力。
另外,團隊也不是越大越好,當打到一定數量後,交流成本就急劇上公升,這是就需要使用更多輔組軟體來管理專案了,比如需求分析,原始碼版本控制、測試管理等等。2023年以後,開發軟體進入了乙個心的天地。
我一直在思考,怎麼樣才可以開發更經濟,更穩定的軟體?怎麼樣才可以開發出滿足客戶需求的軟體?面對這客戶各種各的需求,不得不去滿足他們,客戶提出來的修改就是訂單的到來。
進來開發軟體,都是以市場為嚮導,一客戶為中心,盡可能的滿足客戶的需求,實現銷售的突破。當然,我也理解到軟體的是以質量為中心的,如果乙個軟體的沒有可靠的質量,根本沒有使用價值。
由於軟體的需求越來越多,單打獨鬥的開發方式越來越難以適應軟體的需求,其實,最簡單的方法就是組建團隊,但團隊的組建也不是呢們容易。要組建乙個好的團隊,關鍵是人才的搜尋。
乙個老程式設計師的心裡話 一
本來不想寫的,實在不想看到某些人誤人子弟,混淆視聽,耽誤了中國it的未來,所以一吐為快 一些人總是發出一些錯誤的聲音,形成了劣勝優汰可怕的現象。他們在誤導著中國,把我們的後繼軍訓練成軟體藍領dddd胸無大志,目光短淺,稍有點成績就自滿就自高自大的人,渾不知天外有天,外國正在虎視眈眈盯著中國的龐大市場...
乙個老程式設計師說的心裡話
乙個老程式設計師說的心裡話 1 好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人並不指望成為什麼院士或教授,而是希望活得滋潤一些,爽一些。那麼,就需要慎重安排自己的軌跡。從哪個行業入手,逐漸對該行業深入了解,不要頻繁跳槽,特別是不要為了一點工資而轉移陣地,從長遠看,這點錢根本不算...
乙個假程式設計師的心裡話
2005.11.09 來自 人 我從事程式開發三年了,不算長,也不算短。在別人眼裡或許可以認為高手,但我自己明白,我什麼也算不了。記得還沒畢業時,會用tc寫幾個cai軟體,過了語言關,就以為自己是程式設計師了,很自喜,但畢業後去單位才發現,自己對於程式設計師這個行當來說僅是乙個沒入門的newbie....