iT邦幫忙

3

新手入門網頁開發:學習方向的選擇 & 瑣碎疑問

2019.02.20小小更新

剛剛想回應部分回答,但我發現我還沒有權限,所以改天再回應。
如果我選了最佳回答,這串會被鎖定嗎(還能有新回答或回應嗎)?

2019.02.20小更新

先謝謝前輩們的回答和心得分享。抱歉因為最近很忙,沒有太多時間分在這個興趣上,但這個問題提了好些時日了,也不好一直拖著沒回應,所以先簡單地致陳述我近期的學習狀況,還有回覆部分回答。抱歉,文字挺瑣碎的,可以跳著看,就只是這幾天的小感想。

前後端選擇
我目前正在學HTML和CSS,等熟悉後傾向走前端接著學JS,但有點猶豫。如過是想開發出例如「論壇成員在發文時,如果要引用參考文獻,可以很方便地填入基本資料,就能自動選擇想生成出的參考文獻格式。」或Lang8和許多app上互相訂正文法之類的功能,選擇走前端是不是正確的方向。這可能可以另外開個提問。

就如同很多前輩提到的,一開始實作就設定論壇真的太複雜,這些日子進一步了解網頁運作後也明白這點,所以我會先從簡單的網頁開始練習。至於論壇,有空還是打算架來和朋友IRL玩玩,畢竟很多人從入門到放棄是因為缺乏學習上的回饋機制,所以對我而言有朋友一起交流玩耍是我建立回饋機制的方式。

學習動機與提問回顧
再補充一下我的動機,就如同提問原文說的,現階段就只是我的興趣,沒有說很認真想要成為職業。然而,雖然這麼說可能很難獲得共鳴,但我是個在時間管理上,興趣與娛樂也都會設立目的或目標的人。既然都花了時間,就想最有效率地達成目標,例如開心地和朋友IRL一起玩論壇。

先回到一開始的提問:PHP VS JSP。這幾天更了解一點網頁的機制後,我覺得這個提問的意義現在看來非常在狀況外,也白費了很多時間在整理比較的資訊。一開始是因為論壇架設的相關教學,主要提到這三個語言,然而實際上後端的語言遠不止這些,而且哪個適合新手入門,資訊更是超多超雜,難有定論。

再進一步回來看我一開始的提問「安全性高、未來可能的主流語言,且能最有效率地開發出適合目標社群」。安全性這點我大致明白我的誤區了。當時之所以強調安全性是因為如果和朋友一起玩論壇,資訊安全是首要注意的點。至於之所以詢問主流,倒不是因為想找工作,而是發問時我對於程式開發的印象是,這是個變動很快又頻繁的領域,怕自己挑錯入門的語言,還沒學熟語言就凋零導致白忙一場。現在看來似乎還好,至少編程的觀念是通的。

現階段只是興趣,當然如果玩著玩著真的玩出熱情,不排斥投入更多時間並考慮轉職,但這也是很久以後的事了,至少不是今明年的計畫,目前沒有想這麼多。然而,即使只是業餘玩玩,我發現很多規範,例如HTML怎麼縮排,還是會依循Google的指南,所以我仍然希望是以有效率的、不與業界脫離太遠的方式來學習。

資訊搜尋能力
說回新手找資訊的難處,這是個資訊爆炸多,但也很雜的時代。最近邊學邊找資訊,最討厭的無非就是內容農場,尤其是有些還是簡轉繁,看似是一年內的新資訊,但其實是搬運了多年前的舊資訊。

唯一小確幸的是,原本覺得,由於我人生中曾短暫相處過的某些編程者,他們有能力閱讀編程技術相關的英文文章,但未必有能力用英文與外國人作日常溝通或閒聊。同樣的,雖然我有能力和美國室友用英文閒聊和一起生活,但閱讀長篇且充滿技術名詞的編程相關英文文章則是另外一回事。

然而最近實際閱讀後,英文文章比我預想的還要易讀,沒有太複雜的技術名詞(也可能是因為我現在還在入門階段?),很多介面也設計得很美觀易讀,所以之後會盡量改搜尋英文文章為優先。例如剛剛在比較各編輯器,就有2019推薦的排名在搜尋結果第一頁,比中文資訊有效率多了。順道一提,好像很多台灣的前端工作者會用Sublime?然而它卻反而沒在該排名上。我現在是選用Visual Studio Code。

