自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

編程和音樂真的很像嗎?

開發(fā) 后端 前端
你可以發(fā)現(xiàn)為什么人們會(huì)沉溺于這兩個(gè)領(lǐng)域:因?yàn)閯?chuàng)作旋律和編寫算法之間有很多共同之處。從表面上看這兩者似乎頗不相同,但是開發(fā)有創(chuàng)造性的一面,而譜曲亦有機(jī)械化的一面。那么,編程和譜曲有什么相似之處呢?

在過去的幾十年時(shí)間里,對(duì)音樂作品和編程同時(shí)感興趣的計(jì)算機(jī)科學(xué)家成功地將兩者結(jié)合在一起?,F(xiàn)在的人工智能譜寫的音樂,幾乎與由專業(yè)音樂人創(chuàng)建的沒有區(qū)別。

很多專業(yè)的開發(fā)人員對(duì)音樂有著真正的激情,以及許多音樂家涉足過編程,這些已經(jīng)不是什么秘密。例如,Elvis Costello,一位多產(chǎn)的英國音樂家,被譽(yù)為“他那一代***秀的詞曲作家”,在他的音樂生涯騰飛之前,在上世紀(jì)70年代操作IBM 360。

你可以發(fā)現(xiàn)為什么人們會(huì)沉溺于這兩個(gè)領(lǐng)域:因?yàn)閯?chuàng)作旋律和編寫算法之間有很多共同之處。從表面上看這兩者似乎頗不相同,但是開發(fā)有創(chuàng)造性的一面,而譜曲亦有機(jī)械化的一面。那么,編程和譜曲有什么相似之處呢?

 

[[165485]]

你的心中已經(jīng)有音樂的脈動(dòng)

讓我們先來看一看譜曲和編程之間的相似之處。

1.它們都遵循關(guān)于以下邏輯規(guī)則

譜曲,和編程一樣,需要古希臘人所謂的三藝。即:

  1. 語法:扎實(shí)理解基本原理——樂譜和編程語言規(guī)則的理論或知識(shí)。

  2. 邏輯:你需要能夠創(chuàng)建“邏輯推理”。當(dāng)音樂創(chuàng)作或編碼時(shí),你需要遵循邏輯規(guī)則使得“活動(dòng)件”一起正常工作。

  3. 修辭:和語法和邏輯一樣,你需要說服聽眾和新方法的使用者接受標(biāo)準(zhǔn)做法。

如果不遵循作曲和開發(fā)的基本原理,一切都無法正常運(yùn)轉(zhuǎn)。一個(gè)胡亂編寫的程序?qū)⒊錆Mbug,在相同意義上,病態(tài)的和弦結(jié)構(gòu)會(huì)造成樂曲的不和諧。

2.它們從一件件小事開始構(gòu)建了美的東西

要成為一個(gè)偉大的鋼琴家,你必須先練習(xí)和完善基礎(chǔ)知識(shí):簡單、重復(fù)的音階和琶音。要成為一個(gè)偉大的開發(fā)者,你需要花費(fèi)大量時(shí)間來確保即使是最簡單的表達(dá)式,也能夠優(yōu)雅和被正確編碼。從一件件小事開始,你漸漸打造出了一個(gè)個(gè)偉大的東西,因此:

3.你需要能夠見微知著

正如作曲家必須考慮到樂團(tuán)的不同樂器組以及這些樂器組是如何組合在一起的,而開發(fā)者則需要在他們的頭腦中保持一個(gè)抽象的“大局觀”,當(dāng)他們開始構(gòu)建程序架構(gòu)的時(shí)候。這兩個(gè)學(xué)科都需要構(gòu)建一些更大,更好的東西。

4.自我表達(dá)是關(guān)鍵

音樂和軟件開發(fā)都需要?jiǎng)?chuàng)造力和自我表達(dá)能力:兩者都需要培養(yǎng)自己的風(fēng)格,創(chuàng)造一些新的和令人振奮的東西。

5.你需要涉獵技術(shù)

