導航:首頁 > 軟體大全 > 電腦怎樣自己寫代碼做軟體

電腦怎樣自己寫代碼做軟體

發布時間:2022-07-31 23:37:44

⑴ 你怎麼在電腦上編程,而不用任何軟體

40267">

我從編程寫軟體學到的 7 件事,其實學習編程不難,寫軟體也不你那,就看我們如何看待了!

我正在一點一點的從一個工程師轉型為管理者。別弄錯了,雖然我在轉管理,但我仍然在每天寫代碼。不過我發現自己在會議和電話中會花越來越多的時間去分析討論,試著去組織團隊,並且為全局部署而不是具體戰術而煩惱。

當然這不是一件壞事。高層次的決策往往比單個的類和函數的細節更有影響。讓一個團隊更有效率,比僅僅讓自己更有生產力有更高的杠桿作用。但我想我已經從我多年來的編程中吸取到了一些經驗。我希望大部分經驗可以應用於管理方面。

1、沒有規定(rules),只有公案(koans)

譯註:公案(Koan)有五種重要的涵義: 作悟禪的工具; 作考驗的方法; 作權威的法范; 作印證的符信; 作究竟的指點。)

舉個例子:DRY,意思是「不要重復你自己」。作為軟體的基本規則這很好理解,因為很多話可以證明:「我做 X 是因為它沒有重復。」這說得通,不是嗎?如果你有兩個或者兩個以上部分的代碼在做相同的事情,說明你正在浪費。而且如果當你需要改變它們其中一個的時候,你可能也需要改變其他的,並且你很可能會忘記這么做。當它們不同步時,你會得到一個怪異的 bug。因此很顯然你不能重復你自己。

然而,在使用了幾年之後,人們開始懷疑它的普遍適用性。假如你的兩個方法中包含相同的代碼塊,所以你將其拿出來形成一個單獨的函數。通常那些方法會開始朝不同的方向發展…接著你發現自己要在函數中加入更多的參數,很可能為結果立了更多 flags……然後下一個接手的程序員會因為分離出來的函數以及它所帶的特定的參數和結果,而出現認知負載。你會意識到如果當初允許自己重復,並讓兩塊代碼自然的發展為不同的個體,你生成的代碼將會更簡單直觀。

這意味著 DRY 不好嗎?當然不是!通常在合適的環境下使用 DRY 是正確的…好吧,也許。我個人的經驗是:「重復一次是可以的,超過一次就不太好了…當然這取決於所處的環境。」因為所有事都取決於環境。DRY 的目的並不是為了 DRY。如果你迷信於此,小孩兒,那你還有太多要學。DRY 的目的為了讓你了解 DRY。那當然不是規定,僅僅是公案。

(讓我重申一遍:我在討論的是軟體。在我的經驗中,硬體規定的確更傾向於是我們所理解中的規定。這就是我為什麼要從電氣工程轉到軟體的原因)

細想我最喜歡的兩個計算機科學「定律」。第一:「計算機科學中沒有一個問題是不能通過添加另一層抽象來解決的!」這句話完全正確嗎?當然不。這在現象學上是正確的嗎?實際上,的確是。這是否意味著抽象是解決任何問題的正確途徑?不,不是。它是一個公案,可以啟發思想。

還有我歷來最喜歡的:「第一優化定律:不要這樣做。第二優化定律(對專家而言):不要又這樣做。」這顯然是一個公案,卻稱自己為法規。是時候讓你的代碼運行的更快嗎?不。是時候讓你的代碼運行的更快嗎?還不是。什麼意思?意思是要考慮到時間,復雜性,認知負載,具體結果,生活意義,人類存在的意義。並且三思而後行,小孩兒。但不要花太長時間,我們還有工作要做。

2、要想得到他人的信任,先信任他人

這不僅僅針對於管理者。雖然它對管理者尤其重要。信任是你真正擁有的唯一價值。如果你的公正、判斷、理解、誠實不被信任。接下來你組織的成員將把你視為禍害並繞著你走。然而,如果你是個有能力但不被信賴的開發者,你可能還有一些價值。雖然你在每個決定上做的努力都會被大大消減。

