精华内容
下载资源
问答
  • 从前端到cto
    千次阅读 多人点赞
    2019-06-27 10:43:37

    前端的小伙伴应该能够很明显地感觉到,在面试过程中,各大公司面试官已经非常注重前端工程化能力的考察了。

    前端工程化的演进可以极大地提升开发效率。前端发展到现在,社区涌现出大量的优秀框架和工具,得以将前端工程师从繁重的工作中解脱出来。比如,同样地给一个 dom 元素绑定一个 click 事件,使用 Vue 就会比 JS 更简单清晰。

    我相信每个踏入前端这个行业的同学都是有着一颗热爱学习的心。因为前端这个行业不如后端那么成熟稳定,所以一直是在高速地推陈出新,每年都会有新的框架出来。但每个人的精力又是有限的,每个人都希望投入有限的精力的情况下,能学到最有价值的东西。所以我一直在想能否将这些年前端在工程化方面的优秀成果浓缩到一个课程中。感兴趣的同学可以了解下 ?《透视前端工程化》

    结合自己的经历总结了一些在前端学习上的方法,希望对大家有所帮助:

    1. 夯实自己的基础能力。HTML、CSS、JS这三个前端必备的技术是必须要精通的,不能做了几年前端了连CSS布局、异步编程这些基本的东西还模糊不清。
    2. 抓主要矛盾,打造核心竞争力。每个人的精力有限,我们应该挑选一个感兴趣的方向往深里去钻研。而不是企图将所有的方向都做到最好。
    3. 工作中多思考总结。很多人吐槽自己一直疲于做做业务需求,没有机会做技术项目,得不到提高。其实在业务中也能做到能力的提升。在做业务的时候,完全可以将自己平时的新想法,接触到的新技术付诸实践。另外,做完项目后做一个复盘,总结自己遇到的问题和解决方案。久而久之,你会发现自己在业务中也能很好地得到成长。
    4. 多与别人交流。现在互联网技术讲究开源,我们的心态更要open,应该互相学习对方的优点,内化为自己的东西,让自己得到快速提升。
    5. 时刻关注社区技术动态。前端的新东西层出不穷,不一定什么东西都去学,但要掌握行业动态,知道大家都在玩什么技术,跟上行业的脚步。

    我是谁?

    我是王超,现任快狗打车(原58速运)前端负责人,从 0 到 1 组建了快狗前端团队,负责团队技术体系的搭建,形成了以 Webpack 和 Vue 为基础、 Node.js 中间层为补充的,自动化、工程化、组件化的快狗前端技术体系。

    曾任职于人人网、奇虎360、58,有 8 年知名互联网工作经验。

    这次主要是想和大家聊聊从切图仔到前端 Leader,究竟是如何实现的个人成长?

    联合推荐:沈剑 快狗打车CTO王海旭 58大前端团队创始人冯阳 58到家平台前端负责人


    我的工作经历

    时间如白驹过隙,转眼已经在前端这个行业已经七八年的光景了。非计算机专业出身的我从事前端这个行业,确实经历了很多的挫折,走了很多弯路。

    但现在回首自己的职业经历,每一份经历都有不一样的收获。

    毕业生,第一份工作千万不能选错

    我毕业后第一份工作是在一家广告联盟公司做 flash 广告设计和平面设计。当初选择这份工作自己根本就没经过仔细的考虑。

    由于公司很小,在 flash 开发设计这个岗位上就我一个人,身边没有有经验的人可以学习。随着 Web2.0 时代的到来,Flash 技术也在走下坡路了,我的 flash 之路是条死路。

    后来公司来了一个做前端的同事,工作中与之不断交流中渐渐了解了前端开发,flash 技术未来一定会被前端的技术所取代。这才将自己的精力投入到了前端的学习上,慢慢也能做一些简单的前端工作了。

    现在来看,虽然自己最终找到了一个正确的航道。但如果在选择工作的时候就经过仔细调研,能让自己少走很多弯路。

    平台对新人很重要,好的平台会让新人有很好的成长起点,具备良好的视野。而且在平台众多有经验的老人的提携下,新人成长的会很快,能为以后的职业发展奠定一个良好的基础。

    「人人网」时期,见证 PC Web 到 移动 Web 的跨越

    当时的前端处于从 PC Web 开发向移动 Web 开发过渡的时期。在这里的两年多,无论是 PC 上的开发还是移动上的开发都做了很多,比如 PC 各种浏览器厂商的兼容问题,移动端上各种机型的适配问题,使用 CSS3 实现各种新特性。

    此时前端领域正在发生快速的变化,像 Angular、React 等现代前端框架已经开始出现。而这边依旧是使用传统的原生 JS、jQuery 重复性地完成项目,自己的技术也进入了一个瓶颈期。

    面对自己的技术瓶颈,我想到的是换个环境来逼迫自己跳出舒适区,突破技术瓶颈。
    但是,这里我想多说一句,一定不要为了跳槽而跳槽。

    跳槽之前要问自己一句,我在这里是不是已经该学的都学会了?如果答案是肯定的,那就早点行动,否则就踏踏实实地继续沉淀提高。

    「360」时期,越痛苦提升越快

    360 这边的技术体系很完善,前后端分离开发、前端部署平台化、上线前代码自动 diff,新技术的应用、定期的技术交流。

    入职之初我做项目很吃力,因为从开发框架 Backbone、React 到构建工具 Webpack,再到开发方式使用 Linux 开发机,所有的东西都是新的,感觉哪哪都不会。

    我足足用了半年的时间,直到和同事一起使用 React 重构 360 地图,才完全熟悉和适应。但让我无比痛苦的半年恰恰是自己提升最快的时候。

    谈到这里我想说一下是如何一步步提升自己的。

    第一是独立思考解决方案。遇到了问题我通常是自己去网上去找解决方案,实在解决不了了,再去找自己的同事和 leader 寻求帮助。

    第二看比自己能力强的同事的代码。从他们的代码中,可以借鉴到很多好的设计方式和编程习惯,日积月累变成自己的东西。

    第三多与同事进行技术交流。通过与他们的交流,可以很好地开阔自己的视野,弥补自己不知道的知识。这里特别感谢一下我的老朋友司望利,从他的身上学到了很多。

    「快狗」的挑战,建设前端工程体系

    快狗这边的早期的前端开发方式比较原始。担任快狗前端负责人后,我开始着手推进前端工程化。首先就是升级技术栈,并进行前后端分离。陆续建设了前端部署平台、组件库、脚手架、以及性能监控平台逐渐形成了完善的前端技术体系。

    做为团队负责人如何从无到有搭建技术体系,这里分享一下我的经验。

    新晋技术负责人从技术思维向管理思维转变。很多技术人在成为团队管理者后,还是习惯什么事情都自己搞,一方面担心别人做不好,另一方面担心自己的技术优势会慢慢丧失。别人不会做,你可以进行指导,但不能千万自己替他做,因为你的精力是有限的。另一个担心更不可取了,你虽然不再深入技术细节,但在知识的技术广度、技术视野上会有更大的提高。

    技术体系建设要以解决业务痛点为目的。任何的技术工具和平台建设都不能脱离这个目的,不能仅仅为了试用一下某项技术或者好玩就去搞。否则很可能是白白浪费了研发成本,缺很难在团队中推广使用,无法产生价值。

    技术体系建设要充分讨论后再实施。方案的设计讨论清楚了,才能避免将来各种问题的出现。我们在建设前端部署平台的时候就有过深刻的教训。

    由于前期方案考虑不周,后期平台经历一次大的调整,使用老平台部署的项目用了半年的时间才完成迁移,成本很高。

    建议将 70% 的时间用在方案设计和讨论上,30% 时间用在工具和平台的研发上。

    为什么大公司现在这么重视前端工程化?

    从事前端开发这个职业有七八年的时间了,既经历过工程化程度极低的开发方式,也见证了这几年前端领域工程化水平的大幅提升。导致前端工程化水平大幅提升的原因,大致有二:

    一方面是由于大公司本身业务复杂,相应的前端工程化程度高,配套的基础设施很成熟,对人员的要求自然很高。

    另一方面,现在的前端开发都是在一些先进的工程化工具基础之上,比如 React、Vue、Sass、Webpack 等。只有具备良好的工程化能力,才能更好地应对日益复杂的开发任务,才能更容易进入大公司。

    试读 ?《透视前端工程化》

    课程设计

    前端工程化是个比较大的话题,涵盖的知识很多。大篇幅的讲述理论知识又是很枯燥的,而且效果不好。

    所以在课程设计上,我是以动手实现一个前端脚手架工具为主线,过程中引出实现某个功能的思路和用到的工具,并一一讲解。

    例如,为了把规范开发者的代码,我们在脚手架中需要引入代码检查工具eslint和stylelint,并对两者的使用进行了讲解。

    又比如,在搭建本地开发环境可能有多种实现方式,比如自己单独写一个静态服务器来实现或者使用 webpack-dev-server 和 webpack-dev-middleware 进行来实现,我们着重对后者进行了详细介绍。

    读者在课程结束后,不但可以系统学习了前端工程化的工具和知识,还可以完成一个实用的脚手架工具。

    课程特色

    实操驱动,沟通前端知识

    实际操作脚手架搭建,沟通起流程规范、开发、联调、测试、构建、部署各个环节知识

    实用性强,直接落地业务

    课程内容基于团队的实际工程化经验,可以把课程所学直接应用到业务开发中

    你能学到什么

    1. 对前端工程化有一个系统认知;
    2. 能独立设计一套前端工程化解决方案;
    3. 知识广度上有大幅提升;
    4. 进入更好的平台,获得更好的薪酬。

    最后,希望每一个前端人都能通过努力来完成自己的人生进阶道路,加油!

    试读 ?《透视前端工程化》

    目录

    开篇词:到底什么是前端工程化

    第一部分:模板设计

    第01课:模板功能设计
    第02课:Webpack 基本介绍
    第03课:搭建项目模板框架
    第04课:前端模块化解决方案
    第05课:搭建本地开发环境
    第06课:搭建本地 Mock 服务
    第07课:引入代码检查工具
    第08课:自动生成雪碧图
    第09课:根据浏览器构建
    第10课:根据环境构建
    第11课:集成移动端调试工具
    第12课:引入单元测试
    第13课:引入 e2e 测试
    第14课:Webpack 构建性能优化
    第15课:添加部署功能
    第16课:聚合项目配置并模板化

    第二部分:命令行设计

    第17课:cli 功能设计(上)
    第18课:cli 功能设计(下)

    结语:开放的心态才是更高阶的工程化

    更多相关内容
  • 从前端到CTO——程序员的成长之路

    千次阅读 2019-06-17 13:11:34
    前言 张云龙老师于2018年5月19日在「...大家好,我是云龙,2016年3月份开始,我参与全民直播这个创业项目中,这两年一直在上海。关于我自己的成长历程,一直都很想找个时间跟前端的开发者们分享一下。通过剖...

    前言

    张云龙老师于2018年5月19日在「FDCON2018中国前端开发者千人峰会」上的发言。作为走在前端工程化前列,现任全民直播CTO的张云龙老师,分享了他的个人成长之路,希望能够在前端职业规划上,给大家一些参考和启发。

    关于张云龙

    大家好,我是云龙,从2016年3月份开始,我参与到全民直播这个创业项目中,这两年一直在上海。关于我自己的成长历程,一直都很想找个时间跟前端的开发者们分享一下。通过剖析别人,也可以总结自己。我很害怕把这个主题讲的跟成功学一样,其实CTO这个职位现在多少有点“烂大街”,不算是什么成功,仅供参考。

    我是2010年毕业的,刚毕业即加入百度,当年我毕业的时候同一批入职的人后来成立一个微信群,那个群在8年后的今天,我们还会一起扯皮闲聊,分享彼此的际遇。我发现它可以作为参考 —— 8年前一群有着相同能力,相同起点的人,在8年之间因为做出不同的选择,最后达成了不同的人生。有的创业,有的在大公司做高管,有的炒比特币财富自由。参考他们的选择会让你有一些感悟: “如果当初我选择了那样,我现在会怎么样”。我现在经历了职业生涯8年的时间,也想把自己的经历作为一个案例,分享给大家。

    我面试过许多前端工程师,发现大家在工作了3-4年的时候会遇到一个迷茫期,我问他们你们接下来想做什么,大多数人回答说想做一个开源项目,并且推广开来,成为前端“网红”,更长远的职业发展规划往往考虑的很少。

    今天,我希望把自己的工作经历完全拆解开呈现在大家面前,作为一个案例解答有关职业发展的困扰。

    我把整个职业生涯分三个阶段:
    第一阶段,一技之长。就是深耕你的专业技能,你的专业技术。
    第二阶段,独立做事。当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。
    第三阶段,拥有事业。选择一份使命,带领团队实现它。

    程序员的中年危机

    程序员的中年危机,我今年33岁,虽然有技术傍身,但是难免会有一些焦虑,这种焦虑来自对自己的能力质疑。在大公司的那些年,背靠大平台,做出的成绩80%是平台赋予我的,它有健全的体系,有优秀的同事,有完善的职级制度,还有优厚的薪资待遇。你在这样舒适的环境下做那么一小块事情,如果有一天你发现你这20%可以被替代的时候,这家公司会怎么思考?你有很多股票,开很高的工资,对于公司来说,你的成本很高,在新人的推动下,你会产生一种可被替代的压力,我大概在28岁,29岁技术水平还在上升期的时候就有这种焦虑。

    在大公司那些年,我感觉自己还像一个没毕业的学生,始终没有脱离“学生气”,无论说话做事都有这种感觉。其次技术的更新迭代速度特别快,尤其是前端领域,你会发现很少有能真正沉淀下来的东西。第三个焦虑点就是关于企业如何对待35岁以上员工,我当时在百度的时候团队有一个非常厉害的工程师,他在2010年技术职级很高,但技术思维还停留在上一个时代,随着技术的发展,渐渐不能指引团队进步,那个过程比较艰难,对我触动很大。最后一点,就是随着年龄的增长,选择的成本会越来越高,你会有家庭,即便公司觉得你没有价值,你也不能走了,走不动了。这些触动了我,开始要去思考。

    我们做技术,尤其是前端,很多时候我们做出的产品,看到的都是UI设计,交互设计 ,产品设计,即便我们做的产品非常成功,成功点在哪儿?可能是UI设计得漂亮,也可能是推荐算法精确,而前端的产出给产品带来了什么?还有前端技术深要深到什么程度?做久了技术就必须要转型管理吗?这些问题我当年没有答案,我可以坚持不懈得写页面,但是这个事情做5年,6年,10年不还是一样吗?现在我能做什么?未来我想做什么?

    带着这些疑问,用8年时间我走了3个城市,从北京、到广州,在到上海,在职业道路上寻求答案。

    最开始的3年我在北京,那个时候刚毕业,还不能决定自己的未来,加入百度算是比较运气。当时花了些精力准备一份漂亮的简历,这件事对我找工作帮助很大。在学校的时候,基本上对前端这块已经非常熟悉了,我的简历非常漂亮。最开始刚毕业的时候选择工作,简历会成为一个好门面。我把当时自己在前端的方向、学习深入的点,都花精力体现在简历上,当时在大公司招聘的时候已经占了一些优势,很荣幸的是被百度接收了。在百度三年时间里面,主要深入的在做技术。当时百度有一个很大的前端团队,一百多人,包括百度新闻,百度视频,百度知道,百度百科等等,整个团队为了解决开发效率问题,决定成立一个横向支撑的小组,做一款构建工具,就是fis,我当时还在CMS部门(一个内部的内容管理系统),主动提出参与到fis项目中。做fis的过程让我学到了很多服务端技术,包括运维知识。在百度工作3年后,开始想着开始去脱离这个平台80%的支撑,我当时认为UC是一个中型的创业公司,我过去待了两年多,那个时候开始关注前端团队建设。把我在百度学习到的技术理念在UC结合nodejs重新实践一遍,其次是指导前端团队提高他们整体的技术水平。在广州UC工作2年后,来到了上海,参与全民直播这个项目。做全民直播的整个过程经历了比较多的坎坷,我最开始接手全民的时候,仅有两个全民自己招聘的研发同学,经过2年多的时间,组建了将近一百人的团队,包括服务端,前端,客户端,测试,运维,编解码,大数据等部门,感觉在上海这两年的成长,比前面在大公司所有5年的加起来还多。

    过去走过了一个这样的路线: 大型公司→中型公司→创业公司。专注的事情从技术到团队再到业务。今天我重点跟大家分享我总结的成长历程,当你后面工作到一定年限,碰到困惑的时候,可以拿这个模型参考一下,也算是一个方向。当然,这不是唯一的成长路线。

    第一阶段

    (1)一技之长

    我把它分成五个层次:栈内技术、栈外技术、工程经验、带人做事、业界发声。所谓栈内技术,是指你的专业领域技术,对于前端工程师来说,就是那些我们熟悉的JS、CSS、HTML等基础,深入了解我们的程序所运行的宿主环境——浏览器,能掌握并灵活操纵在浏览器内发生的一切。前端没有秘密,所有可访问的页面都近似于开源,所以检验栈内技术的标准就是看你是否能最终形成技术上的“写轮眼”——那种看到任何前端产品都有能独立复刻和洞察它的自信。

    (2)栈内技术是安身立命的根本,不要轻易“换方向”

    虽然我现在在做技术管理,但始终不会放弃我作为前端这个一技之长的根本。遇到一些前端同学工作几年以后前端做得比较熟了,考虑转行到其他岗位。但是我想说,当你转行那一刻起,就把要转的领域变成了你新的“栈内技术”,然后又要重新走一遍技术沉淀的过程,匆匆几年,又过去了,所以不要轻易“换方向”,前端绝对是可以长时间坚持的领域,现在新型的软件生态,无论是小程序,快应用,甚至区块链,都会首先瞄准JS开发者,因为有庞大的开发者群体,工具链也比较完善,所以长期坚持从事前端工作,在可预见的未来都不会“过时”。

    (3)栈外技术

    指栈内技术的上下游,领域外的相关专业知识,包括但不限于服务端技术、运维、CDN、测试,甚至UI设计、产品设计等等,扩展你栈内技术的周围领域,充分理解你的工作在整个技术研发体系中处于怎样的环节。工作之余多投入一份精力,把其他栈外技术不断纳入到你的知识体系中来,建立栈外能力。前端想要做的深入,往往会涉及到缓存、模板渲染、用户体验等知识,没有相当的栈外技术积累,你很难为自己的团队争取到足够的话语权。

    我个人非常推崇“大前端”的概念,有点类似“全栈工程师”,但不是要求一个人全面专家,而是以前端为根,展开上下游的栈外技术学习,一专多能。我能在全民做到CTO的角色,也得益于早年在百度和UC积累的栈外技术经验,了解两家公司大部分产品线的运维和架构体系。

    (4)工程经验

    指建设专业技术体系的“解决方案”,通俗的说,就是做事的“套路”,掌握从0到1,1到60,甚至60到100分阶段建设专业技术体系的过程。工程经验涉及到技术选型、架构设计、性能优化,CI/CD,日志监控、系统测试等,这些是跟工程相关的方法论。很多的工程师没有总结自己工程经验的能力,我面试经常会问,你们觉得自己工作了两年、三年、四年和刚毕业的学生有什么差别?面试者说掌握了某某技术,但其实往往说的只是一些知识点。那些“今晚查完明天就会了的”不叫技术。决定你比别人更有专业价值的,其实是领域工程经验。你看过再多的文章也没有用,没真正实操过都不能称之为“掌握”。所以我建议要想掌握足够丰富的
    工程经验,需要在业务中多争取实践的机会。
    工程经验才是技术水平的分水岭。

    (5)带人做事

    之前三项都是个人专业技能方面的深度要求,带人做事是对团队协作能力的要求。我以前非常不理解一件事情,就是我自己明明做的很好,来了一个新人不能get到我的要求,怎么办?非常着急的时候,我说你别做了,我来吧。更有甚者,早年间在百度工作的时候,有同事白天辛辛苦苦写好的代码,晚上我code review之后直接给重构掉了,没过几天那位同学就提了离职。带人做事,是把自己擅长的事情,良好的习惯传递给他人,实现1+1>2的生产力提升,让整个团队的产出高于自己。另外,这个阶段大家要特别注意『管』与『带』的区别。所谓『管』是”我不懂某个领域,但我知道你懂,你必须给我做好”,而『带』则是”我特别懂这个领域,我知道你不懂,我要教你做得更好”。有点授之以渔,甘当人梯,成就他人的意味。带好一个人或者带起一支有战斗力的团队,是做人做事成熟的表现。

    对技术有洁癖的人,往往缺乏耐心,带人容易走极端,如何引导新人成长,激发他人的能力,也是我在职业发展过程中要寻求的问题。管理上有一个特别好的方法,就是善于启发式的提问。提问的深度特别能体现一个人的能力水平,任何用于提要求的陈述句,都能转换成疑问句,在启发萌新的过程中植入对结果的约束。举一个例子,我想要老板给我加薪,如果直接说:『老板,我要加薪』,估计十之八九会被搪塞过去,但是转换一下,先问问『老板,我最近工作怎么样?』启发上司思考你的工作成果,引导他得出你应该被嘉奖的结论,或许是个不错的话术。当你让一个人做A的时候,他提出了方案B。你不要强行扭转对方的思路提出A,因为对于新人来讲,或许确实不能一步到位理解A方案,在他的能力约束下,只能想到B。你带人呢,要尽量尝试把A和B之间有差异的地方转换成提问,你问他遇到这个问题怎么解决,遇到那个问题怎么解决,一直问到形成A,他会带着思考去做事情。如果没有这个过程,没有让他思维演化的过程,虽然他收到了A的指令,但是他不理解,他会用别的方式做出来,最后得出来一个C,然后你又重构一遍,陷入一个怪圈不能自拔,这就是我以前的误区,所以我现在特别注重提问的艺术。

    (6)业界发声

    如果你前面做的非常好,基本上到了可以对外发声的程度。把自己的工作经验总结对外发布,与他人交流,碰撞思想,看到更高的山峰,然后修正自己的想法,日臻完善,是能走得更远的一种方式。有的时候真的要把自己的思想放到业界的层面验证它,自嗨有毒,大家好才是真的好。如果别人不认可你的这套思路,你的想法,基本上你也可以判定为自己没有达到一个更高的水平。不过通过业界发声获得认可,往往需要机会,可遇不可求,得之我幸,失之我命,这也和你所在的公司平台有关。在我技术声誉成长最快的地方就是在百度那几年,刚好一个大平台,做出一点成绩,但是小型创业公司出来分享,基本上没有人理你。永远不要放弃一技之长,没有所谓的转行或者转型,永远坚持你最初的领域,扩充你的外延,最终达成比较全面的能力,所以一技之长是值得你长期信仰的。

    第二阶段

    (1)独立做事
    独立做事也有几个层次:独立Coding:给你一个目标自己做完,不让别人给你擦屁股就可以了。

    (2)独立带人
    要注重提问的水平,帮助他演进他的想法。

    (3)独立带团队
    进入到这个阶段,要关注的更多,整个团队的氛围、工作效率,运用你一技之长的工程经验带领团队高效优质的产出成果,实现1+1>2。

    (4)独立做业务
    团队稳定之后,开始关注所做的业务,行业的发展,理解你的用户,他们是谁,他们在哪,他们为什么使用你的产品,为团队指引下一步的产研方向。

    (5)独立生存
    独立做事的最高水平,就是能带领一群人养活自己,独立生存下来。互联网的商业模型只有有限的那么几种,深谙其中的玩法,寻找擅长的合适的模型养活一群小伙伴,意味着一次更大的蜕变。

    独立做事每个阶段,都是一次比较大的跨越,需要思想和多种软素质发生较大的变化,抛开技术人的身份不讲,独立做事的几个阶段,也是一个人逐渐成熟的过程,这是我过去2年多以来一直探求的结果。

    怎么决定一个人的薪资、奖金、期权?

    薪资是一个人的未来能带来的收益的考量,它是一个市场价值,一个人不管来这家公司做出多少业绩,他达到这个水平,就要给他薪资;奖金是做出业绩的回报,是一个人过去做过的事情的价值衡量;最后一个是期权,如果这个人这家公司充满希望,你可以用一部分的薪资奖金兑换成期权,降低公司的成本。这是三者的关系。充分理解薪资、奖金、期权的关系,是一个CTO要关注的事,有助于建设良好团队氛围。

    如何建设好团队工作氛围?

    除了前面说到的待遇问题,还有很多举措可以用于建设良好的团队氛围。我是偏理性的管理者,我基本上不太会用个人关系,比如天天吃饭来去维护这个,我比较认可通过完善的机制,完善的规范来建设公平的环境,带领好的氛围。另外,好的氛围的根本,取决于业务,业务不向上,基本上你怎么做都是不好的氛围。
    再就是是不是技术做不下去的就要转管理?我觉得没有所谓的转管理,这个过程对我来说,只是在寻找独立做事的能力,最后怀揣着使命感,要达成梦想,是这样的过程。

    技术型人才是不是都不适合做管理?

    我曾经也有这样的怀疑,后来自己带团队,经历了一些事情,慢慢了解到,每个人都会形成自己的管理风格,没有适不适合的问题。管理上不是有个『五型管理风格』吗?老虎型、考拉型、孔雀型、猫头鹰型、变色龙型,这五种,没有谁好谁坏,只是不同的风格会带来不同的团队氛围。我估计很多技术同学刚开始带团队的时候都是老虎型。

    刚毕业的人应该去大公司还是去创业公司?

    我觉得经历大公司很有必要,因为去到大公司,你会了解到『好是什么好』,我现在能做到这个位置,一定程度上得益于曾经在B和A的工作经历,大概知道一个团队如何从1发展到60,再从60到100。经历过大公司,知道了好是什么好,才有足够的视野和
    高度指引团队走下去。

    这一点我发现创业的时候一定要先做后学。2年多前,我一个朋友有一天问我,『云龙,我要做个易企秀那样的平台需要多少成本?』,我说认识一个朋友,他们大概需要二三十人的团队做两三个月,可能需要两三百万的资金吧,他说这么高的成本,就不理我了。过了两天来找我,说搞定了,我很诧异,问他怎么解决的,他说在淘宝上买的,一套代码,100多人民币,还带大量模板。这件事给我很大冲击,当你做技术决策的时候,尤其是创业公司,千万要先想到行业里面有什么可以直接用的,用公司的资
    源置换也好,商务采购也好,拿过来先用,用完以后再组团队去学,学完以后形成自己的一套东西,是这样的过程。

    如何体现技术团队的价值

    如果一个公司都是产品设计运营做的好,我们怎么知道是技术做的好,这是一个技术管理者要非常清楚的要点,才能让团队有方向可以遵循。

    这里我大概总结了3个要点:技术产品质量、开发效率和体验性能。

    这里有一张漫画,当线上服务一切正常时,老板回想『一切风平浪静,真不知道我要雇这群研发干什么』,而当线上出现事故,老板又会想『成天出问题,真不知道雇你们这群研发干什么』,这种现象其实很普遍,技术产品质量是基础,稳定压倒一切。其次能体现技术价值的就是在稳定的基础上,提升开发效率,快速迭代,快速上线,小步快跑。但做到以上两点,只是基本满足业务要求而已,不被诟病,但要进一步体现技术的价值,就要在性能上做文章了。右图是亚马逊提出的一个概念,网站打开速度每降低0.1秒,网站就能多增加1%的收益,优秀的团队需要在业务核心性能指标上下功夫,突破秒级的打开速度。

    展开全文
  • 然后等了几分钟,hr引领我一个会议室等了会 前端 leader就来了。 前端 leader 自我介绍了,前端经历,学校项目,实习项目,公司项目,自己的blog。 这里分享一个小的经验, 在自我介绍的时候,根据你面试的岗位,...

    640?wx_fmt=jpeg

    阅读本文需要 1.9分钟

    作者:Pandaaa
    转自:http://www.bslxx.com/a/mianshiti/bijingmianjing/2018/0326/1874.html

    公司概况和职位描述

    • 200 - 500人,互联网金融,证券,美股港股。

    • 独立 准备 C 轮融资,环境不错。

    • 要求基础好,javascript/es6 一个 MVVM 框架

    • 要求学历和工作背景

    开始去的时候,前台是一位阿姨,我一看不会吧,小姐姐啦?到后面才知道人家是保洁阿姨,尴尬。然后等了几分钟,hr引领我到一个会议室等了会 前端 leader就来了。

    前端 leader

    • 自我介绍了,前端经历,学校项目,实习项目,公司项目,自己的blog。

      • 这里分享一个小的经验,在自我介绍的时候,根据你面试的岗位,尽量只介绍和前端有关的东西,在技术leader面前不关心你有没有其他爱好或者在学校得了什么跟技术没有关系的奖,当然这些可以和 hr聊聊。

      • 当然,和面试官聊得愉快,提到了相同的爱好,也是挺好的,我在网吧的时候就提到了爱玩游戏和足球和面试官有些相仿,所以闲聊甚欢。

    • 问题

    • javascript:

      • 涉及 let setTimeOut

      • 说说 Object.assign() 和 Object.create()

      • typeof 和 instanceof 区别?举例说明

      • Object.prototype.toString.call()

      • 上面的具体做了什么?解释下

      • 1、熟悉 javascript 类型嘛?有哪几种?es6 新增的 symbol 对象,有什么作用?

      • 2、怎么检查对象类型?

      • 3、es6 的解构赋值和深度 clone 了解嘛?

      • 4、了解 作用域和原型链嘛?实现一个原型链

      • 5、闭包的问题?es6闭包的问题?

      • 6、javascript为什么是单线程?知道event loop吗?实现一个

    • 浏览器和计算机基础

      • http2 和 http 有什么区别

      • 三次握手和四次挥手

      • 1、cookie 和 浏览器存储了解吗

      • 2、了解 http是什么嘛?说说 http2 和 https 的区别?

      • 3、你有什么优化网站加载速度的方案

    • css

      • 1、清楚浮动的解决方案?

      • 2、了解 flex 手写一个 felx居中的布局。实现根据数字排序

      • 3、说说你对 retina屏,pc,ipad,手机端的适配经验和方案?

      • 4、sass 了解吗?

    • react 和 angular,vue

      • 这里重点解释 虚拟 dom 和效率问题

      • 大佬我只会 vue 啊!!!

      • 1、react 和 angular 了解嘛?

      • 2、说说 vue的生命周期

      • 3、vue的虚拟 dom 是什么?有什么影响?说说你在项目中比较你使用的 vue / javascript/jquery 的区别

      • 4、vue 比较 jquery 有什么优势和劣势?

      • 5、说说你对 reatc 和 angular 的了解和看法?

    • 我的问题

      • react 移动端,pc端,angular 1.x普通管理系统,vue +electron 桌面端这样

      • 20+人,你进来做 react 移动端

      • 大佬贵公司的前端技术栈具体使用是什么啊?然后前端团队多少人,有幸我能进来具体做啥?

    • 哇,问完其实我很虚的,好多问题需要仔细斟酌才能看明白。

    • 全程 mac 直播写代码,用 console 控制台,又不懂的地方,大佬会直接打印出来给我看结果

    cto

    普通的中年大叔 emm,问题比较周全

    • 自我介绍

    • 问题

      • crsf,xss,帆船指纹,gulp配置问题

      • 广告页面,活动页,html5 编辑工具

      • 想学习金融,投资自己。。。

      • 红海,发展太快,初级饱和,中高级稀缺

      • 你对现在前端的现状有什么看法

      • 为什么来我们公司?了解金融和证券嘛

      • MVVM 框架了解得怎么样?说说自己对他的了解?

      • 以前公司的项目理解

      • 实习的时候学到什么东西?遇到的什么技术困难,怎么解决的

      • 对工作有啥期望,在技术上?

    • 我的问题

      • 公司未来的发展和公司现在的主要的项目

      • 期权,美股交易平台,一个 老虎证券 app

    hr

    • 没有自己我介绍了

    • 小姐姐疯狂介绍公司福利

    • 14 薪,六险一金啥的 bannana

    • 下午茶 bananna

    • 发展好,准备 C 轮融资,上市资格拿到了啥的emm

    • 以下省略一万字

    • 今明两天发 offer (如果 ok 的话)

    • 然后我问了几个问题就准备送我走了

    小姐姐送我到电梯口,第一家公司送这么远的,小姐姐真客气。

    每天只想听你们说:小北最帅!

    640?wx_fmt=jpeg

    长按扫码关注我

    前端你别闹

    我觉得你们应该点 「在看」640?wx_fmt=gif

    展开全文
  • cto面经】

    千次阅读 2022-03-29 14:32:13
    UDP是一个面向无连接的协议,数据传输前,源端和终端不建立连接,发送端尽可能快的将数据扔网络上,接收端消息队列中读取消息段。 可靠性 TCP提供可靠交付的服务,传输过程中采用许多方法保证在连接上提供可靠的...

    一面:

    一面也就是所谓的简历面,你简历有什么会问什么,也比较基础,不会的就答不会罢了. 

    1.TCP、UDP的区别(八股)

    TCP/IP协议是一个协议簇。里面包括很多协议的因为TCP、IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,传输层,网络层,网络访问层。

    连接性

    TCP是面向连接的协议,在收发数据前必须和对方建立可靠的连接,建立连接的3次握手、断开连接的4次挥手,为数据传输打下可靠基础;UDP是一个面向无连接的协议,数据传输前,源端和终端不建立连接,发送端尽可能快的将数据扔到网络上,接收端从消息队列中读取消息段。

    可靠性

    TCP提供可靠交付的服务,传输过程中采用许多方法保证在连接上提供可靠的传输服务,如编号与确认、流量控制、计时器等,确保数据无差错,不丢失,不重复且按序到达;UDP使用尽可能最大努力交付,但不保证可靠交付。

    报文首部

    TCP报文首部有20个字节,额外开销大;UDP报文首部只有8个字节,标题短,开销小。

     

    报文传输

    TCP协议面向字节流,将应用层报文看成一串无结构的字节流,分解为多个TCP报文段传输后,在目的站重新装配;UDP协议面向报文,不拆分应用层报文,只保留报文边界,一次发送一个报文,接收方去除报文首部后,原封不动将报文交给上层应用。

    吞吐量控制

    TCP拥塞控制、流量控制、重传机制、滑动窗口等机制保证传输质量;UDP没有。

    双工性

    TCP只能点对点全双工通信;UDP支持一对一、一对多、多对一和多堆垛的交互通信。

    tcp/udp应用场景:

    TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用

    为了实现TCP网络通信的可靠性,增加校验和、序号标识、滑动窗口、确认应答、拥塞控制等复杂的机制,建立了繁琐的握手过程,增加了TCP对系统资源的消耗;TCP的重传机制、顺序控制机制等对数据传输有一定延时影响,降低了传输效率。TCP适合对传输效率要求低,但准确率要求高的应用场景,比如万维网(HTTP)、文件传输(FTP)、电子邮件(SMTP)等。

    UDP是无连接的,不可靠传输,尽最大努力交付数据,协议简单、资源要求少、传输速度快、实时性高的特点,适用于对传输效率要求高,但准确率要求低的应用场景,比如域名转换(DNS)、远程文件服务器(NFS)等。

     

    ​​​​​​​

    2.TCP三次握手和四次挥手(八股)


    3.HTTP、HTTPS区别(八股)
    问了下项目相关的一点点东西
    4.CPU内部结构及作用(八股)
    5.进程和线程的区别和联系(八股)
    6.CPU进程调度算法(八股)
    7.集合类的各种继承关系(八股)
    8.HashMap与HashTable区别,HashTable底层实现(八股)
    9. Volatile和synchronized的区别(八股)
    10.什么是事务(八股)
    11.Innodb默认隔离级别(八股)
    12.这个级别会有什么问题,为什么,什么情况(rr隔离级别下还是会有幻读问题)
    13.举了一些组合索引查询的例子来考我会不会走索引(很简单)
    14.什么是回表,以及如何防止回表(答得模糊)
    15.Jvm内存结构(八股)
    16.手写一个单利模式(设计模式里必须会的了)
    17.AVL树,为什么使用,如何旋转
    18.堆,堆排序(还有好几种排序都问了下)
    19.SpringIOC AOP (八股)
    20.说一下分代回收 (八股)
    21.了解的 垃圾收集器 (八股)
    22.说一下g1和cms的区别 (八股)
    场景题: 256M内存如何排序10G大数据(分而治之)吧
    代码题: 二叉树的前序遍历(常规) 

    问了一下职业规划
    最近看什么书 

    二面:

    复制代码

    10 

    主管面: 

    主要是针对项目发问 

    项目能承受的流量是多少? 

    为什么你能觉得你的项目能承受这么多并发量。Qps是多少 

    如何优化的? 

    扫码登录流程是什么 

    Cookie Session区别? 

    Https好处? 

    项目中遇到死锁过吗?如何解决死锁; 

    其他的一些学习模式经历,自己实话实话就好了! 

    三面:

    复制代码

    老板面: 

    还是针对项目发问 

    比二面要深一点,很多没答好. 

    HR面:

    复制代码

    问项目的项目背景,遇见的困难以及结果) 

    分享一下自学的学习方法和学习方式 

    为什么不想从事本专业的方向,或者为什么不选择移动端这些而去选择后端开发 

    关于不同职业规划方向的难易程度上,你是怎么划分的 

    最近几个月有压力很大的时候吗? 

    很愉快的面试! 

    展开全文
  • 我,Scott,一家创业公司的 CTO。从业6年却很少写文章,近一年来接触了几十个刚毕业的前端新人,也面试了100多个前端工程师和Nodejs工程师,对于前端发展的这个职业算是有些感触吧,打算陆续写一些从业经验也好,...
  • 详细说明了一个菜鸟JAVA程序员到CTO的路线和需要掌握的所有技术。
  • 51CTO下载-1500个前端开发常用JavaScript特效
  • 理解:前端的route框架,director.js客户端的路由注册/解析器,在不刷新的情况下,利用“#”号组织不同的URL路径,并根据不同的URL路径进行不同的方法调用。意思就是有什么样的路径就有什么样的方法。 场合:客户端...
  • 终于 B 面转了 C 面,终于互联网的“后端”来到了展现在大众面前的“前端”企业。 2011 年,微博迅速崛起。而这一年,曲毅就在新浪任架构师。互联网一线的就业经验不仅给他镀了层金,还让他对整个行业有了...
  • 其次,管理人员,CTO,讲师和猎头人员可以使用它来深入了解前端开发的实践。 该手册的内容支持Web技术(HTML,CSS,DOM和JavaScript)以及直接基于这些开放技术之上的解决方案。 本指南中引用和讨论的资源和工具...
  • ①【Java】学习之路吐血整理技术书入门进阶最全50+本(珍藏版) ②【算法数据结构+acm】入门进阶吐血整理书单50+本(珍藏版) ③【数据库】入门进阶必读18本技术书籍网盘吐血整理网盘(珍藏版) ④【Web前端...
  • 一线技术经理到CTO 作者:胡嵩 写正文之前: 英雄已逝,而生者仍要继续。不能在一线抗病毒, 只能继续奋发码字,为程序员群体的进化、从而为推动这个国家的进步做一些微小的贡献。 一线技术管理新人的...
  • 踏实做事,认真死磕,压力转动力,步步为营,把握成功 之所以迷茫,是想的太多做的太少;之所以成功,是把每件事情都做到最好 技术是为业务服务的,业务是为商业服务的,一步一步的从前端转变的
  • 了 35 岁的时候,面对家庭和工作的双重压力,你也开始陷入了迷茫。 难道,前端真的只能吃青春饭? 35 岁的难,一环扣一环 35 的前端,或者说 35 的程序员,都有同样或类似的难:加班之难,家庭...
  • 本文首发于公众号杜仲闲谈,摘录于肖劲青,罗志勇新书《破茧:程序员到CTO的创业之路》 - EOF - 想要加入中生代架构群的小伙伴,请添加群合伙人大白的微信 申请备注(姓名+公司+技术方向)才能通过哦!...
  • CTO 是企业内技术最高负责人,对企业的发展起至关重要的作用。但随着公司的不断发展,CTO 的工作重心也会不断变化。只有在正确的阶段做正确的事,才能更好地为公司做出贡献。我是空中金融 CTO ,TGO 鲲鹏会上海...
  • ...Java工程师则越来越偏向做后端,会写前端代码的Java工程师也越来越少了,如果你会写前端的话,也不妨和我们分享一下你现在的工作内容,前端代码写的还多吗? 今天推荐一份适合入门前端的...
  • 简单介绍一下自己,天津某大学,三本,计算机专业,大学学的c,c++,java,大三开始自学前端简单的html、css,js,再vue,看视频,看文章,github找项目学习,技术栈Vue全家桶。一步一步走过来…现在,一名...
  • GSA网站上的技术这是GSA...安装Node.js和npm 我们使用沿管理前端的依赖。 为了获得npm ,请安装 您不一定需要npm才能在网站上工作。 仅当您计划更新时才需要它。 要更新供应商资产,请运行npm run assets 。建立和预
  • 更新:2018年7月3日TokenPlay前端TokenPlay ElectronJS,基于React的前端TokenPlay前端是BlocPlay Entertainment开源计划的一部分。 此源代码是在Apache2许可下发布的。 我们认为合适时将更新此源代码。 如果您想...
  • 有人说,程序猿35岁一个坎,前端可以作为一辈子的岗位么?...2年能发展到前端技术大牛吗? 这类问题每隔一段时间就会出现,说明同学们其实是一直在思考着自己的未来。下面就为大家来一一解惑 人才发展路...
  • 当天下午,一场主题为"基于大前端和node开发模式下的Serverless发展前景探讨"的高峰对话成为全场焦点,包括猫眼娱乐商业平台前端负责人王克淼、京东Taro团队负责人李伟涛、转转前端公共支撑负责人王澍、广州群应用...
  • 前端开发创新实践

    千次阅读 2018-04-12 10:44:17
    近年来,前端技术领域迅猛发展,各种新技术、框架、工具,层出不穷。业内众多优秀企业保持积极探索精神,对现有工具、技术进行了深入探索,甚至缘于研发工作需求进行了升级研发与深度定制。本期我们集合多位前端技术...
  • web前端入门实战:css实现不规则图形的阴影(如对话框)发布时间:2020-08-04 19:16:13来源:51CTO阅读:120作者:前端向南在日常开发中会使用带箭头的弹出对话框,有时为了美观或者突出,会添加一个阴影。...
  • 参考:https://blog.51cto.com/lannyma/1735756
  • 我是13年某大学本科毕业,参加第一份工作是测试,后来转研发,再后来做研发经理、主管,目前担任一科技公司的CTO岗位,管理51人的技术团队,团队分为后端开发部、前端开发部(APP、页面开发),运维部,测试部。...
  • Java程序员底层到CTO的技术路线图

    千次阅读 2014-09-17 17:40:48
    Java,高级编程语言、语法严谨,学习Java须Java开发环境,然后Java语法,再Java的核心API。 Java开发入门:Java开发环境的安装与使用, 包括JDK命令、EclipseIDE、Linux下Java程序的开发和部署 等。 Java...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,576
精华内容 18,630
关键字:

从前端到cto