WEB前端⼯程师–职业⽣涯规划
众所周知,搞开发的职业不论是哪个⽅⾯都不是简单的职业,WEB前端⼯程师更是如此。两年前,前端这个词还没有被关注,⼏乎所有⼈都认为那就是个写html的,其实现在WEB前端需要掌握的知识实在是太多了。千万不要以为会写html和css或者再加点javascript就⾃称web前端了。
WEB前端的职位规划:
关于⼀个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭⾃⼰的选择,只要是⾃⼰选定了,坚持去认真⾛,就好。在这⾥,我只是简要说⼀下⾃⼰对于这块⼉内容的理解。有⼀个观点想要分享给⼤家的是:任何规划和⽬标的实现都依赖于知识的积累,⽽知识的积累来源于学习及学习后⼤量的实践。我提供⼀个实践途径,我们可以在⼯作之余的时间在⽹上或外包公司那⾥接⼀些私单做,因为⽬标不是赚钱,我们可以⽤最低的价格来提升⾃⾝竞争⼒,获得⼤量订单就意味着获得⼤量的实践机会,同时,还有⼀些收⼊作为⼯作成就感之外的安慰奖,还是不错的。
⼀、职业⽅向定位
⾸先,只有确定好⾃⼰的职业⽅向,才能做好职业规划。在我看来,做WEB前端技术能够到的职业⽅向有以下⼏种:
(1)资深WEB前端⼯程师
这个⽅向算是⼀个WEB前端最基本的选择了,在国外,很多⽼外都能够把⾃⼰的专业做到极致,能⼀辈⼦就在⼀个专业领域不断学习和积累。主要在于内因和外因两⽅⾯,内因是⽼外通常思想⽐较简单直接,容易⼀直专注于⼀个领域;外因是国外的环境很好,能够良好的⽀撑这样的职业发展道路。反观国内,从内因来讲,WEB前端技术⼈员还是蛮浮躁的,通常会因为WEB前端知识的更新速度太快⽽觉得学习起来⾟苦,最终转向后台或其他道路。从外因来讲,WEB前端⼈员没有获得公平的待遇,可能从HTML页⾯制作就开始并沿袭下来的,从来WEB前端⼈员都⽐后端⼈员低⼀等,貌似前端就是“浅显”的代名词、后端就是“深奥”的代名词,这也直接造就了前端⼈员的收⼊⽆法和后端⼈员媲美,同时直接影响到前端⼈才市场的活跃程度。另⼀⽅⾯,前端的技术⼊门较容易,造成另⼀个极端情况:⼈员泛滥、⼈才稀缺。我想对所有的WEB前端⼯程师说:⾯包总会有的,要耐得住寂寞!我个⼈⽐较推荐这个职业发展⽅向,因为,在这个⽅向下,只要⾜够耐⼼、厚积薄发,成功的概率是⾮常⾼的。同时,这是⼀条最单纯的路,我们更多的是花费精⼒在技术的钻研上,⽽不是办公室政治等其它琐事。(2)资深WEB架构师
说功利点⼉,我喜欢这个⽅向,既兼顾了⼯作的单纯性、⼜能够减少实际Coding的⼯作量能腾出更多时间钻研技术。在国内,WEB前端⼯程师遇到较多的情况是总是反复编写着同样的代码,总是⾯对着同样的技术和产品,容易感觉枯燥。由于我们拥有最为⼴泛的WEB相关知识沉淀,使得我们更加容易
成为⼀名架构师。这个职业发展⽅向不如第⼀种来得平滑,主要是作为⼀名架构师不得不学习:后端技术、DBA、Platform等内容,⽽这种学习通常需要实际操⼑做项⽬,不是⾃⼰在家⾥写两个Demo就好的,这就势必会遭遇⼀段时间的阵痛期。虽然不是很平滑,但是,对于⼀个⼤局观好、悟性好、知识⾯⼴的前端⼯程师,我推荐你们努把⼒,⾛⼀条光荣的架构师之路吧。
(3)⾃⼰创业
其实,⾃⼰创业是最好的道路、也是成功率最低的道路,挑战和机遇并存。这⾥,作为⼀个前端技术⼈员,需要将⾃⼰的视野更多放在⾏业的动态、产业链的动态、相关产品领域的动态,把关注细节的优势继续保持,同时,增强⾃⼰把控⼀个产品乃⾄⼀个公司命运的能⼒。但是,这条道路和技术之路稍有分歧,后续将不再赘述。
(4)转岗管理或其他
由于这条职业道路和WEB前端技术之路关系不⼤,故⽽,这⾥不做过多讨论,但是,⽆论是否⾛上这条道路,我觉得对于任何技术之路,更好的⼤局观、更⼴泛的视野是良好发展的必备条件,拥有良好的⼤局观和更⼴泛的视野别⽆他法,只能不断的进⾏知识的横向拓展和积累,同时,多在横向拓展知识的时候进⾏实践,把知识变成技能。
⼆、职业发展⽬标
我都有⼀个最终的⽬标,在这个⽬标之上,我们需要给⾃⼰制定⼀系列学习和成长计划,制定的⽅法如下:
第⼀、梳理知识架构;
梳理知识架构的⽬的在于,我们要了解清楚,哪些技术是前置、哪些技术是后继,那些技术是深度、哪些技术是⼴度,按照这两个维度梳理好知识架构之后,我们才能准确地制定清晰的成长⽬标、⾼效的成长计划。
第⼆、分解⽬标;
我认为,⼤抵可分解为三个阶段,包括:起步阶段、提升阶段、成型阶段。这三个阶段分别对应着不同的⽬标:
起步阶段:
1、基本知识的掌握
在我们梳理的知识架构中,按照我们分析的两个维度⾥最前置的、最浅显的部分,作为打基础的阶段,必须要在这个过程中更多投⼊到实践中去,我们通常做的多了、熟练了,就认为这部分知识和内容掌握了。
2、常⽤⼯具的掌握
对于常⽤⼯具的掌握应该掌握⼀些有⼤公司或专业团队背景的流⾏⼯具,这些⼯具的熟练掌握能够提升专业度、职业度,同时,能提升我们的⼯作效率。我们只有在检验⾃⼰对于知识和技能熟练程度的时候,才会⾃虐式的⽤Notepad去编写页⾯、css和脚本等内容。
3、沟通技巧的掌握
通常做技术的⼈会被定位为“不善沟通”的⼈,这是为什么呢?究其原因,主要是因为多跟程序和代码打交道,跟⼈的沟通较少导致。这种时候我们要特别注意增加和⼈沟通的机会,着重提升这块⼉的能⼒。另⼀⽅⾯,我们通常被称为“不懂沟通技巧”的⼈。作为⼀个技术⼈员,包括我⾃⼰,似乎天⽣就有⼀些难以接受挑战的缺陷。在国内,我们的技术⼈员通常都是⾃⼰制定⽅案、⾃⼰执⾏⽅案,在执⾏过程中⼜缺乏相关产品、交互设计等⼈员的沟通,⼤多是在⾃⼰的思路贯彻下进⾏开发,久⽽久之,我们习惯于信任⾃⼰的观点、在⾃⼰的视⾓看问题,对于挑战总是百般地“据理”⼒争。我们需要更多提升的是,如何在对⽅的视⾓看问题、如何在⽤户的视⾓看问题。
4、良好的开发习惯
开发习惯是养成的,⼀旦有不好的习惯,对于将来去修正带来的将是很⼤的⿇烦,我们在培养良好开
发习惯⼀定要从起步时做起,例如:写代码之前先分析、先写⽂档、先写注释。定义变量最好能⽤直接可理解的语义,最好是拼⾳,别整英⽂,尤其是⽣僻单词,将来⾃⼰忘了还要开⾦⼭词霸。⽂件最好有有意义的⽂件夹命名来管理,⽂件名最好有意义,需要版本号的最好能和项⽬版本号⼀同更新……等等。
提升阶段:
1、⾼级技术的掌握数字前端工程师和web前端
在提升阶段对于知识和技能掌握,我们需要从梳理好的知识架构中选择更深⼀层次的技术进⾏学习,选择之前,我们先通过类⽐或预估的⽅法,衡量⾃⾝学习的难点,以学习难点和⾃⼰最不感兴趣的部分为主。这样推荐⼤家的原因是:这个阶段我们兴趣正浓,已经度过了苦涩的起步阶段,到达了兴奋的提升阶段,我们要⽤兴趣和兴奋去挑战最困难的部分,在我们信⼼受挫和兴趣浓厚之中到平衡。同时,辅以其他的深层次知识⼀起学习和研究。
2、产品思想的学习
没有正确的产品思想,很难设计出良好的程序,⽆论从界⾯、交互,还是接⼝、逻辑,不能够理解产品、理解⽤户需求,我们会给⾃⼰造成很⼤的⿇烦,例如:我们千⾟万苦⽤最新技术、最复杂的实现
做出的功能,却得不到使⽤者或领导、同事的认可。为了使我们的⼯作和学习更加有效率、避免⽆⽤功,我们需要不断的学习产品的思想,只有理解了产品的思路,我们才知道⽤我们的技术去输出什么。
3、各种框架的学习
框架是我们提⾼⼯作效率的优秀⼿段,对于框架的学习是成长必经之路。我们学习框架的路线通常应该是:使⽤——》分析——》个性化定制——》模仿编写⾃⼰的框架。只有⼤量的使⽤,才能明⽩设计框架者在设计背后的思路,只有了解到设计的思路,才能做正确全⾯的分析,只有正确全⾯的分析才能⽀撑我们去对其裁剪或扩展,只有经过实际分析、修改别⼈的框架,才有可能写出优秀的、⾃⼰的框架。学习通常的路线是:学习、理解、模仿、创造。
4、富客户端应⽤的学习
随着带宽和计算机性能的提升,以及WEB2.0的如⽕如荼,富客户端应⽤充斥着互联⽹,如果你不懂得富客户端应⽤,你就不能称之为⼀个合格的前端技术⼈员。可以按照:Flash动画——》Flash编程——》Flex——》——》Air——》Silverlight动画——》Silverlight编程的步骤学习,先学Flash后学Siverlight的原因,⼀来Silverlight还不太成熟,⼆来,实际Silverlight借鉴了很多Flash的思想,最好在学习的时候不要本末倒置。
5、各种⽹络协议的学习
WEB前端技术就是云上的技术,云的协议有N种,我们应该着重学习:TCP/IP,UDP,HTTP,POP3,SMTP这⼏种协议,在开发WEB前端应⽤过程中,这些协议是我们的技术的载体,有时候决定了我们的应⽤是否能实现、有时候决定了我们的应⽤是否⾼性能,同时,这些协议还是我们和后端技术交互的重要⼿段,这些协议就像是密码字典,帮助我们把后端传输过来的密⽂解释成我们前端技术能够理解的明⽂。
6、程序设计
这个阶段我们需要学习OO、UML、设计模式、设计⽅法……,我们要让技术开发⼯作变成有⽬的性、有计划性,并且,这些⽬的和计划必须有理论的⽀持,这样,我们设计出来的程序才能够更优秀、我们的开发才更有效率,这样,我们的技术才能有所提升。为什么要学习程序设计呢?主要是,就算我们不⽤Flash的ActionScript编写程序的前端逻辑,我们⾄少要把我们⾃⼰的Javascript函数、包的定义规划起来,避免将来⾃⼰或他⼈维护代码的时候出现问题。程序设计能
⼒,在技术⼈员仍然被看作是程序员的这个年代,是灰常、灰常重要滴。
成型阶段:
到了这个阶段,我也没什么好说的了,如果能达到这个阶段,就证明后续的成长之路是异彩纷呈的,是成为⼀个资深WEB前端⼯程师,还是成为⼀个资深WEB 架构师,亦或其他,都要具体分析⾃⾝的特点和兴趣所在。如果是资深的前端⼯程师,我觉得更重要的是去作新技术的研究,互联⽹技术发展速度⽇新⽉异,不断学习新技术,否则就被淘汰。此外,我建议在知识的⼴度、深度⽅⾯最好能挑选⼀个⾃⼰最擅长和最感兴趣的⼀两个领域深⼊钻研,不要挑太多,多⽽不精。如果是资深的WEB架构师之路,我建议要深⼊了解后台技术,这种深⼊了解⼀定要伴随着实际的项⽬开发,基本⽅法是:按照别⼈设计的架构实现⼏个Server ——》⾃⼰设计并实现⼏个Server。
关于WEB前端需要掌握的知识,如果不知道请看此图,相信胆⼩的⼈不要放弃。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论