不過更重要的一點是:一個團隊的成員需要互相信任。當 Natascia 說:「我來解決那個問題單(ticket)」,你必須相信她會去做。當你說:「Peter 能在截止時間前完成的。」,你必須相信那會實現。當某人說,「我有一個瘋狂的點子」,他們必須信任他們會被尊重和認真對待,盡管那點子的確很瘋狂。

你是如何建立和得到信任的?答案很簡單:你去信任他人。你相信那個說他可以學會這個新庫並且在周一前會整合完的人。你相信那個說他需要提前離開,因為家裡有事而會錯過明天工作的人。你相信那些想在截止日期前一個月休假的人,因為他們覺得自己已經開始筋疲力盡了。你相信說想要解決難題的初級程序員。

但你不總是正確的。有些時候人在工作上存了壞心。你需要揭露這些人的真面目,讓他們盡早離開。有時候你要信任那些真心想成功的人,雖然他們會失敗。但違反常識的是,長遠來看這通常是個勝利。因為那些人會記住你的信任,他們會盡一切努力來報答你。

3、簡單比優雅重要的多

我也喜歡緊湊優雅的代碼。我喜歡靈活的框架,有如此多抽象層次隨時待命,無論拋出什麼改變的需求都能解決。我喜歡使用位向量、位位移、略微復雜的數據結構和不太流行且古怪的小語言特性,但在特定環境下十分實用。

然而你並不只是為了你自己寫代碼。即使它只是個「原型」。(我已經記不清我有多少「原型」在多次對層操作和潤色的過程中出現問題。)而且你不僅僅是為了解決當前的問題編寫它。你正在為了下一個接手的開發者可以使用它來解決下一個問題而編寫。把你寫到那五行代碼擴充為十行可以增強其可讀性,你知道嗎,也許擴展為十五行效果會更好。

你可以提前嘗試並用靈活且充滿抽象的框架解決它們。但是也許預言不是你的強項,也許你關於下一個問題的概念的想法完全是錯誤的。也許僅僅編寫足夠簡單的代碼才是最佳選擇。有一個命名約定和一個編碼風格,讓它讀起來像英語一樣。也許不是添加一個類,而是下一個開發者在試圖跟隨你的控制流程時必須保持另一個文件的開放。你應該用愚蠢的方式,不雅的方式,簡單的方式。

4、動力比大多數事都重要

我們都曾見過這種情況。一周里每個人都在檢查代碼,構建顯而易見的雛形,每天不斷增加特性,測試覆蓋率越來越高。疏忽也隨著生產的想法和解決方案而出現。不知怎麼的下一周所有事都變得緩慢起來。關於 A 的決定,會影響到 B、C和 D。當人們可以運行D、E 和 F 時,它們不是邏輯序列發展上的一部分。於是需要做更多的假設,認知負載加重,你不得不模擬出一堆東西來寫出非模仿代碼。一些人需要做這個決定。

或許不是決定會癱瘓,是你上周所做的一切都在錯誤的基礎上,是一個「地震多發區」的技術負債。你需要停止所有事返回並重構它。而且你必須馬上開始,因為等的時間越長,事情會變得越糟糕。沒人想看到這種事發生 。但他們寧願現在面對也比下個月知道的好。讓暴風雨來的更猛烈些吧。

也許上周每個人都拼勁全力,現在實在撐不住了。你知道該怎樣嗎?得讓他們休息一下,每個人,休息一整天。我保證,這會給你接下來的「長跑」節省時間。

I我們很難定義、衡量以及說明動力。但它在軟體開發中是真實存在的東西。而且它的缺失會成為造成首要影響,導致我們需要去解決很多根本問題。別忽略它,也別期望或假裝它會神奇地回來。察覺警報並迅速採取行動。

5、與和你互補而不是像你一樣的人一起工作

每當我看到人們根據「文化契合度」來找人的時候,我就會拚命翻白眼。你知道大多單一栽培會發生什麼嗎?他們遭遇了他們不知如何解決的病原體,然後嗝屁死翹翹了。

