前端这条路怎么走,作为一名后端er,说说我的见解
近期都游荡在各大群里看大家的讨论,经常看到关于程序员生涯的一些讨论,颇有感触,最近的国庆的确过得有些堕落,都没怎么更新,仔细相信还是应该分享点经验给大家的!想必大家都经历过面试,这是进入一家公司的必要门槛,面试官总会问“你的职业规划是什么”,那么你怎么回答? 技术经理,项目经理,架构师,有时候这些回到不是你想到的,而是你身边的人说多了,就脱口而出。
我们为何需要职业规划,我在之前的文章中有说过,我们程序员不可能写一辈子代码,我们不是在美国,在美国你就算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,说说我的见解的更多相关文章
- JDK8之后,在java语言这条路怎么走?
前言 自2017年9月以来,Oracle按照免费的开源许可证(类似于Linux的许可证)提供JDK版本 .从Java SE 11(2018年9月,LTS)开始,Oracle不仅为开源许可下的所有用户免 ...
- 为什么我会选择走 Java 这条路?
阅读本文大概需要 2.8 分钟. 作者:黄小斜 文章来源:微信公众号[程序员江湖] 最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C++.前端之类的方向呢,另外还有一些声音:研究 ...
- 为什么我会选择走 Java 这条路?
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点 ...
- IT这条路,适合什么人走。
今天 ,到图书馆Study,呼,不知道为撒,看到那么多新书,那么多新技术(也不能说是新技术,就是自己没有学习过的技术),特别兴奋,学习的疲劳顿时间就没了,感觉什么都想学,都想据为己有,但是...... ...
- [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)
[Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn) 原文:http://community.csdn.net/Exp ...
- 发发牢骚,觉得走c#这条路,不该太浮躁。
发发牢骚,觉得走c#这条路,不该太浮躁.校园招聘结束了,腾讯,华为,百度,完美时空,网易,阿里,让我觉得.NET很受歧视.清一色的C/C++,JAVA,只有网易有一点.Net的,但是都是非核心的运维工 ...
- Sea.js创始人玉伯的前端开发之路
在Web应用程序的用户体验越来越被重视的今天,前端开发的地位也上升到了前所未有的高度,而随之而来的也有更多的挑战. 为了将前端开发者繁重的工作变得简单,框架应运而生.国内也不乏一些非常优秀的前端开发框 ...
- 我的web前端修炼之路从此开始
看过一篇文章,上面说过要想学习一门新技术,从什么时候开始都是不晚的.但对于一名大四的学生,只会一点简单的网页架构,只懂得HTML,CSS,JavaScript简单的一点皮毛,却怎么也说不过去.但也是这 ...
- 【开源专访】Sea.js创始人玉伯的前端开发之路
摘要:玉伯,淘宝前端类库 KISSY.前端模块化开发框架SeaJS.前端基础类库Arale的创始人.本期[开源专访]我们邀请玉伯来为我们分享一些关于前端框架.前端开发的那些事,以及前端大牛是如何炼成的 ...
随机推荐
- CSS中的margin、border、padding区别
CSS padding margin border属性详解 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来 ...
- JavaScript 经典实例收集整理
跨浏览器添加事件 //跨浏览器添加事件 function addEvent(obj,type,fn){ if(obj.addEventListener){ obj.addEventListener(t ...
- 每次点击按钮后,判断页面是否已经有该行,没有弹出repeater的一行,并给他赋一个这行附值,没有则跳出
protected void btnAdd_click(object sender, EventArgs e) { try { //记录第几次追加 pressCount++; typeString.A ...
- SharePoint 2013 通过审计获取文档下载次数
1.创建一个文档库,进入库设置,找到”Information management policy settings”,点进去,如下图: 2.分别设置”Document”.”Folder”两个,如下图: ...
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
Atitit.木马病毒强制强行关闭360 360tray.exe的方法 1. taskkill /im 进程名称1 2. 用 wmic process where name="进程名称&qu ...
- Swift设置自动行高
// 设置行高自适应 tableView.rowHeight = UITableViewAutomaticDimension // 设置预估行高 tableView.estimatedRowHeigh ...
- 一个UILabel不同部分显示不同颜色
我们直接来看效果图吧: 需求:就是表格cell里面的状态Label,前面的"状态:"是黑色,后面的状态值是红色,他们在同一个Label上,怎么做呢? 解答:真的是会者不难,难者不会 ...
- Android中将xml布局文件转化为View树的过程分析(下)-- LayoutInflater源码分析
在Android开发中为了inflate一个布局文件,大体有2种方式,如下所示: // 1. get a instance of LayoutInflater, then do whatever yo ...
- Java基础知识学习(二)
Java语法基础 数据类型.类型转换.运算符.逻辑运算符.参考C#,基本一致 输入输出 输出 System.out.print("abc"); System.out.printf( ...
- git浅谈
我们为什么要使用git 应用场景分析 1.使用svn,已经开发完一个需求,正在开发第二个需求,但是测试需要你立刻将你完成的第一个需求提交,请问现在你该怎么做: svn的解决方法大概是这样的:打开提交视 ...