乘风破浪的前端小姐姐,是如何一步步走向成功的?

大家好,我是若川。名校毕业的被删大佬也经历了社会的毒打,但她没有放弃。面试、学习源码系列、年度总结、JS基础系列



王贝珊,腾讯高级工程师,腾讯 AlloyTeam 成员,现腾讯文档网络层技术负责人。毕业于中山大学。工作 6 年,业务领域包括人脸识别追踪、电竞直播、支付缴费、在线协同应用等,在小程序、前端框架、方案设计和项目实践等方面有着丰富的经验。热爱前端技术,在 GitHub 写作个人技术博客已有 5 年,记载了前端相关的技术学习笔记和总结,并著有开源书《深入理解Vue.js实战》、电子书《前端的进击》、纸质书《小程序开发原理与实战》。喜欢猫猫,热爱写文章、分享和开源。

PART

01

离职华为,自学前端

我是非科班的程序员。大学学的是光信息,毕业后进了华为,岗位是数通工程师,做的是交换机、路由器、防火墙等技术支持方面的工作。不管是培训还是实践,工作成绩都非常不错。但是在工作半年之后,我却发现自身对做的事情实在提不起兴趣,于是就辞职了。

后来开始考虑自己真正喜欢什么,想起大学时跟过一位 Web 物理引擎开发教授做研究,他给我看了研究室做的汽车透视结构,当时觉得特别酷。后来便开始自学前端,然后从一家小公司加入了前端开发的行业。

自学前端,并不是一件容易的事。既要进行前端知识的学习,又要进行代码的编写。而最难的部分则是如何将从书本上、网上学到的一些前端知识,在项目开发过程中理解和使用。因为许多知识在初步学习之后,只能停留在 Hello World 阶段,要深入理解和掌握某个技术,就需要在业务和实际项目中结合使用。这就需要多思考,不断地探索和尝试,慢慢地掌握要怎么将理论和实践进行结合。

PART

02

最艰苦的日子,也从未停止学习

从华为出来后,我加入了一个外包小公司做前端。那是一段比较艰苦的日子,但那段时间,每天都能学到特别多的知识,后台的几位大哥也给了我很多的指导,例如要掌握哪些工具、可以去哪些网站学。即使是下班后,也依然躲在上铺开着台灯,一直学到半夜。

小公司的问题很多,没有社保,没有福利,也不提供住宿和三餐,老板是暴发户类型的。因为工资实在少得可怜,转正的时候我提出需要涨点工资,然后被老板一顿“不知好歹、不懂感恩”批斗,最后不了了之。我知道这样下去也不是办法,于是请教了后台几位大哥,他们也支持我出去看看。

我找好了一个工资稍微好些的工作,然后跟老板提离职。刚开始老板温和地劝说,后来发现我很坚决,他立马翻脸了,一边骂我狼心狗肺,一边威胁我说:“深圳就这么大,你以为你可以去哪?”

说实话,那时候的我工作经验也不多,真的有被吓到。我跟下个公司的负责人说起这件事,他安慰我说不用管,都是吓唬小朋友的,对方还拍着胸脯说有事他来解决。在犹豫一段时间后,我还是离开了。

新的公司是一个实体到互联网转型中的公司,可是刚去不久,身体却熬不住了,开始不间断地肚子疼、发烧、发冷。由于是刚换的工作,而且需要赶项目进度,也不好请假,就那样熬了两三周。直到有一天,连走路都成为了困扰,我才打车去医院检查。因为疼得厉害,我躺在医院过道边上的一个床上,吐得脑袋都不大清醒,来来往往的人都看着我,脸上各种疑惑、犹豫、欲言又止的表情,没有一个人问问我。然后,我收到了入院通知。

至今我还清楚地记得那天,我跟公司的负责人说了这事,需要请几天假。对方在回了我一句“女生就是矫情”之后,不到十分钟,我就被移除出所有相关的微信群,然后被辞退了,甚至这几周工作的工资一丁点都没有给我。

后面的一两个月,基本上都是各种打针吃药。烧终于退下来之后,医生给我安排了手术。那段时间身上全是针口,到后面护士都找不到可以扎针的地方了。手术后因为并发症,住了好几天的 ICU,我也深刻地记得当时为了降温,医生在我身边放满了冰块,我跟医生说好冷,医生让我忍忍。