你不會希望你的所有開發者、設計者、 QA人員、產品人員、銷售人員和執行官是彼此的克隆人。你肯定不想。每個人都有自己的長處和短處、優點和缺點。你想要僱傭的是他們的長處,讓其他人的長處彌補他們的短處。

比如說我,寫代碼非常快,擅於溝通,讀寫文章都奇快。我在任何時候都能熟悉很多編程語言和框架。我理解東西透徹且迅速,有豐富的經驗。然而我還是一個在特定領域、框架和語言缺乏深刻專研、精通掌握的全才。我是一個真正從別人身上獲益的建築師,跟蹤所有需要,在骨骼構建好之後添加肉體和潤色。我還是個 UX 盲(等一下,你說那些還沒對齊?),這一直被當作同事之間的玩笑。

像我這樣的人非常難找到也是及其被需要的。但一個由我和九個像我一樣的克隆人組成的公司是從一開始就註定要失敗的。唔,我們會把很多事情做好,但只需要一個集中的盲點,一個災難性的空隙就足以毀滅公司。大多數人承認有些事情他們做不好,另一些人可能需要照應。這些人往往是尋找「文化契合度」的人,並試圖僱傭和他們一樣的人。真令人哭笑不得。

6、任何決定都比沒決定強

別猶豫,當你拿不準主意時,去做就好了。當然,這可能不適用在生產代碼的時候。但它可以應用於除此之外在軟體開發里的任何方面。我們在歷史上發展最快的行業里工作。我們生活在以指數形式發展的世界裡。時間不等人,別浪費它。

這與低級決策的高級討論一樣真實。在高水平的討論里,比如「我們應該實現特性 A 還會說 B?我們要用哪種方式實現呢,X 還是 Y?「,常常會產生這樣的對話,」讓我們先跳過這個…下周再對它進行討論…「,或者更陰險的,」讓我們先研究一下其他人做了什麼再來討論一次。「這樣的問題極少情況下會有正確答案。大多時候,像這么說才是正確的,」我會在今天之前決定嘗試哪一個,這樣我們就可以明天開始行動了。

甚至 A 選項基本上是錯誤選擇,開始進行 A 大概也比啥都不做強。這和直覺是相悖的,但它通常也是正確的。以實際上手的方式去理解 A 的本質是一個更好的辦法,這個道理始終是正確的。這樣的理解可能會引導你做出更好的決定。

對於低級決策,那就更應該如此了。「規范沒有說明我們應該如何處理錯誤條件 X,或者錯誤信息應該是什麼。」(規范似乎是為一個有抱負的烏托邦寫的,在這種烏托邦中,錯誤條件和獨角獸一樣罕見。)「我知道,我只是想插一句,回去問問他們在這種情況下想做什麼!」

這非常誘人。如果你這么做,沒人能指責你哪裡做錯了。但這么做是錯誤的。寧願繼續自己做決定,盡管有些魯莽,也不要什麼都不做等著問別人。讓它們在你做已經寫好的程序和你學到的教訓里迭代,雖然你知道這並不完美,也好過從頭開始錯誤認知。它們和項目將會變得更好。快速嘗試,快速改變方向。

7、保持謙虛,但要自信

你不需要所有的答案。甚至是我也不得不勉強承認我不會有全部的答案。可惡,我甚至連它們的大多數也沒有,不過我有自信,只要給我足夠的時間和精力,我能弄清楚大部分。並且你也可以。

我們無法都成為 Jeff Dean(谷歌大牛)、中本聰(比特幣創始人) 或是 Margaret Hamilton(登月計劃中的女程序員)。我們在一個充斥著真正的天才和自稱天才的地方工作。沒人知道所有的事情,每個人都敏銳地意識到他們所不知道的一切。幸運的是,大多數情況下,我們不是科學家。我們的工作不是去尋找新突破。我們的工作是實踐他人的發現,使東西運轉,希望服務於人們真正想要的東西。也許你永遠不會發明任何東西,像是布隆過濾器或默克爾樹。不過大多與你共事的人們也不會。而且這不是重點,重點是使用布隆過濾器和默克爾樹,亦或是在它們之上建個抽象層,來實際的完成它們。

