2.對我來講最相關而且最重要的應該是Operating Systems(操做系統),相信不少人都覺着這個很重要,操做系統我的理解是其餘各種軟件的基礎,幾乎全部的其餘軟件都依賴於操做系統。php
(1)操做系統最先應該是DOS,大概出如今1980年。成爲它的用戶很容易,只要你使用電腦或者手機,你就已是它的用戶了。他們的目標不只僅是盈利,像Linux系統就是開源的,任何人均可以避免費使用,能夠在其基礎上進行開發。操做系統的一部分是爲了盈利,而重要盈利點事綁定軟件的盈利。開發一款比Office好的軟件也許難度不大,難的是與Windows競爭,Office結合了Windows因此更增強大。git
(2)第一次使用應該是小學時在親戚家使用的Windows。大概是02年或03年,當時的電腦系統是Windows 98,天然是在購買電腦的時候直接安裝在電腦上的。web
(3)正如題目上的「免費」二字加上引號,其實有些免費是附加條件的,好比說有些免費限制只能使用部分功能,想使用高級功能就要付費,還有些軟件免費但帶有廣告營銷。像QQ,微信也是無償使用的,可是其附帶不少其餘收費的項目,騰訊經過QQ微信超大的用戶羣投放廣告掙錢,或者有會員,黃鑽等各類收費項目。因此軟件工程師也會在「免費」軟件得到大量資金。算法
當地的初級的軟件工程師大概1W一個月數據庫
(4)操做系統是全部軟件的基礎,當有一臺電腦時就要學會使用操做系統。開始使用一些簡單功能只須要按照提示便可,須要用到某些不知道的功能百度搜一下。操做系統出現Bug會提示用戶上傳該問題,而後經過補丁包修復相關Bug。操做系統是個大的工程,操做系統的人月更新應該會超過30000。xcode
人月:軟件開發人員*軟件開發月數瀏覽器
(5)同一類軟件經過本身的特點功能來吸引顧客使用,像Windows使用方便簡潔,比較容易入手,大多數電腦都默認裝機就是Windows,而Linux是開源的,任何人均可以避免費使用,針對其攻擊也少,比較安全,因此一些開發人員或者銀行等就使用Linux。Mac OX依賴於蘋果電腦強悍的硬件也吸引很多的用戶安全
3.目前流行的源程序版本管理軟件和項目管理軟件:服務器
Microsoft TFS:微信
Team Foundation Server 提供了一系列可與您的現有 IDE 或編輯器結合使用的協做工具,以便您的團隊能夠有效地處理各類形態和規模的軟件項目。
優勢:
1.任務版上能將需求、項目進度盡收眼底,對於小團隊而言,比甘特圖更有用
2.集成了項目管理、版本控制、BUG 跟蹤,能有效實現 SCRUM
3.能與 VS 無縫接合
缺點:
1.整個系統是用 asp 實現的,用瀏覽器訪問至關慢(不知道是否是服務器性能過低仍是我我的用的電腦配置過低)
2.從 IE 上訪問、填寫各類開發、測試記錄,也是很慢,感受不如 mantis BT 這樣基於 php 的那麼方便、迅速
3.XP 系統沒法訪問,還得是64位的。因此把電腦的總體性能拖下來了
GitHub
Git是一個分佈式的版本控制系統,最初由Linus Torvalds編寫,用做Linux內核代碼的管理。應該說是目前使用人數比較多,而且也很流行的一個平臺。
做爲開源代碼庫以及版本控制系統,隨着愈來愈多的應用程序轉移到了雲上,Github已經成爲了管理軟件開發以及發現已有代碼的首選方法。如前所述,做爲一個分佈 式的版本控制系統,在Git中並不存在主庫這樣的概念,每一份複製出的庫均可以獨立使用,任何兩個庫之間的不一致之處均可以進行合併。
GitHub能夠託管各類git庫,並提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務不一樣,GitHub的獨特賣點在於從另一個項目進行分支的簡易 性。爲一個項目貢獻代碼很是簡單:首先點擊項目站點的「fork」的按鈕,而後將代碼檢出並將修改加入到剛纔分出的代碼庫中,最後經過內建的「pull request」機制向項目 負責人申請代碼合併。已經有人將GitHub稱爲代碼玩家的MySpace。
Apple xcode
Xcode 是運行在操做系統Mac OS X上的集成開發工具(IDE),由蘋果公司開發。Xcode是開發OS X 和 iOS 應用程序的最快捷的方式。Xcode 具備統一的用戶界面設計,編碼、測試、調試都在一個簡單的窗口內完成。
Coding.net
Coding 是一個面向開發者的雲端開發平臺 ,目前提供代碼託管,運行空間,質量控制,項目管理等功能。此外,還提供社會化協做功能,包含了社交元素,方便開發者 進行技術討論和協做。Coding 的代碼託管功能除了基本的 Git 倉庫之外,還有保護分支,分屏對比, Code Review 等高級功能。而且整合了 Pages 服務,質量管理,演示平臺等開發工具,提高研發效率。
4.正如題目所說的,寫程序是我的行爲,在作像ACM之類的題目時,本身根據題目要求寫出若干行代碼,利用某個算法完成題目要求,僅僅輸入輸出就足以,這就能夠說是一個簡單的程序,算是完成了一個程序。而一個軟件是一個大的工程,軟件有多個組件,須要多個不一樣的人合做完成,例如圖形化界面的設計,數據庫的創建,是否須要聯網等等,須要考慮的東西比較多,軟件每每由一個團隊不一樣的分工完成不一樣的任務,最後整合到一塊兒,成爲一個完整的軟件。
關於軟件工程是交不會寫程序的人開發軟件,我覺着該說法不徹底對。會寫程序的人在開發軟件時一樣是利用軟件工程的相關原理。軟件工程是針對軟件開發的,不管是否會寫程序,都用獲得軟件工程。因此該說法是片面的
軟件企業 = 軟件 + 商業模式
http://news.cnblogs.com/n/528911/這篇文章裏說的,這個遊戲的推廣也不錯,口碑很好,可是沒有考慮到用戶的需求,該遊戲能夠算上優秀做品,但只符合少說人的口味。也許就像電影市場同樣,不少評分很高的電影並無得到過高的票房,反而是一些商業電影沒那麼評分的得到高票房。由於那些電影符合大多數人的口味。
(王旭陽)