如何学网站开发?
时间:2022-07-30 15:54:02 | 来源:网站运营
时间:2022-07-30 15:54:02 来源:网站运营
首先声明一下,本人也是学生,不是大神,软件工程在读,即将毕业去美帝读master,巨硬前端实习,下面说的也是我在软件开发成长道路上的一些自己的体会,说的不对的或是不到位的地方请谅解。
想必题主如果搜索网站开发的课程应该能找到不少优质的内容,比如w3school,Udacity,codeschool等等,这些教学内容对于入门、进阶来说我都觉得不错(同类学习网站中
推荐看国外网站的教学,一是逻辑性普遍比国内教学网站高太多,二是他们的视频都是精心制作的非常易看)。按照网站的流程来做我觉得已经能初步开始使用前后端技术搭建起一个东西来。
这些编程语言基础有了之后,前端主要需要专注于Javascript的研究(因为其中只有js是动态的高级编程语言,html和css一个是标记语言,一个是样式表语言,本身是很少具有逻辑的,当然也有css不正交,是艺术一说,学精了也不容易,详情可见这个回答:为什么 CSS 这么难学? - 方应杭的回答 - https://www.zhihu.com/question/66167982/answer/239709754)。
如果题主已经对这几个语言有了一定的了解,熟悉常见标签、方法的使用的话,下面列出几个中小型网站开发可能遇到的问题,其实也就是一个大致的方向(有前后顺序):
- 前端
- 如何动态的操作网页中的元素(如何操纵DOM模型)
- 如何适配各种网页尺寸(响应式布局)
- 各种工具库(jQuery,underscore)是什么,怎么用,为什么要用这些库
- 如何进行前后端交互(ajax网络请求)
- 各种前端框架(Vue,React,Angular)是什么,怎么用,为什么要用这些框架
- 各种前端构建打包工具(Gulp,Webpack)是什么,怎么用,为什么要用这些工具
- (如何把一个网站设计好看。。)
- (其他各种实际问题)
- 后端(我看题主说jsp,应该是java系,所以下面大部分说的还是java相关的)
- jsp各种操作
- HTTP请求是什么,如何通过前端发起,如何通过后端接收
- 如何利用数据库保存数据
- 各种后端框架(Spring,SpringMVC,SpringBoot)是什么,怎么用,为什么要用这些框架
- 怎样的后端结构才是比较适合我的网站的,如何设计一个通用后端结构
- 对J2EE,REST,后端渲染,前后端分离等名词的理解
- 用PHP,Java,Javascript(Nodejs)等语言实现后端都有什么不同
- (其他各种实际问题)
这些问题在网络上都有大量的答案和教程,在遇到问题时,使用stackoverflow(国外论坛),segmentfault(国内论坛),github(工ji具lao库,控件聚集地),codepen(前端调试,控件),google和百度,可以解决99%的问题。
我看了题主描述的问题当中出现的词汇“总觉得基础不扎实”“大致的学习方向”,这种方向感的确实和我2年前的感觉很像,我觉得这是初入软件开发的时候大家普遍会有的存在的一种感觉。(也可能题主并并没有很强烈的这种感觉,那下面的内容可能和题主期望的回答有些偏差,可以忽略了。)
从我自身经验来看吧,
中小型网站开发(甚至说大点是中小型软件开发)很大程度上是经验导向的。
我也曾经看过那些教学视频,教学、字典型书籍,每当看完了一些东西之后,都会有“接下来我该做什么”、“我是不是还缺什么没看”、“好像基础还不够”、“好像知道大神们都是怎么学”的想法。现在我回头看来,这些和我心里对学习的固有看法有关;
我之前觉得学好一个东西一定是看很多很多的书,学会所有的知识点,但软件开发,是个非常吃经验的行业,没有一本书把所有的情况都记录全了,有些代码只有自己写过了才会知道坑在哪里。比如:
- HTML教学中看到知道<video></video>标签有什么什么用,怎么用,但教学中不会告诉你当在微信浏览器(x5内核)中使用video标签需要加入特殊的attribute才会不被微信浏览器强制全屏播放。
- CSS教学中可能会看到transform,transition怎么用,但如何做出阿里云网站首页的图形跟随鼠标移动的效果教学也不会说。
- Javascript教学中可能会看到如何利用DOM模型操纵HTML,但是可能不会说怎么做“加载更多”,“下滑自动隐藏导航栏”。
上面说到的问题,可能在你开发的过程中都不需要解决,也可能遇到各种奇葩的书上教程上听都没听过的问题。
所以我觉得最好的学习路径就是做实际的开发。在有了语言基础之后,可以尝试去实现自己的一些简单想法。比如学习了前端技术后可以尝试模仿着某个你感兴趣的网站写个静态页面,可以去找找有哪些好玩实用的js框架,然后渐渐的开始设计自己的网站,实现网站的各个模块。
在实际问题面前,找到解决方案,并且最终解决问题,我觉得这才是软件开发进步最快也是最实用的不少学也不多学的方法(注意:一定要先有编程语言基础,如果你连js基本语法都搞不清楚,请先去上面所说的学习网站继续看教程)。这样的做法其实也是很多学习机构、网站所采用的方法,一般学习了语言之后就会有一个实际的项目,然后老师会分析这个项目应该用什么什么框架比较好,其中又用到了什么什么方法,学员亲手去实现这个实际项目,在其中自己找到属于自己的解决方案和理解。
我自身来说吧,大二的时候也是一片懵懂,不知道学的东西该怎么用,直到我参加了当年的微软创新杯(我不是打广告的。。),实际的需求让我有了明确的目标,我需要做什么,需要学什么一下子都明朗了,参加完比赛(当年中国区创新组一等奖,骄傲哈哈)我不仅积累了大量的知识,而且还产生了很多新的想法开了眼界。之后我也参与了很多实际的商业项目和比赛,这让我逐渐有了前端开发,后端开发,安卓开发,项目团队管理,和用户谈需求的种种解决方案的积累。
所以我还是重复上面的话,
最好的学习路径就是在有语言基础的条件下发现/创造问题,做实际的开发,解决实际出现的问题,也希望题主在网站开发的路上进步神速。