其實還有很多想說的想問的,不過閒暇時間有限,今天先回覆這些。各位前輩的回答我都有看,但不一定上文會提到,再打下去快變成個人blog式流水帳似乎不妥。總之,謝謝各位的經驗分享,希望能繼續保持交流。


原提問:新手架設論壇的語言選擇:PHP VS JSP

我是個新手,自我介紹與學習目標放在文末(原本是打算放在個人主頁,但一直編輯失敗)。

擬這篇發問前,我的初步疑問是,我想學一個安全性高、未來可能的主流語言,且能最有效率地開發出適合目標社群的論壇或網站。

其實已經想選擇先用Discuz開始入門實作,也就是使用PHP開發的論壇引擎Discuz,但又擔心會不會一開始自學就走錯路,事半功倍,所以想詢問前輩們的經驗與看法。

由於我完全沒有任何程式方面的基礎知識,連一本計算機概論都沒讀完過,雖然用Google搜尋閱讀一年內的相關文章,仍然是一知半解。下面是我稍微整理的筆記,可能錯誤很多,希望前輩能指正和給些意見。

各語言的小筆記&初步印象與看法
https://ithelp.ithome.com.tw/upload/images/20190216/20115215TfLn7Lvout.png

目前粗略的印象是,JSP由於跨系統、支援多種伺服器、執行效率與系統安全等,可能是未來的主流語言?所以我是否應該改選擇用JSP開發的論壇引擎?

首先,PHP目前仍然是市佔最高的語言,其次它免費又相對易學,所以依然選擇先從PHP入門。其次,我應該不會一開始就直接學PHP,而是利用由PHP開發的Discuz,先簡易地架設論壇,然後熟悉前端語言後,才回頭學習後端語言。所以先用Discuz入門應該不會繞太多遠路。

至於ASP應該只會逐漸凋零,asp.net也因為不能跨系統而不看好。或者說,基於支持開源的理念,希望PHP仍會有一席之地,但JSP做得更好也是事實。


我的程度與學習條件
完全的新手,連一本計算機概論都沒好好讀過,網頁整體如何運作也是一知半解。現階段由於生活中(工作以外的時間)還有其它正在執行的計畫,所以暫且是將娛樂時間分一部份來學習並實作。打算先一邊實作,一邊補足基礎知識,因為有一點實作成果,才能激勵自己繼續學習。

近期實作目標
架設一個勘用的論壇,供多國朋友一起使用。因此UI需要能切換多種語言,例如繁中、簡中、英文、日文等。
初步打算先邊找資料邊架設,等論壇成功架好運行了,再回頭買一些書,好好把基礎知識補完,例如網路的運作、協議等等,然後重新擬定一個新的實作目標。

學習方向
我希望未來有能力去設計一些介面,具體來說,例如論壇成員在發文時,如果要引用參考文獻,可以很方便地填入基本資料,就能自動選擇想生成出的參考文獻格式。

遠程目標
目前只是先以興趣的方式初做嘗試,以現在只利用零碎時間學習的進度,達成遠程目標恐怕是5年以後或更久,但還是先暫定一個遠程目標,以讓自己有個大方向。
目標有兩個,一是商業上,能開發類似Lang8這類社群網站,最好還能跨手機平台;二是私人上,能開發適合自己社群的平台,需要支援多國語言與其它功能。

weiclin iT邦高手 4 級 ‧ 2019-02-16 13:31:31 檢舉
隨便講幾句:
1. 安全性跟你用什麼語言關係不大, 跟你有沒有學習寫出安全的程式有關
2. 不要去猜未來的主流是啥, 如果你猜得很準, 買樂透比較實際
3. server 要用什麼作業系統並不是很重要的事情
4. php 不適合大型網站? 看看大型網站都用啥: https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
5. 架論壇跟學 php 是兩回事
6. asp.net 在台灣用的可不少, 年代售票的新售票網頁就是用它寫的
7. php 易學難精, 加上中文的舊資料太多, 想學好最好是看原文書, 並不會輕鬆多少
結論: 你要不要認真考慮一下 asp.net
正常應該是 php 跟 asp.net 在考慮吧
另外 asp.net 沒有非得在 windows 上面跑
JSP 則是應該沒什麼人在用了
2
黃彥儒
iT邦高手 1 級 ‧ 2019-02-16 10:08:53

