我从2018年来北京,先培训了五个月,然后在2019年的时候参加工作。
2018-2019
从七月中旬到北京,为期五个月的培训时间,培训内容是区块链;公司怕我们找不到工作同时教了我们 react-native
,因为那个时候还是非常火的一个技术,找份工作相对容易些。
这段培训经历主要是受区块链的技术理念和前景所吸引,所以来了,然而最后并没有从事跟区块链相关的工作。只不过我感受到了在培训班的那种氛围是真的好,工作了居然没有了。
2019-2020
1:北京未名空间信息技术有限公司
我在 2019 年年初的时候找到了一份 c 语言
的工作,实际上在公司做的是 php
,工作差不多两个月就因为学校毕业就离职了,这家公司就一个技术,我去了就我,刚去的时候前面那个技术还没离职,整天问他问题,最后他很高兴的走了,留下独自一个我每天“面屏思过”,公司不忙,基本上可以说是没啥事可做,有时候会有需求,只不过需求都不是很多,要不了多久就做完了,做完以后老板也不着急检查,更不着急验收,但是有时候在前面需求还没上的情况下又来了新的需求。整体来说就是没劲。特意说一下最后一个月的工资也没有给,我也不计较太多,毕竟我在公司也没做啥活。
那段时间我学习了很多关于 php
的知识,但是我发现 php
不好用,特别涉及到跟 c 语言
交互更是麻烦,当时我们公司使用的 php
版本很低,下载很多包都不能用,必须要找到低版本所对应的低包,有时候下载链接都要找很久。
这份工作不适合年轻人,适合养老,但薪水不高,慎重考虑。
2:济南红马网络科技有限公司
这家公司其实给我的印象不错,虽然我在里面并没有待多久,当时这家公司的流程是:需求评估》技术开发》整体测试》 BUG 修复》上线。
其实我并没有经历完这些流程。只不过给我影响最深的还是整体测试,我们并没有测试部门,开发就是测试,所以到测试流程的时候我们大家会找一个会议室,拿着电脑,从第一步测试到最后一步,如果需要什么数据,现场造,同时我们也会在测试中总结一些我们在开发中的不足,怎样降低 BUG 数量等等。
同时我看到公司的代码耦合度很低,即便有两个页面非常的相似也不会写在同一个文件里,但是我仔细看了看发现是按业务划分的;我们知道业务型公司,变的是业务,如果业务不相同,那么就不应该写到一块,因为每次改动大概率是某一个业务的改变而不是页面的改变。所以封装的原则是业务,由此产生了 UI 和业务的问题,有时候 UI 相同但是业务不同,我们到底是分开还是写到一块;我的采取措施是分两层,一层是技术或 UI 层面的,一层是业务层面的,只不过这个的鉴定并不是很明显,所以需要经验。
在这家公司主要是前端开发,只不过职位是全栈工程师,当时我去的时候前端使用的是 react ,后台使用的是 nodejs,前后端通信是使用的 gRPC ,由于开发的是桌面客户端,所以我们使用的是 electron 。
3. 北京藤蔓微谷科技有限公司
这家公司相当于我真正意义上的第一份工作,虽然因为太累最后还是选择了离开,只不过在这家公司工作的那段时间收获很大,不管是代码层面的还是其他方面。
不断学习,刚到公司有很多我都不懂,所以那段时间即便是在地铁里,我都不断地学习,当然我很幸运最后我都大差不差的完成了公司给我分配的任务,也获得了老板的肯定。
最让我记忆深刻地是排查问题和解决问题,因为刚开始写代码,很多地方都存在不足,写出来的 bug 就比较多,这个时候就是锻炼解决问题的最佳时机,首先在解决问题的过程中切记不要脚痛医脚,我们既要知道出现问题的地方,也要尽可能知道出现问题的根本原因,靠猜来解决问题是不好的,只要是力所能及的时候都尽量找到问题的主因。这样的好处要大于只解决问题的方式,追根溯源能真正让自己学到东西,也就是进步,当然也不要一味的找问题,要从工作时间和问题的难度来做判断,时间本身不够的情况下,可以先记下来问题,等有时间了再解决;如果时间充足但是这个问题明显超出自己的能力范围,那么需要循序渐进,也就是向问题靠拢,随着自己的深入理解,慢慢就明白了导致那些错误的原因。
面对工作要有激情,不要抱怨,抱怨只会让工作做得更差,会进入恶性循环。为啥都说不要以工作为目的进行工作,因为工作是多变的,工作出现挫折很容易消极/消沉;正确的做法是以挣钱、学习或理想工作,这样在工作中才不容易迷失自我。
要勇敢的承担责任,不要怕,大不了换一份工作。
写代码的时候尽量做到简单清晰明确;当然这些有时候可能难以兼得,但是尽量做到。在编写函数的时候尽量让函数实现的功能单一;相同或相似的要放到一起;这样做有什么好处呢,首先函数功能单一你在添加注释的时候也简单,其次你看代码的时候更容易;把相同或相似的放到一起是为了方便自己寻找代码,对于新入职的人来说也容易理解,这也是为啥项目在搭建的时候都会划分,比如网络,页面,工具,日志等等。当面对简单和明确相悖的时候,就我而言更倾向于明确而不是简单,有些时候代码量少,看起来很简单实际上理解起来并不容易,可能有人会跟你说可以抽象为更简单的,其实我觉得对于理解来说,越抽象越不容易理解,越不理解在改动的时候就越容易出错。
在这家公司主要是 react-native ,同时写了 android 和 web 。
后来就是我目前的公司了
兄弟们加油,虽然很菜,但是只要认真学习和思考,将来就不一定了。