近期都游荡在各大群里看大家的讨论,经常看到关于程序员生涯的一些讨论,颇有感触,最近的国庆的确过得有些堕落,都没怎么更新,仔细相信还是应该分享点经验给大家的!想必大家都经历过面试,这是进入一家公司的必要门槛,面试官总会问“你的职业规划是什么”,那么你怎么回答? 技术经理,项目经理,架构师,有时候这些回到不是你想到的,而是你身边的人说多了,就脱口而出。
我们为何需要职业规划,我在之前的文章中有说过,我们程序员不可能写一辈子代码,我们不是在美国,在美国你就算50多少,60多少也能很有底气的写代码,但是似乎在中国,你干到40岁还在写代码,也许会被人瞧不起。见过很多30岁不到的程序员,会因为这样而困惑,但是人生必经年轻,很多事情值得努力
每次有人说迷茫了,大多的原因就是自己到了瓶颈,不知道该如何突破,不论你是FEer还是BEer,都会这样,技术这个东西只能慢慢去摸索,去查阅国外文档,看源码, java或者js,都一样,这个时候你付出的努力也许是别人的10倍,小编我在一个QQ群中,成员大多都是刚毕业的,或者还在学校的,极少数有个一点工作经验,那些人,很努力,对技术充满热情,整个国庆,没有一天是停下来的,都在讨论问题,有时候夜间出来嘘嘘都能看到手机qq群里还在讨论着,每个人都有过这样的热情,当初的我也是一样
好吧,好吧,今天我们不谈后端,聊聊改如何提升自己的前端技能
初级前端:
倘若你只是想学好JS的一些简单技能,那么预解析、作用域、作用域链、|| &&、原始类型、引用类型、闭包、for循环、多重for循环、递归、原型链、继承等等,这些使用原始javascript来写的代码,必须会,曾经我写过纯js代码,不用任何的框架,这样,非常锻炼人,而且纯js在未来非常持续,据说微信小程序就是如此
这些技能必须学会!静下心来慢慢写,慢慢实现,慢慢去了解,比如你用一个礼拜的时间弄懂“this”这个用来干嘛的,不要问我为何要用7天,7天的时间理解this很正常,你可以多些很多代码来了解他,去查阅相关资料,this,在任何面试中,我是必问的,这些你不学,永远入不了门。好好打好js基础,这个才是最重要的
高级前端:
回调函数,绑定,js面向对象,封装、异步ajax、学习算法、设计模式等。这条路非常长,不是一口气吃成胖子,对于这个,没有捷径,只能通过自己的努力去学,去做。最后你在去看一些框架的源码,比如backbone,angularJS等等
技能拓展:
如今的前后端调用,不仅仅是HTML与后端,也有手机端,所以,了解HTTP的协议是必须的,还需要了解一定的后端技能,比如nodejs(这个算是前端了)、php、python、java等等、只需要了解就行,当然你如果要做全栈,可以都学,只有时间充足。
HTTP,restful,设计模式,算法,这些在如今互联网开发中都会用到,而且是通用的,不论是手机端还是HTML与后端交互,比如一个图片上传,同样一个接口可以同时被js,android还有ios调用。
小编我没在这里没有提到各种JS框架,因为小编我也不太会,我仅仅只会的jquery,backbone而已,当然我没有说哪个重要哪个不重要,搞懂了,其实都一样,都通的,比如后端开发人员精通了struts后,再学习springmvc后那就简单的一比,因为大部分框架的核心都是差不多的,学会思想,学会如何运用即可。
另外,作为一名前端,要关注新技术,移动互联网发展如火如荼,甚至几天就能出一个js框架,你可以不会,但是需要关注,可以去国外相关网站订阅一些有用的资料,每天会以邮件的形式发给你,虽然是全英文的,但是也值得一看。
像CSS/CSS3, HTML/HTML5这个我就不多说了,玩前端是必须会的,浏览器兼容啦,响应式布局啦,等等
下面这段引用我远在美国的王组原话:
不论你是前端还是后端,总会有一些问题是你需要考虑的,比方说: 不管开发平台,开发语言,框架如何变化选择;不管你是选择JAVA/Servlet, Ruby/Rails, Python/Django, NodeJS/Express, 你都会面对一些任何平台,任何语言,任何开发都会面对的问题。 0. Logging system怎么做,什么样的信息需要被log,用什么工具去分析log。 0. 分布式下的application session 如何管理,store in memory or db? session sticky or non sticky? 0. Services层的粒度如何划分,现在流行的microservices粒度划分到最小,那么service与service之间的通信怎么做 0. 通信问题又牵涉出最基本的IO,blocking IO, non-blocking IO, asynchronous IO. 0. 一套完整的业务流程可能要经过多个services, 这就牵涉到跨服务的事物问题,如何保证事务的一致性,强一致?最终一致? 0. DB 要如何部署才能应对高并发,高性能,还要保证容错,可扩展。如何应对多数据源,如果做到多数据源对sevices透明化。 0. RDMBS OR NON-SQL? 0. DB cache怎么做,热点数据缓存还是全部数据缓存,缓存服务器会不会成为性能瓶颈,分布式缓存策略如何做,如何保证可扩展性? 0. 大型网站自然也需要引入search。 0. 大数据时代如何对这些数据做挖掘,做用户个性化定制 0. 人工智能?Machine Leanring? 前端技术,高性能个人电脑的出现,多终端的普及,给前端技术也带来了很大的发展和挑战 0. 优化优化再优化,节省用户资源,尤其是手机端要减少通信交互 0. MVC,AngularJS, Backbone 0. jQuery? 有人说过时了,不会用最新的React不是合格的前端工程师? 0. SASS, LESS,BEM,连CSS都要面向对象了。 0. 各种UI plugin. 0. 一次性页面render VS 多点AJAX 互动。 0. SEO
最后要说的,不忘初心!持之以恒!