iT邦幫忙

2

剛跳入程式樹海的新手提問-

大家好,先說一下我的背景大學是公衛,碩士是特教畢業,除了特殊生跟電腦一樣需要結構化的教學/語法之外,找不到跟電腦、程式相關的共同點了!

因為真的是超級新手,上網查一些教學影片之後,一直有些很困擾我的問題

問題一:
常常看到非本科系對於程式語言有興趣,有一天突然為了想解決某個問題而學會了程式語言,但我無論看哪個教學影片或是書都是從算數學,迴圈,條件式開始,想知道大家一開始如果不是像本科系一樣從基礎學起的話,大家的第一個程式是做甚麼?甚麼是套件?,是怎麼解決程式操作跟語法問題,進而達到自己設計解決問題的程式的??(例如像是能夠做出個可以縮網址的程式之類,但你完全完全不會的情況下怎麼做的?)

問題二:
前端的一些技能樹很明確,而且因為網頁可以呈現所以知道自己在寫甚麼東西,但是後端的程式碼是怎麼跟前端做連結,那些資料庫是怎麼用個人電腦控制的,就非常不清楚,雖然瀏覽過幾本解釋電腦原理的書籍,但頂多知道我們給電腦input訊息然後,後端會丟出output之類,可是不太知道後端確切是怎麼跟前端連結的?或是後端的工程師具體到底在做甚麼,不知道能不能有前輩可以指點迷津

因為想學新東西的時候,就很想知道流程跟目的,雖然已經報名課程但是還在等待開課,先自學網路上的內容,但就像個無頭蒼蠅先東看看西看看,感覺見樹不見林,問題如果太爛,希望大家鞭小力一點~感謝大家
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
alexwork95901
iT邦新手 5 級 ‧ 2020-09-01 18:42:11
最佳解答

    雖然不知道為什麼0個喜歡還被選為最佳解答,但還是把我還是把重構更易讀的進階回答連結貼在此以方便尋找,建議先看完這邊,把連結文當作補充說明看。
    
    https://ithelp.ithome.com.tw/articles/10233045
    
    由於我是第一次發文不太會排版,因此盡量做到這樣請多包涵。另外根據這段時間的沉澱,發覺這邊的風氣好像不值得我這種寫作風格,因此不打算再回答更多文章,感謝各位花時間閱讀。
    

問題一:
常常看到非本科系對於程式語言有興趣,有一天突然為了想解決某個問題而學會了程式語言,但我無論看哪個教學影片或是書都是從算數學,迴圈,條件式開始。

用新手易懂角度來詮釋:
程式= 邏輯+數學
迴圈= 邏輯 * N次
條件式 = 邏輯敘述的其中之一

以上三個都是協助你翻譯 你想做的事-----(翻譯成)---->coding語言,讓機器看懂能用。

想知道大家一開始如果不是像本科系一樣從基礎學起的話,大家的第一個程式是做甚麼?

最平易近人的: Excel錄製marco幫你重複做文書工作開始
你去google打指令讓他幫你算1+1=? 就是最基本程式(1=數學,"+的觀念" =邏輯)

甚麼是套件?,是怎麼解決程式操作跟語法問題,進而達到自己設計解決問題的程式的??(例如像是能夠做出個可以縮網址的程式之類,但你完全完全不會的情況下怎麼做的?)

每天早上我去早餐店買 2個三明治,是我的一份 "早餐套件" ,月初的時候會加一杯柳橙汁, 所以月初的時候我的 "早餐套件" 豐富了一點,但是我還是叫他 "早餐套件" ,因為如果要叫做 "月初早餐套件" 這樣字比較多,工多但不加錢,工程師會不開心。

因此當工程師需要寫一份功能的時候,都喜歡去google有沒有人寫好的一包"解決套件",然後用
最高端的技術ctrl+v完成我今日的工作,振奮我的精神,是工程師每天成長的動力來源。

以上也順帶說明了 "XX是如何自己設計解決問題的程式",包含了字面解釋和深入的意義內涵。

問題二:
前端的一些技能樹很明確,而且因為網頁可以呈現所以知道自己在寫甚麼東西,

? (?就是這段最樸實無華的回答)

但是後端的程式碼是怎麼跟前端做連結,那些資料庫是怎麼用個人電腦控制的,就非常不清楚,雖然瀏覽過幾本解釋電腦原理的書籍,

用別人寫好的 "xxx" ,下指令在兩著之間互傳 ,xxx 會根據你使用工具的不同為不同的東西。

但頂多知道我們給電腦input訊息然後,後端會丟出output之類,可是不太知道後端確切是怎麼跟前端連結的?或是後端的工程師具體到底在做甚麼,不知道能不能有前輩可以指點迷津

??? (一樣,樸實無華的回答) ...很多時候真的很難知道自己"真正"在做什麼....

