【前言】本文将会讲述我从开始认识前端到至今工作的经历,一步步来,我也想以此为记录,以后我翻出来看的时候才会想起我以前的经历,文章会略显拖沓,反正就权当聊天看吧,看一乐,见笑。
【备注】有关这类找工作的话题希望大家理性讨论,主观意识很强,所以没有对错,只有适合自己的才是对的,你的点赞转发关注将会是我持续更新文章的动力。
?? 选专业
怎么说呢,这是我能想到这段经历最早的时候,总不能从我还在我妈肚子里讲起吧哈哈哈哈哈哈,高考完考的很差,记得高考出成绩那天查成绩的时候天很晴,但我心里却是凉飕飕的哈哈哈哈,想了很多种高考失败的方案,到了真正面对它的时候却显得不知所措,想过复读、想过直接不读外出打工、想过读个大专,反正基本上每条出路都想过了,但是成绩却也没有如我意,卡在了不三不四的地方,上不能到一本,下不会去大专,看起来也只有二本可读,高昂的学费在此埋下了伏笔,但我也只能选择二本就读,同年也就进入了广州某二本哈哈哈就读软件工程专业,对于这个专业选择,其实我也算是颇有渊源,在高中的时候有参加过计算机竞赛,说算是竞赛吧应该也不算,可能更多是算作活动,就是那种很少代码然后写一个小页面这样子?很久了,其实我也记不太清楚了,总之就是这个比赛让我对代码产生了兴趣,想着嗯当个黑客红客写代码也很酷吧,所以我选专业的时候毫不犹豫就选择了软件工程,也是懵懵懂懂跌跌撞撞,没有了解清楚就进入了这个专业,进来以后才发现好像不是我想的那样像黑客一样侵入别人计算机获取隐私信息,才知道这是要坐牢的,吓得我屁颠屁颠的。至此选专业的故事也就告一段落。
? 我滴大学生活
估计跟大部分人一样,程序员入门的世界就是Hello World
,软件工程专业的主修便是 C++
(当时是第一节课学的C++
,后来才学Java
)一开始对着那个实验室的破电脑敲出这句Hello World
的时候真的是想跳起来,我在想wc,这个好神奇,什么东西,但是转念一想,这又是什么东西??怎么输入了半天,配置环境配置了半天结果还就输出了一句话???有没有像我一样想法的人,评论区扣个1好吗,简直离谱,反正做了半天,输出一句Hello World
又开心又觉得有些搞笑,不知道在做什么,反正就跟着敲,老师写啥我写啥,生怕漏写一个字母,我还得找个放大镜对着文字一个个找漏了哪个字母,我真的是拴q。但是其实比较有趣的还得是我大前端,人家C++
是只能在编译器里输出两句话,我Html
多?,直接给你整个按钮、整个色块、整个文章段落啥的,这不比C++
有趣多了,加上当时教Html
的老师确实教的比C++
的老师好太多,讲的有趣生动,我也很喜欢上他的课
自然也在这方面下更多的功夫。我还记得我结课的大作业,跟同学一起做的海贼王简介Html + css +js
,纯静态页面展示我们喜欢的海贼王,但是也就做的一般般哈哈哈哈哈哈,当时我们为了凑工作量,疯狂的把一些页面copy出来修修改改,果然Cv
展示的根从这个时候已经埋下了哈哈哈,虽然最后评分也还行,好像打了90多分,但是在现在的我眼里看来简直是神迹好吗,我猜它现在还存在我某个u盘里面,等我找到它了,我再找出来给大家笑笑,现在想想也会觉得很好笑,也很难想象当时做的东西对于老师来说究竟是一个什么样的存在,我猜老师是这样想的:老子?山见的多了,但是第一次见?上面还非得雕个?的,在这里抖机灵(copy
这么多页面),虽然老师没点破,但是我们还是心有点虚哈哈哈哈。然后在这之后,第一个学期也就过去了,反正期间一些杂七杂八的课我也不过多介绍啦(计算机导论什么的,反正都是一堆基础知识,死记硬背,至今早已忘记……),然后到了学期末就是激动人心的抢课环节,其他抢的课索然无味,最有趣的是在抢课最后一分钟抢到了一门Jquery
,当时对于我来说这门课是什么样的存在呢,就是一般抢课都是有顺序的,大三 > 大二 > 大一,这样去抢,导师也没有说推荐我们去抢这门课,但是这门课对于我们来说可以修专业必修分,也就是毕业的一个条件之一,要选够一个本本上的10分,大概是这个意思,所以我们只能捡漏蹲课,我的舍友早早就蹲到了,给我羡慕的,我也很想修,一直蹲没蹲到,到了抢课关闭前最后一分钟的时候,我他妈捡漏捡到了,我真的是跳起来了,到处串门炫耀,我现在真想回去打过去的我一巴掌,谁知道这门课对于当时的我来说有多难,真的是自找苦吃。
转眼间就第二个学期咯,有了前面的伏笔,刚刚去试着找了一下我自己以前的课表,发现登录不上去账号了,算了哈哈哈,努力回想一下,应该就是开始学Java
了吧,可以说一下,这个学期除了我抢课抢到的Jquery
,完全就是没有一点前端的内容,一点都木有,现在想想还真是很不合理吼,前后端应该更加均匀的分配资源课程,而不是一味地往后端培养,但是后面我也发现新生的课程也加入了Vue
,我当时根本听都没听过,一个Jquery
就把我整的服服帖帖,还什么Vue
,是什么东西?吓得人傻,想来有趣,那个学期的绩点突破新低,我记得考完试后只剩下3.0的绩点,猜猜我的Jquery
给了我多少分,留点悬念,慢慢看下去,其实那个学期还学了一些Java
的内容,其他的真的我想不起来了,已经过去了快5年了,谁能记得当时学了啥哈哈哈,反正真的很基础,很基础就算了,我还掌握不了,笑死了,我的同学已经写着毕设了,而我还在捏着泥巴,混迹社团,打着篮球,不亦乐乎,丝毫没有学习的心,那段时间是真T喵的爽呐,大学生活,现在想想就觉得爽,没有经济的压力(其他人可能没有,我有),没有学习上的压力,参加着自己的社团,吃吃喝喝玩玩乐乐,想当初上高中的时候每周回一次家,我必回家。在大学,我一个月都不一定能回一次家,虽然坐个地铁就到了,但是也不想回家,在学校不香吗,开着黑,吹着空调吃着西瓜,哇,别提多爽了,真的。报应也很快就来了,每次上课也没太听进去,加上老师速度有些快,经常没听到开头,整节课就开始懵逼,然后拿起手机就开始刷视频,下课就找同学借作业抄,拿过来改改变量名,又是我的一份作业了,不知道有没有跟我一样的哈,我觉得我的经历应该是大多数人的经历吧。
印象最深刻的就是Jquery
这门课居然要求我们做一个课设是蜘蛛纸牌的课设,需要能够发牌抽牌什么的,好像还做过扫雷,我其实也尝试自己做过,但是我发现,我的努力根本不值一提哈哈哈哈,琢磨了半天就写了两三个变量,不亚于只会写个Hello World
,效果真的是做的五花八门,抽个牌给我写的飞上天,发个牌发着发着就消失了,也不知道咋消失的。每节课的作业还是靠着我的师兄师姐们给的答案渡过难关,这还不是最难的,考试才真的谢天谢地,感觉背的全不会,考的全不对,发现所有的题目都不是我背的,已经想着要凉了,感觉要补考了,不知是老师对我善良了还是我蒙的准了一点,让我勉勉强强通过了,考了一个74分,我已经感觉超常发挥了,但是心中却有一些失落,因为这个成绩又是拉绩点的一门课,其他课程陆陆续续又出来,结果绩点根本就看不了。
还别说,其实到这里我学校的前端之路好像就莫得了??从大二开始完全没有接触过前端的内容,只专注于学习Java
、Php
、Python
和自己选的一些选修课程,除此之外也完全没接触到前端,然后系统学习前端的时候就是因为参加比赛的原因,那时候还小,反正老师说鼓励我们多参加比赛,就想着组织一个自己的团队去参加比赛,管它什么比赛,我也认识一点人,然后就组了一个小团队就进行软件设计开发,那个时候真的是什么都不懂,就开始分前后端了,因为在那个时候前后端分离已经深入人心,学校的破jsp
页面,真的是受够了哈哈哈哈,太垃圾了。那我的小伙伴都是软件工程,也就意味着大家全都是学Java
的,只有后端,没有前端,又不认识其他学习前端的同学,所以就只能自己上了,我就想着尝试一下的心态,结果为我现在的发展铺出了道路。
? 初识前端
初识前端,那其实根本不叫认识,那叫做见过面,但是招呼都没打过,那时候的我连Html + css +js
这套东西都没搞明白,然后团队想开发一个小程序,我倒好,直接就去找个视频教程学小程序了(别学我,这里有很大的问题),但是好在后面补课了一些教程,把我给救了回来,刚开始的时候完全不懂,就是跟着视频摁敲,反正学到哪算哪,我也是一顿摸索,我记得我收藏了好多老师的课程,什么黑马pink
老师、coderwhy
老师的课程,也都是看过的人哈哈哈哈,虽然现在学习全靠自己读资料根本不看视频,但是那个时候的我读资料简直是折磨,我只有跟着老师去读才能读懂,如果有跟我一样的小伙伴可以尝试一下这种方法,前期就慢慢看看视频,放个1.5倍速、2倍速,看看视频也还行,后面跟不上自己进度的时候就换成读资料。接着就是分清楚了大概的类型,什么后台管理系统(web页面)、小程序、app啊之类的,也能大概明白,当时我记得还有我的同学参加比赛用了uniapp,我想这是个什么东西,没学过,就好奇去看了一眼,教程:Vue
框架到底是什么?我:????,我不是在看Uniapp
吗,怎么又讲了Vue
,着什么东西,我真的那时候脑容量爆炸,一点点学都是崩出来一个字:“放弃”,真的很有意思,但是其实我对前端比较感兴趣吧,所以我看的时候也不会太乏味,有一个问题就是我很容易分心,包括到现在也是,经常做着自己的事情的时候(看视频)会不自觉的刷起手机视频来看,这是一个坏毛病,到现在也没完全改过来。学了小程序后,也能做一些简单的页面,整合一个小程序,基础的页面也能做出效果,能简单还原设计稿,也是比较幸运,通过这个小程序参加比赛获得了一点奖让我后续免去了毕业设计(只需要写论文进行答辩即可)。机缘巧合之下,其实也是经济压力所逼,倒逼我这时候同步找实习工作,因为大家都出去实习了,好像我不出去实习很落面子,同时也是想赚点钱,学点东西,因为看视频学的也看的够多了,因此也不满足于现状,冲出去试试看,看看师兄师姐告诉我们的Vue
到底是什么样子的,看看社会上的前后端分离长啥样,看看真正的程序员是不是穿着格子衫,看看实习有多少工资。
? 我的第一份实习
找实习的时候其实我才大三,我记得那个学期我每个星期还有两天有课,然后我的第一份简历写的也不咋地,没有什么项目经历,刚开始找实习的时候,能看的过去的几个奖也就只有个奖学金,但是对我找工作没有什么帮助,还是得刷面试题,背面试题,找了大概一个星期左右,终于有面试机会,但是都不太顺利,前前后后可能面试了3家吧,到了第4家,我感觉是我运气好,但其实运气也不是很好,面试的时候问了我一些比较基础的问题,也没问什么特别难的,综合我的项目去讲解我怎么做,可能留下了一个好印象,面试官(也就是未来的直属上级)就让我过了,找到这份工作的时候我还很开心,毕竟算是我的第一份实习,综合考虑了一下我的课程,其实也很难找(星期二四要上课),每周只能上三天班,很多面试官其实对我不满意的点就是这个,所以选择这家公司的时候其实我也没过多犹豫,反正是实习先做着,但是当时很匆忙哈哈哈哈哈,甚至没有了解公司业务(技术栈)就去这个公司干活了,只知道是需要前端,看到这里的小伙伴千万千万不要学我,我也是运气好而已,如果运气不好遇到传销组织啥的,就真的是老倒霉蛋了。开开心心背上我的小书包去公司的时候,我才知道这个公司是做Vuepress
的,但在当时,我对Vue
还不是很熟,直接就去做一个衍生框架,就更离谱了。前面说了,我学习的方式其实主要是视频,到了公司我发现行不通,因为业务倒逼着你一定要去读文档,如果你是一个个视频看,等你看完你也被公司开除了,业务紧急,当时公司正在重构项目,所以也急需用人,我是公司前端第一个实习生吧可能,反正在我来之前没看到有其他实习生,刚来公司,老大就让我拉代码,看Vuepress
文档自己学习一下,应该是一个星期的学习期吧,一个星期后就要开始干活了。嘿,第一步就来拉代码,说个好笑的,我以前从来没用过git
,然后只听过它的名字,知道大概的作用,在这之前我都是,我都是拿个u盘把代码拷来拷去,每次记住哪个是最新的就好了哈哈哈哈哈哈,进公司最难的第一步就是拉代码,因为要自带电脑,所以我赶忙下载一个git
,生怕老大发现我根本不会拉代码,把我开除了,然后折磨了一段时间(大概一上午),就实现了个把项目代码拉到我本地了,结果一个项目里面有几十万行代码,我擦,我直接懵逼,真的当时直接傻掉,根本看不懂逻辑,虽然有基础的标签,但是我的脑袋就轰的一下感觉把基础全忘了,这是我平常学的东西吗,怎么是这样写的,目录架构也不一样,哇,当时真的有被冲击到,还记得那时候读了一下午的代码,甚至只是一个文件,都没读懂到底是干嘛的,因为第二天要上课,第一天上完班后回去学校的路上还一直在看代码,在看Vuepress
文档,那几天的脑袋里全都是这些知识,我自己尝试着手搭一个项目,用来自己玩,但是根本搭不出公司项目那样子,只能是边学边问,到底要还是不要。好在老大对我很好,基本都是有问必答,能大概理解我的问题,做出比较好的作答,也帮助我比较快速的适应了整个开发流程,好在我的学习能力也不错,一个星期就开始能够协助开发了,当然,知道这个技术栈的小伙伴应该知道最主要的是做什么吧,没错,就是静态页面开发,有部分业务逻辑是需要写,但是大部分情况下还是在开发静态页面,其他都已经是封装好了的,直接拿过来用就可以了,其实就是做静态SEO,为了让爬虫收录,以此达到营收的目的,公司主要做海外的业务,所以技术栈就选择这个了,记得当时应该也是刚兴起吧。然后后续公司还收了三个实习生小伙伴,那是我第一次发现自己学校的渺小,基本都是一本起步,没有跟我一样的院校,也让我更加努力,那时候让我们四个人开会说明了实习的淘汰制度(为期3个月,表现不好的人,将会被淘汰,两个人会留下),当然纯看自己业务做的怎么样了,也不是比拼谁加班更久,做了一段时间后才发现自己还是可以的哈哈哈,也幸运地被留下来了。再后来公司经历了一系列的事情,老大被逼走,我就知道事情其实不简单了,但是我至今也不太清楚里面发生了啥,毕竟我只是一个卑微的实习生,后来跟一个公司同事混的比较好,才知道大概是重构远没达到预期,公司老板逼走我的直属上级,反正就是一系列比较恶心的操作,我当时已经能做到独立接需求开发了,所以公司好像也是想着反正我便宜,先留着过渡吧,最后前端也就剩下三四个同事,反正不多,我也要独立去接需求做,真的会谢,那个产品还总是傻乎乎的,整的我确实有些无语,然后我也不想待了,因为该学到的东西都已经学到手了,没有什么值得我学习的了,都是一些杂七杂八的需求,没什么业务上的难点和挑战,一眼就能看到头那种感觉,而且公司技术想转型到WordPress
,我知道这时候肯定得走了,恰好hr也跟我谈这个事了,顺势就走了。嘿,结果你猜怎么着,过了没两三个星期,hr还回头找我,因为公司前端还没找到人,所以只能找回我去哈哈哈哈哈,虽然那时候的我在忙活着找第二份实习,但是还是想着先干着,毕竟还有钱赚,何乐而不为,所以我就提出了:涨薪就回去,我现在想想自己都觉得牛,倒逼着hr给一个实习生涨薪,大约是1k的费用,还通过了,真的爽。然后同时也找着其他的工作,找到了之后再次提起了离职,这时候hr已经找到人了,所以也根本没有挽留我,我的第一份实习工作也到此为止了。
? 第二份实习
第二份实习面试是在学校内投的,先笔试,然后线上面试,我还记得我当时为了面试,还精心打扮了一番,结果紧张地刮胡子都刮破皮了,流了一点?,真的是记忆深刻,面试倒是不难,一些常规面试题,主要是针对于Vue
,然后也问了项目情况,其实当时就结合了自己的项目情况去说,说的也比较流畅,面试了这么多家,发现还是项目情况最重要,面试官会根据你回答的情况来了解你开发时的一些问题,公司主要技术栈是Vue + Vue-Router + Vuex
,也有一些老的项目是使用Jquery
,部署在Java
那边,也就是没有前后端分离的项目,基本改到的时候就是盲改,我本地也没有环境,所以就猜哈哈哈哈哈,找到对应的去改。另外一些项目就是拓新项目了,当时也有开始尝试Vue3
的项目,我也有进行尝试。说来也比较有趣,这家公司其实是外包公司,主营业务就是互联网医院,就是针对常规业务进行迭代升级,然后修修bug,老大对我也挺不错的,有问题就问,他也会尽可能帮我解决一些问题,遇到极端的bug和问题都会帮我解决,他经常也让我去尝试创新的技术,或者探索一些公司业务线上没有做过的东西,我特别喜欢这个挑战,我总会因为但最终在转正前还是因为一些众所周知的原因而离职。吐槽一下,在离职后,我这个实习生还被扣了1k多(过年放了假,公司说实习生不享有过年假),真的还好我跑的快,真的有点恶心人了。
? 寻找转正工作
吸取在上家公司的经验,我发现外包公司其实比较不好的一点就是没办法深入讨论需求,往往都是甲方需要什么,就叫我们做什么,一般产品设计出原型图之后,我们就开始敲代码,会做简单的需求讨论但不多,就只能简单参与,我希望技术也是能深入产品需求讨论的,而不是一味做技术。所以我就确定了需要找一家自研公司,想找一家比较大的公司,分工能够明确一些,让我的技术能真正应用于服务,为应用保驾护航,至于现在的公司,我暂时先保密,等到合适的时候再跟各位讲。目前技术栈是React + React-Router + Redux + Taro + Typescript
??
给各位的建议
有的刚毕业的小伙伴来问我找工作难不难,其实按照我身边朋友的经历来说,我可以告诉你们,难,但是也不是完全没有机会,我身边有的小伙伴都是Java
工程师、测试工程师、前端工程师、嵌入式工程师……,有找不到工作的小伙伴,他们已经找了快将近一年(因为拒绝了转正而去寻找更好的工作导致毕业即失业),我见过他们一直焦虑的寻找工作,甚至于转行然后默默地等待机会,最后再回到这个行业之中,确实是段辛苦的路,但我也很佩服他们的坚持,生活就是这样,机会总会留给那些有准备的人,如果你还在寻找工作,苦苦寻找却毫无收获,无论是实习也好正式工作也好,我希望你们能一直坚持下去,不断地提高自己,打铁还得自身硬,如果自己能力不足,根本不能怪罪这个社会,那些在高层的人总有他们的一技之长,我们要做的正是一点点往上爬,跟他们竞争这一碗饭,不学习就会落后,这是亘古不变的道理,无论是什么技术,没有最好,只有更好,每个技术每天都在更新迭代,身处这个行业如果不时刻保持一颗求知的心,那终有一天这个行业会对你很残酷。找不到工作的小伙伴,可以评论区跟我聊一聊,或者你觉得这件事比较隐私,有兴趣跟我在公众号保持联系,也是可以的,虽然我给不了太多的建议,但是可以简单帮忙改改简历,多少会有一点用处,希望能帮到你,只要我能帮到你,我会尽我所能帮助你。已经找到工作的小伙伴,我们一起努力变得更好。
学习路线
这个学习路线纯属是我个人的学习路线,你们可以看着来,但是你要根据自身调整,不要抄袭我,这个路线并不适用于每一个人。
- Html + Css + JS(重点是JS,请你熟悉每个方法,每种类型,基本的逻辑)
- Jquery(可学可不学,现在已经很老了,掌握一些基础语法即可)
- 微信小程序(我越级学习的,按道理来说应该放在Vue2.6之后,这里按照我自己的学习顺序放在这)
- Vue2.6 + Vue-Router + Vuex + EventBus + ElementUi + LayUi + AntDesgin,现在市面上的公司估计大多数还处在这个版本,也算是比较新的项目了,写了很多ui库,可以尝试去使用一下,简单做一些小demo即可,应该能涵盖很多公司使用的UI库了
- Vuepress(这个没啥说的,就是我的公司业务需要才学的,建议不要学,感兴趣可以瞄两眼,不感兴趣跳过)
- React16.8 + React-Router + Redux + MobX React16.8,现在公司业务需要,所以我的技术栈转向这个了,Router也没啥好说的了,两个状态管理库不常用,Mobx比Redux轻便一些,写法简单,Redux胜于社区比较庞大,但是能够知道大概的用法即可,业务不太涉及到
- Taro + 各类型小程序(百度、抖音、淘宝、支付宝……)(业务需要,用的React+Typescript的版本,类似于uniapp,主要做小程序,感兴趣可以瞄两眼,不感兴趣跳过)
- Node(Express、Koa,这两个框架也比较经典,自己也开发过几个项目,Egg的话没使用过所以不做评价,但是也是很火的一个框架)
- 服务器配置(Nginx、Docker、Minio、Jenkins、Gitlab,可以不学,一般会有运维人员去做这件事,了解即可)
- 后端语言(Python,这个是我选修课学的,所以也会用,Flask框架不错,用的挺顺手的,前端可以不学,但是要了解)
写在最后
最近我做了一个自己的个人公众号,一方面是为了一些小伙伴能够在微信上能看到我的相关文章,另一方面也是想尝试新鲜事物,作为自己的一个挑战吧,还有一个方面是为了建立大家与我交流的渠道,这个公众号完全是由我本人运营,所以也不定期更新,回答各位小伙伴的各类问题,公司业务繁忙的时候也没办法实时更新,所以只能保证不鸽,希望大家也能多多给我的文章点赞转发在看啦,最近也会实现一些比较有趣的功能在我的公众号上,尽情期待。我也在这立个小目标粉丝先突破100好吧。
微信公众号名字与笔者名字完全相同:微信搜索公众号陈适时点击添加关注即可。