用tiny project來激勵本身入門

今天想在這裏介紹一下做爲新人培訓或者自學過程當中一種頗有效的方法,那就是tiny project,在Dian團隊體驗過幾回tiny project後,讓我對這種培養模式很是地認同,的確頗有效果。mysql

    

什麼是tiny project,翻譯過來就是“小項目”,對,就是小項目。對於咱們自學一門新技術,自學一門新的編程語言,或者剛剛接觸框架(例如MFC),怎樣才能讓本身迅速地獲得技術的提高?僅僅看書是不夠的,咱們須要在實際的項目中去鍛鍊,去學習,去提升,對於新手而言,咱們通常並不容易直接接觸到真實的項目,那麼,怎樣才能達到咱們的目的呢?tiny project便應運而生了!這是一種濃縮的project,把一個比較大的項目中的需求濃縮化,簡化到只定義一些最基本的需求,可是要求在完成tiny project的過程當中必定要完徹底全按照規範的要求去作,只有這樣才能真正達到鍛鍊的價值。什麼叫按照規範?好比,從需求分析,概要設計,到詳細設計,實際的編碼,從軟件代碼的規範,到完整地測試,以及項目文檔的編寫,從小組分工合做,到每一個階段每一個流程的時間規劃,都必須嚴格按照操做正式的大項目同樣去實施。ios

    

其實,這樣的tiny project在教學上已經獲得了普遍地應用,咱們通常稱之爲課程設計,通常由老師定一系列的題目或者大體的方向,而後由學生組成N個小組,每一個小組選好合適的題目,而後運用課堂上所學的東西作出一個實際的東西出來,這樣的培養模式我很是的欣賞,回想本身在本科期間,經歷了 C語言課程設計,Nios課程設計,FPGA課程設計,嵌入式操做系統課程設計,每一次課程設計都讓我收穫頗豐,每一次都在感慨,若是大學工科的教學都以課程設計爲主導該多好啊,動手實踐永遠是工科學習中最重要的環節。c++

   

咱們相信,這樣的tiny project實戰經驗,對於新人提升本身在書本上看到的技術以及對於新人儘快適應真實的項目是頗有幫助的,而這樣的tiny project方式的培訓或者鍛鍊,難點就在於需求的提出,咱們須要有比較好的需求,在這樣的tiny demand的基礎上,才能真正實現本身的tiny project 。算法

    

記得我剛開始自學c++時,當我把整個課本所有看完後,內心就很是想作一個實際的c++應用,可是苦於找不到合適的需求,當時多麼但願有一個豐富的 c++ tiny project 庫,可讓我挑選一些感興趣的project作一作啊,如今想一想,相關的網站或者論壇,是否是能夠提供這樣的新手板塊,專門提供這樣的tiny project的需求供新手們練習麼?這樣的需求不能太簡單,也不要過於複雜,須要有必定的綜合性,最好也有必定的創新,同時,對於完成的做品要有一些高手們來評分啊獎勵啊什麼的,我想,這樣新手們才更有激情來作下去。呵呵,一點小想法而已。sql

    

在此,也貼出一個本身作過的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),好比一些額外的功能(例如,能夠遠程經過網絡進行調用,增長用戶管理功能,不一樣的用戶有不一樣的函數數據庫)等等,你能夠首先寫出一個詳細的需求分析,而後去實現它。

 

免費學習更多精品課程,登陸樂搏學院官網http://www.learnbo.com/

或關注咱們的官方微博微信,還有更多驚喜哦~

 

本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/384236

相關文章
相關標籤/搜索