后来出院回家,体重竟然回到了初中的时候,瘦到睡觉的时候都会被自己的骨头磕着,然后开始了长达半年的恢复。

期间买了特别多的技术书,在家除了休息、低强度的锻炼,状态好点的时候就看书、写代码。身体恢复之后,我又回来了深圳。

PART

03

 工作常常不如意

要努力坚持自己的原则

工作常常不如意,但也请不要放弃。职场里竞争激烈,以前只出现在小说里、电视上的事情,都可能会出现在你身边,甚至发生在你身上。很多时候,可能并没有对错之分,大多数人都是为了混口饭吃。因此,你要有这样的心理准备,在碰到一些奇奇怪怪的事情的时候,不要陷入自我怀疑,不要丢失前进的勇气。即使再难,也不要轻言放弃。

要努力提升自己的能力,才可以选择自己喜欢的工作。我遇到过一些合不来的领导,包括事情做完不让早下班的、下班后依然 24 小时不间断打扰的、不允许提出自己的想法的,等等。曾经非常地迷茫。在这种情况下,只能不断地提升自己,让自己有足够的竞争力,才可以有更多选择的机会。工作是双向选择的过程,我们不用觉得自己是弱势的一方,也不必觉得委屈求全。

养成良好的工作习惯。首先,工作中的沉淀和思考是非常重要的。一定不要满足于仅仅把问题解决了,要更多地进行思考,尝试去把事情做得更好。同时,还需要把一些经验和想法沉淀下来,这些内容很多时候可以帮助到其他人以及未来的自己。其次,要做好时间管理。

这里分享我自己的几个小技巧:

1.合理分配时间,比如将连续的时间段给到需要专注的任务(比如写代码),零碎的时间则可以处理一些对连续性要求不高的任务(比如测试、复盘、思考等)。

2.把业余时间利用起来,培养一些习惯爱好,或是做一些小的学习任务。

3.合理使用 Todo List,可以用优先级对需要做的事情进行备忘,每隔一段时间进行整理和调整。

4.优化自己的工作方式,比如解决重复性的工作、避免问题的再次出现,等等。

身体健康比任何事情都重要。如今的互联网行业里,加班熬夜甚至通宵的现象特别严重。很多人没日没夜地通宵熬夜、吃饭不定时、基本不运动。因为内卷太严重了,大家没有更多的精力去考虑健康这件事。有句老话叫“不见棺材不落泪”,互联网职场中猝死的案例频繁发生,有些甚至就在身边。或许我们会被触动一段时间,也注意饮食和运动了几次,最终还是恢复原本的生活节奏。很多人都心存侥幸地认为这些事情发生在自己身上的概率太低,因此也不怎么重视。真心希望大家在身体还可以的时候,好好保重。毕竟我们的身体是 1,所有的财富、荣耀、名声都是后面的 0,只有 1 在的时候,这些 0 才会有意义。有意思的是,对于程序员来说,1 和 0 可以组成任意的内容、代表着整个世界。但如果说生命是 1,而其他事物是 0 的话,很多时候我们在做选择的时候总会忽视了已有的 1。自从经历了那次住院手术,生命和健康真正成为了我最重视的一道线。努力可以,奋斗也可以,但长期的加班熬夜通宵、无节制地消耗身体这样的行为则超越了我的底线。血的教训让我狠狠地体会了一把,什么事情对于我来说才是最重要的。

PART

04

大公司还是小公司,应该如何抉择?

在互联网行业,大公司和小公司其实有着各自的优势和弊端。

在小公司里,很多时候由于项目规模的限制,我们容易在一些技术深度方面到达瓶颈。但小公司也同样可以学到很多,相比于深度,倾向于技术广度,比如全栈开发等。除此之外,小公司有更多的机会管理团队,也有更多从零开始参与和设计项目的机会。

在大公司里,我们可以接触到更多有技术深度的业务场景,也可以向很多牛人学习。不过,大公司里大家分工明确,很多时候开发仅仅能接触到自己负责的那部分功能,整体提升比较局限。除此之外,大公司里团队很多,每个团队的风格、氛围、工作内容都不一样,未必都能获得自己想要的东西。

所以,在加入一个团队前,我们要尽可能多地去了解它,思考团队节奏、技术氛围、工作方式和内容等等,是否和自己的预期一样,是否真正适合自己。

