前言
我是个码农,在职场干了多年,在超过10个公司服务过,遇到过各种怪现状,拍案惊奇葩,不吐不快,太想写篇文章吐槽一下。
这篇文章汇集了我10多年来的工作中遇到的各种经历,总结的心得,分别讨论了团队与协作(同事/领导/客户的交流)、技术与质量(学习、技术选择、质量)、职业与事业(现实、追求、老油条、职业道德、典故、事业/经验)、找工作(猎头/中介、应聘、简历、面试别人)、辞职(原因/理由、信任)等,干货满满的,里面还夹带了我的很多秘密和典故,如果你认真看,会回来找我赞的!!!
如果你非要叫我跑龙套码农,请不要在前面加个死字,谢谢。
下面的文章夹杂了不少英文,那是因为这些文字都是我在澳洲写的,习惯而已,不是你们想象中的所谓装逼,谢谢。
本文是我的个人经历和意见,请取滤网三钱,和着服用,谢谢。
协作与交流
同事/领导
林子大了,什么鸟都有,公司大了,什么人都有。有人的地方就有江湖,有利益的地方,就有冲突。
澳洲,跟美国一样,是移民国家,一般每家公司都有各色人种。文化的差异,语言的沟通,总会造成各种矛盾。
根据这些年来的观察,冲突一般有:1、邀功,当你辛苦干完活,别人把功劳拿走了;2、推卸责任,不是你造成的问题,别人强加于你身上;3、小圈子排挤外人。
公司S,心累,现在公司部门和部门之间有严重的斗争,各自为政,根本就不是想干活的,恶心的事情很多,譬如部门老大不干活,让小弟干,小弟工作繁忙压力大就爆脾气,说话不像人样,然后部门老大就各种推卸责任,还美化之,去它大爷的 。
公司B,三个印度码农在印度,一个大胡子孟加拉国的,一个刚来澳洲两天的伊朗人,一个来了澳洲很多年但口音极重的越南人,一个还在马来西亚下个月才来报道的码农,加上来自黎巴嫩的上司,还有我,真的是联合国。
公司K,精神分裂的部门女同事,菲律宾大妈,在公司呆了18年,在CTO背后联合她的两个马来西亚小弟直接跟CTO的上司说CTO各种坏话,在CTO面前老装很友好地狂笑,对待客户是一样的做法。
公司T,当年很纯真,但已经目睹了各种利益纠纷。公司和别的公司协作做的GSP系统,一个医药销售系统,产品做得差不多了,各种纠纷,后来产品就烂尾了。
公司T,我离职,老板请大家吃酱板鸭,味道特别棒,至今难忘,离职后还和老板保持了多年的联系,每年春节还发祝贺短信,很精短,都是手写的。
工欲善其事,必先利其器。开发工具,是开发中重要的资源,公司不应该在这块上有任何吝啬。
公司S,我入职后发现开发部的机器,最老的7年了,新的也有3年老了,没改一行代码,重新编译,需要5分钟以上。跟我一起入职的有4个新同事,公司给我买的电脑是给其它同事买的3倍价钱,IT部经理一脸正经地跟我说:你丫的应该觉得庆幸拿到这么贵的电脑。但我一脸无奈地跟他说:“虽然你买的是我要求的ThinkPad,我我希望是t4xx,你却买了exxx,我才不想要呢!”。新来的项目经理对公司安排给他的新手提电脑很不满意,一大早打开的时候就已经用力噼噼啪啪了,还吐槽连HDMI接口都没有什么的,下班快走的时候还吐槽这i3 CPU配置都8年老的了。首先,讲道理,每次i3换代都有新版本,不能刻舟求剑,但是,省这几百块不值得。
客户
公司S,做IT的同事告诉我几个真实的故事,忒搞笑了,其中一个是:客户说电脑不正常,同事远程协助,很客户说:“close all the windows",然后客户说“done",同事说我这里看见还没有关闭啊,客户坚持已经关闭。争论半天,最后发现客户关闭了的不是“窗口”,是“窗户”。
公司S,有一个潜在客户发来合同,要求我们的系统一年365日,100%在线,如果服务down了,按分钟赔钱[允悲]。
技术与质量
学习
只为一家公司卖命一辈子的,少数。即便只为一家公司干活,始终会有产品改进甚至更新换代的一刻,不管是用户量上去了,还是用户需求变更了,那总要学习新技术。一些公司,系统多年不改进,员工就无欲无求了。等离开公司的一刻,才发现自己与社会脱节了,这种如温水煮蛙,所以早就了很多养老心态的老油条 。
公司C,一个资深码农,离职之前,考高级程序员证,恶补,拿到证之后,离职了。
我不是喜鹊码农(The Magpie Developer),不贪新厌旧,确实太多东西需要学,数据量太大了,每天太多东西可以学,时间不够。举个例子,基本的日常使用的工具,如开发工具,譬如Visual Studio,即便你每天用,很多有用的东西我就是没留意,举个栗子:你知道怎么快速复制、剪切、删除整行代码吗?删除一个词呢?再举个粒子,SSMS(SQL Server Management Studio)里面,怎么快速查看一个对象的相关信息,如一个表,显示所有字段、主键、索引、约束等等?
最近看越来越多的网络资源,一些要收费,如一个网站提供了专业面试国际大公司的一对一指导服务,全程真题,还有全球20多个著名Web2.0公司的系统设计详解,也就几十刀,值得买。
看过很多技术文章,一些网站追求一些非常入门的内容,譬如怎么做个多级菜单,动画效果,等等,放在首页,而一些干货文章却忽视了,悲哀。
技术选择
前端、后台、数据存储,都有乱象。
前端尤其乱,对日新月异的那些前端技术无力吐槽,简单来说,就是脏乱差,可惜,技术负责人,没有把好关,选择了错误的技术。
技术选型,决定因素很多,譬如技术带头人,譬如技术储备,公司现有情况,等等。著名云程序日志记录提供商raygun,几个月之前扔掉node.js改用.net core,性能提升20倍。但就是有些公司的技术人为了反对而反对,选择一些不切实际的解决方案[摊手] 。
举个栗子,譬如SOA家的微服务的设计与使用。网上诸多最佳实践,在多数公司里面都没有、也不会实现 ,不管是决策者、财力资源、还是人力资源等限制 。大家审视一下现在公司的系统, 你连现有系统的的基本的模块化做到了吗?如果没有,凭啥你就觉连模块化就做不到就能把微服务做好? 甭想微服务了。微服务不大适合初创或小公司,Martin Fowler说过,上微服务需要现有的流程、监控、快速发布基础, 而且发布的成本和复杂度比单系统服务高,服务间的网络数据交换成本额外高,本地开发测试复杂度和成本也高。 放遇到异常,还是看业务,一些transactional的该怎么样就怎么样,一般流程化操作,如用sagas,容易导致死流程,这种怎么监控和解决具体问题具体分析。一般做法是有机制重试n次后还不行就escalate到IT,还有日志这块也是很多坑的。