不同级别的前端面临的难点各不相同, 不可一概而论;
业务开发的前端难点在于对业务的理解和把控能力;
平台开发的前端难点在于产品化的把控和推进能力.
观点 1: 不同级别的前端面临的难点各不相同, 不可一概而论.
其他回答有说 CSS 难, 有说 CSS 不难的, 每个人水平不同, 这样争论毫无意义. 我刚学前端时觉得 JS/CSS / 浏览器兼容问题都很难, 现在觉得也就那样, 因为前端路子广, 办法总比问题多. 后来觉得要评估好需求, 把控好项目质量比较难, 很多时候我们是在干事, 在解决问题, 不是只埋头写代码, 时间一长你会发现前端工作中, 技术问题往往比较好解决, 反而资源 + 协作问题比较麻烦. 现在对我来说比较难的是快速产品化的能力, 如何从无到有去做出一些有价值的东西.
举一个简单粗暴的例子吧: 阿里前端很多, P5/P6 一大把, 但是 P8/P9 的非常少, 为什么? 进阶的难点在哪里?
前端开发的难点跟前端进阶的难点是非常相似的. 阿里对每个前端层级都有一个标准, 这也从侧面回答了这个问题, 比如对 P5 来说, 难点可能是写好业务代码, 保证其灵活性和可维护性, 能解决各种适配问题; 对 P6 来说则需要独挡一面, 能独立 owner 需求, 而 P7 则需要在某方面技术有深入理解, 等等.
能提出这个问题首先得恭喜题主, 说明题主在当前阶段遇到瓶颈了, 需要向下一个 level 出击了.
观点 2: 业务开发的前端难点在于对业务的理解和把控能力.
业务逻辑开发本身并不是难点, 谁都可以写. 但是对于你自己负责的这块业务, 后续业务的发展方向和潜力, 你有去了解过吗? 当业务方提需求过来时你是只负责执行还是和业务方一起探讨更合理的方案? 你有没有给自己负责的产品提过一些建议? 做过一些改善措施? 如果前端只是作为一个执行者, 作为一种被调度的资源, 那么即使最终项目取得了好的成绩, 跟你有多大关系? 你自己会有多大的成就感?
另外一个很重要的点: 就是对业务的把控能力. 业务方总是会催着上线, 开发时间不断被压缩该怎么办? 进度不如预期怎么办? 开发遇到瓶颈怎么办? 发布新功能翻车了怎么办?
我见过有默默加班保证进度的, 也有跟需求方重新谈延期的, 有发布出问题手足无措的, 也有自己默默修复的, 有遇到瓶颈一筹莫展的, 也有及时跟老板沟通, 跟业务方撕逼的... 如何优雅的处理这些问题, 有时候比写代码更难. 为什么有的人业务代码逻辑混乱, 写的一团糟? 我不相信是智力问题, 反倒更相信是对项目本身没有把控好, 本来排了 5 天工作量的需求被业务方压到了 3 天, 你还能保证写出健壮而不失风度的代码?
观点 3: 平台开发的前端难点在于产品化的把控和推进能力.
做业务时有人给你提需求, 帮你出交互视觉稿, 你只要负责写页面就行了. 但是在支付宝前端, 很多内部平台和技术产品都是技术自己主导, 你需要自己发现问题, 出方案, 设计数据库, 自己出页面, 这是一个从无到有的创造的过程. 并且要保证你做的东西是真正解决问题的, 而不是做一些自己觉得很牛逼实际上并没有解决用户痛点的东西, 用我老板的话说就是对产品的把控能力, 不要跑偏了. 前端是最容易做出产品化东西的工程师了, 因为后端不会做 UI,UI 不会写代码, 唯前端兼顾, 这是最大优势.
再一个就是对产品的推进能力了, 你做的东西可能需要各种资源? 如何争取? 可能牵扯到多方利益? 如何权衡? 东西做出来了如何推广? 如何在用户的一片骂声中奋勇前进?
印象中阿里内部很多平台型产品, 刚开始投入使用时都是一片骂声, 各种问题, 说实话负责这些产品的程序员压力是相当大的, 天天被骂还得彻夜帮别人解决问题, 还得不断优化系统, 你说难不难?
以上三点就是本文所展现的理念, 希望能对大家有帮助.
最后
为了帮助大家让学习变得轻松, 高效, 给大家免费分享一大批资料, 帮助大家在成为全栈工程师, 乃至架构师的路上披荆斩棘. 在这里给大家推荐一个前端全栈学习交流圈:866109386. 欢迎大家进群交流讨论, 学习交流, 共同进步.
当真正开始学习的时候难免不知道从哪入手, 导致效率低下影响继续学习的信心.
但最重要的是不知道哪些技术需要重点掌握, 学习时频繁踩坑, 最终浪费大量时间, 所以有有效资源还是很有必要的.
最后祝福所有遇到瓶疾且不知道怎么办的前端程序员们, 祝福大家在往后的工作与面试中一切顺利.
来源: http://www.jianshu.com/p/aab953d1e92a