对于我自己而言,在做职业规划和重大抉择的时候,一般会考虑下面三个因素:

  1. 工作中是否有足够的技术挑战,可以让我学习到更多的东西。

  2. 团队氛围是否开放,可以接受大家发表和探讨不同的建议和想法。

  3. 此外,还会考虑工作强度,是否会经常加班甚至通宵(毕竟现在的环境下,健康地活着才是胜利)。

PART

05

 写作的乐趣

我很爱写文字,也很爱将自己的想法记录下来,这对我来说是一件很有趣的事情。而当我写得多了,慢慢地,我发现它给我带来了很多的好处,比如,提升了工作效率,弥补了记性差的短板,思考过程给我带来了很多收获,等等。

我从 2016 年开始写作技术博客,到现在已经 5 年多了。后来我开源了《深入理解Vue.js实战》这本书,写作了一本《前端的进击》,并与另外两位小伙伴一起写作了《小程序开发原理与实战》这本书。

对于程序员来说,开源的意义深远,这也是我当初开源《深入理解Vue.js实战》这本书的初衷;《前端的进击》这本书则是将我的一些工作经验和方法进行了分享,希望能帮助到一些职场上的小伙伴。而在《小程序开发原理与实战》这本书中,我分享了很多小程序的原理和最佳实践,提供了很多避坑指南,希望开发者可以在开发的时候避开这些问题,也能在遇到问题的时候快速地定位问题。

对我来说,写作带来的最大的收获大概是自身的知识沉淀,以及我与其他人分享的时候收到他们的反馈,我也同样能从其他人身上学到很多东西,这更加坚定了我坚持写作的想法。

PART

06

给前端开发者的学习建议

如今前端领域的技术发展非常快,已经产生了各种分支,编写一个前端应用很多时候要涉及:代码编译和打包工具、前端框架、前端路由、组件设计、组件通信、状态管理等。从项目管理和工程化角度来说,还会涉及代码规范、开发流程、持续集成和持续部署等,涉及从开发到提交、合并、部署、发布、灰度、监控等各个流程。

对于这些前端技术分支的相关知识点,很多时候我们通过学习可能只能停留在 HelloWorld 级别,要想更好地扩展自己的技术领域,实践是理解和收获知识最快捷的方式。一方面,我们可以围绕工作中涉及的技术进行深度的加强,工作其实是很有效的学习过程。另一方面,对于工作中涉及不到的内容,我们可以找到感兴趣的项目去进行研究,来拓展自己的广度,也可以参与到开源项目中学习和实践。

作为前端开发,我们要提升自己的能力,就需要思考项目中存在的问题,是否可以更好地进行优化,比如:如何在发布过程及时发现并解决问题、页面的打开和加载速度是否可以优化、开发效率是否可以提升,等等。尽量多一些思考,多去借鉴一下业界比较成熟的解决方案。

至于小程序开发,它也是前端开发的一部分。在掌握了小程序开发这个工具或者说生态之后,剩余的和其他的前端开发工作其实没有太大的差异。

我和另外两个小伙伴写的《小程序开发原理与实战》这本书,包括了从快速入门、到原理分析和最佳实践、再到上云较完整的内容,既适合初学者入门,也适合有一定经验的开发者阅读。开发者只要有前端开发的基础知识(比如HTML、CSS、JavaScript等)储备,便可以读懂和上手。

对于小程序初学者来说,可以跟着第一部分入门的讲解和实战案例,配合小程序的官方文档一起学习和实现;对于想搭建有后端和数据库能力的小伙伴,可以跟着第三部分小程序云开发来学习;对于常常需要开发和维护小程序的同学,可以重点阅读第二部分原理分析和最佳实践部分。相信大家都会收获满满!

最后,应图灵小姐姐的要求,给大家推荐几本非常不错的前端图书。

对于前端开发来说,红宝书《JavaScript高级程序设计》是肯定少不了刷很多遍的,每次阅读都能有新的收获。

如果说红宝书是教科书,那么《JavaScript忍者秘籍》这本书可能就是练习册,它介绍了很多比较实用的 JavaScript 开发的最佳实践。

《ES6标准入门》这本书也非常全面和详细地介绍了 ECMAScript6 新引入的语法特性,对于 ES6 语法的使用有很大的帮助。

另外,我们在日常开发中还会涉及代码的设计,推荐《JavaScript设计模式与开发实践》,这本书介绍了基于 JavaScript 语言的常用设计模式,简单易懂又非常实用。‍‍‍‍‍‍‍‍‍


