likes
comments
collection
share

不一样的技术人工作、面试指南

作者站长头像
站长
· 阅读数 47

最近面试了很多人。可我今天并不想以面试官,或者求职者的角度来说工作和换工作这件事。而是以一个 30 多岁过来人的身份,分享一些自己的经验和思想。

找工作之前,什么准备工作最重要

“不用等待下一份工作去做的更好,而是把任何一份工作都当做最重要的而且是最后一份工作,全身投入,很多事情就会发生。”

很多人在找工作之前恶补,比如:

  • 刷 LeetCode 或其他的算法题
  • 刷大厂面试经

在面试过程中有个别问题回答能很出彩,但往往被 pass 的原因不是能力或者天赋,而是一些不太起眼的小细节,包括不限于:

  • 对于职业和人生的规划
  • 对于工作和新鲜事物的态度
  • 学习的能力
  • 知识和经验的积累
  • 思想的高度,思维的宽度,和眼界的深度

如果是要毕业了找工作,那提前准备无可厚非。如果是换工作,那么先想想,问题到底出在了哪里。你想要换工作的原因:

  • 也许是公司发展不行,面临裁员毕业的潜在风险,或者已经经受了这样的悲观局面
  • 办公室斗争,参与政治纠纷
  • 没有成长进步的空间
  • 心累了,或者钱少了

那么,工作要不要换呢?

公司发展出现了问题

如最近经常看到的,大厂裁员。如果你是大厂里的螺丝钉,知识面不够广泛,那还是先提升自己吧,等到时机成熟,或者被动换工作(如果条件允许,也可以先放空一段时间,自己思考和学习提升一段时间)。

办公室斗争

看你想要从事什么样的岗位,如果是深入技术,那么需要一个好的环境心无旁骛,你可以考虑避开。

但如果你想要从事管理岗位,那么这也是一种考验,是风险也是机遇,广积粮,缓称王。

没有成长进步的空间

或者没有发挥的舞台。找准自己的定位,和对未来的规划,再做决定。

心累了,或者钱少了

大部分人不换工作的原因并不是归属感和责任感。而是面临压力,比如房贷、车贷、养老、养小孩等等,而不得不选择妥协。

没有人能帮你做选择,看你自己的勇气。可以骑驴找马,但不可以一直躺平。你要明白,互联网公司并没有铁饭碗,在哪里干,就得在哪里干好。

工作中,什么才是最重要的

当然面试过程中,很可能考察的并不够全面,而找工作这个事情,并不仅仅只是面试,面试只是个开端,后续实际的工作过程中,依然存在被淘汰的风险。很多人在找工作之前疯狂刷题、刷面试经,确实,在面试的时候很多方面很出彩,但是无法避免一些细节是可以暴露出问题的。即便顺利通过了面试,试用期上再发现并不能胜任这份工作,耽误的不是公司,而是自己的青春。

对于互联网里的技术人或者非技术人,能力是最重要的。能力是什么,不是天赋和努力的态度,而是知识、经验的累积,外加一点思想深度、眼界广度的点缀。

知识包括什么呢?

基础、常识和专业技能。

算法是算的,但它只是知识的一部分。大部分编程网站上的算法题在实际项目中未必会常见,大部分现实中遇到的棘手难题在编程网站上也未必能找到。

基础

工欲善其事必先利其器。所以我建议在平时的工作中,主要精力用在带着积累和学习一些有用的基础技能。

比如打字水平。对于日常办公都对着电脑的人来说,打字速度是产出速度的第一影响力。打字速度慢,可能连自己的思绪都跟不上。低着头看键盘、一阳指的分心,都会影响你的思考。每分钟 300 次键盘敲击的速度只能算入门,要将盲打像肌肉记忆一样刻到骨子里。

比如说英语能力。英语能力在日常工作中非常重要。口语可以稍微薄弱一些,因为日常的工作用到的机会不多。但是读写,应该是基础中的基础。目前我们常用的技术框架大多是国外的。不要看中文文档,养成看英语文档的习惯。不仅可以第一时间获取到最新的技术信息,也可以避免翻译问题导致的理解偏差。(当然,未来很可能是外国友人来看我们的中文文档。但不妨碍你师夷长技以制夷。先懂别人做了什么,再说自己能写点什么去完败他们吧。)

文档能力。Office 全家桶是只要受过高等教育都会掌握的一项基本技能了。除此之外,在线的文本编辑器 HTML 或 Markdown 也是非常简单易学。

设计能力。画流程图、用例图之类的基本画图工具使用。

