前端程序员成长的记录及被某IT外包公司套路的经历
亲身经历,记录下来,也敬告各位刚出社会的毕业生们,面试的时候千万擦亮眼睛。说一下事情的前因后果吧,本人坐标深圳,本科毕业三年,两年多的专职前端开发的经验。上个月8号从上家公司离职,休息加上看java的学习视频,大概这样过了十五天,准备用java,Vue搭一个自己的个人博客。因为上家公司的后台是用java写的,有的老项目前端是用jsp加jquery写的,工作中也经常接触,所以对java相对来说比较了解。但是搭着个东西可能也没有想象中的那么容易。前端页面倒是写得差不多了,本来想设计一个酷炫的,独一无二的界面效果加上布局什么的,其实这个东西如果你不抄袭,不模仿还是挺头疼的。写出来之后发现跟我想象的不是同一个东西,感觉有点迷。
后来就在某忧上更新了简历,然后在拉钩上也更新了简历,但是我没投过简历,后面在外包的刺激下就给腾讯,顺丰,华为的前端岗位投了简历,但是没有回应,其实我也有自知之明。github上面没有拿的出手的轮子,没有对某一个方面了解的比较深入,根本没有机会。
说一下我的经历吧,我的前端所有东西全部是我自学的,从刚开始在某宝上买的廉价视频教程,对照着上面乐此不疲的写静态HTML,CSS,学习JS基础,学习Jquery,看阮一峰大神写的博客,虽然当时可能还不知道那博客精髓在哪里,真的是通俗易懂,大道至简,推荐大家去看看,每天学习10多个小时,模仿各大网站,在找不到工作的烦恼下煎熬了几个月,钱也快要花完了。最终在朋友的帮助下找到第一份开发工作,刚开始工作的时候很懵逼,但是工作中用Jquery写静态页面,调ajax其实也没有想象中的那么难,后来公司要搞混合App,不太会,依然是网上去找资料,从此接触了ng1,Ionic,但是我还是主要做的是网站,接近一年的时间。因为某种原因离职来到深圳,本来当时在学angular1做混合app,但是我简历上也没有什么像样的项目,就模仿着做了个个人web简历,电梯楼层的一个单页的展示页面,自适应,还模仿了一个PC网站,没加meta标签,手机上依然可以看到全部视口,但是按钮什么的比较小,用jquery做的,大概有四十多个html,总共大概写了1个多月的静态的页面。放在github上,有一个很长的链接,可以在手机上直接访问,访问的速度很慢,甚至加载Css都要好几秒,一般我都是先打开,然后给面试官看,面试了几家,虽然是有点取巧,我记得有一个面试官对我做的东西不屑一顾,给他看那个没加meta页面,他说这是PC端的,他要移动端的。然后给他看电梯楼层的个人简历页面,他说这也叫移动端页面?其实我至今也不太明白他所说的移动端页面到底什么意思。然后他给我发了一个psd,看看我能不能做出来,我花了一晚上给他做好了发过去,没有任何回音。后来我面试了我的上家公司,公司做UPS的,面试的时候我把这两个页面给我当时的上司看,表示我们公司的前端可能做得不好,但是后台java写的比较好,可以来学习一下,我问他做不做APP什么的,他说后期会做。没多想就体检进了这家公司,挺正规的。技术上面前端是用jsp加jquery做的,里面很多<s:text name=””>,<s:iterator …..>,<s:if …..>,刚进去的时候还有点懵,后来发现也就是java里面的变量,遍历的是java里面的list而已,做项目当时的老大也会给合理的时间给你。在那家公司我啃完了javascript高级程序设计,加了不少公众号,每天看一些文章,花钱买了angualr4.0 ionic3的视频教程,跟着写了一遍,看完jquery源码解析,虽然有些地方现在也不太懂,比如那种很长的正则。在公司偶尔也会写一下java的接口,大概接近一年,公司里面的东西感觉越写越轻松,似乎对每一个页面,每一个button了若指掌,当然页面也不多,也就几十页面,但是页面上面哪个地方报错,看一眼就知道哪个地方的问题,学到了不少,那种感觉真的很舒服。但是待久就感觉东西比较简单,进入了死循环,想挑战一下有点难度的东西。找了个理由辞职,经理挽留但是还是走了。
life==1&&life==2&&life==3可以实现吗?现实生活中或许不可以,在js中也许可以
function Life(){
return{
i:1,
toString:function(){
return this.i++;
}
}
}
var life = new Life();
上面说到开始投简历,某忧上更新简历的效果真的让人惊叹,可能老程序员们有过亲身体会,但是这种状况我还是第一次遇到。以前都没人理我,一天接到很多个电话,基本上都是外包。人力外包,项目外包什么的。刚开始还跟他们聊一下,还去面试过一次,后来的电话就问一下是不是外包,如果是就直接拒绝(之前找工作可能也是运气比较好,做的都是自己公司运营的项目),拒绝的时候,有个别的HR确实牛X的不行,可能我说话也比较委婉,并不想用太强硬的词,动不动你找不找工作撒,什么某安,某为的区块链,微服务项目,什么我给你打电话是看你现在比较年轻,你学校又不行什么的(这个确实是我一直以来的痛点),什么再过几年你这简历我看都不想看。多的我也不想再说了,各位看官自己联想一下。
后来直到某公司打电话过来,我问她是不是做外包的,他说不是,然后就让她发地址。第二天忘了没去,又接到电话,就去面了个试,面试通常首先介绍我自己,然后我介绍了我做过的项目,然后这个面试我的人就开始讲了,说公司是做停车这一方面的东西,只字没提他们是做外包的,而且这个人对前端基本不懂,然后他说了最误导我的话,公司之前有人用C++写了Android,IOS的一个跨平台的框架,页面用html,然后巴拉巴拉一堆。我就问到有混合App的解决方案为什么不用,他说导航的问题,巴拉巴拉一堆,我说性能满足不吗,他接着我的话说是,我问他公司有没有UI,他说没有,但是都是参照同行的页面做的,然后他当场表示要我,让我立马来上班,公司急着要人,我说我考虑一下。其实他说完之后我知道他是在吹牛,但是没有当场戳穿他,倒是觉得即使没有写这个框架但多少应该还是有点东西吧。可能太年轻,就是这个错误的想法让我浪费了一周时间。
后来又面试了其他两家公司,都是一些小公司并且拿到Offer。除了在拉钩上给腾讯那些公司投过简历,没有主动投过简历,只面试过三家公司,而且觉得那个领导挺傻的又不懂前端,这可能就是我被忽悠的主要原因。其实更傻的可能是我,太年轻。
周一去了那家忽悠我的公司,把我的毕业证复印件,学位证复印件,离职证明都给一个做人事的女的。然后那个公司的老板找我聊了一下,大概的意思代码写得好不好无所谓,出产品,用户看得懂就可以,当然立场不同,而且他又是老板,我就附和说这个当然,当时还不知道他们是外包公司,公司20几个人,当时填写个人履历的时候我看到了他们公司有一份文件写着未干满30天不发工资,然后有一个做人事的女的跟我说试用期不交公积金和五险,工资发放80%,我问她你们公司社保基数缴纳多少,她说3000,然后快速的拉我进群,我问她签不签合同,她说暂时不签,我顿时一阵心悸,当场我就有点想走人。但是一想来都来了,先看看。
然后有一个跟我差不多大的人,暂时称呼他为甲,甲自己用的自己的笔记本,甲打开一个台式机的后台管理系统页面,然后还有一个移动端的界面,移动端的界面用JQ做的,我就没怎么看。我问甲后台系统是用什么框架,甲说ng2。然后我一看源码,代码上有ng-controller,$scope这种东西,一眼就看出来是ng1,然后我去问这个人,然后这个人指着一个类似package.json的东西,指着Angularxxxx:2.0.1跟我说是2,然后我指着Angular:1.x.x说这是1,那时候就感觉有点不对劲 。我大概的看了一下他们的代码,整体是用ng1+gulp+一个类似Emmet的模板做的,然后那个面试我的人给我发一大堆图片,当时我问他这边不用svn或者git吗,他表示用git,然后我到他们git上面去看了一下基本没有代码,那个面试我的人让我下午看一下easyui。后来下午我加了甲的微信,聊了一下,才发现我是来接他班的,跟我说什么这个公司还可以,但是他要离职。当天晚上我就在想第二天要不要去,实际上拿的钱比之前还要少,而且这个公司明显哪有问题,但是善良的我还是觉得不辞而别不太好。
第二天,有一个项目群里面的人加我,这里称呼他为乙,问我是不是做前端的,然后他问我XXX的项目页面有没有做好,我说我昨天刚来,然后乙发了一个他们的项目简介给我看。那个项目页面还没开始动,当时微信群里面就在讨论用C++的poco搭一个web服务器的问题,后来微信群里面又有个人,称他为丙,让我丢html到服务器上面去测试,我通过webstorm的Browse Remote Host把东西丢上去。一看返回来的html的代码显示在上面,这肯定不对。丙又要我丢一个html到一个nginx服务器上面去,正常显示。后来他们就在修改,然后我就看他们那个用ng1做的项目源码,有一个改变页面颜色样式的组件明显有BUG,改了颜色改不回来,还有个锁屏的功能,用JS做的,也是个鸡肋,后台没有做任何处理,把那个锁屏display:none之后照样操作,很多CSS的废代码,样式无用。后面乙在微信群里面说那个服务器的东西改好了,然后给了我一些接口,让我在服务器上试一下。是给了我一个ip:8080的东西,但是那个Web服务器的端口是9088,一看这个东西就知道涉及跨域了。但还是用JQ写了个ajax,丢上去浏览器显示跨域报错。跟甲说了一下,他们在微信群里讨论。然后我就下了vue-cli,配置resource,数据返回的是字符串:接口未实现。然后他们说又改好了,端口改成一致了。然后我就把vue的默认项目的首页打了个包,丢上去。又出现一个很奇怪的问题,丢上去的html里面引用的JS文件报错,有一段JS乱码了。一开始我以为是我打包的问题,反复创建项目打包几次,还是乱码报错。我就把项目丢到那个nginx服务器上面,正常显示,我知道应该就是那个服务器的问题。我就把截图发到群里面,乙开始质疑我,说路径有没有问题?,文件确定是同一个么?我说是。
晚上下班,丙一直给我发截图,说这个html为什么没有换行符,被压缩了。我说这个不影响,然后在看webpack和gulp的一些东西,这个问题被丙改到了晚上十二点多,在群里发截图,vue的那个默认首页可以正常访问。我问他什么问题,他说压根没有给我返回文件,我说浏览器里面可以看到JS报错了呀,他没有回答。
第三天,早上九点。那个面试我的人在群里说进度跟不上了,你们那边的进度有点慢,我们是总包,巴拉巴拉的一堆。昨天晚上丙刚加班到十二点,他怼一句谈何进度有点慢,如果是工作量大的话我们会加班完成。当然加班是没有钱的。至此我完全搞明白了,原来不对的地方是他们公司是外包公司,从我接到那个面试电话,就开始忽悠我了。一整天我都在想这个事情。上午他们在群里发了两个系统的界面照片。让我照着这个做,一个BS的照片,一个居然还是CS的照片。页面奇丑无比。我问怎么还有CS的,这个怎么对照,那个面试我的人说根据BS的使用习惯让我看着调。然后给我发了几个CSS的文件,我打开了一个,一堆class,有点无语,然后我问有什么其他要求没有比如兼容性什么的,丙回答谷歌必须要兼容,360最好也兼容一下。下午,那个面试我的人在公司碰到我的时候问我怎么样,他说他看我用的VUE,我说我不准备用Jquery和easyui,准备用Vue和Elementui,他说要跟其他小组做成一致,要像同一个团队做出来的东西。我说这个样式改成一致的也可以啊。他说这个比较慢吧,我说差不多吧,后面丙开始在微信群里催页面,问我能不能出差去那边开发,我没有理他。晚上九点,那个面试我的人开始在群里面问进度,问有一个摄像头的监控准备怎么做,面试我的人和乙开始讨论,乙说用VLC,但是我看了一下,谷歌最新版本已经不兼容VLC了,他说摄像头是网络摄像头什么的,我说如果是网络摄像头的话也许可以把摄像头的页面嵌进来,但是这种需求我没有处理过,觉得还有点意思。讨论到晚上10点多
第四天,早上九点,乙就开始让我给代码他。我写了一行iframe,给他测试一下不行,那个网络摄像头监控页面使用flash写的。其实flash的话应该也可以嵌,他开始问还有什么方案,没人回答。微信群里面乙又开始提VLC,并发给了我一个demo,我说谷歌已经不兼容了,强制不用还是怎么样?他说立马就说你没有下载插件,我说并不是我没有下载,是已经不再支持了。让他去下载个谷歌试一下。丙在微信群里面说必须支持谷歌。乙问还有什么方案,然后我没有理他,开始写我的页面,看了一下文档并没有仔细的去看,那个参照页面是用easyui写的一个多窗口一个东西,Elementui中并没有这样的组件,我用的vue路由实现,用watch监听路由变化的时候push到一个数组里面,在模板中循环出来那个数组,给元素绑定一个跳转路由的事件。
下午群里面又开始催,页面有没有写好。我问他要参照页面,或者页面的逻辑,他给我发了一个后台业务逻辑的文档,里面写着数据库里面存储的字段类型。我说你把这个发给我干什么,乙说这个你看懂了没有,我有点不爽,不就是增删改查么,乙说还有把数据绑定到页面上去,我有点无语,说,好。
第五天,中午那个面试我的人又在问我怎么样,我说还好吧,没有什么难点。他说20多号能不能做完,我在想CSS上面没有UI,没有对照的东西,甚至具体的页面中显示什么东西我都不知道。我说那个后台页面差不多吧!他立马说还有那个前台的页面也要做完(一个是系统界面,还有一个是售票的界面),他说没什么复杂的吧,就是一些窗口切换display的东西,我们是总包,20多号就要上线。我说确实没有什么复杂的,但是没有UI,没有具体页面参照,这些细节东西也很花时间。他说那就不写样式,把JS写完,接口的话先用假数据,到时候把接口调通就可以。我又问他具体是20几号,他说22号。
当天是7号,我刚来第五天,还没有签合同,除去两个周末一共十一天时间。后面我又认真的看一下需求,功能菜单上一共近60个功能,也就是说VUE要配置60个路由,加上页面一些逻辑,调通接口。即使大多数是增删改查,但是想要封装是不可能的,因为页面逻辑未知,UI未知,即使做出来了也是一堆垃圾,后期BUG无数,都是复制粘贴的,报错了你都不知道什么问题。当时我真的很深刻的体会到为什么大多数程序员不愿意进外包公司,因为模式,你就是他的一个赚钱工具,就是拧螺丝的一个人,接近深圳市最低的社保,试用期没有五险一金,入职不签合同,没干满30天不发工资,完全没风险,为什么外包公司要把前端后端分清楚呢?因为你离职了好招人,为什么会有这么多人跟你主动打电话问你找不找工作?不是因为你优秀,因为多招一个人,他们又可以早点多做完一个项目,那就意味着老板又多赚一笔钱。周末双休?那是搞笑的,因为实质上项目时间周末已经算在里面了,你的能力在他看来是没有意义的,会框架会复制粘贴就可以了。
我想起我面试时候他跟我说公司里面之前有个人用C++写跨IOS,Android的框架,之前我还以为他只是在吹牛,可能有写点什么东西出来,最起码不会像外包一样没有时间自己提升,疯狂赶进度,但是我错了。我现在知道他完全是在骗我,他就是外包。甲周五已经跟我交接,告诉我要悠着点,说页面就复制成一模一样的就可以了,本来是面试我的那个人要签字的地方,但是他让我签。让我签就让我签呗,反正我没签合同。下周一把我的离职报告拿回来,这个地方不是我想呆的地方,肯定要走人的。
晚上面试我的那个人在群里面发进度报告,晚上我就表示这个东西时间太短,代码会太烂,那个面试我的人表示后面可以慢慢改,丙说先把东西做出来再说,那边一直在催。当时我在想好啊,我给你做出来,做出来然后走人,正好VUE也练练手。把打包好的给你,想跟我要源码,你的脸怕是比城墙还厚?晚上去喝了点酒,真的很不爽。
周六的晚上稍微写了一点,然后睡觉。
星期天调整了下心情。我体验了一下赶进度到底是个什么样的感觉,开始疯狂的复制粘贴,自己大概写了三十行代码。复制了一天,把我之前原生JS封装的一些东西,还有百度的大部分东西疯狂复制,在此感谢各位把代码写到博客上面的同志。配置33个路由,封装了一下http请求。后来打包的时候发现vue中路由的history模式,代码丢到tomcat服务器上面,刷新页面后JS的虚拟路由不存在会报404。把history模式删掉,路由中有一个#号很难看。还是要了解一下,要在服务器上修改一些东西。这是我用VUE写的第二个东西。
当晚七点那个面试我的人又在发截图,丙说一直在催页面要我出差,我都不想理他,我就对面试我的人说明天我们聊聊。
当晚思考了一晚上。
第二周星期一,以前公司没结清工资的理由要回了我离职证明,把打包好的项目放到他们服务器上,找面试我的那个人聊了两个小时,中间的对话有点颠覆我的想象力。我质问他那个写框架的事情是不是在骗我,他不承认是在骗我,巴巴拉拉的一堆,一顿胡说八道,我问他要源码看一下,他说没有。我问他你写了多久的程序,他说8年,我问他要他的github,他说没怎么用过github。我都怀疑他是个假的程序员,脸皮真的厚的可以。话不投机我就直接走了,毕竟没签合同,欺骗我,还耽误我一周的时间。
此文敬告那些正在找工作的程序员朋友们,以及正在努力的朋友们,找工作需谨慎。当一条咸鱼也要做一条有梦想的咸鱼。下面导航栏的明细。