所以假設你懂的會比在座的人都多是錯誤的,就算你覺得他們違背直覺的想法很瘋狂,他們的語言選擇很糟糕。假設人家比你懂的多也是錯誤的,即使真是那樣,也沒關系。世界上多的是聰明人因為一些不可思議的原因什麼實際東西也沒做出來。(開個廉價的玩笑╮(╯▽╰)╭:這就是為什麼我們有學術界的原因。)

如果你真的做出了一些東西,在面對那些令人眼花繚亂的理論知識,或是和你相似甚至比你做的更糟糕的人時大可不必謙虛。在一天結束之時,正是那些在戰壕中的開發者——構建、測試和開發了代碼的人,真正做了事情。話說那些發現自己遠離戰壕的人,那些沒有和你一起並肩作戰的逃兵,你有權利鄙視他們。並且向你的夥伴致敬,而不是上司。


⑵ 程序員如何在電腦上編程的

說到如何在電腦上編程。首先需要知道下面這個問題的答案:「程序到底是什麼?」計算機程序是指令集,它告訴計算機如何執行特殊的任務。VB~VC~VF~C~C#~C++~JAVA~.NET~這些都是編程 ASP~CGI~PHP~JSP這些是WEB編程。。 雖然都是編程,但編出來的程序可是不一樣的。 目標是什麼?開發?創業?還是去公司上班?還是業余愛好? 如果想業余編小程序,推薦VB~VC~容易上手。簡單。也蠻強大。 如果想學好了去企業上班,推薦C++~~~.net~~~JAVA之類的大型項目開發。 如果想做網站,就學ASP~CGI~PHP~JSP,這4個就JSP最最最難,先學ASP。現在是人工智慧時代,國家出台了很多政策鼓勵人工智慧發展,無人超市、無人駕駛、無人銀行、AI人臉識別層出不窮,我覺得以後人工智慧滲透的領域肯定也會越來越多,所以我推薦讓孩子學習Python語言,python語言適合做人工智慧的開發。簡單容易上手,學好了以後對學習、出國留學、就業什麼的也會有好處。首先,工程師根據你的需求給你一個合適的方案,這個方案包括硬體搭建、軟體架構。 然後,在你滿意的方案下為你選用設備 最後,程序員按照你的要求編寫軟體 各種設備有自己的命令解釋器,程序員寫出來的軟體是可以按照機器能解讀的編碼編寫的,這些不需要用戶知道,用戶只要知道怎麼使用,怎麼維護就可以了,如果知道的更多,那就可以成了開發者

⑶ 如何製作電腦軟體exe,怎麼製作屬於自己的應用程序,自己發明應用程序

先學會一種計算機編程語言,然後安裝對應的開發編譯環境,然後編寫程序代碼,最後編譯成exe文件。

⑷ 如何自己開發一個app軟體

如何自己開發一個app軟體

如今,不少企業都想擁有屬於自己企業或產品的手機APP,但其中最困擾企業主的問題就是:開發一款手機APP到底需要多少錢?

簡單點來說,要視手機APP的需求及質量而言,價位一般在幾千到十幾萬左右,更高端的價格更高。

四、APP開發公司的所在地

需要注意的是,同樣實力的APP開發公司,在不同的城市也會導致APP的成本費用高一些,如在北京、深圳和上海等地的開發公司開發成本費用就會比較高,因為當地開發人員的薪資和其他支出相對更高。

⑸ 電腦上的軟體是怎麼做出來的

軟體開發流程

先上一個軟體開發的整體流程圖,這就是大名鼎鼎的「瀑布模型(Waterfall Model)」。據說由溫斯頓·羅伊斯(Winston Royce)在1970年提出。

1、環境部署

准備伺服器,部署操作系統、軟體環境、安全軟體、FTP伺服器等。資料庫和應用可分開布置在多個伺服器,也可布置在同一伺服器。

