1. 程式人生 > >作為軟體開發人員應該知道的最基本的東西

作為軟體開發人員應該知道的最基本的東西

鑑於經常看到很多傻傻的問題,比如xx語言幹什麼用的,xxx語言是不是落伍了?(不過說實在的,這些問題初學者都會有.)
  我在這裡說說開發人員應該知道的一些東西。但是這些只是我在平日裡看到和想到的。難免有所偏差,請見諒.
  軟體開發,是一個綜合性的活計。軟體開發,並不僅僅是編寫程式碼.學會了用c這些程式語言進行程式設計只是第一步,一個最最基本要求。其他要的東西還多著呢。在我看來,程式設計師大致可以分為兩類.當一個工作任務分配到程式設計師身上時,一種程式設計師知道為什麼要這樣去做.另外一種則知道怎麼去做完這個工作.
  而這個區別就大了.如果你知道為什麼要這樣去實現,這個至少說明你能把握住你的任務在軟體工程裡面的位置.如果你只是僅僅知道怎麼去完成他.那只是說明你能做完這個工作而已.想做好就不一定能行了.而第一種程式設計師一定能做好.做的最優.看看下面的條條,希望對大家都有所幫助.

  第一要說的,程式設計的關鍵是什麼?
  程式設計不是實現了程式碼就可以了.引用我的友人的一句話,“程式設計講究是一個整體的平衡性。”
  對於這個他是這樣解釋的。“平衡性,是軟體的很重要的部分,從平衡性的角度去考慮程式設計,就會抑制你想要用最新技術,最新系統等等一些想法。因為從平衡性的角度考慮,只要你的軟體有一個瓶頸出現,你的程式就是失敗。你首先要考慮的是怎麼消除程式中可能存在的一些瓶頸。在這個基礎上你才有權利去考慮提高你程式的效能”.就算你擁有最新的技術,最好系統,如果你的程式碼不行。只要你的程式有效能瓶頸存在,等於什麼都沒有做。
   
  在這裡我想說的就是程式是人寫的。如果你的水平不行,再好的現成的技術也是用不起來的。就算用起來了,你可能沒有辦法說清楚,為什麼這樣用?

  第二要說的,怎麼程式設計?
  我想很多人看到這個問題,一定會在心裡把我罵的體無完膚的。心想這小子活膩了。罵也無妨。暫且聽我說。我說的怎麼程式設計不是要說怎麼寫詳細的程式碼,而是你的程式最終是怎麼形成的。我想寫到這裡又有人把我給陵遲了一次了。但實際上編寫程式碼是在軟體的生產過程中佔有時間比較少的一塊。

  我個人覺得要包含以下的幾個部分:
  1。市場潛力分析
  分析你要寫的軟體能不能賣出去,或者說我要編寫什麼樣的軟體?
  2。同類產品競爭分析
  看看你的同類產品的優缺點,設計你的軟體的賣點.(如果沒有賣點,就沒有必要繼續了)
  3。軟體設計
  寫出詳細的軟體流程,資料流程。主要演算法。軟體架構等
  4。編寫程式碼
  不用說了吧
  5。bug測試和試執行
  6。賣

  這些事,有的是市場的事,有的是系統分析員的事,還有的是程式設計的事。但是在很多小公司,本著小公司事必親恭的辦事原則。大家多瞭解一點是不會有錯的。
   
  舉個具體的例子來說。假如我要編寫一個共享軟體。我要怎麼做呢?
   
  1。要好好想想我要寫的軟體有沒有“錢”途。時間在15天-30天左右。在這段時間裡面一定要好好的做一下市場考察.這個可是最關鍵的一步.
  2。好,我已經決定要寫xxx軟體了。
  3。在網上找幾個對xxx最有威脅的同類軟體,分析它們優缺點。要它們的優點,不要他們的缺點。設計出自己軟體的賣點.
  4。根據前面分析的結果,大概的列出xxx軟體應該具有的功能表
  5。寫出1.0版的基本功能表,寫出1.x的功能表。不要一次就做完全部的功能,這樣的話,你的軟體永遠都沒有出世的機會  
  6。選擇程式語言 (看看,程式語言到這裡才出來)
  7。上網找類似的原始碼,演算法。RFC標準文件。吃透.軟體程式碼和演算法的良好重用,會讓你事半功倍的.
  8。根據你選定語言,演算法,標準文件,寫出xxx的詳細設計文件。文件一定要用,不然你的計劃性就不強.計劃性不強,隨意性就大.隨意性大了,軟體很容易失敗的.
  9。按照設計文件編寫程式碼
  10。測試和賣

  第三,哪裡有資料,標準文件
  
  程式碼的世界是千變萬化的, 在開始一個新的專案之前,完全可以找一個類似功能的程式碼來看看。這樣可以更好的改進你的程式。有時還可以加快進度。還有當新的技術出來時,你要看看相關的文件。雖然不要完全瞭解它的功能,好處。但是你至少要知道新的技術能用在什麼地方。怎麼用。配合什麼其他的技術用能更好的發揮它的作用。編寫軟體不是全部的東西都是自己寫的。有很多的功能是一種標準,也許是標準演算法。像圖形的,多媒體的,加密解密的演算法。有的是一個標準的檔案格式,像各種影象檔案,多媒體檔案。還有的是一種標準的約定。像email,telnet等常見的網路工具。

  所以你要知道你可以從哪裡找你要的資料。我把我知道的都寫在這裡

  原始碼和技術資料站點
  www.vchelp.net gb
  www.csdn.net gb
  www.codeguru.com en
  www.codetools.com en
  www.dexv.com en
  msdn.microsoft.com en
  www.programmerheaven.com en
  www.freshmeat.net en
  www.sourceforge.net en
  www-900.ibm.com/developerWorks/ gb
  
  論壇和標準,組織
  www.linuxaid.com.cn gb
  www.linuxbyte.com gb
  www.aka.org.cn gb
  www.rfc.org en gb

  第四,要掌握的工具和知識
  工具,可以讓你的工作更加的有效率和不易出錯。
  
  下面的工具也許你用過,也許你沒有用過。不過沒有關係的。同行的老鳥會教我們怎麼用的。(我想到哪個就寫哪個。沒有順序問題)
  1。資料庫工具
   建資料庫工具,代表 powerdesigner
   資料庫分析工具。很多大型的資料庫都會帶的。
  2。流程圖設計 代表 visio 2000 , smartdraw
  3。case工具 代表 rose
  4。程式碼分析工具 
   代表 bounderchecker(for vc delphi),smartcheck(for vb) ....
  5。編輯器 
   代表 vi,vic,Ultra Edit
  6。原始碼管理
   代表 vss ,cvs
  7。程式設計工具,不要我多說了吧
  8。其他的,我沒有用過的,但是也許在某個行業用的很多的工具。(廢話 :))  

  知識的話,因為每一個人的發展方向不一樣,所以大部分人的知識結構都不一樣。但是有幾點應該是一樣的。

  1。英語能力
   主要的新的技術,文件資料都是用英語來作為首發的。如果要學到更好更新的知識,技巧。不懂點英語也是不行的。也不要指望有人給你翻譯出來。一般來說,這些資料,看的懂的人不需要翻譯,看不懂的人沒有辦法翻譯。半懂不懂的人翻譯出來的文章我想你也不敢看。所以大部分的資料還是英語原文的。當然也有很多的人在翻譯這些文章,但是對於這麼多的資料來說,翻譯過來的只是很小很小的一部分。求人不如求己。多學點英語沒有錯的。

  2。設計能力
  雖然一般來說,正規的公司有系統分析員做設計(我猜的)。但是70%-80%的小公司,可就不一定了。知道一點軟體工程的知識,知道一些文件設計工具怎麼用。或者知道應該有哪些設計文件。也是很有好處的。比較這些東西如果你學到了,就是你自己的了。而且這些可是加工資的好東西。很有錢途的。:)

  3。語文寫作能力
   作為一個程式設計師,大部分時間是都是在寫程式碼。但是程式碼的註釋,各種文件,測試報告,說明文件,使用手冊編寫,這些都需要文字功底的。 還有用email,bbs,qq這些工具與人交流的時候,如果話都說不清楚,那交流就更談不上了。水平提高進步也就有點問題了。

  4。學習能力
   沒有幾個人是全部學會了再去工作的。這個不是很現實。目前社會也不太允許這樣做。一邊工作一邊學習是很常見的。也許很多人是在工作之中才學會做某些事情的。很多技能也是這樣會的。此外,很多新的專案的到來。很新的技術的到來都要求我們能適應新的工作環境,新的工作要求。如果沒有好好的學習是很容易被一個專案踢掉的。呵呵。
