花生PeAの技术分享

花生PeAの技术分享

自学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…

当然,看完前言就发现了不太对劲,貌似JavaJavaScript的关系就是 雷锋雷峰塔 的关系。

当时打算学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,截止到现在主要用的开发工具按使用频率排序是下面几个:

  • HBuilder 前端IDE工具,应该是花生使用频率最高的开发工具
  • Zend Studio PHP的IDE工具,写PHP代码的时候会用到
  • notepad++ 纯粹让花生拿来当记事本了,各种提示和自动完成全部关掉,临时想编辑个东西就用这个
  • Sublime Text 偶尔写个网页用

关于安装、汉化ZendStudio花生也整理了一篇博客:

http://pea.nutjs.com/e279

前端和后台的IDE都是基于Eclipse框架的,所以花生用起来比较顺手,不过花生听说JetBrains套装(WebStorm+PHPStorm)也不错.

notepad++让花生用来当做取代Windows原生编辑器了,感觉还不错,换行符和编码切换很方便。

除了Web开发这条主线任务,花生还做了一些支线任务,比如:

  • Git & Github
  • Markdown

中间开发了微信企业号,并以此为创业项目注册了公司创业,打算大干一场……后来发现一个人写不完,而其他队员又帮不上忙,随意暂时搁浅了。

比较喜欢开坑,所以申请当了2年的Firefox校园大使,非常喜欢Firefox。

而最近沉下心来,暂时不搞创业和其他乱七八糟的东西了,潜心学习。

买了一些书,这里简单按花生个人喜欢程度列举下:

  • 《写给大家看的设计书》 书中将的是设计,不管是设计简历、名片甚至是家居摆放什么的都有些启发
  • 《软件工程导论》 本来是大学课本,但是讲的实在太有道理,所有回过头细读了一遍
  • 《Web开发全栈工程师的自我修养》 大道理,感觉讲的不错,内容和本篇博客有些像
  • 《Github入门与实践》 将Github使用的,值得一读。
  • 《鸟哥的Linux私房菜》 没看完。讲Linux的书籍,全面而厚,可以当手册用了
  • 《ECMAScript6 入门》 这本书在Github上是开源的,不建议买,但是还是可以一读的。
  • 《写给大家看的Web设计书》 看完后挺后悔的,买了这么一本书并看完了,讲的是网站从无到有的项目推进(有点像软件工程导论),不是UI设计。

花生PeAの一己之见

以下是花生PeA的一己之见,都是主观的总结和经验,或者说是偏见与独断,请各位看官权衡好:

学完某个功能后,应该马上的去练习使用,可以的话,直接去找一个能够投入使用的项目去练习(如花生经历中:Pxer、协会官网)

刷手册很重要,仅仅知道这么个功能就好,确保需要的时候可以直接找到,没必要完全记住。

学习初期应该关闭代码提示,而项目开发过程中尽可能使用代码提示,能复制绝不手写。

强烈推荐软件开发者去看《软件工程导论》,从高层逻辑模型去设计项目,而不是被框架功能所束缚,框架什么样项目什么样。应该是为了项目而选择框架,不应该是为了框架去调整项目,当然,如果没有软件工程的设计方法,那么一切设计都没什么意义了。

如果想要提高一项技术可以找他的上游(提供者),而如果想把个技术做好,那么可以找他的下游(服务者)。拿Js来说,如果想要提高Js水平,那么可以研究Js编译原理,看各个浏览器是如何解析的,但是如果想要把Js做好,那么就应该着眼于用户交互,如何用Js将用户体验做到极致。

心理活动

踏入Web开发的原因有2个,一个是梦想,而另一个是兴趣。梦想可以让自己坚持,而兴趣可以提高效率。

还有一个比较重要的原因是,花生非常不合群,讨厌从众,喜欢一个人,所以,导致了花生没有一个朋友,所以没有其他东西分散精力,同时也没有什么其他事情可做。

开发路很长,保持敬畏(偶尔装下逼),坚持下去就好啦

未来规划

拥有一个远大的梦想。

喜欢将后台和前端粘合在一起、喜欢将设计用户体验好的友好页面、喜欢开新吭。

在大学中曾夸下海口 扬言要毕业月薪要拿20k,现在压力很大……

计划在自己毕业后(还有2年)可以去大公司做全栈或前端开发,积累实力,然后继续做大学中没成功的事情(创业!)。

当梦想实现后希望可以去日本居住并成为一名插画师。

  • 浏览:2095
  • 评论:3

发表新的回复

glassy 2016年10月16日 下午9:58

喜欢你的规划,加油哦~利益相关:大二CS学生,同有当插画师的梦想~

回复

小撸 2016年9月4日 下午4:49

20K 可以的哈~ special offer. 不过前端估计没有,研究生算法相关的有。

回复

iamlany 2016年8月18日 上午12:06

握爪, 未来规划是如此的像

回复