2008-09-13 98 views
24

當您開始個人編程項目時,您的第一步是什麼?我正試着開始一個只是一個想法的項目。我得到了很多這些東西,並且直接潛入代碼中,過了一段時間後,完全失去了興趣,或者忘記了項目。啓動項目的最佳方式

當你開始時,你的第一步是什麼?你計劃完成這個項目嗎?做一個圖表?在紙上寫一些代碼?你如何以一種你知道你會成功的方式開始一個項目?

回答

16

唯一適用於我的方法是:創建它的某種可用的最小可能實現,然後使用它。

2

對於我自己的個人項目,我只是直接介入。當然,這些都還沒有足夠大,需要任何預先計劃。如果這將是一個嚴重的項目或規模較大的項目,至少清除程序的每個部分需要做什麼以及如何實現它的高層次總是一個好主意。

9

在我觸摸鍵盤之前,我花了很多時間思考項目的各個方面。

我經歷了什麼我已經從以往項目的經驗和它的各種類別(「技術」,「促銷」等)

個人項目寫下來或沒有,我總是成立的源代碼控制。 Git,Bazaar的Mercurial是源代碼控制工具的例子,因爲您不需要設置主服務器,所以它不具侵入性。只需輸入一個簡單的命令來創建項目,檢查你的文件,提交。在未來,當你陷入困境,你的文件中的一個,你就可以「撤消」

我還設置了一個輕量級的客票系統來跟蹤1.issues和2.ideas 的所謂「輕量級」我意味着如果使用這些列表維護兩個文本文檔適合您,那就夠了。

希望這會有所幫助。

0

首先規劃出最終申請的基本綱要。最重要的功能,基本的圖形用戶界面,程序流程等等。然後對其進行細化,以便在開始時不要花太多時間去除不必要的功能,並在第一個版本中添加您想要的內容。然後使用該大綱啓動任務列表以創建應用程序的最小可能工作版本。然後添加額外的功能並使其充分發揮功能變得更加容易。

11

7 Habits of Highly Effective People,習慣2:從頭腦開始。

對於任何項目,您都需要一個清晰的目標,您可以說「我完成了」的一點。一個明確的結果會給你方向。一旦你有了,你可以開始計劃如何到達那裏。項目的規模和複雜程度將決定您的計劃需要多少細節,但總的來說,您會希望感覺自己的計劃能夠很有規律地反對您的計劃。

我的下一步是勾畫出需要的模塊和每個模塊之間的API的設計。如果API是乾淨的,那麼模塊可能是正確的。然後,我開始實施模塊,隨時測試。

1

這取決於項目 - 它有多大?

如果我正在編寫下一個記事本克隆,我可能只是在潛入,如果我想推出我自己的操作系統,它會花費更多的非編碼工作。

我喜歡做很多圖表,我用於大多數開發的工具是乾淨的A4紙和鉛筆。畫出用戶界面,工作流,基本類,以及如何存儲任何數據 - 然後編碼僅僅是一個計算機可讀的方式來寫你已經畫了什麼。

源代碼管理方法SVN是一對擊鍵/點擊,所以開銷很低,好處很高,它可以方便地嘗試一些東西,如果它們不起作用就恢復到以前的狀態。

然後,只需製作最基本的原型即可 - 一旦事情真的發生了,就會變得更加容易獲得熱情並增加更多。如果它是壓倒性的,我會發現我認爲這個問題在我腦海中解決了,那就夠了。

0

我喜歡馬克西米利安的回答..擴大一點,我的人項目開發解決我已經工作的東西。所以當我厭倦了重複的工作時,我會製作一個解決方案。然後使用它。如果它與我之前的一個項目類似,我會盡可能多地借用代碼,並嘗試提高我的工作水平,使它更專業。

融合使用源代碼控制也很重要。花費2分鐘來安裝SVN。

2

和其他人一樣,我的個人項目總是有:

  • 一個最終目標
  • 任務列表
  • 小可用單元
  • 源控制

作爲額外的動力,我嘗試使用以前從未使用過的技術。學習新東西通常成爲我最大的動力。

2

簡單 - 不要開始您可能會失去興趣的所有項目。花更多時間來確保您在開始任何工作之前對自己想法做出承諾。

3

我同意的已經給的建議是:

  • 規劃一個最小的實現,做的東西作爲第一個完整的釋放。
  • 有具體的目標,你想達到什麼樣的東西來比較你的進步。

我也建議對你有輕量化設計整體架構開始,所以你可以有一個路線圖,如何建立你的產品

我發現很難開始構建某些東西,因爲我對於它應該如何看待至少第一級分解的問題並不清楚。考慮一下除了功能之外你還需要什麼:高性能,可擴展性場景,哪些?可用性目標?高可伸縮性?易於部署和安裝?等等。問問自己:我需要構建哪些組件實現那些建築特質?

不要誤解我的意思,我是敏捷軟件開發的強力支持者。你不需要花費很多時間來設計你的架構(因爲它肯定會隨着你的構建而發展,並且得到關於什麼可行和什麼不可行的反饋),但是有一個關於如何建立你的產品的藍圖在其架構應用於規劃您的進度和設置現實目標

0

如果您的個人項目與現有的開源項目類似,您應該考慮爲該項目做出貢獻。幾個小的貢獻(錯誤修復等)是 比一半完成的項目更有價值。

3

定義項目的目標。聽起來像你幾乎完全在解決方案而不是問題。

程序對您或其他任何人都沒有用,除非它解決了一些問題。編寫代碼來移動是非常棒的,但是在開始之後,您似乎會失去興趣和焦點 - 因爲您正在查看代碼,而不是問題。

花點時間考慮是什麼導致你寫這段代碼。思考其他人可能會如何發現相同的需求,什麼樣的途徑可能會讓他們遇到同樣的挫折感,這是你努力解決的問題。

然後,找到其中一些人並提供您的(部分)解決方案,並且您會在其中產生興趣和建議。

這會讓你繼續你的項目。同胞的興趣,分享,甚至分歧 - 這是需要軟件的人!不要創建尋找問題(人)的解決方案(軟件)。你從你開始,滿足你的需求或願望,但專注於代碼,並失去了項目的動力。

解決問題時,編程更有趣。但是你需要把問題保留在你面前。分享問題構建社區。這就是真正的全部,不是嗎?

0

所有上述情況,但開始不斷加強在地方規劃.....

去一些工具 SmartSheet - 即使你是你自己的工作,你應該設置一些階段和日期 來自www.yworks.com的yEd - 和Graphity

相關問題