分析得很好,好久沒看到如此認真的新手了。/images/emoticon/emoticon34.gif
我當初在入門(一年前)時,也面臨與你一樣的問題,而我當初的選擇是:Python
那時在比較時,有PHP、Node.js、Golang。
Python在撰寫上,簡單暴力的Request物件與明確的資料型別,簡單易用的SQL ORM,強大的模板選染引擎是一個很好上手的語言;最重要的是社群很豐富,要什麼套件都有。
另外你對於網頁整體如何運作也是一知半解,建議這邊先去研究一下。

froce iT邦大師 5 級 ‧ 2019-02-16 12:43:50 檢舉

不過python「目前」不會變成大型軟體/系統的主流語言要提一下。
或許哪天python變的可以靠LLVM編譯了,速度提升到可以接受的程度的話,那就...

3
froce
iT邦大師 5 級 ‧ 2019-02-16 12:51:12

幾個建議:
1.先弄好英文,你會需要的,至少要弄到不會害怕英文文件。
2.程式語言只是工具,通常基本的都是共通的,只是後面增加的進階概念不同。你說你要用Discuz,那就PHP先學,以後有需要再換,或許你以後根本也不用換,一開始就想到大型系統,野心太大。
3.然後我不建議先架論壇後你再去學,什麼基礎都沒有,看到一堆code請問你有辦法改?
4.先做再說,考慮太多只會一事無成。

反正如果你真的弄出系統,最後你一定會好幾種程式語言。

1
sx0800
iT邦新手 5 級 ‧ 2019-02-16 19:02:27

現在 web 開發是分用前後端來分的,asp/php/asp 已不符目前企業的開放方式。

前端: 基礎必要會 html, javascript, css , jquery, 進階是用框架 vue, react, angular。
後端: 微軟的 c#, java 的 spring boot, php 三選一後再加學 SQL

先決定你是要學前端或後端,幾年後再補另一個。

0
註冊單
iT邦新手 4 級 ‧ 2019-02-17 21:05:43

建議你不要花時間去學習不可能實現事情
業界上很多沒有用到都外包給專業公司處理
都是一份一份合約。

你把時間拿去顧賭場可能比你賺還多
一般專業包案子的人都是一群團隊 一群同學去分工合作完成

至於安全性
這個都會有專業顧機房或者電信公司會購買L2 L3設備會有人幫你建立空間
系統商24小時派人監督機房。

商業上面你必須要學習寫企劃案
接洽生意你必須要有實際上作品
作品怎麼來就是用前一份工作換來用偷來的
沒這麼簡單
還有保固合約什麼時候要添加什麼東西
等你學完版本系統又改

等你學完很多人可能就考到公務員

學這個太晚太浪費時間
五年可以賺很多錢,架設一個論壇後續維護保養費用

五年你在一間公司可能已經是老鳥

1
franklin99
iT邦新手 5 級 ‧ 2019-02-18 10:39:07

近期實作目標

以學習架設一個網站為基礎是個方法。但建議用wordpress就好,DISCUZ實在是太大了。

2
ddtet
iT邦新手 5 級 ‧ 2019-02-18 10:39:39

不知道樓主想要找「安全性高」、「主流」的程式語言的目的為何?
猜測是為了「能用這個程式語言,找到不用花太多心力擔心安全,又穩定(不易被洮汰)」的工作吧!

夢想很好,不過現實很殘酷。
作為一個主流的程式語言,當然就表示很多人(單位)在用,也就越有被「破解/破壞」的價值。
所以「安全性」就不見得總是能很高,有時就算有即時的修補的版本出現,公司也可能因為升級、改版的動作可能危及舊程式的穩定性,而推遲更新的時程。

也有那種早期寫好,關乎大筆金錢交易的程式,就算是古早到很難找到文件的那種。
在它們真的無法運作之前,很少人敢冒著金錢計算出錯的風險去「重構/重寫」它們。
也許某些層面,這種程式也算是一種「主流」吧!只是新手要學門檻很高,不只要懂語法,還要懂點「歷史」。

以個人的經驗,以學 PHP 入門(入行),離開幾年接觸其它程式語言,
最近回頭接觸 PHP 時,整個語法和想法有很大的變化,由偏向函數串接的方式,
變得更多使用物件導向的概念,讓我有種「已經不是我所認識的那個 PHP 了」。

