博主花生也仅仅是自学了2年左右的Web开发,才疏学浅,如文中有不当的地方欢迎各位看官路过指正。
由于是分享自己的学习经历和经验,所以很难完全站在客观的角度来说清这一切,花生会努力的保证本文的客观性,但是可能或多或少都会有一下主观观念在里面,因此,文中的大多意见仅供参考,切勿盲目全信。
博 主自称花生,写本文时(2016-5)为一个普通的大二计算机专业学生,自学Web开发2年左右。在学校中创立Web开发协会,专注分享与开源。多次独立 完成过协会官网搭建,曾用JS写过爬虫Pxer被使用上万余次。主攻方向为Web开发全栈,主修语言为JavaScript与PHP。
Web开发下面也分为很多个小方向,每一个方向的工作区别也是十分大的,按照功能,大致可以分为2个部分
因为后台几乎是无法脱离前端工作的,所以不管你选择哪一个方向的开发,几乎都是要从前端开始学起的。学习前端的过程中,你会对整个的体系有一个大致的了解或猜想,然后就可以选择继续深挖前端或是转战其他方向。
所以,从简单的前端开始学吧。
最简单的前端部分大概就是网页了,利用HTML+CSS可以快速而低成本的搭建一个前端页面,对比其他方式如APP界面、桌面程序要方便的多。
因为较为简单,因此哪怕你在未来转战其他Web开发方向,它也不会耽误你太长时间。
学习方法部分可以参考应该如何开始学习写代码,里面比较详细的说明了初学者在不同时期应该如何学习。
一般来说,全职学习大概1个周就可以把HTML+CSS搞定(注意不要去学JS),能够大致写出来一个基本的页面。这时候,你可以问问自己十分对于前端感兴趣,如果不感兴趣可以重定向到后台部分。
后台部分一般也是由一门语言驱动的,不过与前端统一的HTML+CSS+JS不同,后台语言分为很多流派,大致有下面几种
具体的优劣这里不做任何评价,你可以通过在线招聘网站搜索关键字来查看岗位数。
那么选择了一门后台语言,就可以去找对应的学习资料去学习它了,具体它能够做什么、有何意义在学习过程中自然可以感受的到,不需要花生在这里过多的啰嗦,更不需要学习者去自己百度。关于语言的理解,学会了以后自然水到渠成。
一般来说,后台语言通常功能比较多,可能全职学习你需要2个周才能呢搞定,能够用后台语言封装基本的API和操作数据库。这时候,你可以问问自己十分对于后台感兴趣,如果不感兴趣,请对比前台看自己更喜欢哪一个。对比过程中,注意不仅仅要按照自己的兴趣,还要去对比市场需求与薪资范围。
如果你觉得前端比较适合你,那么你可以继续深挖前端,尽管前端也分为好多部分,不过这不要紧,因为有一门语言可以帮助你全面的了解前端 —— JavaScript
JavaScript是比较有难度的,不过你需要要去学习它,不仅仅是它或许会在你未来的工作中用的到,它还可以帮助你全面认识前端,因为它很“万能”,曾经有这么一句话来形容他
any application that can be written in JavaScript, will eventually be written in JavaScript
——Jeff Atwood
简单来说就是“任何可以用JavaScript来写的应用,最终都将用JavaScript来写”,是不是很有趣?
总之,如果你决定学习前端,那么通过学习JavaScript,你会更清晰自己到底对于哪一方面比较感兴趣、自己适合哪一方面,当然,决定时不要仅仅依靠主观(喜欢、适合等),还要去考虑客观因素(社会是否需要、薪资范围等)。
总之,学了JavaScript以后,你自然会知道怎么做。
想要深挖后台的话就比较简单了,后台语言一般来说就一种,继续往下学就可以了,学到一定程度有可能你就知道自己到底感兴趣哪一方面了,比如对数据库感兴趣、对服务器Linux感兴趣等等等等。
这里所谓的继续往下学是指全面的学,拿PHP来说,一开始入门学习的可能仅仅是PHP的基本语法,而决定深挖后台后,你需要自己尝试在Linux中部署安装LAMP或LNMP环境,然后简单了解如何配置。当建立服务后台时,也要涉及到数据库的基本操作,所以你也需要掌握基本的SQL语句和对应数据库的特性......
当你简单的把后台部分了解了个遍的时候,自然就知道自己喜欢适合的方向了。
老实说,这是最糟糕的方式。
选择全部深挖意味着你对于前端和后台都处于摇摆不定的状态,这简直糟透了,除非你像花生一样有着不可抗拒的力量必须全栈,否则建议你不要这么做,哪怕你天赋异禀!
好吧,其实全部深挖也有一个比较正统的方向,那就是全栈工程师,简单来说就是团队中的润滑剂。一般来说一个团队前台工程师和后台工程师几乎是互相不了解的,这时候如果能有一个人去协调,那么效率就会高效很多。
当然,全栈工程师也有其他的作用,不过主流还是沟通协调团队,充当救火队长的角色。
全栈向的开发者不需要什么方向指导。
开发技术是开发技术,而开发工具是开发工具,二者是不同的。要拥有开发技术的同时,也要掌握基本的开发工具的使用。
千万不要觉得拿出时间来去学习一款软件的使用很不划算,大错特错!很多软件是使用,本身就已经是技术了!
Web开发领域,主流的代码编辑器有2款,一款是notepad++,另一款是Sublime Text,二者各有优点,选择任意一款都是可以的,所以这里不做过多的介绍。
使用过程中要注意编辑器的配置,比如:代码的字体、背景色(建议深色调)、快捷键等,这些虽然看起来很简单微不足道,但是时间却和开发效率有很大的联系。
还要去接触一些比较有名的插件,非常典型的就是Emmet,几乎是必学的。
一定要多多注意使用代码编辑器的功能和快捷键,这非常重要!
Web开发的IDE可谓是满天飞,多到数不胜数,配置也是十分困难。
当你技术慢慢成熟,想要完成一个较大的项目时,轻量级的代码编辑器可能就无法胜任了,或许你可以通过各种各样的插件来将一个编辑器武装成一个IDE,但是花生不建议你这么做,通常他会浪费你大量的时间而收效甚微。
前端比较主流的IDE是Web Storm和HBuilder,这里首推HBuilder,原因有2点:
而后台IDE根据不同的后台语言有所不同,若是PHP的话主流的IDE有PHP Storm和Zend Studio,这里首推Zend Studio,没什么原因,单纯是花生自己用的顺手(Eclipse构架),而且还写了篇关于Zend Studio配置的博文 部署安装ZendStudio
不建议初学者使用IDE来开发,因为IDE太过于庞大,辅助功能太过于强大,对于个人成长有些不利。如果你技术已经比较成熟了,那么配置一款自己喜欢的IDE势在必行,编辑器已经不能满足了!
配置IDE可能需要大量的时间,可能不亚于学习一门语言!许多配置可能你根本不知道是干嘛的,那么可以跳过,但是一定要把所有的配置都看个遍,就像看特定语言的参考手册那样。
做好觉悟,一个IDE可能需要几个周才能适应习惯,适应过程中他会无数次打断你的编码过程,不要急躁慢慢来就好。
团队协作必备。
目前比较主流的版本控制软件有Git和SVN两种,这里首推Git,原因太多太多,最重要的原因是,它和Github.com有很高的亲密度,利用Github可以方便快捷的获取到很多的轮子。
总之,推荐学习Git,全职的学习时间大约在一个周左右,有些难度。
这种类型的软件主要两个功能,一个就是字面意思,可以帮助你控制项目版本,有一个项目开发的时间线,可以随时回滚版本(读存档),另一个就是,它可以协调团队协作。
版本控制软件可以协调团队协作,这个非常重要。由于一个项目可能是有多个开发人员完成,如何合并大家的代码并解决冲突则是一个非常麻烦的问题,而版本控制软件就是来解决这个问题的。所以说,如果你想要参与一些实战项目,不管是有老前辈带的还是某些同辈自由组织的,版本控制软件都是比较有必要的。
Git使用熟练后,可以用一款图形化的Git工具来提高效率,这里推荐SourceTree,如果会原生的Git,操作起来应该不难。
Markdown越来越流行了,连手机端都开始支持Markdown语法了,所以这里简单的推荐下Markdown编辑器。
比较好用的本地Markdown编辑器花生推荐2款,MarkdownPad2和Haroopad,二者各有优点,建议都装。Markdown可以渲染出PDF文件,而Haroopad用起来很顺手,而且支持[TCP]语法。MarkdownPad2是收费的,这里就不提供下载地址了
在线Markdown编辑器推荐Cmd Markdown
花生一般是用Haroopad编辑,MarkdownPad2渲染PDF。在线编辑器虽好,但是收费,暂时承担不能。
当你开始使用下面的学习资源,请确定它适合本时期的自己。什么时期适合学习的学习方式参见应该如何开始学习写代码。
李炎恢老师系列视频教程:www.ycku.com
xHTML视频教程,花生当初学习的时候就是用的这个,亲测给力!不过貌似版本有些老,李炎恢老师录制了HTML5的视频教程了
而关于JavaScript,李炎恢老师的这个视频讲的非常给力,而且由于JavaScript更新缓慢,截止本文撰写时,这个是花生最推荐的JavaScript视频教程
后台的PHP,李炎恢老师的PHP视频教程相当的鼓励,已经不建议观看,而花生这边也没有什么比较好的资源了。
Web开发前端部分,首推W3School,尽管内容比较古老,但是很严谨,还是值得一看的。再就是其他的W3C镜像站也是不错的,比如菜鸟教程。
后台暂时没有找到比较好的在线课程。
Git在线课程推荐廖雪峰的在线教程,讲的说实话一般般,不过确实是花生看到过最好的 ...... 阮一峰前辈的博客中也零零散散整理了几篇关于Git的
配置ZendStudio,花生也写过一篇关于ZendStudio配置的博客,还有关于配置安装Firefox的
Web前端的参考手册首推W3School,菜鸟教程的一般般
关于JavaScript还有一个不错的,阮一峰前辈写的,截止到本文撰写时,阮一峰前辈还没写完......不过大部分已经很全了。还有jQuery参考手册
后台部分,PHP有官方的在线手册,国内的分享工作室将他编译成了独立的CHM文件
啊啊,这里简单说下花生自己是如何学习Web开发的,记录一下流水账,各位看官仅供参考:
高中学过简单的Dreamweaver,感觉挺好玩(大家不要学,已经淘汰了),所以直接在网上百度到的李炎恢老师的JavaScript视频教程,直接看,在几乎不了解HTML+CSS的情况下。
暑假内全职学了60天的JavaScript左右,写了一个JavaScript的爬虫,Pxer,蛮好玩的。然后开始回过头来补HTML+CSS,看的是李炎恢老师的xHTML视频教程,学了多久不记得了,反正时间比较短,中间拿出了很大的时间去维护Pxer。
维护Pxer的过程中发现了自己很多的缺陷,然后去刷W3School的JavaScript参考手册,没记错的话是看了3遍。李炎恢老师的JavaScript视频教程也又看了1遍。
然后有了创建Web开发协会的打算,去学了PHP。由于JavaScript基础比较好,PHP边学边写,直接搭建起了一个协会官网,构架现在看来还是不错的。当时看的李炎恢老师的PHP视频教程,那时候看都已经有点古老了,导致了很多问题,各种百度,道路很崎岖......
然后PHP学的越来越深,接触了ThinkPHP,协会内网不停的重构,中间也遇到了很多小插曲,然后通过百度去克服,比如Linux的LAMP配置、ZendStudio配置,权限分配等等,不过这都不是主线。
然后决定开始使用框架,看了李炎恢老师的Bootstarp视频教程,勉勉强强看完了,感觉视频教程已经不适合我了,jQuery的视频教程看了几集就看不下去了,直接去看的菜鸟课程里的jQuery在线课程,刷了遍jQuery参考手册,发现直接就可以用了。
发现自己的审美差的可以了,然后去买了本《写给大家看的设计师》恶补了下,感觉好多了。
然后开始利用各个开源框架和类库搭建协会内网,截止到本文撰写时,还没写完。
差不多就是这样。
ztx 2016年11月28日 上午8:33
路上经常叫你花生学长的就是我了,涨姿势了,思维多更新,就如软件时常在更新一般。
Winjourn 2016年7月25日 下午11:20
顶一个,写得真不错