1-1课:又回到最初的起点:软件和程序
軟件和程序
每每提到“編程”這個詞,大家都會覺得這是件高端、神秘的事,或者會皺皺眉頭,覺得這肯定是個挺難的事兒吧?
基本所有與編程沒有打過交道的人,都認為編程似乎被一群禿頭的程序員壟斷了,是一種旁人無法介入的專屬行為。
而就在這一兩年里,“少兒編程”的概念又伴隨著素質教育、stem 教育迅速崛起。好像一時之間,連小學生、幼兒園小朋友都開始學編程了。而且還有不少幼兒型選手拿了不少編程大獎!
所以,編程到底是個啥玩意兒?是不是真的有這么難呀?
軟件是什么
要說編程,首先就要先說一說計算機。計算機大家都不陌生吧,就算是一個完全不懂編程的人,也每天會用到——工作中用來處理資料、文檔的臺式機、筆記本,看劇的 pad ,日常不離身的智能手機,這些其實都是計算機。
如果我們把計算機拆開,看到的是若干電路和電子元件。把這些東西組合起來,通電開機,就可以用來讀新聞、刷抖音、聽歌、 寫文章、P照片、打游戲、看 idol ,發(fā)微博/微信……了。
你有沒有想過,計算機能做這么多事,僅僅是因為有那些電子器件嗎?當然不是!
我們新買來一個智能手機,上面的 App 少得可憐,最初的時候啥也干不了。需要我們自己去下載各式各樣的 App 。
這些 App 又被稱作應用軟件,這些 App 正是通過編程制作出來的。
手機 App 是軟件,臺式機上的各種應用(瀏覽器、文本編輯器、圖像處理工具等)是軟件,嵌入式系統(tǒng)中的應用(汽車的防鎖死剎車系統(tǒng)、核磁共振成像設備、大型固定裝置如交通燈、工廠控制器,以及在非智能手機時代曾紅極一時的 mp3 機中的播放器和手持 PDA 中的應用等)也是軟件。
軟件可以簡單的被認為是一組程序,這組程序相互配合,通過接受輸入、產(chǎn)生輸出,來為我們每一個人解決問題或完成任務。
互聯(lián)網(wǎng)軟件
日常生活中,你打開微信,在朋友圈發(fā)了一張自拍,并精心配上準備好的文案“今天也要做個精致的豬豬男孩/女孩”這樣的文字,然后點擊“發(fā)表”按鈕。
你的朋友圈里就顯示出了你剛發(fā)的圖和文字,你的朋友刷到了你的朋友圈順手給你點贊評論一條龍。
這幾個步驟對你而言可能只要幾秒鐘,但是在這樣一個簡單的過程背后,卻有多個程序在為你提供服務。
首先你點擊“微信”的綠色圖標,然后點“發(fā)現(xiàn)”->“朋友圈”->朋友圈右上角的小相機圖標,到相機選擇照片,輸入文字,最后點擊“發(fā)表”。
這個過程看起來是你在干活,其實微信軟件也沒閑著:
1.微信的前端程序在接受你的輸入(每次點擊按鈕、上傳照片和鍵入文字都是用戶輸入),將每一次輸入記錄下來。
2.在你點擊了“發(fā)表“之后,微信前端將之前的輸入打一個數(shù)據(jù)包,注明這是你新發(fā)的朋友圈內(nèi)容,通過互聯(lián)網(wǎng)發(fā)送給后端程序。
3.后端程序接收到了前端的發(fā)來的“發(fā)朋友圈”請求之后,會讀取數(shù)據(jù)包,從中取出你的照片和配圖文字,把它們記錄(存儲)下來。
當你點完“發(fā)表“返回到朋友圈之后,看起來你并沒有再做什么事情,然而這個”進入朋友圈“的動作就表示了你要閱讀朋友圈內(nèi)容。微信又會有一系列動作:
1.微信前端程序又會向后端程序發(fā)出一條請求,要求閱讀最新的朋友圈內(nèi)容。
2.后端收到這個命令后,會把最新的朋友圈內(nèi)容打一個數(shù)據(jù)包發(fā)送回來。
3.前端接收到這個數(shù)據(jù)包后,會將其中的內(nèi)容(圖片、文字)按特定的格式顯示出來。你通過手機屏幕看到的,就是這種顯示的結果。
上述過程其實經(jīng)過了簡化,實際情況要復雜得多。
目前,我們暫時掌握前端、后端和通訊的概念就好。幾乎所有的互聯(lián)網(wǎng)應用都涉及到這幾個概念。
我們手機上的 App 經(jīng)常要更新,每次我們更新的都只是前端程序而已,更新前端后,經(jīng)常會發(fā)現(xiàn)新的版本顯示文字、圖片的樣式不同的,新的版本又加入了新的功能(比如新的頁面、新的按鈕)等變化。
實際上,一般互聯(lián)網(wǎng)軟件后端程序更新得往往比前端更頻繁。只不過后端程序部署在開發(fā)軟件的公司或個人自己的服務器上(或者第三方的云服務器上),更新的過程不被用戶察覺而已。
因為內(nèi)容來自于后端,所以,就算你的手機上有前端程序,如果網(wǎng)絡不通,或者后臺宕機,也無法使用該軟件。
這是我們現(xiàn)在日常用到最多的互聯(lián)網(wǎng)軟件,大概就是這樣運作的了。
點擊了解更多《編程算法同步入門》
單機版軟件
在互聯(lián)網(wǎng)時代到來之前,我們用的軟件基本是單機版軟件,比如常用的 Word , PowerPoint , Photoshop 等——當然現(xiàn)在這些工具也互聯(lián)網(wǎng)化了。
單機版軟件需要專門的安裝程序(還記得光盤、軟盤嗎)一次只能安裝到一臺機器上(單機版軟件流行的時候大家基本都在用臺式機),軟件中所有的程序都在一臺機器上運行。
那個時候,軟件是要錢的,一張光盤理論上只能安裝一臺機器,因為你買的是license(安裝許可證)——一張光盤都好貴的,當年微軟的辦公套件一套就要成千上萬的。
所以當初在學校和普通家庭里,流行的是盜版和破解版……回首看好像是很久以前了,其實也不過就十來年前而已。
程序又是什么?
到底什么是程序呢?程序接受輸入,根據(jù)輸入完成某些特定任務后產(chǎn)生輸出——你有沒有發(fā)現(xiàn),這么聽起來和軟件不是一樣嘛? 確實,無論程序還是軟件,都會接受輸入,產(chǎn)生輸出。
軟件是由若干程序組成的,在多個程序組成的軟件中,具體某一個程序都有輸入和輸出。但往往這個程序接受的不是全部用戶輸入,或者產(chǎn)生的輸出也不是全部用戶輸出,而是輸入或輸出某些中間結果,經(jīng)過幾個程序的共同努力,才將原始輸入轉化成了最終成果展示出來。
打個比方,軟件就像一條完整的流水線,能夠把原材料加工成最終產(chǎn)品,一個個程序則像其中的一道道工序,這些工序的聯(lián)合協(xié)作,完成了整個生產(chǎn)過程。
如果軟件的功能非常簡單,一個軟件也可以只有一個程序。
理論上講,其實很多全部功能都安裝部署在一臺機器上的軟件(單機版軟件),都可以把所有功能寫在一個程序里。
但是在現(xiàn)實當中我們會故意不這樣做。原因是,復雜軟件的功能太多,如果所有功能都用一個程序來實現(xiàn),會導致這個程序的源代碼過多,程序結構很難清晰,管理和維護起來的成本太高。
等等,這里怎么又出來了一個“程序的源代碼“,它和程序不是一回事嘛?且聽下回分解啦!
點擊了解更多《編程算法同步入門》
分享交流
我們?yōu)楸菊n程付費讀者創(chuàng)建了微信交流群,以方便更有針對性地討論課程相關問題。入群方式請到第 2-1 課末尾添加小助手的微信號,并注明「同步入門」。
閱讀文章過程中有任何疑問隨時可以跟其他小伙伴討論,或者直接向作者提問(作者看到后抽空回復)。你的分享不僅幫助他人,更會提升自己。
總結
以上是生活随笔為你收集整理的1-1课:又回到最初的起点:软件和程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: srttrail txt无法开机_srt
- 下一篇: 纽约大学研究生 计算机科学 申请,纽约大