因為想學新東西的時候,就很想知道流程跟目的,雖然已經報名課程但是還在等待開課,先自學網路上的內容,但就像個無頭蒼蠅先東看看西看看,感覺見樹不見林,問題如果太爛,希望大家鞭小力一點~感謝大家

可參考此處
https://buzzorange.com/techorange/2019/04/22/google-engineer-career/

真的想學東西請看此處
https://blog.usejournal.com/how-a-googler-solves-coding-problems-ec5d59e73ec5

想一下兩著的差別你就會知道怎麼學程式的東西...

最後想提醒你,你要先學會問問題,在將來解決問題的路上才會順遂。你可以看一下你整篇文章,裡面包含很多零零碎碎想要傳達的訊息在裡面,這代表你有很多不屬於"程式範圍"內的基礎能力要補充。

5
wrxue
iT邦好手 1 級 ‧ 2020-08-27 21:31:18

不從基礎學起的話會不知道範例的原理,而不知如何更改為自己想要的效果,非常難去創造出想要的東西。
這裡的基礎不外乎就是指變數、型態、條件、迴圈、結構、指標、類別等。
一套程式語言學好,相同的觀念很容易套到另一個語言裡,若沒有這些觀念,很多目的會很難達到。這也是很多教學都從這些開始教的原因,所以專心花一段時間學好這一系列的觀念,將來就不必花太多時間在基礎的問題上困擾自己。

問題一:
個人第一個有用的程式,是用C語言做出俄羅斯方塊小遊戲,使用「graphics.h」來實現圖的部份,其它就是圖背後在運算的基本語法。不會的語法就google,如「C語言 畫方塊」,現在應該非常容易搜到答案了,但很多答案需要有基本的觀念才看得懂,所以還是建議不要跳過學程式的第一步,先學基礎。

問題二:
要知道程式如何運作,首先要有一個能正常運作的程式,去修修改改看結果哪裡會變,後端也是一樣的。當初學PHP+MYSQL時,個人就拿著一本教用Dreamweaver設計PHP的書,從第一章跟著做到最後一章,書中會介紹運作原理,一本同時有原理介紹與實作的書是很好的,個人不相信一本只介紹原理而沒動手做的書可以帶給新手什麼啟發。所以給你的建議是在有程式基礎下,鎖定一本書或一系列的網路文章去跟著實作,嘗試感受它是如何運作的,畢竟你沒經驗,這點苦工是少不了的。

3
通靈亡
iT邦高手 1 級 ‧ 2020-08-27 21:43:34

這篇是我去年鐵人賽斷賽的倒數第二篇
關於我自己對學程式過程的感覺和心得

https://ithelp.ithome.com.tw/articles/10214451

問題一

我自己的想法是,用「問題和情境」,從別人的文章、教學、官方文件,做出你要的功能
然後自己想變化,把那些似懂非懂的語法和觀念搞懂
同時習慣寫程式分解問題的感覺

或甚至如果你資質不錯,可以像一些大大直接玩作業系統、套件、逆向人家的程式

我自己第一個碰程式語言是高職的時候
那時候老師教完If else後,丟了一個作業,要我們寫簡易Word的程式
要可以自由變化輸入欄位文字的「粗體」、「斜體」、「底線」、「文字大小」
我當時什麼都不懂,花了好幾天Google狂下關鍵字看別人Code,好幾個禮拜才做出來
大部分的同學看到後,抱怨太難或老師沒教,就放棄了

之所以剛學程式會覺得難,很多時候是因為第一反應想的是想趕快解出來
越是想要趕快解出來,越是沒辦法習慣分解問題的感覺
這個有一部份很吃耐性跟天分,也是很多學到一半放棄程式的原因
不管老師再強,Bug還是要自己會找,問題還是要自己去想。

問題二

你可以到些前後端的技術社團,從社團中的問題
或是網路上爬文看一下前後端的工作內容
會比只看理論的書籍還會有感覺
像最近某人的網站流量事件、之前口罩預購的當機事件
伺服器架設與設定、API開發、資料庫、流量承載、網路安全,就是後端再處理的

還有,前後端的差別完全不是有沒有寫程式...
在前後端分離的架構,只要是使用者介面的資料和功能互動的呈現
這些都是由前端負責實作
在網路上和書局挑資源的時候要慎選

有這些擔心其實是正常的
多從網路文章、課程整理資料,嘗試做一兩個專案後
如果你撐得過去,這些擔心自然會跟著消失

2
froce
iT邦大師 1 級 ‧ 2020-08-27 23:43:21

1.EXCEL VBA,自動化表格用,自己找資料自己學。
2.找個明確的框架來學寫前後端寫多了你就知道了。flask和python很好入門。

這行沒自學能力學會找資料,都要老師教就不要搞了。
我剛剛在看如何用golang接win32 api,套件包連個例子都沒有,只能自己翻MSDN和套件原始碼。
找個專案自己去查資料自己學絕對是最扎實的。

