如梦初醒:尽快转型成为一名Web全栈工程师

最近10年,Web软件的设计思想和开发技术都发生了巨大的变化。特别是iPhone等智能手机成为移动端的主流以后,传统的浏览器-网站这种BS架构,逐渐演变成前后端分离的架构。后端将展示功能剥离出去,按照json以及RESTful接口规范,统一提供数据给APP、Web网页,HTML5网页前端。

这几年PHP、Java、Python、Ruby等语言的各种Web开发框架层出不穷。与过去的一种框架提供完整的技术实现不同,现代的框架都放弃了所有的轮子都自己开发的做法,转为主动吸纳优秀的开源模块。框架本身慢慢演变成各种开源模块的集成方案。连Web软件最主流的php语言,也开始使用composer这一模块管理工具,大量引用Github上面的优秀资源。这方面最典型的PHP框架代表就是Laravel框架。

与此同时,Web UI相关的技术也有了突飞猛进的发展。UI也已经走向框架化。自从Bootstrap引领了网页响应式布局的潮流以后,Material、Foundation等各种UI框架前仆后继。另外,jQuery的持续发展以及Angular等新JavaScript框架的发展,也极大提升了单页面应用(SPA)的开发效率和性能。这些前端框架的出现,以及互联网上大量免费的网页模板,使得后端的程序员能够在一些UI标准化比较高的Web项目中摆脱对专业美工设计以及前端工程师的依赖,短时间内就能开发出来外观看起来比较专业网站。

作为在传统公司中工作多年的Java开发人员,尤其是开发商用系统的Java程序员,由于工作中很少用到这么多新的技术,很容易忽视对这些新技术的学习和运用。再加上国内封闭的网络环境,以及英语的语言障碍,可以说很多在商业软件公司工作的Java程序员正在被新技术边缘化。

总结自己这些年各种失败的教训和感悟,对于学习新技术新知识来说,其实最大的阻力还是来自于自身的懒惰。针对和我一样思维还停留在5年前,甚至10年前的软件技术人员,真心建议尽快对自己来一次彻底的转变。

强烈建议!TODO:

  1. 立刻淘汰掉windows电脑,在能力范围内尽可能买到高配的Macbook pro。即便是公司不给配置Mac电脑,哪怕借钱都要尽快配置一台Mac。除了.Net等Windows平台下的开发者以外,强烈建议不再使用Windows平台做Web开发。

  2. 立刻说服团队淘汰svn甚至古老的cvs,尽快切换为git版本控制工具。对于私有项目,可以考虑自建git服务器,但是一定要尽快拥抱github上面的资源,从中找到值得长期关注并使用的开源项目。

  3. 如果是初创公司或者有创业打算的程序员,强烈推荐Ruby on Rails框架。虽然Ruby这种语言和Java、PHP这些风格较为正统的语言对比起来有点另类,但是对于有经验的程序员来说,学习Ruby on Rails并不是很难。国内的程序员会碰到的主要障碍是大部分好的教程资料都是英文的,还有就是访问国外网站不方便。

  4. 关注RESTful接口的设计,适应web前后端分离,以及API的标准化。

  5. 关注各种云服务的接口,尽量亲自编程一次去尝试对接各大网站服务接口,例如微信公众号、支付宝、百度云、七牛、DNSPod、以及国外的各种云服务。

  6. 整理几套自己的基础网站代码,包括CMS类,会员管理类,微信公众号平台类,以便于在未来的中小项目开发中能够迅速完成标准化功能部分的开发。

  7. 一定要强化英语的阅读能力。一旦适应了以后,你会发现其实阅读英文文档并不难。软件开发类英文文档的词汇其实还是局限在自己的专业领域,词汇量并没有那么大,事实上比看懂原版的美国大片要容易。

  8. 一定要有一个稳定的梯子,Youtube以及Google上才能获取有价值的学习信息。在百度上很难获取到有用的信息。

  9. 学习Objective-C, 学习Android的开发,争取能达到在参考其他开源项目的基础上,能够快速实现一些功能比较标准的app的原型开发。

  10. 一定要对新鲜事物保持兴趣,愿意了解尝试新技术。

  11. 一定要写技术博客,分享自己的学习经验的同时,锻炼自己的文笔。目前个人技术博客+Github上自己的开源项目,是年轻人最有力的求职简历。

Share Comments
comments powered by Disqus