写给即将进入前端开发领域的后台开发人员
生活就是这样子,当我们以为可以一直就这样走下去的时候,它会在有一天突然跳出来对你说 : hi, 该转个弯了!
技能是必要的,但想象力更重要。它是不受时空限制的精灵。 开发工程师在注重逻辑严谨的同时若能捎上想象力, 则写出的程序定会拥有一种更奇特的内在之美。
生命短暂,技艺永恒, 追求无境。
前端开发,一条不归之路, 是被迫, 是诱惑,还是挑战? 从电子到软件,一次不算华丽但也还不错的转身,如今要从后台转前端,纠结,徘徊, 是轻轻地,不带走一丝云彩,毅然开始全新之旅, 还是频频顾目,难舍难分,有所眷恋 ?
因为公司需要,要从后台转到前端, 纠结了两个星期。 现在略微想清楚了一些。
我害怕舍弃已经学到的技术、技能和经验吗?
从后台转前端, 将要舍弃的有哪些呢? 具体的开发技术,知识; 开发过程中所获得的关于特定技术的实践经验; 这些在技术进阶、职位晋升过程中起着比较重要的作用; 如果已经有了很多的积累, 所舍弃的还是比较多的, 那就要看这个人的决心和性格了, —— 选择安稳还是冒险。
实际上,具备一两年后台开发经验的初级工程师转前端开发,相比那些通过编写页面进入前端的人拥有更多的优势:
1. 后台开发者通常从比较成熟的后台技术体系中学到了很多有益的思想、方法和技能,比如设计模式、迭代开发等,以及对编程语言、工具、方法和开发框架的运用能力;
2. 他们实际上花费较少的代价就可以很快熟悉和使用前端语言、开发技术及相应框架,达到与同等工作年限的前端人员的水平,并且,由于其特殊的后台开发背景显得与众不同;
3. 更注重工程的可维护性、系统整体和代码质量, 关注前端架构, 而不是陷入编写页面那些琐碎的细节; 这就好比一个学工科的童鞋进入文科领域,智商是足够的,所要弥补的是对美的感知。
前端开发与后台开发的本质是一致的, 都是为了解决问题, 都是运用智慧、技术和框架来构建应用系统的一个组成部分,不同的是关注的侧重点。
我认可前端开发的价值吗?
前端开发无疑是给软件增添了一种灵性之美, 让用户感受到使用更舒畅;当然,除了这些“直接”的价值,是否有长远价值呢? 我希望能作出怎样的成就? 我是否能够以及如何在前端开发领域中实现自己的愿景呢? 此外,有足够有趣好玩的事情吗? 在前端领域有哪些值得探索的前沿技术呢?
1. 前端的最直接价值是为软件增添灵性之美, 增强用户体验;
2. 前端的内涵是数据呈现与交互, 外延其实很广, 除了视觉设计、交互设计等倾向于设计的方面,也有数据可视化技术这种可比拟搜索技术的极具研究性的课题;
3. 即使是开发层面,将前端视为完整应用系统的一个重要组成部分,从工程的角度来审视, 也可以看出前端开发领域不逊于后台的深度,这包括浏览器技术、前端语言设计、框架开发、标准制定、移动终端等很多方面; 前端不仅仅是JS,CSS 之类的页面开发,不是 JS 框架。
4. 没有前端的完美体现, 后台做再多工作,最终效果都会大大打折;
5. 如果有什么新奇的想法,比如人工智能, 也可以在最贴近用户的层面直接做,可以考虑在 Javascript 中嵌入 LISP 语言。 这说起来,可有一点难度了。
前端开发没有技术含量? 非也! 事在人为, 用心的人总能做到最好。前端,大有可为。
选择前端, 将面临怎样的世界?
就像进入一个战场,首先要摸清地形和敌情,而不是贸然冲锋。
想起前端,通常会令人联想起不可胜数的细节微调,浏览器兼容问题等令人颇为头疼的问题, 那真是考验耐心、耗费大好光阴的地方; 相比处于平稳发展期,在编程语言、开发框架、库、组件、软件工程规范等都形成了百花齐放的局面的后台来说,前端确实够“混沌”了。 只能说,前端开发是一个值得挑战的领域,迎接每一个敢于直面“混乱”的勇士。
当然,问题总有解决的办法。 后台开发,不也是从混乱中一步步走出来的么? 细节微调 ? 那就更深入地理解定位和布局知识,精准地计算, 那不就转化为考察严谨的能力了? 浏览器兼容问题, 根本原因在哪里? 是不是能够更加促进理解浏览器技术? 还有不计其数的坑, 一个真的勇士,敢于正视惨淡的人生,敢于面对淋漓的困境, 用精湛的技艺和无畏的胆识创出属于自己的一片天地。
前端ER 如何确立自己的优势?
这通常也是做前端ER容易纠结的困惑之一。花费了大量时间、气力去改进页面外观,去改进用户体验,而在技术精进上似乎看不到明显的东西, 不像后台开发人员,聊起技术侃侃而谈。 前端ER必须探索出一种可靠的职业能力模式,很好地展示自己的技术实力和设计理念,赢得雇主的青睐。
怎样才能与普通的页面编写人员区分出来呢? 首先, 真正娴熟地掌握前端编程的开发,理解其中的机制和原理; 其次,去思考前端架构方面的东西,致力于构造可维护性强、稳定、可靠、快速的系统; 最后,选择一种自己感兴趣的前沿技术来探索,致力于全新的用户体验,去做些别人不曾做过的事情。
其实优势并不仅仅在于自己具备什么,更在于自己是否拥有运用它的天赋和嗅觉。
你能够用自己的所学创造出别人做不出来的东西, 尽管你的所学是通用的;
你在程序、技术、项目、产品上具备广泛的能力、引导力和影响力, 具备无可替代性;
技术能力,只是一个侧面;而人, 是一个综合体。
开发人员未能利用技能去探索自己感兴趣的东西并助推工作,而只是做别人指定的功能,这真是一个遗憾。我们应该运用自己所掌握的技术技能去探索自己感兴趣的领域,并将其应用于现实,产生效益和影响, 而工作只不过是这一行为的衍生品而已。我们需要自己去发现价值,而不是总让别人牵着走。 让那些没有方向感的人去做那些别人指定的事情吧!
前后端的异同?
后端更注重服务的安全、可靠、可用性; 而前端更注重美观、易用性。 两者均追求稳定、性能优化。
在上层,前后端会形成不同的技术体系和平台架构, 而在下层, 两者又是相同的, 语言、引擎、规范,更优雅地执行。
因为两者在本质上是一致的,因此,做前端开发的时候,完全可以从比较成熟的后台体系中汲取有益的启发; 当然,前端更注重细节,后台更注重严谨。
其它一些比较现实的问题
前端的“钱途”?
当然,非常值得关注的问题。 由于计算机软件发展的缘故, 人们最先更注重功能的实现,而前端只是作为一种补充,用来配合后台开发; 而在更注重用户体验的今天及未来,前端已经成为更贴近用户的一种独立力量,将可能引导后台开发,至少与后台平起平坐; 地位提高了,待遇自然会上去。
我的年龄已经不适合转行了吗?
29 岁了。 按说,到传说中“程序员青春期将要结束的年龄” 了,到了要组建家庭的时候了。 多数人已经开始着手往管理、市场方向转了,我还在开发领域跳来跳去。是不是有点不合时宜不识时务呢? 当然, 如果我想更快赚钱发财的话,就不应该来编程了。因此,我觉得还是充满希望和信心的, 在一个领域里不断纵深, 最终能够收获什么,其实难以知晓, 但我相信自己的命运造化即使不算非常发达, 也会有属于自己的一份归宿的。
要赚钱还是要造诣?
如果是赚钱, 就要注意培养自己的客户沟通和维护能力, 逐步自立地打理自己的职业,成为创业者或自由职业者;
如果要造诣, 就要更加地打磨自己的专业能力,做到精透炉火纯青的地步。
与人沟通必定是要耗费很多精力和时间的,赚钱与造诣两者难以兼得。
要达到职业自由,两种途径: 一是赚足够多的MONEY, 获得空闲的状态; 一是达到足够的造诣,到一处允许你做自由研究的地方。
如何做好前端开发?
前端开发的主要目标是更好的用户体验,因此,需要精雕细作, 做到细节极致化; 当然,也不应过分陷入“细节的泥藻” 中, 在细节雕琢的同时也更注重设计的整体感, 此外, 工程、代码的可维护性也是非常重要的方面。
其实,说白了,之所以有那么多的纠结和徘徊, 无非是想给自己营造一个安全的生活圈,不敢擅自逃离。 生活在这个圈子里固然很安稳,但也失去了探索广阔世界的能力。 鱼和熊掌难以兼得。
抛弃疑虑,整装上阵,在前端开发的路上勇敢前行吧,去探索自由的无尽的设计之旅!