如何學(xué)網(wǎng)站開發(fā)?
時間:2022-07-30 15:54:02 | 來源:網(wǎng)站運(yùn)營
時間:2022-07-30 15:54:02 來源:網(wǎng)站運(yùn)營
首先聲明一下,本人也是學(xué)生,不是大神,軟件工程在讀,即將畢業(yè)去美帝讀master,巨硬前端實(shí)習(xí),下面說的也是我在軟件開發(fā)成長道路上的一些自己的體會,說的不對的或是不到位的地方請諒解。
想必題主如果搜索網(wǎng)站開發(fā)的課程應(yīng)該能找到不少優(yōu)質(zhì)的內(nèi)容,比如w3school,Udacity,codeschool等等,這些教學(xué)內(nèi)容對于入門、進(jìn)階來說我都覺得不錯(同類學(xué)習(xí)網(wǎng)站中
推薦看國外網(wǎng)站的教學(xué),一是邏輯性普遍比國內(nèi)教學(xué)網(wǎng)站高太多,二是他們的視頻都是精心制作的非常易看)。按照網(wǎng)站的流程來做我覺得已經(jīng)能初步開始使用前后端技術(shù)搭建起一個東西來。
這些編程語言基礎(chǔ)有了之后,前端主要需要專注于Javascript的研究(因為其中只有js是動態(tài)的高級編程語言,html和css一個是標(biāo)記語言,一個是樣式表語言,本身是很少具有邏輯的,當(dāng)然也有css不正交,是藝術(shù)一說,學(xué)精了也不容易,詳情可見這個回答:為什么 CSS 這么難學(xué)? - 方應(yīng)杭的回答 - https://www.zhihu.com/question/66167982/answer/239709754)。
如果題主已經(jīng)對這幾個語言有了一定的了解,熟悉常見標(biāo)簽、方法的使用的話,下面列出幾個中小型網(wǎng)站開發(fā)可能遇到的問題,其實(shí)也就是一個大致的方向(有前后順序):
- 前端
- 如何動態(tài)的操作網(wǎng)頁中的元素(如何操縱DOM模型)
- 如何適配各種網(wǎng)頁尺寸(響應(yīng)式布局)
- 各種工具庫(jQuery,underscore)是什么,怎么用,為什么要用這些庫
- 如何進(jìn)行前后端交互(ajax網(wǎng)絡(luò)請求)
- 各種前端框架(Vue,React,Angular)是什么,怎么用,為什么要用這些框架
- 各種前端構(gòu)建打包工具(Gulp,Webpack)是什么,怎么用,為什么要用這些工具
- (如何把一個網(wǎng)站設(shè)計好看。。)
- (其他各種實(shí)際問題)
- 后端(我看題主說jsp,應(yīng)該是java系,所以下面大部分說的還是java相關(guān)的)
- jsp各種操作
- HTTP請求是什么,如何通過前端發(fā)起,如何通過后端接收
- 如何利用數(shù)據(jù)庫保存數(shù)據(jù)
- 各種后端框架(Spring,SpringMVC,SpringBoot)是什么,怎么用,為什么要用這些框架
- 怎樣的后端結(jié)構(gòu)才是比較適合我的網(wǎng)站的,如何設(shè)計一個通用后端結(jié)構(gòu)
- 對J2EE,REST,后端渲染,前后端分離等名詞的理解
- 用PHP,Java,Javascript(Nodejs)等語言實(shí)現(xiàn)后端都有什么不同
- (其他各種實(shí)際問題)
這些問題在網(wǎng)絡(luò)上都有大量的答案和教程,在遇到問題時,使用stackoverflow(國外論壇),segmentfault(國內(nèi)論壇),github(工ji具lao庫,控件聚集地),codepen(前端調(diào)試,控件),google和百度,可以解決99%的問題。
我看了題主描述的問題當(dāng)中出現(xiàn)的詞匯“總覺得基礎(chǔ)不扎實(shí)”“大致的學(xué)習(xí)方向”,這種方向感的確實(shí)和我2年前的感覺很像,我覺得這是初入軟件開發(fā)的時候大家普遍會有的存在的一種感覺。(也可能題主并并沒有很強(qiáng)烈的這種感覺,那下面的內(nèi)容可能和題主期望的回答有些偏差,可以忽略了。)
從我自身經(jīng)驗來看吧,
中小型網(wǎng)站開發(fā)(甚至說大點(diǎn)是中小型軟件開發(fā))很大程度上是經(jīng)驗導(dǎo)向的。
我也曾經(jīng)看過那些教學(xué)視頻,教學(xué)、字典型書籍,每當(dāng)看完了一些東西之后,都會有“接下來我該做什么”、“我是不是還缺什么沒看”、“好像基礎(chǔ)還不夠”、“好像知道大神們都是怎么學(xué)”的想法?,F(xiàn)在我回頭看來,這些和我心里對學(xué)習(xí)的固有看法有關(guān);
我之前覺得學(xué)好一個東西一定是看很多很多的書,學(xué)會所有的知識點(diǎn),但軟件開發(fā),是個非常吃經(jīng)驗的行業(yè),沒有一本書把所有的情況都記錄全了,有些代碼只有自己寫過了才會知道坑在哪里。比如:
- HTML教學(xué)中看到知道<video></video>標(biāo)簽有什么什么用,怎么用,但教學(xué)中不會告訴你當(dāng)在微信瀏覽器(x5內(nèi)核)中使用video標(biāo)簽需要加入特殊的attribute才會不被微信瀏覽器強(qiáng)制全屏播放。
- CSS教學(xué)中可能會看到transform,transition怎么用,但如何做出阿里云網(wǎng)站首頁的圖形跟隨鼠標(biāo)移動的效果教學(xué)也不會說。
- Javascript教學(xué)中可能會看到如何利用DOM模型操縱HTML,但是可能不會說怎么做“加載更多”,“下滑自動隱藏導(dǎo)航欄”。
上面說到的問題,可能在你開發(fā)的過程中都不需要解決,也可能遇到各種奇葩的書上教程上聽都沒聽過的問題。
所以我覺得最好的學(xué)習(xí)路徑就是做實(shí)際的開發(fā)。在有了語言基礎(chǔ)之后,可以嘗試去實(shí)現(xiàn)自己的一些簡單想法。比如學(xué)習(xí)了前端技術(shù)后可以嘗試模仿著某個你感興趣的網(wǎng)站寫個靜態(tài)頁面,可以去找找有哪些好玩實(shí)用的js框架,然后漸漸的開始設(shè)計自己的網(wǎng)站,實(shí)現(xiàn)網(wǎng)站的各個模塊。
在實(shí)際問題面前,找到解決方案,并且最終解決問題,我覺得這才是軟件開發(fā)進(jìn)步最快也是最實(shí)用的不少學(xué)也不多學(xué)的方法(注意:一定要先有編程語言基礎(chǔ),如果你連js基本語法都搞不清楚,請先去上面所說的學(xué)習(xí)網(wǎng)站繼續(xù)看教程)。這樣的做法其實(shí)也是很多學(xué)習(xí)機(jī)構(gòu)、網(wǎng)站所采用的方法,一般學(xué)習(xí)了語言之后就會有一個實(shí)際的項目,然后老師會分析這個項目應(yīng)該用什么什么框架比較好,其中又用到了什么什么方法,學(xué)員親手去實(shí)現(xiàn)這個實(shí)際項目,在其中自己找到屬于自己的解決方案和理解。
我自身來說吧,大二的時候也是一片懵懂,不知道學(xué)的東西該怎么用,直到我參加了當(dāng)年的微軟創(chuàng)新杯(我不是打廣告的。。),實(shí)際的需求讓我有了明確的目標(biāo),我需要做什么,需要學(xué)什么一下子都明朗了,參加完比賽(當(dāng)年中國區(qū)創(chuàng)新組一等獎,驕傲哈哈)我不僅積累了大量的知識,而且還產(chǎn)生了很多新的想法開了眼界。之后我也參與了很多實(shí)際的商業(yè)項目和比賽,這讓我逐漸有了前端開發(fā),后端開發(fā),安卓開發(fā),項目團(tuán)隊管理,和用戶談需求的種種解決方案的積累。
所以我還是重復(fù)上面的話,
最好的學(xué)習(xí)路徑就是在有語言基礎(chǔ)的條件下發(fā)現(xiàn)/創(chuàng)造問題,做實(shí)際的開發(fā),解決實(shí)際出現(xiàn)的問題,也希望題主在網(wǎng)站開發(fā)的路上進(jìn)步神速。