自学Web开发2年了,前段时间加了个Web开发前端群,被提议做一个简单的分享,正好借着这个机会简单总结下自学Web开发2年的经历。
由于花生技术不高,所以如果站在主观角度没把握做到不误导其他人,所以本篇博客仅仅站在客观角度来陈述下自己的经历,相信各位看官可以从经历中总结出属于自己的经验,而不是花生的偏见与断论。
这里是花生PeA,某普通本科学校大二学生(开学大三),自学Web开发2年左右。
Github: https://github.com/pea3nut
Blog: http://pea.nutjs.com/
由于花生对于大学课程很失望,所以逃课非常疯狂,并且由于不合群,一个朋友也没有,所以基本上所有的时间都用来学习Web开发了。
要提醒的一点是,由于花生是一个有时间的大学生,所以学习节奏缓慢而漫长,请各位看官根据自身情况相应调整。
个人喜欢的开发方向是全栈,既喜欢JavaScript又喜欢PHP,都不想放弃。
花生是在刚刚高考完开始学习Web开发的。当时记得百度贴吧被XSS攻击了,指向一个.js
文件,觉得很神奇,于是就在网上下载了本Java
的书,打算自学Js...
当然,看完前言就发现了不太对劲,貌似Java
和JavaScript
的关系就是 雷锋 和 雷峰塔 的关系。
当时打算学Js的时候是没有HTML+CSS基础的,只是高中接触过简单的Web开发,其实就是简单的用Dreamweaver来拼凑网页,总共写过的代码不超过10行。
Shift+Del那本Java书后,花生找到了一个不错的Js视频教程,李炎恢老师的:
http://www.ycku.com/javascript/
花生觉得这个视频真不错,后来不断学习过程中就回过头看了几遍,一共看过3周目。
然后高考暑假4个月都用来强啃Js,而且还利用Js写了个简单的爬虫,用来爬取Pixiv.net
网站的图片(类似于花瓣网),原始版本的原理是用模拟用户操作打开窗口,然后利用DOM操作抓取信息。
值得一提的是,这个项目到现在依旧存在,叫做Pxer
,花生将它发布给其他人免费使用并在Github上开源,至今被使用万余次。Github链接:
https://github.com/pea3nut/Pxer
由于要维护这个项目,所以每当Js学到一个部分花生就迫不及待的将它运用在Pxer上。
花生发现,当花生看完视频以为自己已经掌握这项技术后,当实际上运用其实还有很多很多的欠缺。
为了实现爬取功能,不得不使用Js一些较为冷门的功能,于是为了知道Js到底有什么功能,花生开始刷Js的参考手册:
http://www.w3school.com.cn/js/index.asp
大概刷了3遍吧,这里还要推荐一下阮一峰前辈的JavaScript手册,计划有时间也要刷一遍:
http://javascript.ruanyifeng.com/
看视频和手册过程中,花生不要求自己全部记住会用全部的功能,而是仅仅隐约记得有这么个东西,确保可以在自己需要它时通过手册找到它就可以了,这个是花生的做法。
此时花生使用的编辑器是notepad++
,为了记住单词,所以关掉了所有代码提示。
进入大学后,花生发现自己上的大学中没有Web开发的组织,只有一个打ACM的技术组织,于是......
花生就自己创建了一个,在大一上学期,取名为Web开发协会。
在上学期间,逃课把HTML+CSS补了,觉得会了Js回过头理解HTML+CSS非常简单。看的视频是李炎恢老师的xHTML视频教程:
http://www.ycku.com/xhtml/
实际上现在李炎恢老师又录制了新的HTML5视频教程:
http://www.ycku.com/html5/
HTML和CSS的W3school手册没有刷,觉得CSS十分细致而且略深,还有各个浏览器兼容现象,所以没有深挖。
既然创建了协会,总要有个协会的官网吧,花生比较懒,不希望整理各个报名表统计信息什么的,所以就干脆利用寒假自学PHP搭建了一个协会官网。
由于Js相对熟练,所以学习PHP过程中没遇到什么阻碍,仅仅用了一个周就把简单的PHP学完了,并实现了个简单的会员信息管理系统。
学习PHP依旧用的是李炎恢老师的视频,但是由于视频太老,吃了不少亏。
高中接触过Access,会写基本的SQL语句,而且当时服务器用的阿里云送的2年的虚拟主机,所以整体站点搭建出来没有什么特别大的阻碍。
然后技术不断迭代,虚拟主机升级成了VPS,不得不去学习简单Linux,环境部署什么的,具体的步骤花生总结了一篇博客:
利用VMware虚拟机搭建一个Lamp环境+Git仓库
http://pea.nutjs.com/e127
编辑器也更换成了IDE,截止到现在主要用的开发工具按使用频率排序是下面几个:
关于安装、汉化ZendStudio花生也整理了一篇博客:
http://pea.nutjs.com/e279
前端和后台的IDE都是基于Eclipse框架的,所以花生用起来比较顺手,不过花生听说JetBrains套装(WebStorm
+PHPStorm
)也不错.
notepad++让花生用来当做取代Windows原生编辑器了,感觉还不错,换行符和编码切换很方便。
除了Web开发这条主线任务,花生还做了一些支线任务,比如:
中间开发了微信企业号,并以此为创业项目注册了公司创业,打算大干一场......后来发现一个人写不完,而其他队员又帮不上忙,随意暂时搁浅了。
比较喜欢开坑,所以申请当了2年的Firefox校园大使,非常喜欢Firefox。
而最近沉下心来,暂时不搞创业和其他乱七八糟的东西了,潜心学习。
买了一些书,这里简单按花生个人喜欢程度列举下:
以下是花生PeA的一己之见,都是主观的总结和经验,或者说是偏见与独断,请各位看官权衡好:
学完某个功能后,应该马上的去练习使用,可以的话,直接去找一个能够投入使用的项目去练习(如花生经历中:Pxer、协会官网)
刷手册很重要,仅仅知道这么个功能就好,确保需要的时候可以直接找到,没必要完全记住。
学习初期应该关闭代码提示,而项目开发过程中尽可能使用代码提示,能复制绝不手写。
强烈推荐软件开发者去看《软件工程导论》,从高层逻辑模型去设计项目,而不是被框架功能所束缚,框架什么样项目什么样。应该是为了项目而选择框架,不应该是为了框架去调整项目,当然,如果没有软件工程的设计方法,那么一切设计都没什么意义了。
如果想要提高一项技术可以找他的上游(提供者),而如果想把个技术做好,那么可以找他的下游(服务者)。拿Js来说,如果想要提高Js水平,那么可以研究Js编译原理,看各个浏览器是如何解析的,但是如果想要把Js做好,那么就应该着眼于用户交互,如何用Js将用户体验做到极致。
踏入Web开发的原因有2个,一个是梦想,而另一个是兴趣。梦想可以让自己坚持,而兴趣可以提高效率。
还有一个比较重要的原因是,花生非常不合群,讨厌从众,喜欢一个人,所以,导致了花生没有一个朋友,所以没有其他东西分散精力,同时也没有什么其他事情可做。
开发路很长,保持敬畏(偶尔装下逼),坚持下去就好啦
拥有一个远大的梦想。
喜欢将后台和前端粘合在一起、喜欢将设计用户体验好的友好页面、喜欢开新吭。
在大学中曾夸下海口 扬言要毕业月薪要拿20k,现在压力很大......
计划在自己毕业后(还有2年)可以去大公司做全栈或前端开发,积累实力,然后继续做大学中没成功的事情(创业!)。
当梦想实现后希望可以去日本居住并成为一名插画师。
glassy 2016年10月16日 下午9:58
喜欢你的规划,加油哦~利益相关:大二CS学生,同有当插画师的梦想~
小撸 2016年9月4日 下午4:49
20K 可以的哈~ special offer. 不过前端估计没有,研究生算法相关的有。
iamlany 2016年8月18日 上午12:06
握爪, 未来规划是如此的像