回复内容:
我想成为 web development。我是自学的,我了解 front-end & back-end 概念,目前在 treehouse 学习编程。
有很多国外的 bootcamps 程序学校都是学习 ruby on rails,为什么?
如果我想成为 web developer(full stack),我该学习 php/mysql, ruby on rails 或其他?
各位有经验者可以给我建议指引我或学习路线吗?谢谢!^^
假如编程基础不深,目标是 full stack,那么我建议分下面几步走,纯个人见解,欢迎讨论:
Step 1:建立编程思想,要扎实的掌握一门编程语言,了解基本的编程方法、代码组织结构和设计模式。
在这一步里,专注于一门语言是比较重要的,彻底弄懂它。对你来说,以 js 或 php 开始或许比较好,这两个语言入门门槛比较低,ruby 的话学习曲线有些陡峭,不推荐一开始就去啃。在这期间,可以同时学习很多的东西,但要以语言为重点,多写代码、多读一些代码量较小的框架、多问。
如果系统深入的学习完一种语言后,比如 js,然后再看另一种完全没学过的语言,比如 go,会有一种“啊,这两个大同小异嘛”的感觉,并且在短时间内就能用新语言随便写个能跑的小程序,那么你应该已经有足够的积累,可以继续前进了。
Step 2:充实 web development 所需要的知识体系,开始广泛涉猎搭建一个网络应用所需要的各种技术。
有了很好的语言基础后,学习其他任何一种新技术都不会成为问题。想学 mysql?很简单,看看 SQL,看看 mysql api 基本用法,再在网上找一些 mysql 设计的 best practise 什么的,很快就能上手。
在这个时候需要思考的是,一个网络应用,从客户端到服务器端到底涉及哪些你还不懂的知识,会用到哪些开发和调试工具。你可以开始参考 前端知识体系 里面提到的各种东西,开始广泛涉猎,让新东西充斥自己的大脑,最好什么都要了解一点。
这个时候你还需要有一个很好的实践环境,不能满足于自学,而是要进入一个有技术含量的公司(不一定是大公司),了解这个公司从前到后有哪些技术,参与进去,跟设计的人讨论,实践自己的想法,等等。
等自己头脑里已经对各种东西有了基本的印象,已经建立了一个从前到后完整的知识体系,那就算是突破这一步了。
Step 3:选择一个具体的方向深入下去。
也许会很让你失望,full stack 不是重点。所谓的 full stack 并不是什么都精通,而是什么都了解一些皮毛,半吊子而已,所以我觉得这是个半褒半贬的词。对于新手来说很高大上,对于浸淫编程上十年的人来说就是个突破不了的天花板。要只是满足于什么都了解一些,遇到新东西都能够快速的切换上手,那是拼不过未来的小朋友们,也体现不了自身的最大价值的。
选择一项深入下去吧,无论是深入研究浏览器里的各种网页开发技术,还是深入研究数据库性能优化和设计,还是把 node.js 源码研究得像自己前两天刚写的代码一样透彻,这都是非常有价值的。
最后祝题主成为一个厉害的开发者,加油~
建议如果做web developer 你找到的几个语言中首选是PHP,原因有几个,第一PHP的工程师数量要多于其他的语言,交流和讨论问题甚至求助都比较容易,第二活跃的社区和团体组织相对较多,周末的分享活动和学习活动较多,第三工作机会相对较多,特别是入门级新手的工作需求量也是比较大,入门后比较容易找到工作。