另外有一點,當上司讓你做你不會的東西時,你要告訴他,你不會,但是會在XX天內把他搞定。不會沒有關係,會學習也是會上進的一種好表現。

  5。知道自己要做什麼,要學什麼,要發展什麼。
   世界上軟體技術是多的像9個牛上的毛一樣多,也許還要多很多。如果我們什麼都要知道。哦,天哪,我不想活了。
   作為一個軟體人員也好,作為一個初學者也好。知道自己要往那個方向走是很重要的。不然很容易的就餓死在軟體技術迷宮裡的。最後只好不幹這一行了。這個可不太好。
一般來說,作為一個軟體人員,掌握一到兩個語言的開發能力就可以了。另外除非你是想做軟體技術的研發(這些工作最有錢,在大型的公司是最受歡迎)。如果不是做軟體技術的研發,只是一般的應用程式編寫的話,不用太關注今天出來什麼新的技術,明天又出來什麼新的技術。這些東西只要知道就行了。知道有這麼回事就可以了。以後有用的到的地方再去認真的關注也是不遲的。自己選擇一個發展的方向,努力的向前走。不要被各種各樣的新技術誘惑過去。說句實話,很多的所謂新技術的怎麼怎麼好,怎麼怎麼優異,很多時候都是有商業行為在裡面的。要自己會判斷才行。如果不能判斷怎麼辦,看下面的一條。

  第六:知道的更多
   很多初學者最麻煩的事是怎麼在這麼多的軟體技術裡面選擇一種又好學,又有前途(錢途),又能做點什麼偉大的事情的技術來開拓軟體開發這個他們未知的領域。對於這個麻煩的問題,很少有解。如果你能遇到一個很好的老師,那就是你的福氣,千萬要抓住這個機會。如果你不得不一人做出這個決定,那隻能是小心翼翼地來了。不過一般來說學c和c++都是一個不錯的選擇。
  初學者的另外一個麻煩的問題是,當我選擇之後,在學習過程中出現的很多這個和那個的新技術,新的變化。我該怎麼辦。這個也基本無解。只能是你自己慢慢慢慢積累。積累到你能理解這些新技術的出現是為了什麼,這些新變化的發生是為知道的更多......,這些新變化的發生是為了什麼之後。你就會不怕這些的新的東西。
  我一向堅持,如果我知道的更多,我的力量就會更大。我就更不會怕出現變化。如果因為你的資訊不足,而無法對某件事情進行判斷時,千萬不要強行進行判斷。對你沒有好處的。