语言(编程语言)只是一种工具,这不再是一个单打独斗也能闯出一片天的时代了,干什么都需要依靠团队。那么怎么将你的思想和理念传递给你的队友们呢?文字的描述和图像的表达,可以让你更好的协作。

常识

当然在以上基础了然于心之后,对于技术小伙伴来说,还需要熟练掌握 Git、Bash(命令行工具、脚本)。

比如说,代码分支怎么创建、如何拉取合并代码等。不能过度依赖搜索引擎和图形工具,这样的依赖性是阻碍你效率提升的巨大障碍。没有什么工具能比把知识装进脑袋里更有效。

做前端开发的小伙伴,如果遇到了问题,不一定第一时间知道该怎么解决,但常识性经验多了之后,知道该如何下手去排查。比如说看了一眼知道可能是哪里的样式发生了污染,可能是哪里的逻辑写错了,可能是与后端交互过程中产生了问题之类的,然后再针对性的一步步去排查。

做后端开发的小伙伴,也是一样。比如说发生了一个报错,看了一眼知道可能是缓存失效了,数据库阻塞了,外部通信失败了或者内部业务代码死循环产生了内存溢出之类的,也再针对性的一步步去排查。

而如果缺少这些常识性的知识,只能像无头苍蝇,拿着报错信息去搜索答案。这完全不像搞技术的,反而像是搬砖的,把别人已知的问题解决方案搬到了自己的代码里。下次再遇到这样的问题,又重复搬了一次。如此反复,枯燥,又没有挑战性。

专业技能

毫无疑问,对于前端和使用 Node.js / TypeScript 的后端来说, Vanilla JS 是重中之重,了解原生 JS 会让你的工作事半功倍。 ECMAScript 特性能够帮助你写出简洁的代码。

除此,前端至少还需要熟练掌握 W3C 规范、HTML 语法、CSS 语法,必不可少。后端至少需要掌握一种数据库、一种缓存、常见的通信协议、开放接口规范。至少这几件套专业基础,不能也每次用的时候还要去查文档吧。

无论对于什么语言,使用框架在所难免,框架性能固然重要,更重要的是自己在框架上写的代码性能。

扩展

如果时间充裕,也可以去看看算法题,看看面试经,或者看看其他工作中接触不到的知识领域,也无可厚非。权衡轻重。

经验包括什么呢?

踩过的坑,解决问题的思路,用过的奇淫巧技,项目设计实现过程中绕过弯路的方案,等等等等。甚至包括思考的习惯,搜索的技巧,规避问题的能力和感知。能够让你举一反三的,都是。

积累经验,是提升工作效率,避免无效浪费的唯一方式。如果有天赋,有着过目不忘的记忆,那做啥都能够事半功倍。但对于我们这些大多数普通人来说,勤能补拙是良训,一份辛苦一份才。

其他

团队意识

这是最重要的一点。一个人的能力再强,也不可能颠覆全世界,天启的失败就是一个典型的例子,双拳不敌四手。

学习能力

经验丰富,是一种优势。但岁数大,是一种劣势。所以年轻人,多学点东西吧,这样你会更有竞争力。

天下没有免费的午餐,也没有可以不花钱就学到的知识。如果有,不学也罢,学了也累赘。倚老卖老的人很多,但不会有谁真的会把自己看家本领无私奉献给你。学习是一个主动的过程,而不是被动的接受。换位思考一下,为什么别人要教你?你赚了钱又不可能都给他,反而有可能会取代他做的工作,虽然残酷但这才是现实。所以,不要指望别人带你,或者有导师能够指引你,除非你有钱交大把的学费,给足了对方甜头。不然,你只能靠自己。

心态

  • 切记不可浮躁,眼高手低。闭门造车,出门合辙,在当今的社会已经不再适用
  • 相互猜忌会引起勾心斗角。团队间应当坦诚相待,奔着共同的目标进步
  • 墨菲定律,越担心发生的事情就越容易发生。情绪容易传递,团队里尽可能都是乐观正能量的氛围
  • 不要胆怯,过于胆小被动,过于谨小慎微,或者过于关注自己,都不利于团队的良性发展
  • 眼界有多开阔,世界就有多宽广。保持乐观和开明

你确定要找份合适你的工作吗?

Authing 是国内首款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务。

长期对以下岗位进行内推:

  • 后端开发工程师(Node.js / Typescript 方向,高级、实习)
  • 后端开发工程师(多线程编程、分布式、搜索等方向不限语言,高级)
  • 前端开发工程师(React、Vue 方向,高级、实习)
  • 资深安全工程师(白帽黑客)

内推暗号:

  • 邮箱: aUBzaC5nZw==
  • 微信: d2lsbGlueA==

公开投递:

  • 邮箱: willin(a)willin.org