音樂家和開發(fā)人員需要花費(fèi)很長的時(shí)間來思考他們的創(chuàng)作如何與其他產(chǎn)品交互,以及如何呈現(xiàn)在“最終用戶”的手中。作曲家可能會(huì)增加重音符號(hào)以指示樂團(tuán) 成員要演奏的風(fēng)格。吉他手可能會(huì)考慮使用外部硬件(amps,效果器等),或他們希望在錄音室里制作他們的歌曲。同樣的,開發(fā)人員需要牢記別人將在哪種設(shè) 備和什么上下文中如何使用他們的最終產(chǎn)品。

6.兩者都包括協(xié)作和個(gè)人主義

莫扎特單獨(dú)花了很多時(shí)間來想他的下一個(gè)曲譜,盡管如此,他依然需要與他人合作——也就是他指揮的樂師。同樣,最成功的開發(fā)人員絕對(duì)不是一個(gè)純內(nèi)向的人:他們需要與最終用戶、經(jīng)理和用戶體驗(yàn)設(shè)計(jì)師等人員合作。

我不是音樂開發(fā)人員!

雖然兩者有很多的共同點(diǎn),但一些反對(duì)意見也值得我們聽一聽。不是每一個(gè)開發(fā)人員都能成為下一個(gè)貝多芬!

1.這個(gè)比喻是不是只是一種我們作為開發(fā)人員吹牛和顯擺的方式?

正如Coding Horror博客的作者認(rèn)為的那樣,開發(fā)人員將自己的技藝與繪畫,音樂或其他藝術(shù)形式之間作比較不僅僅是一種比喻,更多的是一種自我夸耀。當(dāng)然,我們都希 望我們正在構(gòu)建的app能夠像Gershwin的音樂一樣棒一樣好,或者我們剛剛設(shè)計(jì)好的網(wǎng)站能夠像Miles Davis的《Kind of Blue》一樣影響深遠(yuǎn)。但說實(shí)話,這的確大不相同,不是嗎?

2.編程是為了解決問題

當(dāng)你被要求去設(shè)計(jì)一個(gè)app的時(shí)候,通常是為了解決問題,例如,特定的業(yè)務(wù)或消費(fèi)者問題。開發(fā)人員善于解決此類問題,但這是否真的可以比作音樂?從最純粹的角度看,譜曲是純真感情和情緒的迸發(fā)和表達(dá)。

3.編程有一個(gè)非常不同于音樂的目的

當(dāng)你開發(fā)任意一種工具時(shí),最終目標(biāo)是讓終端用戶能夠做一些具體的事情。假設(shè)你正在構(gòu)建一個(gè)業(yè)務(wù)app——你的創(chuàng)作應(yīng)該意味著為最終用戶的日常工作提供便利。相比之下,音樂,則并沒有一個(gè)特定的“目的”,只是一種超越純粹的享受。

它們有多重要

我們依然無法做出決定:雖然顯然,譜曲和開發(fā)絕對(duì)有著一些共同的因素,但它們也有很多區(qū)域是存在分歧的。我們所知道的是,開發(fā)人員和音樂家都可以豐富我們的生活,并給我們一些以前不知道我們需要,但是現(xiàn)在生活不能沒有的東西。

譯文鏈接:http://www.codeceo.com/article/programming-similar-to-music.html
英文原文:Is Programming Similar to Composing Music?

責(zé)任編輯:王雪燕 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2010-02-23 16:21:24

Python Win

2010-03-02 17:22:46

Android技術(shù)

2021-08-31 10:52:30

容量背包物品

2010-01-20 10:14:53

C++程序

2010-03-02 15:22:40

Android手機(jī)

2022-02-14 21:31:00

用戶身份驗(yàn)證

2010-02-06 10:34:11

Android生命周期

2010-03-10 11:14:56

智能交換機(jī)

2010-03-17 14:50:06

智能交換機(jī)

2010-01-21 17:14:40

C++兼容

2021-09-26 07:43:08

KongKongaK8s

2019-11-05 09:20:06

SQLiteLinux

2011-12-02 09:29:19

2013-03-20 18:14:35

架構(gòu)架構(gòu)設(shè)計(jì)項(xiàng)目

2016-06-12 16:43:33

2010-03-10 16:51:21

以太網(wǎng)交換機(jī)

2019-01-21 13:56:52

2013-04-08 15:39:15

程序員

2018-10-30 12:44:04

Linux系統(tǒng)內(nèi)存

2018-07-09 08:35:45

Windows 10WindowsBug
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)