相關推薦

作為軟體開發人員應該知道基本東西

鑑於經常看到很多傻傻的問題,比如xx語言幹什麼用的,xxx語言是不是落伍了?(不過說實在的,這些問題初學者都會有.)  我在這裡說說開發人員應該知道的一些東西。但是這些只是我在平日裡看到和想到的。難免有所偏差,請見諒.  軟體開發,是一個綜合性的活計。軟體開發,並不僅僅是編寫程式碼.學會了用c這些程式語言進行

軟體開發人員應該知道基本東西

鑑於經常看到很多傻傻的問題,比如xx語言幹什麼用的,xxx語言是不是落伍了?(不過說實在的,這些問題初學者都會有.)  我在這裡說說開發人員應該知道的一些東西。但是這些只是我在平日裡看到和想到的。難免有所偏差,請見諒.  軟體開發,是一個綜合性的活計。軟體開發,並不僅僅是編寫

作為軟件開發人員應該知道基本東西

afr afa v2x vml pro uga sad vpp ccf uh72si伊懇4uka84http://shufang.docin.com/sina_6364870792 z23競6f銜醬9輪Hhttp://tushu.docin.com/sina_626720

Android開發人員應該知道的Kotlin

每次 簡單的 狀態 adapt equals 編寫 android開發 每天 dea 本文來源於我在InfoQ中文站翻譯的文章,原文地址是:http://www.infoq.com/cn/news/2016/01/kotlin-androidAndroid開發人員在語言限

每個開發人員應該知道的20個關於PHP的有趣的事實

1. PHP最初是個人主頁的代表。 2. 現在被稱為“超文字前處理器”的PHP在1995年釋出。 3. 最初在'C'(1994)中寫成一組通用閘道器介面(CGI)。 4. PHP最初設計為替換一組Perl指令碼以維護個人主頁(也稱為PHP)。 5. PHP最初由Rasmus Lerdorf於1995年建立。他

Java開發人員應該知道的前5個Spring Boot特性

你可能聽說過Spring Boot,它的神奇功能可以建立一個不到140個字元的Spring Web應用程式,但這究竟意味著什麼?這些功能為 Spring Boot 提供瞭如此強大的功能,並使Spring應用程式開發變得如此簡單?那麼,這就是你將在本文中學到的東西。 我們將更

談談軟體開發人員基本要求

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

作為Web開發人員,必須知道的網絡協議有哪些?

開發人員 分享圖片 tle 超文本 htm 另一個 transfer 因特網 layer   作為Web開發人員,必須知道的網絡協議有哪些?   隨著互聯網時代的發展, Web開發已經成為時下較火的技術之一。雖然受重視的時間還比較短,但是隨著時間的發展,Web開發技術一直