1
japhenchen
iT邦超人 1 級 ‧ 2020-08-28 09:28:41

問題一:自發性的學習某些東西,就是動機跟動力,一個未曾學過英文的阿婆到了美國看女兒孫子,到了美國人生地不熟,為了通關學會比手畫腳,為了解決一頓吃飽而學會單字片語跟餐廳服務生溝通,為了跟孫子聊而學會簡單的對話,幾個幾個月探親之旅,回國之後,英文能力嚇嚇叫...
而學生學習英文、電腦語言,大部份的人都不會有動機跟動力,更甭談興趣㐪個字,那又如何談起如何開頭學習?那只好按步就班,把大家都當白紙,從字母、音標、生字、片語開始,程式語言也一樣,你都不知道為什麼學,要怎麼學,學了能做什麼時,老師也只能照本操課,從指令、變數、流程、函數....一層一層教下去,至於你要如何用語言來解決現實問題,是你自己要去發掘咯

問題二︰不是所有的程式語言都有明確的分前後端,多的是你做一個form,上面放個按鈕,按下去就直接insert一筆資料進資料庫,這是很傳統的程式語言的做法,而今日的MVC類的語言已經很明確的把程式分開成前端(畫面呈現、控制端),後端就比較明確負責資料的轉換,包含資料庫轉前端要的資料(XML、JSON、純文字.....),或前端送回的formdata依工作命令回存或新增到資料庫,或是把資料用商業邏輯計算後回傳前端/存資料,為的就是

作前端的人不需要懂如何操作資料庫
美工可以純綷工作甚至不用懂前端javascript
後端的人不懂管前端的畫面怎麼作,只要能如實的把資料轉發的事作好

不意外,這裡也臥虎藏龍連我這小蝦也是一條條.....會前端也會後端的滿天飛,我不懂美工但我有人家切好的版型可以直接抓上來套用

看更多先前的回應...收起先前的回應...
froce iT邦大師 1 級 ‧ 2020-08-28 10:23:29 檢舉

全端也沒啥了不起,常常會被酸前端不夠強、後端也不太會。科科

全端工程師最可憐,全部都要學全部都不專

以下就是全端人的通病

<html>
<head>.......</head>
<body>
<div>..................</div>
<?php 
    $sql = "SELECT * FROM DB";
    //.................
    foreach($data as $r){
        echo "<tr><td>{$r["uid"]}</td><td>{$r["uname"]}</td></tr>
    }
?>
<p>..................</p>
</body>
</html>

這樣的頁面能寫的漂亮,就怪了

yolala iT邦新手 5 級 ‧ 2020-09-02 16:22:25 檢舉

看不懂==

只是想表示都會一點,就變成四不像了

1
paicheng0111
iT邦大師 5 級 ‧ 2020-08-28 12:08:22

如果工作很常用EXCEL的話,VBA真的可以學來當作程式入門。

推薦理由:

  1. 只要安裝好OFFICE,就自帶了VBA與IDE,免再煩惱系統安裝等問題。
  2. EXCEL有錄製巨集的功能,先錄製一段動作之後,你可以看看程式碼是如何撰寫這段動作的。對於不懂的指令、函數、方法再去Google。
0
archer9080
iT邦研究生 4 級 ‧ 2020-08-28 14:16:19

問題一:
大家的第一個程式是做甚麼?

第一個程式嘛。。。
不外乎就是在Hello world、印星星、印三角形、印自己輸入的東西、印月亮、印一些有的沒有的

是怎麼解決程式操作跟語法問題,進而達到自己設計解決問題的程式的??


語法有問題,通常都會有error log
到的錯誤訊息直接丟到估狗上進行尋
依照前人的經驗著修改
十有八九都能解決出現的問題

真的特別狀況,努力了很久
就是
光IT邦這個平台就匯集了很多的大神前輩
只要不是想要不勞而獲,面對問題有積極的想要去處理
通常眾神都很願意幫忙 (保佑)

第二題的部分樓上的大神們都已對您有了些講解
我也還很菜,就不誤導您啦

0
john083423
iT邦新手 5 級 ‧ 2020-08-28 15:33:16

每個程式都一樣 打好基礎再求變化 基礎看不懂 怎麼去改程式都不會
每個程式的基礎都是一樣 我用馬力歐電玩講解
先從宣告變數(可以把自定變數寫得越短越好)但自己要看得懂(不然馬力歐如何顯示ˋ幾種怪物如何跑出)
再來是條件式(不然你打電玩如何過關ˋ多少秒過關會放煙火)
再來是迴圈(主角怎麼動ˋ香菇怎麼動ˋ怪物怎麼動ˋ無敵星ˋBOSS怎麼動)
再來是陣列(可以節省記憶體內容運作ˋ或比較快完成工作)
這些懂了 才開始進階
比如庫霸的大小ˋ會不會噴火ˋ吐火花等

我要發表回答

立即登入回答