最近组建了一个江西人的前端交流群,如果你是江西人可以加我微信 ruochuan12 拉你进群。


一个愿景是帮助5年内前端人成长的公众号

可加我个人微信 ruochuan12,长期交流学习

推荐阅读

我在阿里招前端,该怎么帮你(可进面试群)
毕业年限不长的前端焦虑和突破方法

前端抢饭碗系列之Vue项目如何做单元测试
前端使用puppeteer 爬虫生成《React.js 小书》PDF并合并

················· 若川简介 ·················

你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》多篇,在知乎、掘金收获超百万阅读。

从2014年起,每年都会写一篇年度总结,已经写了7篇,点击查看年度总结。

同时,活跃在知乎@若川,掘金@若川。致力于分享前端开发经验,愿景:帮助5年内前端人走向前列。

点击方卡片关注我、加个星标

今日话题

略。欢迎分享、收藏、点赞、在看我的公众号文章~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【译】为什么我更喜欢对象而不是switch语句

原文自工程师Enmanuel Durn博客,传送门 最近(或者不是最近,这完全取决于您什么时候阅读这边文章),我正在跟我的团队伙伴讨论如何去处理这种需要根据不同的值去处理不同的情况的方法,通常对于这种情况下&…

摩托罗拉周二将正式分拆为两经营实体

据华尔街中文网消息称,摩托罗拉公司周二将正式分拆为两个经营实体——摩托罗拉移动控股(MMI)和摩托罗拉解决方案公司(MSI)。前者由主要面向消费者的智能手机和机机顶盒业务组成,后者则专注于公共安全无线电和手持扫描仪业务。 上述两家公司的股票均已于…

如何创建和谐的色彩系统

拥有和谐的色彩系统的好处 (The benefits of having a harmonious color system) Consistent branding express across all platform 在所有平台上表达一致的品牌 The consistent interface creates a better user experience 一致的界面创建了更好的用户体验 More productive …

java restful接口测试_详解SpringBoot restful api的单元测试

现在我们来利用Spring Boot来构建一个RestFul API,具体如下:1.添加Springboot测试注解RunWith(SpringRunner.class)SpringBootTestpublic class UserControllerTest {}2.伪造mvc环境// 注入Spring 工厂Autowiredprivate WebApplicationContext wac;//伪造…

老姚浅谈:怎么学JavaScript?

大家好,我是若川。当初我就是看本文深受启发,开始看书读源码。所以现在联系了作者老姚 授权转载分享给大家。我按照文中的做法敲完了《JavaScript语言精粹 修订版》,在2017年7月23日写出了我的第一篇文章《读书笔记》。看完了《JavaScript面向…

JavaScript 如何使用闭包

闭包基本上是内部函数可以访问其范围之外的变量&#xff0c;可用于实现隐私和创建函数工厂 定义一个数组&#xff0c;循环遍历这个数组并在延迟3秒后打印每个元素的索引 先看一个不正确的写法&#xff1a; const arr [10, 12, 15, 21]; for (var i 0; i < arr.length; i) …

ai中导入sketch_在Sketch中营造深度感

ai中导入sketchCreating a user interface with depth can seem daunting at first, but it only requires you to understand one fundamental rule — emulating a light source.首先&#xff0c;创建具有深度的用户界面似乎很艰巨&#xff0c;但这仅要求您了解一个基本规则-…

java byte转bigdecimal_Java BigDecimal byteValueExact()用法及代码示例

java.math.BigDecimal.byteValueExact()是一个内置函数&#xff0c;它将BigDecimal转换为字节并检查丢失的信息。任何大于127或小于-128的BigDecimal值都将生成异常&#xff0c;因为它不适合字节范围。用法:public byte byteValueExact()参数&#xff1a;该方法不接受任何参数。…

Python3+PyCharm+selenium3 环境搭建

安装Python3请去python官网下载安装包&#xff0c;我用的是Python3.6安装PyCharm&#xff0c;这个也是去官网自己下吧&#xff0c;偶的是2018.2.3&#xff08;CommunityEdition&#xff09;接下来安装seleniumPyCharm中Tremianl安装完成后&#xff0c;在python Console中输入没…

2021 年最值得了解的 Node.js 工具

