今天想在這裡介紹一下作為新人培訓或者自學過程中一種很有效的方法,那就是tiny project,在dian團隊體驗過幾次tiny project後,讓我對這種培養模式非常地認同,的確很有效果。
什麼是tiny project,翻譯過來就是「小專案」,對,就是小專案。對於我們自學一門新技術,自學一門新的程式語言,或者剛剛接觸框架(例如mfc),怎樣才能讓自己迅速地得到技術的提公升?僅僅看書是不夠的,我們需要在實際的專案中去鍛鍊,去學習,去提高,對於新手而言,我們一般並不容易直接接觸到真實的專案,那麼,怎樣才能達到我們的目的呢?tiny project便應運而生了!這是一種濃縮的project,把乙個比較大的專案中的需求濃縮化,簡化到只定義一些最基本的需求,但是要求在完成tiny project的過程中一定要完完全全按照規範的要求去做,只有這樣才能真正達到鍛鍊的價值。什麼叫按照規範?比如,從需求分析,概要設計,到詳細設計,實際的編碼,從軟體**的規範,到完整地測試,以及專案文件的編寫,從小組分工合作,到每個階段每個流程的時間規劃,都必須嚴格按照操作正式的大專案一樣去實施。
其實,這樣的tiny project在教學上已經得到了廣泛地應用,我們一般稱之為課程設計,一般由老師定一系列的題目或者大致的方向,然後由學生組成n個小組,每個小組選好合適的題目,然後運用課堂上所學的東西做出乙個實際的東西出來,這樣的培養模式我非常的欣賞,回想自己在本科期間,經歷了 c語言課程設計,nios課程設計,fpga課程設計,嵌入式作業系統課程設計,每一次課程設計都讓我收穫頗豐,每一次都在感慨,如果大學工科的教學都以課程設計為主導該多好啊,動手實踐永遠是工科學習中最重要的環節。
我們相信,這樣的tiny project實戰經驗,對於新人提高自己在書本上看到的技術以及對於新人盡快適應真實的專案是很有幫助的,而這樣的tiny project方式的培訓或者鍛鍊,難點就在於需求的提出,我們需要有比較好的需求,在這樣的tiny demand的基礎上,才能真正實現自己的tiny project 。
記得我剛開始自學c++時,當我把整個課本全部看完後,心裡就非常想做乙個實際的c++應用,但是苦於找不到合適的需求,當時多麼希望有乙個豐富的 c++ tiny project 庫,可以讓我挑選一些感興趣的project做一做啊,現在想想,相關的**或者論壇,是不是可以提供這樣的新手板塊,專門提供這樣的tiny project的需求供新手們練習麼?這樣的需求不能太簡單,也不要過於複雜,需要有一定的綜合性,最好也有一定的創新,同時,對於完成的作品要有一些高手們來評分啊獎勵啊什麼的,我想,這樣新手們才更有激情來做下去。呵呵,一點小想法而已。
在此,也貼出乙個自己做過的tiny project的需求吧,新手們有興趣可以做一做,但一定要遵守規範的流程哦!只有你用心認真地去做它,你才會真正有收穫。
[ tiny project name ] :
func database (函式資料庫)
[ brief introduction ] :
各個不同的使用者,或者各個學科各個領域,人們在平時的工作中或多或少都會用到各種各種屬於自己領域或者自己最常用的一些函式、或者說一些演算法,比如:作為大學生,我們經常希望計算一下自己的加權成績,這時我們不得不對著自己的成績單,一點一點的往計算器上按,先把成績加完然後又把學分相加,然後再相除,為什麼不能開發乙個軟體,只要你按照一定的格式將成績複製在文字文件中,軟體就可以自動幫你計算出加權呢?如此等等,我們每個人都有著自己日常最常用的一些函式或者計算方法,雖然excel或者access都有著自建函式的功能,但很多人都不知道怎麼去用,而且對於我們這樣單一的需求而言,沒有必要使用這些大型軟體。
[ demands ] :
1. 它是面向特定功能(自建函式並計算資料)的小型軟體。
2. 它是面向普通使用者,即非專業人士(專業人士在自己領域有著更強大而全面的軟體),特別適用於對電腦各種其他軟體(如access)不太熟悉的使用者。
3. 它主要提供兩個方面的功能,一方面可以實現像普通的計算器一樣計算各種常規的計算,另一方面提供使用函式資料庫(包括使用者自建函式和系統提供的函式)進行資料分析和計算。
4. 系統提供必要的許多常用函式,如:三角函式,求方差函式等等。
5. 系統提供多種資料錄入方式,如:實時手工輸入,按一定格式從txt文字文件中讀入,從excel**中讀入,從word中讀入等。
6. 函式資料庫功能主要包括:顯示已有函式,新增函式,刪除函式至暫存檔,恢復函式,清空暫存檔,複製函式,呼叫函式,儲存函式等功能。
7. 軟體操作簡單,介面美觀,反應速度快,穩定並且計算準確。
8. 它有很強的擴充套件性,使用者可以根據自己的需求很方便地建立特定的函式到資料庫中,以便下次直接使用。
9. 它有良好的介面和良好的互動性。
[ note ] :
當然,這裡的需求說得比較簡單,關於沒有涉及的,就由你自己來擴充套件了,比如用什麼語言程式設計(c語言, c++),比如使用什麼方式進行系統資訊的儲存(txt , 資料庫),比如使用什麼框架(mfc, qt, console),比如一些額外的功能(例如,可以遠端通過網路進行呼叫,增加使用者管理功能,不同的使用者有不同的函式資料庫)等等,你可以首先寫出乙個詳細的需求分析,然後去實現它。
呵呵,關於tiny project就說到這裡了,歡迎有興趣的同胞多多在部落格上,論壇上發布一些好的tiny project想法,供新手們入門和提高,也歡迎把上述tiny project做出來的朋友們把程式發給我看看,交流交流,我的e-mail:[email protected]。
用tiny project來激勵自己入門
今天想在這裡介紹一下作為新人培訓或者自學過程中一種很有效的方法,那就是tiny project,在dian團隊體驗過幾次tiny project後,讓我對這種培養模式非常地認同,的確很有效果。什麼是tiny project,翻譯過來就是 小專案 對,就是小專案。對於我們自學一門新技術,自學一門新的程...
用ioclt 來設定路由
include include include include include include include int main char args memset route,0,sizeof route addr struct sockaddr in route.rt gateway addr s...
用template 來開發dojo widget
dojo 提供了一套模板機制來做widget.可以寫一段widget的html 執行時就可以把這段html替換到dom裡面.參考這裡 http dojotoolkit.org book dojo book 0 9 part 3 programmatic dijit and dojo manipula...