准備網路,分為內網和外網。外網需要購買公網IP和域名。

負責人:網路管理員

2、軟體開發

包括開發語言選擇、架構設計、資料庫設計等工作,並進行編碼、編譯、測試、打包。

負責人:程序員

3、軟體部署

將程序文件上傳到伺服器,進行部署、配置,成功後即可通過客戶端訪問項目。

負責人:軟體實施


軟體開發階段

下面以java語言開發為例,簡單講講程序員是如何進行軟體開發的。

(本部分參考了「軟帝在線」公眾號、博客園「架構與我」的文章)。

1、新建java文件(或工程)

java源代碼本質上就是普通的文本文件,可以用txt等工具編輯java代碼(程序員一般採用源代碼編輯工具,如:Notepad++;或集成開發工具IDE,如:Eclipse)。txt編寫後需將文件擴展名改成java。

2、編寫代碼

以「Hello World」舉例編寫代碼:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

該程序表示的意思是輸出Hello World這樣一段話。

3、編譯程序

Java程序之所以能做到跨平台運行,是因為Java程序運行在JVM中的,然而JVM只能夠識別位元組碼文件,而不能直接識別Java文件。所以需要先將Java文件編譯成位元組碼文件,即class文件,然後位元組碼文件才能夠在JVM中運行。

編譯文件,可以通過手動執行Dos命令javac,或直接用編譯器如Eclipse完成。

4、運行程序

可在Dos命令窗口中輸入java命令,按回車,輸出Hello World;

或在編譯器的控制台中看到輸出結果。

5、單元測試

單元測試(模塊測試)是開發者對編寫的一小段代碼,檢驗一個很小的、很明確的功能是否正確。

通常採用JUnit框架(多數java開發環境已集成)進行測試,即所謂白盒測試,叫「白盒」是因為程序員知道被測試的軟體如何(How)完成功能和完成什麼樣(What)的功能。

測試通過後,就完成了軟體開發階段,可以打包部署了。(IT售前圈)

⑹ 怎樣自己寫代碼

學習編程的過程中入門是一個很重要的過程,尤其是對於編程一點都不了解的朋友,看著那些密密麻麻看不懂的代碼,什麼熱情都被澆滅了,從而就此放棄了學習編程,因此選擇編程的入門方式十分重要。

可以從網上獲取到我們需要的知識,自然也包括了學習編程,現在很多編程語言都出了視頻教程,而且還不止一家,我們可以挑選最適合自己的視頻教程來學習。

程序使用

源程序一般就是可以用記事本打開的好多行英文的,用編程語言寫好的軟體。源程序經過編譯成目標程序,才能運行。一般目標程序不能再修改了。

我們電腦上安裝的軟體都是目標程序。除了腳本語言的源程序外,其他源程序是不能直接運行的。

提倡軟體開源的人士認為應該提供源程序給用戶,讓用戶自己修改,有利於軟體行業的發展。反對的人覺得這樣不利於保護版權。

你如果不懂編程,源程序可以不管它。不影響正常使用。

⑺ 如何製作開發一個軟體

1、需求分析

相關系統分析員向用戶初步了解需求,然後用相關的工具軟體列出要開發的系統的大功能模塊,每個大功能模塊有哪些小功能模塊,對於有些需求比較明確相關的界面時,在這一步裡面可以初步定義好少量的界面。

系統分析員深入了解和分析需求,根據自己的經驗和需求用WORD或相關的工具再做出一份文檔系統的功能需求文檔。這次的文檔會清楚列出系統大致的大功能模塊,大功能模塊有哪些小功能模塊,並且還列出相關的界面和界面功能。

系統分析員向用戶再次確認需求。

2、概要設計

首先,開發者需要對軟體系統進行概要設計,即系統設計。概要設計需要對軟體系統的設計進行考慮,包括系統的基本處理流程、系統的組織結構、模塊劃分、功能分配、介面設計、運行設計、數據結構設計和出錯處理設計等,為軟體的詳細設計提供基礎。