大家好&#xff0c;我是若川。今天分享一篇用得上的 node 库 链接地址&#xff1a;https://github.com/huaize2020/awesome-nodejs❝前言&#xff1a;文章的灵感来源于&#xff0c;社群中某大佬分享一个自己耗时数月维护的github项目 awesome-nodejs 。或许你跟我一样会有一个疑…

DOMContentLoaded与interactive

ie中inline script执行时竟然第一次进入页面,doc.readyState是interactive.刷新则是loadinginteractive也就算了,竟然没有把dom树构建好,也没有body...而在inline的脚本里跑计时器什么的,去doc.body.doScroll(left);则有可能碰到interactive时dom树构建好的情况.而其它浏览器in…

figma下载_何时在Figma中使用组或框架

figma下载Groups and Frames have very different uses in Figma, but it’s difficult at first to tell why both of them exist. I can assure you that they complement each other, but first, you need to understand the nuances of each. I’ll show you how to make t…

java标记错误_标记电子邮件Java时出错

在调用以下我的代码片段时&#xff1a;Message message_in null;inbox instanceof IMAPFolderIMAPFolder f (IMAPFolder)inbox;f.idle();System.out.println("IDLE done");message_in inbox.getMessage(inbox.getMessageCount());message_in.setFlag(Flags.Flag.D…

迈入现代 Web 开发(GMTC 2021 演讲全文)

前言&#xff1a;希望像做游戏一样做 Web 开发的 dexteryy 同学今天在 GMTC 技术大会上又搞了一场「跨年演讲」&#xff08;内容超多的意思&#xff09;&#xff0c;不但现场爆满、超时严重&#xff0c;而且一如既往的讲完之后只要把讲稿和幻灯片拼起来就能发出来&#xff0c;大…

Laravel 测试: PHPUnit 入门教程

介绍 PHPUnit 测试的基础知识&#xff0c;使用基本的 PHPUnit 断言和 Laravel 测试助手。 介绍 PHPUnit 是最古老和最著名的 PHP 单元测试包之一。它主要用于单元测试&#xff0c;这意味着可以用尽可能小的组件测试代码&#xff0c;但是它也非常灵活&#xff0c;可以用于很多不…

Brad Wilson写的 ASP.NET MVC 3 Service Location 系列文章索引

Brad Wilson在他自己的博客写了有关ASP.NET MVC3依赖注入支持的一系列文章&#xff0c;但由于某些原因&#xff08;你懂的&#xff09;&#xff0c;需要FQ才能阅读。 为了方便自己也方便喜欢的同学&#xff0c;特意FQ再拷贝回来发布&#xff0c;以下是这一系列文章的索引&#…

注释标记的原则_它关系到平台如何标记操纵的媒体。 这是设计师应遵循的12条原则。

注释标记的原则By Emily Saltz, Tommy Shane, Victoria Kwan, Claire Leibowicz, Claire Wardle埃米莉萨尔茨 ( Emily Saltz) &#xff0c; 汤米沙恩 ( Tommy Shane) &#xff0c; 关 颖琳 ( Victoria Kwan) &#xff0c; 克莱尔莱博维奇 ( Claire Leibowicz) &#xff0c; 克莱…

saltapi java_搭建基于Jenkins salt-api的运维工具

1. 安装salt-master和salt-minion安装过程不再赘述&#xff0c;请参考http://docs.saltstack.com/en/latest/topics/installation/index.html2. 安装salt-api&#xff0c;cherrypy用来jenkins与salt通信启用salt-api在salt master的配置文件中添加rest_cherrypy:port: 8010host…

他开发了redux,昨晚字节一面却挂了?

大家好&#xff0c;我是若川&#xff0c;诚邀你进群交流学习。今天分享一次直播的记录。我写过redux源码文章。动手按照文中例子学习&#xff0c;我相信会有所收获。学习源码系列、面试、年度总结、JS基础系列redux的作者是谁&#xff1f;Dan&#xff0c;他的全称叫做Dan Abram…

Onew积极开拓国际市场,为全球用户提供全方位金融服务

当区块链技术刚被提出的时候&#xff0c;金融被认为是最主要的应用场景之一&#xff0c;具体包括建立基于区块链技术的银行间点对点支付结算系统和跨境支付系统、在交易所运用区块链技术实现股权的登记和转让等。 区块链应用于金融领域有着天生的绝对优势&#xff0c;主观来看&…