信息圖:營銷人員應該知道的郵件發送黃金時間段

track 項目 com 打開 活動 msu style 個性化 技術 隨著國內郵件營銷的關註熱度逐漸升溫,市場營銷人員開始把註意力投射到郵件發送的各個細節中。影響郵件打開率的因素甚多,不僅包含了是否吸睛的標題、個性化的內容、清晰的排版等,另外,郵件發送時間點也

JavaScript 開發人員需要知道的簡寫技巧

math 用戶 自己的 scrip values value rcu 基礎 未定義 本文來源於多年的 JavaScript 編碼技術經驗,適合所有正在使用 JavaScript 編程的開發人員閱讀。 本文的目的在於幫助大家更加熟練的運用 JavaScript 語言來進行開

作為大齡開發人員,敢問路在何方?

程序員 職場 相對同時剛出校門同學從事其它行業而言優厚的薪水,以及不斷學習更新的專業知識不僅僅讓你感到生活的充實,更滿足了你那不讓外人知的虛榮心。在剛出 校門的幾年中,你經常回頭看看被你落在後面的同學們,在內心憐憫他們的同時,你也會對自已天天加班的努力工作感到心裏平衡:"有付出才會有回報&q

【轉載】使用訊息號除錯SAP標準程式 (作為SAP顧問都應該知道的ABAP程式除錯方法)

摘要:雖然SAP系統的穩定性很不錯,大部分問題不需要通過除錯程式碼來解決。但是,別忘記我們還有很多自開發程式,或者某些配置不完整等,某些情況下通過除錯ABAP程式是一個能快速找到問題根源的方法。本篇主要針對業務模組顧問來講解一種通過訊息號及簡單的程式除錯來定位系統報錯的原因及解決的方法。 正文:

2019 年軟體開發人員必學的程式語言 Top 3

AI 前線導讀:這篇文章將探討程式語言世界的現在和未來,這些語言讓新一代軟體開發者成為這個數字世界的關鍵參與者,他們讓這個世界變得更健壯、連線更加緊密和更有意義。開發者要想在 2019 年脫穎而出,這三門語言一定要關注。 作為軟體開發者,我們曾經寫過的或者正在寫的每一行程式碼都對我們的漸進式互聯世界負有重

為什麼 Python 開發人員應該使用 Pipenv

只用了一年, Pipenv 就變成了管理軟體包依賴關係的 Python 官方推薦資源。 Pipenv 是由 Kenneth Reitz 在一年多前建立的“面向開發者而生的 Python 開發工作流”,它已經成為管理軟體包依賴關係的 Python 官方推薦資源。但

前端應該知道基本知識

前端時間在部門內進行分享,準備素材時偶然發現下面的一個現象,因為和當時分享的主題無關,就先記下來了,事後重新審視,並把一些思考記錄如下: 一、問題 HTML: <!DOCTYPE html> <html lang="en"> <head

2019年軟體開發人員必學的程式語言Top 3

  策劃編輯 | Natalie作者 | Pramod Chandrayan譯者 | 無明編輯 | NatalieAI 前線導讀: 這篇文章將探討程式語言世界的現在和未來,這些語言讓新一代軟體開發者成為這個數字世界的關鍵參與者,他們讓這個世界變得更健壯、連線更加緊密和更有意義。開發者要想在

軟技能——如何成為優秀的軟體開發人員

你是否經常製造各種bug百思不得其解? 你是否常常效率低下而不得不通過加班來彌補? 你是否常常在迷失技術的海洋中,不知所措? 你是否對自己的職業生涯感到迷茫,毫無計劃? 你是否對自己的腹部日漸隆起而羞愧難當? 那麼,來看看《軟技能-程式碼之外的生存指南》吧!這是

軟體開發人員是一種很棒的職業選擇的五大理由

5 REASONS 1 Creative. If you ask people to name creative jobs, chances are they will say things like writer, musician or painter. But few people know that

2016年末程式設計師應該知道基本架構思想

說到系統的架構,初學者可能沒有意識到,對於已經從事多年的開發的朋友可能會知道,一個系統的運作是否正常,是否能夠高效的運作關鍵在於系統的架構,因為一個系統只有一個好的架構才能支援更多的使用者,更多的應用接入到系統中。下面新霸哥將和大家分享一些關於系統架構方面的一些問題。   

作為JavaScript開發人員,這些必備的VS Code外掛你都用過嗎?

本文翻譯自:https://www.sitepoint.com/vs-code-extensions-javascript-developers/ 轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 如今,Visual Studio Code無疑是最流行的輕