3、詳細設計

在詳細設計中,描述實現具體模塊所涉及到的主要演算法、數據結構、類的層次結構及調用關系,需要說明軟體系統各個層次中的每一個程序(每個模塊或子程序)的設計考慮,以便進行編碼和測試。應當保證軟體的需求完全分配給整個軟體。

4、編碼

在軟體編碼階段,開發者根據《軟體系統詳細設計報告》中對數據結構、演算法分析和模塊實現等方面的設計要求,開始具體的編寫程序工作,分別實現各模塊的功能,從而實現對目標系統的功能、性能、介面、界面等方面的要求。

5、測試

測試編寫好的系統。交給用戶使用,用戶使用後一個一個的確認每個功能。軟體測試有很多種:按照測試執行方,可以分為內部測試和外部測試;按照測試范圍,可以分為模塊測試和整體聯調;按照測試條件,可以分為正常操作情況測試和異常情況測試;按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試。

6、軟體交付

在軟體測試證明軟體達到要求後,軟體開發者應向用戶提交開發的目標安裝程序、資料庫的數據字典、《用戶安裝手冊》、《用戶使用指南》、需求報告、設計報告、測試報告等雙方合同約定的產物。

7、驗收

用戶驗收。

8、維護

根據用戶需求的變化或環境的變化,對應用程序進行全部或部分的修改。



(7)電腦怎樣自己寫代碼做軟體擴展閱讀

軟體開發專業主要培養德智體全面發展,具有一定計算機軟硬體維護、網路組建、維護管理的高級實用技術型人才。

通過專業的學習,能熟練掌握常用的計算機軟體的使用、維護與技巧;在硬體方面學生應了解計算機硬體的發展,熟練掌握計算機組裝的方法,能熟練運用應用軟體檢測計算機性能、故障的范圍所在,掌握硬體故障的一般處理方法。

在網路方面,學生應掌握如今流行網路的技術特點,掌握網路工程、網路維護、網路安全及應用方面的知識。能勝任一般網路工程方案的設計、組建、網路維護、及簡單網站的建設與維護。

⑻ 零基礎怎樣寫代碼

1、最重要的是學會寫程序:

C語言也好,python也好,你得學會把自己的思考用程序實現。舉個例子,你想制定計劃表,安排自己的時間,那這個問題就可以寫個程序來實現;你想做筆記、管理自己的文件,這也是一個程序。從簡單的、直接的幾行十幾行程序開始,比如計算器;到復雜的小工具,比如大數計算器。

5、關於寫代碼:

寫代碼是基本功,代碼寫不好的,嘴上說多牛逼,多半是瞎扯淡。

6、關於總結:

總結記錄,加深記憶,方便以後查看。多進行總結記錄也會起到不錯的效果。

閱讀全文

與電腦怎樣自己寫代碼做軟體相關的資料

熱點內容
電腦怎樣順暢玩高游戲配置 瀏覽:976
電腦桌面一半黑屏 瀏覽:153
筆記本電腦黑屏顯示英語字幕 瀏覽:331
小米平板電腦共享屏幕 瀏覽:225
電腦硬碟無法復制文件 瀏覽:848
戴爾電腦bios設置u盤引導 瀏覽:867
四維星軟體必須要用電腦才能用 瀏覽:48
電腦桌面無線滑鼠 瀏覽:993
電腦被設置密碼開不了機 瀏覽:756
電腦開機一直選擇重裝 瀏覽:902
電腦系統盤做活動分區 瀏覽:864
筆記本電腦南橋壞了 瀏覽:292
一般理工大學買多少錢的手提電腦 瀏覽:25
實體店買筆記本電腦有滑鼠送嗎 瀏覽:92
平板電腦視頻介紹 瀏覽:904
電腦版賽車哪個好玩 瀏覽:92
蘋果電腦鍵盤用力按才有反應 瀏覽:214
電腦文件副本 瀏覽:723
分期購筆記本電腦 瀏覽:65
老師如何在電腦上閱卷 瀏覽:535