如前面有人提到,知道主流,那不如去買樂透。
曾經被認為會統一網頁多媒體的 Flash 程式,被多方夾殺下「死了又死」,最近終於快要退出舞台了。(這是一個滿長的故事… XD)
曾經被作為「物件導向」標準的 Java 程式語言,一度教學、範例都用它作為標準。
因為母公司被甲骨文公司買走,說使用某些 API 要收費,搞得許多公司壓力很大,討論其它不要增加成本的方案。未來 Java 還會是主流嗎?我不知道。

再說了,又不是你想進的公司,一定剛好就是用你的會的程式語言。
也不是學了某種程式語言,就一定能靠它吃飯一輩子。
反而是把程式的基礎學好了,讓自己能比其它「新手」更快跳到另一種語言,
反而比較「穩」一些。

以上是個人看法……

0
Kepler_Hsu
iT邦見習生 0 級 ‧ 2019-02-18 11:41:46

魚與熊掌難兼得呀

1
浩瀚星空
iT邦大師 1 級 ‧ 2019-02-18 14:34:40

「我想學一個安全性高、未來可能的主流語言,且能最有效率地開發出適合目標社群的論壇或網站。」
現在安全性高不高,是跟你學習的語言沒有關係。而是跟開發人員很有關係。任何一套語言,都可以寫出高安全性的網站跟不安全性的網站。
至於效率而言....這得看你的開發能力而定了。一般來說,如果是比較偏向容易找到資源的。php與asp因該是首選了。jsp現在的資源已經不夠了。
不過php跟aspnet開發的方式相對不同。你要先自行了解一下。aspnet認真來說。會比較偏向於不只是單純開發網頁,更偏向於物件開發應用為主。且其只適合在window系統上。
PHP雖然主要是是linux系統。但它除了可在linux上使用外,也能在windows系統上使用。
原則上首選還是php會比較好。

「其實已經想選擇先用Discuz開始入門實作,也就是使用PHP開發的論壇引擎Discuz,但又擔心會不會一開始自學就走錯路,事半功倍,所以想詢問前輩們的經驗與看法。」
其本上你的認知就已經不對。Discuz並非是引擎、框架的東西。它只是一個很單純的論壇系統。但不可否認的是,它的資源充足。(畢竟是大陸開發的論壇系統)。但相對的它的自由度也是大到,你會學習到不該學習的錯誤用法。如$_G的共用性參數使用的方式。

「各語言的小筆記&初步印象與看法(圖略)」
php並非不適合大型網站。你所得知的是錯誤的訊息。要不然你所了解到的fb。它也是屬於php的一種。(雖然還有搭配其它的)

後面的部份,有很多你還算分析的不錯也沒錯。只是aspnet有aspnet的好處跟缺點。php來說。認真來講,它是可以屬於一種萬用式的觀念。它可以寫的很好,只要你功力夠強。也可以寫的很簡單就可以處理。
aspnet則還是需要有一定的基礎,再加上還是需要一些server的觀念才行。(雖然php也是就是了)

最後能給你的,一但決定好了要使用何種語言。一般來說,你要開始學的,並非是該語言的想關應用。而是要學著如何去了解架構你的程式邏輯。這才是你安全性的第一大步。
且無論你選擇了何種語言。只要邏輯明白了。無論未來要轉型任何一種語言。對你來說絕對不會是一個大問題。會有問題的情況下。一定都是你還學不透所謂的程式設計的一半。

0

說的什麼遠程目標,也只是入門的等級而已,對程式設計不了解的人,以為寫出來就是達到目標,寫出來是最最基礎的,也是最容易做到的,真正困難的地方不在於能否寫出東西,而在於寫出足夠水準的程式,表面上看起來一樣的東西,其價值可能天差地遠,一般的網站可能還遠比不上複雜功能的一個函數的價值,最簡單的例子,就拿你說的Lang-8和fb去比擬,可以嘗試去寫寫fb畫面上的功能,就知道寫出來和寫的好的區別有多巨大了,廢話這麼多,只能說這條路會遠比你想像中的還要來的遙遠,如果入門都要搞五年的話,專業可能要搞個二十年,差不多先餓死了
/images/emoticon/emoticon10.gif

我要發表回答

立即登入回答