密密碼碼的程式怎麼想出來的
我是自學程式,目前也寫了3、4個web系統了,還是全端,真正在學的時間大概2年左右吧。
我一直覺得自己不是「程式」設計師,而是「程序」設計師。
目前寫程式已經不是整個都要土法煉鋼,而是你想要的Library別人通常都已經寫好,等著你用。
(當然,要精進的話就朝著底層lib或是演算法去著手)
寫程式,就是把各個工作流程,拆解成小程序,轉換成電腦能理解的語言,如此而已。
當然,你在做的過程中,會遇到很多問題,這些都能提出來問。
但是,像這樣問說這程式是怎樣想出來的,我或各位前輩想回答也只能跟你說用腦想出來的。
如果你真的想學網頁,建議不要從商業網頁下手,先寫個留言板,加上各種你的創意,熟悉前、後端及資料庫和框架、元件的用法。
先搞懂本質,再慢慢進階到各種花俏的功能,如ajax、前端web框架、物件導向或函數式編程等。
寫久了總會有感覺的。
首先,你貼的這段程式碼不容易閱讀,原因如下:
這段程式碼應該是用於「刪除購物車的商品」。
至於這段程式碼是怎麼想出來,以傳統的開發來說會先畫流程圖,或是寫虛擬碼。然後再補上實作的程式碼。
以「刪除購物車的商品」為例,流程如下:
然後針對每個處理流程撰寫程式碼
寫程式除了邏輯思考外,還是要大量的撰寫程式碼。也就是你要徹底了解你所使用的「程式語言」,才能寫出有效率、容易閱讀、容易維護的程式碼。
你有寫過 ASP.NET 嗎?如果有,可以貼一段程式碼,並告知是如何想的,我想寫,欠缺想法。謝謝!
...........你要不要去花錢請家教還是去補習班,會比較快。
如果不想花錢,那可以去GOOGLE搜尋爬文,這個時代要學東西,資源多到爆掉。
開發來說會先畫流程圖,或是寫虛擬碼(簡單的敘述式)。然後再補上實作的程式碼。
不畫流程圖的人是因為流程都已經在腦內畫好了
就像專科微積分老師有說過,學校同學那些說公式不用背的人,那是因為公式對那些人來說,跟吃飯喝水一樣已經是反射條件的人,當然不用背公式
竹本立里
你這個理論是對已經完全具備初學者完成階段(學習完基本一套語言,有做做一些範例出來,並且自己完成一些基本的練習。)才適用。
對於完全不動手的人來說………
就只會是個理論。
這個我覺得他應該是零基礎,先去上課半年~1年去學程式~
先把觀念及理論都學好~
再來去研究程式比較好~
如果牽涉生活問題~那麼去做工人最快~先苦力賺錢存錢...@_@a
在聊天室看到 Samと可樂快跑大大 推這篇
就進來參觀了~~
這篇問的是想法..
那我來試著引導alex9453思考..
給alex9453..
我也曾是初學者..
也曾佩服人家的程式..不懂別人如何從無到有..
所以也曾問過像你現在問的問題一樣蠢的問題..
學程式首要條件就是得要有基本邏輯能力..
我相信你一定有!!
就像竹本立里說的..
從生活周邊的體驗試寫一些小程式..
你問的問題是想法..
也就是不知道從何開始..
那..就從生活周遭的體驗去發想..
最簡單的例子就是..購物..
你去大賣場買東西..推著購物車..將自己要買的東西一樣一樣放進購物車..
那我問你..此時購物車上會有哪些資訊?
無非就是..購買的物品名、購買的單項物品數量、購買的單項物品單價..
那結帳時呢?又會經歷著怎樣的過程?
無非就是物品的條碼掃描..將掃描資訊顯示在螢幕上給顧客看..
那..複雜點..如果某些物品有特殊的打折資訊呢?
是不是有可能會在掃描的同時出現判斷機制以及相對應的價格計算方式..
就像這樣..一步一步去發想過程..
你說你只會99乘法表...
那你有想過程式的過程怎麼實現嗎?
過程中的迴圈又是有什麼用處的呢?
在這裡發問的大大們..
多半都是已經在業界有在實務的好手~
這些好手們上來發問..
也多半是以討論為主..
而不是帶著一顆要程式碼的心上來發問的..
就如同你前面跟人家要ASP.NET程式碼~還要註解~
那你不如一開始問問題就直接問.."我出五千買程式碼,誰可以給我!"
那..應該會有人願意幫忙~
在這裡..除非是遇到好的問者..這些好手們才會有熱情義務幫忙..
反之..沒人願意免費幫人的~
想法這種東西是要自己去想的..
這樣..這想法才會是你自己的..
沒想法..就從身邊的事物去想像..
科技始於人的惰性..你肯定時有想法..
怎麼做...就先試著自己去逐步推敲..
有問題就先自己趴文找資訊..
當爬不到資訊在上來發文找人討論..
記住!!是找人討論!!不是找人要答案!!
推~ 這裡是提供學習交流的平台
如果是學習上有問題 可以提出來且把你嘗試過過程提出來和大家討論!
這篇文章回應的很好,也很努力,值得讚賞。
我這一年也曾經指導過大學資訊系一年級新生寫程式,也出現 Alex9453 相同的問題,不知道是否現在的學校都不教流程圖,就直接教寫程式?
只能說基本功夫下的不夠深,隨時都會遇到障礙的。
richardsuma
就我所了解...
不管是學校還是補習班..
多半都會把訂定的課程進度上完..
所以...理論上..
學生們如果都有吸收~
相對的根基肯定都有..
重點在於實務應用..
很多人都是學了..不知怎麼應用
不知如何開始..
加上欠缺多樣化的題目給予練習或說是實習
導致像alex9453一樣..
想開始又不知如何開始..
簡言之...
就是...學生與教育都有問題..
只不過學生問題多於教育問題..
會這樣下結論是..
自己也曾這樣過來..= =
自己當初不努力~才會換來被前輩們說教洗臉的下場~XD
話說回來~
一代傳一代...我想..前輩們肯定也曾經遭受過洗臉加嘲諷吧~
俺都直接抓專案教的,還是以 "解決需求" 來做教學最快了,
所以通常會問學生在工作或現實生活有面臨到什麼問題,
再從頭開始解決問題,通常解決了學生也會了。
雖然學生都是朋友跟同事居多.....恩
看了李家同的人人都能學會寫程式, 用實際流程圖例子轉換成語言 ,雖然你們也有說流程圖,但沒實際例子,還是無法體會,終於知道以前的錯誤是什麼,以前都再專研語言,老師也都只教語言,所以才寫不出來,原來主要是流程圖,畫的出流程圖,就可以轉換成語言了,那就簡單多了
為什麼老師都不教流程,是因為怕學生以後比他厲害才藏私嗎?在學校補習班都去學過,都沒教,所以很多同學上完還是不會,要當老師,還不想教,真是誤人子弟
TO alex9453:
流程圖這種相關課程還是有
例如數位邏輯...等等
像是教你畫畫幾條線、方塊、菱形...等等的幾何圖形運用
這些只是基本流程圖..
複雜一點可能就包含硬體設備的圖
例如個人電腦、伺服器、路由點...等等
所以..不能夠遷就學校沒教..老師沒教的問題..
要嘛就是你沒選到相關課程..
要嘛就是你可能就學時不認真..
再說..這種基本的東西..教了..也不會讓程式撰寫變得更厲害..
"流程"!!不過就是一種概念的東西..
你生活上就已經有運用到了..
拿個簡單的例子來說.."購物"
你去某個商場買東西..
第一件需要選擇的..
可能就是..需不需要推推車或提籃子或甚麼都不需要..
此時..當然就出現了第一次判斷..
你買東西時..肯定會列出購買清單..
購買清單..可能存在你的腦子裡..也可能有個實體的紙張記錄著..
剛剛說的第一次判斷..
就是指..看看要買的東西多寡..
如果東西很多...則推推車..
如果東西不多...則拿籃子..
如果只買一兩樣...則什麼輔助工具都不需要..
以上...
這麼生活化的"流程"..
你有可能會在進商場前..
莫名其妙的拿出紙筆畫流程圖嗎?!
我想對你表達的意思是..
不用把"想流程"或是"畫流程圖"這兩件事搞得好像很複雜很難一樣..
寫程式...
肯定是因為有某種目的才寫..
就算只是練習..
也肯定有你想寫這程式的目的..
例如..你想寫購物車、或是一張問卷、或是一個會員登入...等等
還有阿~!!
你說老師只教語言~
就算真的只教語言..
肯定也把流程教給你了..
只是你沒想到...那就是流程..
教程式語言..
基本的..變數、型態、判斷、輸出...
這不都是流程的一種嗎~?!
只是..你不知如何應用罷了..
所以囉...知道自己根本問題了嗎?
寫程式這條路..說難真的不難..
如何學以致用才是重點!!
當只有少數學生會寫,大部分學生都不會寫時,老師就該檢討自己的教材,而不是怪同學不是寫程式的料,別的課程是有教流程,但卻沒想到可以運用在這,看到老師,直接就把程式寫出來,覺得應該是天份,怎麼也沒想到是經過流程轉換才寫的出來
相信我!!沒有人是本來就會的~!!
就連老師也是如此~~
確實有些人無論學習能力或是邏輯思考能力天生很好
拿我當例子~
我從國中開始就很喜歡算數學~解數學題~
高中開始接觸數位邏輯~也同樣覺得解題超好玩~
但是...
儘管算術與邏輯能力不錯..
後來學習程式設計時..
卻沒有因為這樣的能力而讓寫程式的能力同步提升
到了大學也都是如此~
程式能力普普通通~
雖沒有太爛~卻也強不到哪裡去..
會寫個九九乘法表就在那志得意滿..
現在的我呢
當然是通過後天努力學習
加上找些實務練習
加上經過公司的磨練..前輩的細心教導
現在的程式撰寫能力也能算個中階
至少...能夠像你說的..
一個任務來了..就能夠馬上在腦袋想個大致運作流程~
我相信!!
老師可以直接寫出程式..
也絕對不是先天就會的..
畢竟...人家都當了老師...
早不知教了多少學生去了~
教的內容不會差別到哪裡去~
常教的就那幾個..
程式寫多了..寫久了..當然能夠馬上寫出來啊~
老師寫這麼多次..
根本也可以不用靠什麼流程...
講流程只是針對初學者用的..
流程..對業界來說...
多都是用於複雜系統~
或者需要製作系統運作說明書用的...
所以..加油吧~
看你的發言就可以知道...
你這條路會走得很辛苦~
多找些實務題目練習~
或是自己想實務題目練習~
課本題目多做幾次~
總會有成功的一天的~
看到板大的問題!! 讓我有點吃驚既然你都會把程式碼貼出來且有段落. 那麼就說明你對程式是有概念的. 至於你對於這串程式如何想出來的,我認為這和你的專業有相衝突!! 1.寫程式要先有觀念 2.寫程式要有邏輯 3.寫程式要有除錯 4.寫成是要有執行 以上四點是小弟至今的原則. 你所貼出來的語法很多都是程式的函數,有了函數就可以把參數丟進去,這樣就程式就可以跑了.
我想你可以拿一本VB.NET書,前面幾章都是再敘述函數的,當你看懂後就知道為何程是要這樣寫.
我是有概念,過幾天我動手寫,遇到問題再上來問,會更有概念
有熱情,真的有心要寫的人,不會在那過幾天,過幾天。
再多過不算太多的幾次的幾天,閣下恐怕可以直接退休了。
Samと可樂快跑
真的,我遇過一個寫程式熱衷者可以連續寫程式寫30小時不中斷
我連玩遊戲都沒這麼瘋狂了.....,說過幾天才動手,是真的有心學嗎?? 令人質疑
竹本立里
二十幾年前,我還是學生時,也曾經幹過這種事。
現在體力不如從前,但一天還是得寫超過8個小時……
雖然其實現在想計劃的時間還比較多。
寫程式 先想流程跟邏輯
流程跟邏輯對了,寫成程式碼,通常就不會錯了
流程跟邏輯錯了,寫程式碼 只會越寫越亂,就算真的程式可以執行了
等過了1~2個月後,可能連自己都看不懂當初的程式碼
因為我不會寫程式 ,只能用excel 幫同事處理問題
但是流程會這麼簡單嗎
所以目前已經把excel 的函數寫成這樣了
重點是流程跟邏輯呀
而且程式也是逐步完成,而且是邊做邊改(由一個IF變成3個IF到目前5個IF去判斷),要一步登天 除非你是非常有經驗的老手,而且流程全部畫完沒疏忽
目前excel 的函數又變成這樣了
所以重點是 你動手開始寫程式了嗎
看了李家同的人人都能學會寫程式, 用實際流程圖例子轉換成語言 ,終於知道以前的錯誤是什麼,以前都再專研語言,老師也都只教語言,所以才寫不出來,原來主要是流程圖,畫的出流程圖,就可以轉換成語言了,那就簡單多了
所以我一直再強調流程呀
程式碼只是將流程寫成程式
不同的語言有不同的程式碼
而且流程畫完,程式碼寫完,又試用過,才會知到哪裡有漏洞才回去改流程圖
至於流程圖可不可以簡化 又是另外一件事
講一個簡單的例子
1累加到100=5050 可以用迴圈做
1累加到1萬甚至100萬呢 還是用迴圈做??
別忘了梯形面積公式喔