timzaak / blog

8 stars 1 forks source link

普通程序员的阶梯 #65

Closed timzaak closed 3 years ago

timzaak commented 3 years ago

技术路线,可以走广,也可以往深里去。两者各有利弊,对大公司来讲,当然是越深入越好,至于个人发展而言,还是广阔一点更好。毕竟什么都能做,是能尝试抓住各种社会机会。

技术评级,我这边简单拆成四个阶段:初/中/高/专家。每个阶段的实际市场现状,按照我的面试经验来看:

初: 预期是能帮高级工程师减少工作。但大部分的是增负,尤其是做长久项目时。我以前很天真的想,高级搭配初级干活,会比较好,后来才发现,这简直就是给高级工程师生气的理由,更多的是让高级工程师去学会管理别人才能这么搭配。

中: 能写,但就是容易一两年经验用N年。一个你具体看过什么源码,对什么技术最熟悉的问题,就难倒大部分人。大部分没有自主学习能力的人若不是项目倒逼,也就止步于此。

高: 虽然期望市场上的简历不是因为年到三十岁,或是生活所迫,必须有个头衔好要价。但实际情况是不敢招惹30岁的程序员。第一是庙太小,第二十碰到的一部分评估为初中级都不过份。

专家: 真到这个级别的,都有自己的寂寞。我能面到的,要么人格有缺陷,要么就是只是来看看,聊一聊。我所遇到合适的基本是家境都很好(这里的家境主要是包含家庭教养)。

至于市场的简历质量,有同事分享他老同事的简历时,发现很多人开价翻一倍,甚至明明当时只负责一个项目的一小部分功能模块,简历里描述的整个项目能成功都是因为他而已。虽然个人层面,能理解在一线城市生活要支付的高昂成本而迫不得已,另一方面,还是觉得如果再搞创业公司的话,要奔着二三线城市去,一线城市的创业成本真NM高。

timzaak commented 2 years ago

面试

目前对追求技术的广度和深度有了新的看法。在找工作上,小公司才会想着招全面的,大公司都是在招深入的,一个萝卜一个坑。所以,全面发展而各项仅想如何用的根本无法应对大公司的技术面试。 在大公司经验十分吃香的当前现实下,还是要先深入学习,争取能有个大公司背景,然后根据自身的兴趣往全面上走,这样至少不会被时代所抛弃。

市场上对于技术的实际应用都有个滞后期,例如 spring cluster,虽然有一大堆问题,也有更好的技术方案,但大家就是爱用,你所有在 k8s + server mesh 上的投入基本无法兑现在薪资上,在面试上有时会起反向作用。

那些面试题整理真的是有用,以前对刷题无感,但就是要解答只有在面试中才会出现的问题。

在成长为只需要聊理想和想做的事情的大能之前,还是要按部就班的做事情。

timzaak commented 2 years ago

时间

所有的打工职业,最终都会有个适龄工作者的概念,虽然极其牛逼(家庭背景)的人可极大减少年龄带来的阻碍,但绝大部分人在社会机会没有爆炸式增长的前提下会越来越难找相应的工作,尤其相关技术还在不断迭代,需要有点危机感。

职位上与下

职位上容易,下其实挺难的,物质减少总会带来精神上的困惑和欲望的善后。甚至有人专门以此捧杀有仇怨的下属。对于此,其实没太好的办法,只能来一句:啊,这就是生活!聊以慰藉。

timzaak commented 1 year ago

何为技术

百度百科对其的描述是:解决问题的方法及方法原理。但很多人会更关注 方法及方法原理,而忽略解决问题,舍本逐末。

而且技术这个概念容易有高大上的感觉,尤其是组成 IT技术、人工智能技术 时,其背后映射的高工资、一夜暴富总会令人心驰神往;但若是组成 推油技术、掏粪技术呢?这些难道不需要时间积累,不需要投入学习成本吗?难道技术高了对于做此劳作能够更 快好省 吗? 都是一样的,区别在于解决的问题不同,愿意为这个问题解决而付费的人群以及预期不同

所以当问 应聘者 对未来规划时,若对方总是以 提升编码技术或进阶到某个岗位 泛泛而谈,便不免会调低对其预期。

不止代码

就像人生不止工作一样, 程序员也不能只关注代码,而忽略了人与人之间的链接。毕竟所有复杂程序是靠工程化来维持的,而不是个人的编码能力。我所遇到的怪咖大致都是忽略生活琐碎,忽略与周围人互动,将自己封印在只有自己的“舒适圈”。 曾有个哥们说过这么一句话:就那职业素养,M的,还不如小姐呢,小姐还知道即使经期,也要笑脸相迎呢。 而程序员,一旦对方说的不符合自己的所谓技术认知,就开始摆臭脸的大把人在。

timzaak commented 1 year ago

好代码的养成

如何编写好的代码,无外乎多看、多写、多思考。但这句说的和废话没啥区别,得多加很多限定条件。

  1. 你真愿意去写好的代码吗?
  2. 你每天的工作内容支持你去思考写好的代码吗?
  3. 工作以外,你是否愿意去买书看,例如《重构》等专门教别人写代码的书?
  4. 当你看到很烂的代码,是否愿意花费时间去改善他呢?
  5. 你觉得写好代码,对自己来讲,是益处多,还是害处多?

否定回答越多,就越没有可能去写好代码。 借口解释越多,其实也就没必要去追求所谓的好代码,能过且或未尝不是一种生活态度。

timzaak commented 10 months ago

团队合作

团队合作一般是为了一个大目标,而相互依赖、相互分工进行的团体活动。 团队成员间因其背景和分工不同,以及信息传递的成本,相互之间会产生巨大的信息差。一般来讲,越是掌握信息差的成员越居于团队的高位。

信息差可导致极细分工的成员认为正确的事情,在协调成员也就是掌握信息差的成员看来,是完全错误的。而这时若协调成员不愿意弭平关键信息差,那么极细分工的成员或者说是底层员工要么会学会事不关己高高挂起,要么瞎忙活,成为背锅侠的不二人选。

因此,不管是程序员,还是什么岗位,总是要抬头看看,看看那个拥有决策权的协调成员,到底是如何处理信息差的。