近期都游荡在各大群里看大家的讨论,经常看到关于程序员生涯的一些讨论,颇有感触,最近的国庆的确过得有些堕落,都没怎么更新,仔细相信还是应该分享点经验给大家的!想必大家都经历过面试,这是进入一家公司的必要门槛,面试官总会问“你的职业规划是什么”,那么你怎么回答? 技术经理,项目经理,架构师,有时候这些回到不是你想到的,而是你身边的人说多了,就脱口而出。

我们为何需要职业规划,我在之前的文章中有说过,我们程序员不可能写一辈子代码,我们不是在美国,在美国你就算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

最后要说的,不忘初心!持之以恒!

前端这条路怎么走,作为一名后端er,说说我的见解的更多相关文章

  1. JDK8之后,在java语言这条路怎么走?

    前言 自2017年9月以来,Oracle按照免费的开源许可证(类似于Linux的许可证)提供JDK版本 .从Java SE 11(2018年9月,LTS)开始,Oracle不仅为开源许可下的所有用户免 ...

  2. 为什么我会选择走 Java 这条路?

    阅读本文大概需要 2.8 分钟.   作者:黄小斜 文章来源:微信公众号[程序员江湖] 最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C++.前端之类的方向呢,另外还有一些声音:研究 ...

  3. ​为什么我会选择走 Java 这条路?

    ​本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点 ...

  4. IT这条路,适合什么人走。

    今天 ,到图书馆Study,呼,不知道为撒,看到那么多新书,那么多新技术(也不能说是新技术,就是自己没有学习过的技术),特别兴奋,学习的疲劳顿时间就没了,感觉什么都想学,都想据为己有,但是...... ...

  5. [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)

    [Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn) 原文:http://community.csdn.net/Exp ...

  6. 发发牢骚,觉得走c#这条路,不该太浮躁。

    发发牢骚,觉得走c#这条路,不该太浮躁.校园招聘结束了,腾讯,华为,百度,完美时空,网易,阿里,让我觉得.NET很受歧视.清一色的C/C++,JAVA,只有网易有一点.Net的,但是都是非核心的运维工 ...

  7. Sea.js创始人玉伯的前端开发之路

    在Web应用程序的用户体验越来越被重视的今天,前端开发的地位也上升到了前所未有的高度,而随之而来的也有更多的挑战. 为了将前端开发者繁重的工作变得简单,框架应运而生.国内也不乏一些非常优秀的前端开发框 ...

  8. 我的web前端修炼之路从此开始

    看过一篇文章,上面说过要想学习一门新技术,从什么时候开始都是不晚的.但对于一名大四的学生,只会一点简单的网页架构,只懂得HTML,CSS,JavaScript简单的一点皮毛,却怎么也说不过去.但也是这 ...

  9. 【开源专访】Sea.js创始人玉伯的前端开发之路

    摘要:玉伯,淘宝前端类库 KISSY.前端模块化开发框架SeaJS.前端基础类库Arale的创始人.本期[开源专访]我们邀请玉伯来为我们分享一些关于前端框架.前端开发的那些事,以及前端大牛是如何炼成的 ...

随机推荐

  1. CSS中的margin、border、padding区别

    CSS padding margin border属性详解 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来 ...

  2. JavaScript 经典实例收集整理

    跨浏览器添加事件 //跨浏览器添加事件 function addEvent(obj,type,fn){ if(obj.addEventListener){ obj.addEventListener(t ...

  3. 每次点击按钮后,判断页面是否已经有该行,没有弹出repeater的一行,并给他赋一个这行附值,没有则跳出

    protected void btnAdd_click(object sender, EventArgs e) { try { //记录第几次追加 pressCount++; typeString.A ...

  4. SharePoint 2013 通过审计获取文档下载次数

    1.创建一个文档库,进入库设置,找到”Information management policy settings”,点进去,如下图: 2.分别设置”Document”.”Folder”两个,如下图: ...

  5. Atitit.木马病毒强制强行关闭360 360tray.exe的方法

    Atitit.木马病毒强制强行关闭360 360tray.exe的方法 1. taskkill /im 进程名称1 2. 用 wmic process where name="进程名称&qu ...

  6. Swift设置自动行高

    // 设置行高自适应 tableView.rowHeight = UITableViewAutomaticDimension // 设置预估行高 tableView.estimatedRowHeigh ...

  7. 一个UILabel不同部分显示不同颜色

    我们直接来看效果图吧: 需求:就是表格cell里面的状态Label,前面的"状态:"是黑色,后面的状态值是红色,他们在同一个Label上,怎么做呢? 解答:真的是会者不难,难者不会 ...

  8. Android中将xml布局文件转化为View树的过程分析(下)-- LayoutInflater源码分析

    在Android开发中为了inflate一个布局文件,大体有2种方式,如下所示: // 1. get a instance of LayoutInflater, then do whatever yo ...

  9. Java基础知识学习(二)

    Java语法基础 数据类型.类型转换.运算符.逻辑运算符.参考C#,基本一致 输入输出 输出 System.out.print("abc"); System.out.printf( ...

  10. git浅谈

    我们为什么要使用git 应用场景分析 1.使用svn,已经开发完一个需求,正在开发第二个需求,但是测试需要你立刻将你完成的第一个需求提交,请问现在你该怎么做: svn的解决方法大概是这样的:打开提交视 ...