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搜尋閱讀一年內的相關文章,仍然是一知半解。下面是我稍微整理的筆記,可能錯誤很多,希望前輩能指正和給些意見。
各語言的小筆記&初步印象與看法
目前粗略的印象是,JSP由於跨系統、支援多種伺服器、執行效率與系統安全等,可能是未來的主流語言?所以我是否應該改選擇用JSP開發的論壇引擎?
首先,PHP目前仍然是市佔最高的語言,其次它免費又相對易學,所以依然選擇先從PHP入門。其次,我應該不會一開始就直接學PHP,而是利用由PHP開發的Discuz,先簡易地架設論壇,然後熟悉前端語言後,才回頭學習後端語言。所以先用Discuz入門應該不會繞太多遠路。
至於ASP應該只會逐漸凋零,asp.net也因為不能跨系統而不看好。或者說,基於支持開源的理念,希望PHP仍會有一席之地,但JSP做得更好也是事實。
我的程度與學習條件
完全的新手,連一本計算機概論都沒好好讀過,網頁整體如何運作也是一知半解。現階段由於生活中(工作以外的時間)還有其它正在執行的計畫,所以暫且是將娛樂時間分一部份來學習並實作。打算先一邊實作,一邊補足基礎知識,因為有一點實作成果,才能激勵自己繼續學習。
近期實作目標
架設一個勘用的論壇,供多國朋友一起使用。因此UI需要能切換多種語言,例如繁中、簡中、英文、日文等。
初步打算先邊找資料邊架設,等論壇成功架好運行了,再回頭買一些書,好好把基礎知識補完,例如網路的運作、協議等等,然後重新擬定一個新的實作目標。
學習方向
我希望未來有能力去設計一些介面,具體來說,例如論壇成員在發文時,如果要引用參考文獻,可以很方便地填入基本資料,就能自動選擇想生成出的參考文獻格式。
遠程目標
目前只是先以興趣的方式初做嘗試,以現在只利用零碎時間學習的進度,達成遠程目標恐怕是5年以後或更久,但還是先暫定一個遠程目標,以讓自己有個大方向。
目標有兩個,一是商業上,能開發類似Lang8這類社群網站,最好還能跨手機平台;二是私人上,能開發適合自己社群的平台,需要支援多國語言與其它功能。
分析得很好,好久沒看到如此認真的新手了。
我當初在入門(一年前)時,也面臨與你一樣的問題,而我當初的選擇是:Python
那時在比較時,有PHP、Node.js、Golang。
Python在撰寫上,簡單暴力的Request物件與明確的資料型別,簡單易用的SQL ORM,強大的模板選染引擎是一個很好上手的語言;最重要的是社群很豐富,要什麼套件都有。
另外你對於網頁整體如何運作也是一知半解,建議這邊先去研究一下。
幾個建議:
1.先弄好英文,你會需要的,至少要弄到不會害怕英文文件。
2.程式語言只是工具,通常基本的都是共通的,只是後面增加的進階概念不同。你說你要用Discuz,那就PHP先學,以後有需要再換,或許你以後根本也不用換,一開始就想到大型系統,野心太大。
3.然後我不建議先架論壇後你再去學,什麼基礎都沒有,看到一堆code請問你有辦法改?
4.先做再說,考慮太多只會一事無成。
反正如果你真的弄出系統,最後你一定會好幾種程式語言。
現在 web 開發是分用前後端來分的,asp/php/asp 已不符目前企業的開放方式。
前端: 基礎必要會 html, javascript, css , jquery, 進階是用框架 vue, react, angular。
後端: 微軟的 c#, java 的 spring boot, php 三選一後再加學 SQL
先決定你是要學前端或後端,幾年後再補另一個。
建議你不要花時間去學習不可能實現事情
業界上很多沒有用到都外包給專業公司處理
都是一份一份合約。
你把時間拿去顧賭場可能比你賺還多
一般專業包案子的人都是一群團隊 一群同學去分工合作完成
至於安全性
這個都會有專業顧機房或者電信公司會購買L2 L3設備會有人幫你建立空間
系統商24小時派人監督機房。
商業上面你必須要學習寫企劃案
接洽生意你必須要有實際上作品
作品怎麼來就是用前一份工作換來用偷來的
沒這麼簡單
還有保固合約什麼時候要添加什麼東西
等你學完版本系統又改
等你學完很多人可能就考到公務員
學這個太晚太浪費時間
五年可以賺很多錢,架設一個論壇後續維護保養費用
五年你在一間公司可能已經是老鳥
近期實作目標
以學習架設一個網站為基礎是個方法。但建議用wordpress就好,DISCUZ實在是太大了。
不知道樓主想要找「安全性高」、「主流」的程式語言的目的為何?
猜測是為了「能用這個程式語言,找到不用花太多心力擔心安全,又穩定(不易被洮汰)」的工作吧!
夢想很好,不過現實很殘酷。
作為一個主流的程式語言,當然就表示很多人(單位)在用,也就越有被「破解/破壞」的價值。
所以「安全性」就不見得總是能很高,有時就算有即時的修補的版本出現,公司也可能因為升級、改版的動作可能危及舊程式的穩定性,而推遲更新的時程。
也有那種早期寫好,關乎大筆金錢交易的程式,就算是古早到很難找到文件的那種。
在它們真的無法運作之前,很少人敢冒著金錢計算出錯的風險去「重構/重寫」它們。
也許某些層面,這種程式也算是一種「主流」吧!只是新手要學門檻很高,不只要懂語法,還要懂點「歷史」。
以個人的經驗,以學 PHP 入門(入行),離開幾年接觸其它程式語言,
最近回頭接觸 PHP 時,整個語法和想法有很大的變化,由偏向函數串接的方式,
變得更多使用物件導向的概念,讓我有種「已經不是我所認識的那個 PHP 了」。
如前面有人提到,知道主流,那不如去買樂透。
曾經被認為會統一網頁多媒體的 Flash 程式,被多方夾殺下「死了又死」,最近終於快要退出舞台了。(這是一個滿長的故事… XD)
曾經被作為「物件導向」標準的 Java 程式語言,一度教學、範例都用它作為標準。
因為母公司被甲骨文公司買走,說使用某些 API 要收費,搞得許多公司壓力很大,討論其它不要增加成本的方案。未來 Java 還會是主流嗎?我不知道。
再說了,又不是你想進的公司,一定剛好就是用你的會的程式語言。
也不是學了某種程式語言,就一定能靠它吃飯一輩子。
反而是把程式的基礎學好了,讓自己能比其它「新手」更快跳到另一種語言,
反而比較「穩」一些。
以上是個人看法……
「我想學一個安全性高、未來可能的主流語言,且能最有效率地開發出適合目標社群的論壇或網站。」
現在安全性高不高,是跟你學習的語言沒有關係。而是跟開發人員很有關係。任何一套語言,都可以寫出高安全性的網站跟不安全性的網站。
至於效率而言....這得看你的開發能力而定了。一般來說,如果是比較偏向容易找到資源的。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也是就是了)
最後能給你的,一但決定好了要使用何種語言。一般來說,你要開始學的,並非是該語言的想關應用。而是要學著如何去了解架構你的程式邏輯。這才是你安全性的第一大步。
且無論你選擇了何種語言。只要邏輯明白了。無論未來要轉型任何一種語言。對你來說絕對不會是一個大問題。會有問題的情況下。一定都是你還學不透所謂的程式設計的一半。
說的什麼遠程目標,也只是入門的等級而已,對程式設計不了解的人,以為寫出來就是達到目標,寫出來是最最基礎的,也是最容易做到的,真正困難的地方不在於能否寫出東西,而在於寫出足夠水準的程式,表面上看起來一樣的東西,其價值可能天差地遠,一般的網站可能還遠比不上複雜功能的一個函數的價值,最簡單的例子,就拿你說的Lang-8和fb去比擬,可以嘗試去寫寫fb畫面上的功能,就知道寫出來和寫的好的區別有多巨大了,廢話這麼多,只能說這條路會遠比你想像中的還要來的遙遠,如果入門都要搞五年的話,專業可能要搞個二十年,差不多先餓死了