加拿大家园论坛

是否该为了转码降薪跳槽

原文链接:https://forum.iask.ca/threads/915687/

cetaphil : 2020-10-04#1
楼主坐标蒙村,95后,数学背景。本科时上过一点计算机基础课程,没有sde实习经验,毕业时盲目找了一家大型基金公司做SQL/full stack 开发。入职后干了几个月数据库开发/数据分析,对SQL R运用非常熟练了。后来跟老板提出想做web开发,就跟其他两个developers学着做了几个项目(基本都是逻辑很简单的monolith app,用户也都是内部人员-基金经理,基本没有太大的难点)。

刚开始小白不懂,后来才发现整个团队的开发流程很奇葩,没有design doc,没有api doc,没有unit testing,没有CICD,测试部署纯靠手…… 没有上docker/k8s(对我们还在用VM),对代码要求能跑就行,毫无code quality可言。跟老板(快退休的白人大叔)提出了一次,结果他表示现在这样就挺好……

于是楼主大概七月开始找工作,前端全栈都有投,结果自己水平太差,被疯狂简历拒心如死灰。大厂完全没回音,好不容易面了一家中厂也在onsite coding轮挂了(followup没做出来且代码质量不规范,冷冻期4-6个月)。给offer的全是不知名小公司/startup,别说涨薪,连现在的都match 不了。楼主现在TC 10万上下浮动(80k base 10k-30k bonus),每年固定涨薪5k,手上现存俩offer都是80k没有奖金或只有几千块。

现在楼主开始纠结了,是否应该为了真正转码做SDE而接受降薪的offer(一家本土电商)还是在现在这个基金公司继续划水养老。新公司的优势:可以接触更有意思的项目,更多diverse/现代化的技术,劣势:降薪且离家远(当然现在wfh也不用考虑这个)。现公司的优势:钱多(相对而言)事少离家近且非常稳定(跟国企差不多),劣势:学不到太多新技术且开发流程混乱。且楼主现在依然没有全职做SDE,还是有很多时间花在数据库开发上,对职业成长有限。

现在楼主是否应该接受降薪,先跳槽干一年,学的差不多了再努力跳大厂呢?还是继续刷题做项目找工作?感觉加拿大就业市场完全没法给人动力,就算跳槽大厂涨薪程度也很有限…唉…

sofia : 2020-10-04#2
年轻人现在就过50几岁的生活
再过几年会后悔的
然后还没能力和精力改变了

sabre : 2020-10-04#3
你这个招惹仇恨的问题,没人回答,

我觉得必须自己回答,自己到底是那种人,

跳槽的话,赶紧,因为再过两年,就没有斗志了,越往后,越难挪动,时时的感到遗憾,

~snowwolf~ : 2020-10-04#4
各行如隔山,不懂帮顶!

Tianhai : 2020-10-04#5
这个得自己拿主意

MySunflower327 : 2020-10-04#6
加拿大IT年薪100K以上在从业行业中的比例并不高,你如果自己对将来的要求是要奔着年薪二十万甚至更高的职位包括创业去的话,或者自己只想做自己喜欢的事情,尽早离职。否则没有必要。

另外,发展眼光看问题,你怎么能充分确定你们公司以后不会发展开发部门呢?老板说不定哪天开窍了。

sofia : 2020-10-04#7
25岁
前面的路长着呢

winnerzhu : 2020-10-04#8
楼主哪个公司,这么好混?我也蒙城,介绍我过去呀。收入差不多,但现在职位实在事情多, 跟楼主调过来,我们开发流程越来越规范,大点的code change ,code review 每次至少50 个讨论。docker 上了没多久,又说要上k8s, 刚学完旧的流程,马上又要学新的流程。问题是我是偏数据科学的不是数据工程呀。。。。想挤点时间学新模型的困难。回归正题。楼主的问题是自己没有话事权。想使用新的技术或流程,不能靠自己推动。换个公司也会差不多,除非职位往上涨。每个公司都会有自己的问题。最终的解决方法还是想办法升职,争取话语权。不然怎么换都差不多。去startup可能是个好办法,如果楼主对自己的技术有自信的话,就是startup 挂掉了不愁找不到新的。不然还是呆在现在的公司,熬一下资历,争取多点话语权。而且从数据开发跑到web 开发,个人觉得不是个好选择,数学背景浪费了。

cetaphil : 2020-10-04#9
加拿大IT年薪100K以上在从业行业中的比例并不高,你如果自己对将来的要求是要奔着年薪二十万甚至更高的职位包括创业去的话,或者自己只想做自己喜欢的事情,尽早离职。否则没有必要。

另外,发展眼光看问题,你怎么能充分确定你们公司以后不会发展开发部门呢?老板说不定哪天开窍了。
短期目标就是变成纯SDE进大厂。之后的路还没仔细想。
老板现在只对种菜有兴趣。他应该是为了平安退休不想折腾了。

cetaphil : 2020-10-04#10
25岁
前面的路长着呢
前路虽长但在人生大事上还是想尽量少走弯路。

cetaphil : 2020-10-04#11
年轻人现在就过50几岁的生活
再过几年会后悔的
然后还没能力和精力改变了
刚开始很爽,后面越来越觉得这种环境就是温水煮青蛙。

MySunflower327 : 2020-10-04#12
退休了不会公司也不办了吧?
从另一个角度讲呆着你可能有优势
等待下机会

去大公司份工很细学到的东西不见得多
你在这里自己应该可以学到很多东西

cetaphil : 2020-10-04#13
你这个招惹仇恨的问题,没人回答,

我觉得必须自己回答,自己到底是那种人,

跳槽的话,赶紧,因为再过两年,就没有斗志了,越往后,越难挪动,时时的感到遗憾,
想努努力拼一把,否则就要被无数的后浪拍在沙滩上。

woodenwang : 2020-10-04#14
25岁养老肯定早了点,但目前这个资历,跳大厂确实也不容易。如果可能,在现在的公司再熬下争取promote,投简历时会好看点,然后同时自己多做积累和准备,至少别onsite还弄挂了,这时再努力下大厂吧。从你描述看,大中厂都被拒,那确实说明自己还有点差距,不要光盯着dev op的新东西,也别光想着追新技术新框架,用新的东西从来是手段而不是目的。我现在招人,看到好些简历堆了一大堆看上去高大上的名词和框架,但稍微聊下去,每个都只是浮光掠影,蜻蜓点水的情况。想做开发,还是沉下心来,把基础夯实。

sherlock : 2020-10-04#15
也不懂帮顶,顺便感叹一下年轻真好啊

cetaphil : 2020-10-04#16
楼主哪个公司,这么好混?我也蒙城,介绍我过去呀。收入差不多,但现在职位实在事情多, 跟楼主调过来,我们开发流程越来越规范,大点的code change ,code review 每次至少50 个讨论。docker 上了没多久,又说要上k8s, 刚学完旧的流程,马上又要学新的流程。问题是我是偏数据科学的不是数据工程呀。。。。想挤点时间学新模型的困难。回归正题。楼主的问题是自己没有话事权。想使用新的技术或流程,不能靠自己推动。换个公司也会差不多,除非职位往上涨。每个公司都会有自己的问题。最终的解决方法还是想办法升职,争取话语权。不然怎么换都差不多。去startup可能是个好办法,如果楼主对自己的技术有自信的话,就是startup 挂掉了不愁找不到新的。不然还是呆在现在的公司,熬一下资历,争取多点话语权。而且从数据开发跑到web 开发,个人觉得不是个好选择,数学背景浪费了。
碰到的好几个面试官,一上来就问我现在的工作环境。得知我们没有agile没有testing没有CICD就直接拒了。还有因为我没有microservice经验拒。。。搞得我都感觉现在组实在是没法呆了。
关于升职,我们公司是一个萝卜一个坑。很多比我资历老的还没升上去。就算是我升上去了,到时候跳槽就要投senior岗,我担心自己水平还是不行更加竞争不过。现在就是想找一个能学到东西的环境/团队,能快速成长并写出高品质的代码。

cetaphil : 2020-10-04#17
25岁养老肯定早了点,但目前这个资历,跳大厂确实也不容易。如果可能,在现在的公司再熬下争取promote,投简历时会好看点,然后同时自己多做积累和准备,至少别onsite还弄挂了,这时再努力下大厂吧。从你描述看,大中厂都被拒,那确实说明自己还有点差距,不要光盯着dev op的新东西,也别光想着追新技术新框架,用新的东西从来是手段而不是目的。我现在招人,看到好些简历堆了一大堆看上去高大上的名词和框架,但稍微聊下去,每个都只是浮光掠影,蜻蜓点水的情况。想做开发,还是沉下心来,把基础夯实。
谢谢指点。我感觉现在的组完全不追求代码质量,开发流程也很不规范。面挂的那家中厂(Square)HR给的反馈是系统设计和BQ都挺好的,就是代码水平还差一截。
我本来想的是先去这家电商公司(规模大概100+ engineers)学习锻炼一段时间,再努力往大厂跳。但又担心小公司受疫情大环境影不稳定,且心理上很难接受降薪。。
请问wooden大神,如果现公司组里环境不行也找不到人带,怎么才能尽快提高技术水平呢?

jimmy_huang : 2020-10-04#18
楼主坐标蒙村,95后,数学背景。本科时上过一点计算机基础课程,没有sde实习经验,毕业时盲目找了一家大型基金公司做SQL/full stack 开发。入职后干了几个月数据库开发/数据分析,对SQL R运用非常熟练了。后来跟老板提出想做web开发,就跟其他两个developers学着做了几个项目(基本都是逻辑很简单的monolith app,用户也都是内部人员-基金经理,基本没有太大的难点)。

刚开始小白不懂,后来才发现整个团队的开发流程很奇葩,没有design doc,没有api doc,没有unit testing,没有CICD,测试部署纯靠手…… 没有上docker/k8s(对我们还在用VM),对代码要求能跑就行,毫无code quality可言。跟老板(快退休的白人大叔)提出了一次,结果他表示现在这样就挺好……

于是楼主大概七月开始找工作,前端全栈都有投,结果自己水平太差,被疯狂简历拒心如死灰。大厂完全没回音,好不容易面了一家中厂也在onsite coding轮挂了(followup没做出来且代码质量不规范,冷冻期4-6个月)。给offer的全是不知名小公司/startup,别说涨薪,连现在的都match 不了。楼主现在TC 10万上下浮动(80k base 10k-30k bonus),每年固定涨薪5k,手上现存俩offer都是80k没有奖金或只有几千块。

现在楼主开始纠结了,是否应该为了真正转码做SDE而接受降薪的offer(一家本土电商)还是在现在这个基金公司继续划水养老。新公司的优势:可以接触更有意思的项目,更多diverse/现代化的技术,劣势:降薪且离家远(当然现在wfh也不用考虑这个)。现公司的优势:钱多(相对而言)事少离家近且非常稳定(跟国企差不多),劣势:学不到太多新技术且开发流程混乱。且楼主现在依然没有全职做SDE,还是有很多时间花在数据库开发上,对职业成长有限。

现在楼主是否应该接受降薪,先跳槽干一年,学的差不多了再努力跳大厂呢?还是继续刷题做项目找工作?感觉加拿大就业市场完全没法给人动力,就算跳槽大厂涨薪程度也很有限…唉…
如果你是加拿大公民,建议去美国面试和工作,这样子面试难度更低,收入更高。

Kerrigan : 2020-10-04#19
想努努力拼一把,否则就要被无数的后浪拍在沙滩上。

拼与不拼,都会被无数后浪拍在沙滩上,而且后浪也一样。唯一区别在于拼过了才懂得,被拍在沙滩上根本不是因为没拼,而仅仅因为是浪。善哉。

woodenwang : 2020-10-04#20
谢谢指点。我感觉现在的组完全不追求代码质量,开发流程也很不规范。面挂的那家中厂(Square)HR给的反馈是系统设计和BQ都挺好的,就是代码水平还差一截。
我本来想的是先去这家电商公司(规模大概100+ engineers)学习锻炼一段时间,再努力往大厂跳。但又担心小公司受疫情大环境影不稳定,且心理上很难接受降薪。。
请问wooden大神,如果现公司组里环境不行也找不到人带,怎么才能尽快提高技术水平呢?
恩,代码水平这个,有多个维度,我不确定面挂的那家主要认为你哪方面尚有不足。但是无论是哪一方面,单从onsite的面试来说,不会写太复杂的东西,所以是完全可以在日常工作中提高的,组里不规范,不注重代码质量,但自己在日常写代码的过程中,应该对自己写出来的代码有一定要求。不好的组,缺乏好的senior引导,确实容易引发自己也随手写代码,但是我觉得至少可以从以下几个方面持续提升自己的代码质量。1 代码是否符合主流的convention, 包括命名,注释,缩进以及一些规范化的使用。这是代码给人的第一印象。2 代码是否简洁,一个简单的例子,当碰到代码有多层if..else嵌套,一个方法实现中出现多个布尔类型变量,一个方法参数列表超长等预警信号时,就应立刻为自己敲响警钟,虽然当时写的时候也许觉得很爽很快,但往往意味着写出了冗长而多余的代码。3 代码是否efficient, 这里主要两类efficient,一类是一个算法本身的复杂度,二是面对现在的micro services, micro frontend等潮流所必须考虑的服务之间的通信开销。对于前者,适当刷leetcode等题目,确实是会有所帮助的,一方面这些题目在大厂面试过程中确实还不断出现,另一方面解决这类在限定资源限定运行时间内出结果的过程中,可以很好培养自己的思维习惯。对于通信开销,也许你目前公司的项目受制于架构,并不明显,但你自己在日常coding过程中,应尽可能多设想一下,如果整体架构将服务分离了,我自己的写法是否还依然高效。 4 failure is the first principal. 现代软件系统中无法回避的就是error和exception. 如何在代码中正确有效的处理failure, 在哪个层面处理等,是一个full stack 程序员必须熟知和掌握的,也是新手sde容易犯的错。一般来说,你能在以上几点持续改进,通过onsite应该机率会增加很多。当然,更进一步说,还有代码的风味,设计模式等,那些可以做为你后续更进一步提升的方向。希望能有所帮助。

金角大王 : 2020-10-04#21
这不是小粉红四塔糊吗? :LOL:

现在跳槽,这个经济下恐怕机会少很多

很久不见了,怎么还在这论坛混啊 :LOL:

wangsanjiu : 2020-10-05#22
1、不要放弃进取心,这是年轻人最大的优势。
2、暂时不要离职
3、继续找合适的
4、没找到之前,自学、交流、甚至免费参予一些项目,想办法联系一些大学相关专业的学生、教授,他们手里有一定实习资源,你不考虑经济利益去做,他们也会乐意。只要肯学,一定可以找到方法提高自已。

wolfang : 2020-10-05#23
蒙城好多senior都还在拿90k上下,如果junior能到100k真的很不错了。
做好投资吧,40岁以后就可以想做什么做什么了。

Kerrigan : 2020-10-05#24
孔子曰,吾生也有涯,而知也无涯,以有涯PK无涯,跪矣。

jamesli72 : 2020-10-05#25
s分享一点个人的经验教训,刚刚和上一家公司吵翻了,正在家里等工作机会,静下心来反思,有些地方以后要改进。
上一家公司其实还行,有CI/CD,只是比较山寨版的那种,也有Agile , Scrum,只是大家都是学了个形似,核心的思想都没有用上,效果也不是想象中那么好。也用了JIRA等等,做版本控制也算是到位。架构和设计文档是没有的,对代码质量的控制也不注意,实在是没有多余的精力了。
和产品经理提了一些意见,都没有被接受,一些我认为需要的资源也迟迟不到位,心里觉得这帮都是SB,结果分歧就越来越大了,关系搞得很僵。
现在回想起来,其实没有必要,经理不接受我的意见 , 可能是他的水平不到位,也可能是其他的原因,比如说他确实没有这样的资源 , 没有必要强求,提过就算了。
作为个人来说,可以做多一些工作。比如说,没有CI/CD,可以在自己的机器上建一个小型的实验系统,把一些自己平时手工做的事情自动化了,既可以节省自己的时间,也可以在有机会的时候向感兴趣的同事或者老板展示一下,说不定有过几次直观的体会以后,他们会慢慢接受。
没有文档,可以自己收集一下系统的需求,还有开会时候大家口头提到的东西,然后整理成文档,就把自己当成是架构师,顺便练习一下怎么写架构文档,熟悉了就复习一下TOGAF的资料,再考个认证。
趁着现在有时间和经济基础,做好准备,不必急着进大厂,机会迟早会出现的。因为机会是留给有准备的人的。

Kerrigan : 2020-10-05#26
之前开了一些玩笑,现在认真回复下楼主。

其实作为程序员,想进所谓的“大厂”去赚个高薪,那主要的挑战肯定不是知识的广度,而是算法和系统设计的深度啊。我不太知道楼主为什么那么纠结什么Agile,CI/CD之类的细枝末节。刷leetcode或者类似题库的题目,多看看系统设计的东西,就能做到“熟读唐诗三百首,不会坐湿也能淫”。增强自己的communication的能力,遇到尴尬的局面要首先会笑,边笑边假模假式地分析,给面试官留下你是个good team worker 和 good communicator的好印象。然后就89不离10了。

至于说五花八门的前端框架,后端各种语言各种技术,云,还有别的乱七八糟,你关键是每一层都至少了解一项,其他的就举一反三了。举例来说,我只会Java,人家问我Node JS,我凭着自己那点JS的知识侃一通,也就糊弄过了给了offer。但是让我做题,我只能用Java写,用JS肯定露馅。问道AWS,我不知道,但我知道Azure,同样一同乱侃,也罢了。问我rebbitmq,我说我只用过kafka,人家也没较真。真去了公司,就程序员那点破事,谁还真干不了啊。不就是Google + copy paste么。

至于Agile,scrum,JIRA,CI/CD,那真是不重要。没吃过猪肉,谁还没见过猪跑呢。一个项目就一个scrum master,就一个tech lead负责 CI/CD,根本没必要人人都懂那一套东西。你只要会用就行了。有人组织开daily scrum,你就跟着开呗。有人弄CI/CD,你知道pipeline fail了怎么看log就完了呗。至于说怎么配置,我跟你说,DevOps跟Openshift跟GitLabs肯定都不一样,不可能让人人都精通的。你现在到油管上看看,肯定有不少泛泛介绍这些内容的tutorial,你多看两个就能应付面试了。

所以说,放弃一些杂念,趁着年轻,跳呗!直接往高了跳,啥也别怕。但是那些算法题啥的,确实烧脑,而且是个门槛——但在实际工作中,一毛钱用都特么没有。

winnerzhu : 2020-10-05#27
之前开了一些玩笑,现在认真回复下楼主。

其实作为程序员,想进所谓的“大厂”去赚个高薪,那主要的挑战肯定不是知识的广度,而是算法和系统设计的深度啊。我不太知道楼主为什么那么纠结什么Agile,CI/CD之类的细枝末节。刷leetcode或者类似题库的题目,多看看系统设计的东西,就能做到“熟读唐诗三百首,不会坐湿也能淫”。增强自己的communication的能力,遇到尴尬的局面要首先会笑,边笑边假模假式地分析,给面试官留下你是个good team worker 和 good communicator的好印象。然后就89不离10了。

至于说五花八门的前端框架,后端各种语言各种技术,云,还有别的乱七八糟,你关键是每一层都至少了解一项,其他的就举一反三了。举例来说,我只会Java,人家问我Node JS,我凭着自己那点JS的知识侃一通,也就糊弄过了给了offer。但是让我做题,我只能用Java写,用JS肯定露馅。问道AWS,我不知道,但我知道Azure,同样一同乱侃,也罢了。问我rebbitmq,我说我只用过kafka,人家也没较真。真去了公司,就程序员那点破事,谁还真干不了啊。不就是Google + copy paste么。

至于Agile,scrum,JIRA,CI/CD,那真是不重要。没吃过猪肉,谁还没见过猪跑呢。一个项目就一个scrum master,就一个tech lead负责 CI/CD,根本没必要人人都懂那一套东西。你只要会用就行了。有人组织开daily scrume,你就跟着开呗。有人弄CI/CD,你知道pipeline fail了怎么看log就完了呗。至于说怎么配置,我跟你说,DevOps跟Openshift跟GitLabs肯定都不一样,不可能让人人都精通的。你现在到油管上看看,肯定有不少泛泛介绍这些内容的tutorial,你多看两个就能应付面试了。

所以说,放弃一些杂念,趁着年轻,跳呗!直接往高了跳,啥也别怕。但是那些算法题啥的,确实烧脑,而且是个门槛——但在实际工作中,一毛钱用都特么没有。
所以楼主不应该放弃数学的。数据科学的那些模型啊,分析啊什么的,一样烧脑。CICD,agile,等等,不需要太认真,除非你要做tech lead。不然,会用就行,或者了解概念,自己是fast learner应付过去。精力还是投在核心技能集合的性价比更高。架构师就搞算法,架构设计模式等,数据科学就搞统计和人工智能。pm,才学scrum,agile等等。要找准角色定位。
再补充,不同公司的env 和security不同,CICD即使同样用Gitlab或其他,配置也不同,尤其一些inhouse开发的专用服务,所以不可能全学会的。

winnerzhu : 2020-10-05#28
换我是楼主的话,不如就空余时间参与opensource开发,很多SE的概念,code quality assurance,opensource比企业做得好。企业有各种各样的顾虑,办公室政治,time to delivery等,很多地方可能得过且过了。open source反而标准更高。而且参与大厂组织的open source,贡献够高的话,进大厂比刷题容易。因为那些opensource一般有配套商业版,都要维护和开发的

sofia : 2020-10-05#29
楼主25岁中文这么好?
是替孩子问的吗?
是本人意愿吗?

yilin001 : 2020-10-05#30
数学本科会点计算机基础刚毕业没经验就能盲目找到10万年薪的SQL/full stack ,这是我唯一见过的牛人!一亩三分地上的一堆堆数据科学硕士本科,cs本科都找不到工作,连入门的都找不到。(还是25岁就数学博士毕业了?)

cetaphil : 2020-10-05#31
恩,代码水平这个,有多个维度,我不确定面挂的那家主要认为你哪方面尚有不足。但是无论是哪一方面,单从onsite的面试来说,不会写太复杂的东西,所以是完全可以在日常工作中提高的,组里不规范,不注重代码质量,但自己在日常写代码的过程中,应该对自己写出来的代码有一定要求。不好的组,缺乏好的senior引导,确实容易引发自己也随手写代码,但是我觉得至少可以从以下几个方面持续提升自己的代码质量。1 代码是否符合主流的convention, 包括命名,注释,缩进以及一些规范化的使用。这是代码给人的第一印象。2 代码是否简洁,一个简单的例子,当碰到代码有多层if..else嵌套,一个方法实现中出现多个布尔类型变量,一个方法参数列表超长等预警信号时,就应立刻为自己敲响警钟,虽然当时写的时候也许觉得很爽很快,但往往意味着写出了冗长而多余的代码。3 代码是否efficient, 这里主要两类efficient,一类是一个算法本身的复杂度,二是面对现在的micro services, micro frontend等潮流所必须考虑的服务之间的通信开销。对于前者,适当刷leetcode等题目,确实是会有所帮助的,一方面这些题目在大厂面试过程中确实还不断出现,另一方面解决这类在限定资源限定运行时间内出结果的过程中,可以很好培养自己的思维习惯。对于通信开销,也许你目前公司的项目受制于架构,并不明显,但你自己在日常coding过程中,应尽可能多设想一下,如果整体架构将服务分离了,我自己的写法是否还依然高效。 4 failure is the first principal. 现代软件系统中无法回避的就是error和exception. 如何在代码中正确有效的处理failure, 在哪个层面处理等,是一个full stack 程序员必须熟知和掌握的,也是新手sde容易犯的错。一般来说,你能在以上几点持续改进,通过onsite应该机率会增加很多。当然,更进一步说,还有代码的风味,设计模式等,那些可以做为你后续更进一步提升的方向。希望能有所帮助。
感谢这么长的回复!现在回想起来面试应该就是挂在第四条error handling。也怪我平时工作都写JS面试时脑抽选了JAVA。。对JAVA的API并不是特别熟。
我平时也看clean code那本书但大多都还是纸上谈兵,没有真正实践到代码上。您说的这几个方面我都会认真考虑的~

cetaphil : 2020-10-05#32
s分享一点个人的经验教训,刚刚和上一家公司吵翻了,正在家里等工作机会,静下心来反思,有些地方以后要改进。
上一家公司其实还行,有CI/CD,只是比较山寨版的那种,也有Agile , Scrum,只是大家都是学了个形似,核心的思想都没有用上,效果也不是想象中那么好。也用了JIRA等等,做版本控制也算是到位。架构和设计文档是没有的,对代码质量的控制也不注意,实在是没有多余的精力了。
和产品经理提了一些意见,都没有被接受,一些我认为需要的资源也迟迟不到位,心里觉得这帮都是SB,结果分歧就越来越大了,关系搞得很僵。
现在回想起来,其实没有必要,经理不接受我的意见 , 可能是他的水平不到位,也可能是其他的原因,比如说他确实没有这样的资源 , 没有必要强求,提过就算了。
作为个人来说,可以做多一些工作。比如说,没有CI/CD,可以在自己的机器上建一个小型的实验系统,把一些自己平时手工做的事情自动化了,既可以节省自己的时间,也可以在有机会的时候向感兴趣的同事或者老板展示一下,说不定有过几次直观的体会以后,他们会慢慢接受。
没有文档,可以自己收集一下系统的需求,还有开会时候大家口头提到的东西,然后整理成文档,就把自己当成是架构师,顺便练习一下怎么写架构文档,熟悉了就复习一下TOGAF的资料,再考个认证。
趁着现在有时间和经济基础,做好准备,不必急着进大厂,机会迟早会出现的。因为机会是留给有准备的人的。
佩服层主去撕的勇气,
s分享一点个人的经验教训,刚刚和上一家公司吵翻了,正在家里等工作机会,静下心来反思,有些地方以后要改进。
上一家公司其实还行,有CI/CD,只是比较山寨版的那种,也有Agile , Scrum,只是大家都是学了个形似,核心的思想都没有用上,效果也不是想象中那么好。也用了JIRA等等,做版本控制也算是到位。架构和设计文档是没有的,对代码质量的控制也不注意,实在是没有多余的精力了。
和产品经理提了一些意见,都没有被接受,一些我认为需要的资源也迟迟不到位,心里觉得这帮都是SB,结果分歧就越来越大了,关系搞得很僵。
现在回想起来,其实没有必要,经理不接受我的意见 , 可能是他的水平不到位,也可能是其他的原因,比如说他确实没有这样的资源 , 没有必要强求,提过就算了。
作为个人来说,可以做多一些工作。比如说,没有CI/CD,可以在自己的机器上建一个小型的实验系统,把一些自己平时手工做的事情自动化了,既可以节省自己的时间,也可以在有机会的时候向感兴趣的同事或者老板展示一下,说不定有过几次直观的体会以后,他们会慢慢接受。
没有文档,可以自己收集一下系统的需求,还有开会时候大家口头提到的东西,然后整理成文档,就把自己当成是架构师,顺便练习一下怎么写架构文档,熟悉了就复习一下TOGAF的资料,再考个认证。
趁着现在有时间和经济基础,做好准备,不必急着进大厂,机会迟早会出现的。因为机会是留给有准备的人的。
哇。。你真是个耿直boy。尽管现在的组很糟心,我应该也没有勇气裸辞吧?
看了这么多网友的意见,也认真反思了。可能我还是有点沉不住气太浮躁,总想着一蹴而就,把自己水平不行归结于公司环境。您的意见对我很有帮助!很多事儿抱怨也没用,只能先从自己做起,一步一个脚印,潜心修炼一段时间再试试。

jamesli72 : 2020-10-05#33
佩服层主去撕的勇气,

哇。。你真是个耿直boy。尽管现在的组很糟心,我应该也没有勇气裸辞吧?
看了这么多网友的意见,也认真反思了。可能我还是有点沉不住气太浮躁,总想着一蹴而就,把自己水平不行归结于公司环境。您的意见对我很有帮助!很多事儿抱怨也没用,只能先从自己做起,一步一个脚印,潜心修炼一段时间再试试。
最多只能算是个耿直UNCLE,老毛病了,脾气不好,控制不了。
本来打算明年儿子上大学了就退休和老婆去环游世界,现在权当是提早了大半年退休吧。

cetaphil : 2020-10-05#34
之前开了一些玩笑,现在认真回复下楼主。

其实作为程序员,想进所谓的“大厂”去赚个高薪,那主要的挑战肯定不是知识的广度,而是算法和系统设计的深度啊。我不太知道楼主为什么那么纠结什么Agile,CI/CD之类的细枝末节。刷leetcode或者类似题库的题目,多看看系统设计的东西,就能做到“熟读唐诗三百首,不会坐湿也能淫”。增强自己的communication的能力,遇到尴尬的局面要首先会笑,边笑边假模假式地分析,给面试官留下你是个good team worker 和 good communicator的好印象。然后就89不离10了。

至于说五花八门的前端框架,后端各种语言各种技术,云,还有别的乱七八糟,你关键是每一层都至少了解一项,其他的就举一反三了。举例来说,我只会Java,人家问我Node JS,我凭着自己那点JS的知识侃一通,也就糊弄过了给了offer。但是让我做题,我只能用Java写,用JS肯定露馅。问道AWS,我不知道,但我知道Azure,同样一同乱侃,也罢了。问我rebbitmq,我说我只用过kafka,人家也没较真。真去了公司,就程序员那点破事,谁还真干不了啊。不就是Google + copy paste么。

至于Agile,scrum,JIRA,CI/CD,那真是不重要。没吃过猪肉,谁还没见过猪跑呢。一个项目就一个scrum master,就一个tech lead负责 CI/CD,根本没必要人人都懂那一套东西。你只要会用就行了。有人组织开daily scrum,你就跟着开呗。有人弄CI/CD,你知道pipeline fail了怎么看log就完了呗。至于说怎么配置,我跟你说,DevOps跟Openshift跟GitLabs肯定都不一样,不可能让人人都精通的。你现在到油管上看看,肯定有不少泛泛介绍这些内容的tutorial,你多看两个就能应付面试了。

所以说,放弃一些杂念,趁着年轻,跳呗!直接往高了跳,啥也别怕。但是那些算法题啥的,确实烧脑,而且是个门槛——但在实际工作中,一毛钱用都特么没有。
leetcode我前前后后刷了差不多300道,每周都参加竞赛,差不多能做出1-2道medium,hard完全不会。。这东西太痛苦了,刷了忘忘了刷,到后期真心缺乏动力。

system design我也看了很多资料,但都是浅尝辄止了解个大概,实际操作啥都没有。。你让我讲讲messaging queue,load balancing,caching,db sharding/replication,我都能说上一点,但工作中完全没用/操作过,一旦深入问各种各样的tradeoff或者做capacity estimation就抓瞎了。所以虚的不行。

其实我一直都认为一个好的developer是应该脱离任何框架、语言限制的。只是碰到几个公司的面试官(前端)揪着react框架问源码细节,或者css动画的奇技淫巧。还有一些小公司面试官一听到我们公司没有testing没有自动化就直接拒了,搞得我心态炸裂。

cetaphil : 2020-10-05#35
数学本科会点计算机基础刚毕业没经验就能盲目找到10万年薪的SQL/full stack ,这是我唯一见过的牛人!一亩三分地上的一堆堆数据科学硕士本科,cs本科都找不到工作,连入门的都找不到。(还是25岁就数学博士毕业了?)
最高学历本科?

cetaphil : 2020-10-05#36
楼主25岁中文这么好?
是替孩子问的吗?
是本人意愿吗?
我是留学生,高中过来的。

Kerrigan : 2020-10-05#37
leetcode我前前后后刷了差不多300道,每周都参加竞赛,差不多能做出1-2道medium,hard完全不会。。这东西太痛苦了,刷了忘忘了刷,到后期真心缺乏动力。

system design我也看了很多资料,但都是浅尝辄止了解个大概,实际操作啥都没有。。你让我讲讲messaging queue,load balancing,caching,db sharding/replication,我都能说上一点,但工作中完全没用/操作过,一旦深入问各种各样的tradeoff或者做capacity estimation就抓瞎了。所以虚的不行。

其实我一直都认为一个好的developer是应该脱离任何框架、语言限制的。只是碰到几个公司的面试官(前端)揪着react框架问源码细节,或者css动画的奇技淫巧。还有一些小公司面试官一听到我们公司没有testing没有自动化就直接拒了,搞得我心态炸裂。

leetcode是去大厂最大门槛。我也刷了几百道题,确实痛苦。我老了,耄耋之年了,不想去大厂了。你年轻,看着来。系统设计,差不多就行。你能说出那么多名词儿来,已经不错了。我跟你讲吧,任何公司,大厂小厂,暂时都轮不到25岁的小鲜肉来设计那玩意。就拿我们而言,一个再小的系统,都是由architect先画图,然后大家开会,之后还拿给微软的Azure support team去,找他们专门的Azure架构师给我们提意见,然后才确定。你在会上随便喷点,别不着四六就OK。

至于问你奇技淫巧,我帮不了你,因为你是个走前端的。前端就是这种东西多。我是做后端的,好像没人问我Spring Boot的“技术内幕”(也可能是我层次不到吧,呵呵)。我只要说我都会用,然后告诉他们我做过多少micro service,集成过多少乱七八糟的第三方技术,也就行了。做前端的,就是要会奇技淫巧,呵呵。

yilin001 : 2020-10-05#38
最高学历本科?
想起我那java老师,30多岁,本地白人,数学本科,毕业时候找不到工作,去了韩国当了英文老师,回来又读了个跟it有关的college,当上了老师。还有几个学数学物理找不到工作的白人,差距真大。

flyingeric : 2020-10-05#39
恩,代码水平这个,有多个维度,我不确定面挂的那家主要认为你哪方面尚有不足。但是无论是哪一方面,单从onsite的面试来说,不会写太复杂的东西,所以是完全可以在日常工作中提高的,组里不规范,不注重代码质量,但自己在日常写代码的过程中,应该对自己写出来的代码有一定要求。不好的组,缺乏好的senior引导,确实容易引发自己也随手写代码,但是我觉得至少可以从以下几个方面持续提升自己的代码质量。1 代码是否符合主流的convention, 包括命名,注释,缩进以及一些规范化的使用。这是代码给人的第一印象。2 代码是否简洁,一个简单的例子,当碰到代码有多层if..else嵌套,一个方法实现中出现多个布尔类型变量,一个方法参数列表超长等预警信号时,就应立刻为自己敲响警钟,虽然当时写的时候也许觉得很爽很快,但往往意味着写出了冗长而多余的代码。3 代码是否efficient, 这里主要两类efficient,一类是一个算法本身的复杂度,二是面对现在的micro services, micro frontend等潮流所必须考虑的服务之间的通信开销。对于前者,适当刷leetcode等题目,确实是会有所帮助的,一方面这些题目在大厂面试过程中确实还不断出现,另一方面解决这类在限定资源限定运行时间内出结果的过程中,可以很好培养自己的思维习惯。对于通信开销,也许你目前公司的项目受制于架构,并不明显,但你自己在日常coding过程中,应尽可能多设想一下,如果整体架构将服务分离了,我自己的写法是否还依然高效。 4 failure is the first principal. 现代软件系统中无法回避的就是error和exception. 如何在代码中正确有效的处理failure, 在哪个层面处理等,是一个full stack 程序员必须熟知和掌握的,也是新手sde容易犯的错。一般来说,你能在以上几点持续改进,通过onsite应该机率会增加很多。当然,更进一步说,还有代码的风味,设计模式等,那些可以做为你后续更进一步提升的方向。希望能有所帮助。
混迹家园十余年,终于看到位点评到位的计算机业内人士。

free8299 : 2020-10-05#40
去blind问问,那儿同行多

Hale : 2020-10-06#41
楼主坐标蒙村,95后,数学背景。本科时上过一点计算机基础课程,没有sde实习经验,毕业时盲目找了一家大型基金公司做SQL/full stack 开发。入职后干了几个月数据库开发/数据分析,对SQL R运用非常熟练了。后来跟老板提出想做web开发,就跟其他两个developers学着做了几个项目(基本都是逻辑很简单的monolith app,用户也都是内部人员-基金经理,基本没有太大的难点)。

刚开始小白不懂,后来才发现整个团队的开发流程很奇葩,没有design doc,没有api doc,没有unit testing,没有CICD,测试部署纯靠手…… 没有上docker/k8s(对我们还在用VM),对代码要求能跑就行,毫无code quality可言。跟老板(快退休的白人大叔)提出了一次,结果他表示现在这样就挺好……

于是楼主大概七月开始找工作,前端全栈都有投,结果自己水平太差,被疯狂简历拒心如死灰。大厂完全没回音,好不容易面了一家中厂也在onsite coding轮挂了(followup没做出来且代码质量不规范,冷冻期4-6个月)。给offer的全是不知名小公司/startup,别说涨薪,连现在的都match 不了。楼主现在TC 10万上下浮动(80k base 10k-30k bonus),每年固定涨薪5k,手上现存俩offer都是80k没有奖金或只有几千块。

现在楼主开始纠结了,是否应该为了真正转码做SDE而接受降薪的offer(一家本土电商)还是在现在这个基金公司继续划水养老。新公司的优势:可以接触更有意思的项目,更多diverse/现代化的技术,劣势:降薪且离家远(当然现在wfh也不用考虑这个)。现公司的优势:钱多(相对而言)事少离家近且非常稳定(跟国企差不多),劣势:学不到太多新技术且开发流程混乱。且楼主现在依然没有全职做SDE,还是有很多时间花在数据库开发上,对职业成长有限。

现在楼主是否应该接受降薪,先跳槽干一年,学的差不多了再努力跳大厂呢?还是继续刷题做项目找工作?感觉加拿大就业市场完全没法给人动力,就算跳槽大厂涨薪程度也很有限…唉…
正常上班,然后闲暇时间辛苦些自学,上有certification的课程,学完搞一些短平快的开源项目。互联网企业跳槽都是为了涨薪,降薪跳槽图个啥。

molocha : 2020-10-06#42
我每次跳槽除了薪水都会想一个问题— 下一个位置是否能为我搭上下下个更好的位置. 所以一直都是vertical向上,从不平级跳,每一次跳槽我都学到next level的东西方便我再跳.

薪水的话中途有些跳槽起伏不大,但是拉长线来看,因为我的位置缘故我在四年里薪水涨了五倍.

所以重点是是否能发展technical knowledge然后利用(再发展)手头资源.

麦田依然 : 2020-10-07#43
谢谢指点。我感觉现在的组完全不追求代码质量,开发流程也很不规范。面挂的那家中厂(Square)HR给的反馈是系统设计和BQ都挺好的,就是代码水平还差一截。
我本来想的是先去这家电商公司(规模大概100+ engineers)学习锻炼一段时间,再努力往大厂跳。但又担心小公司受疫情大环境影不稳定,且心理上很难接受降薪。。
请问wooden大神,如果现公司组里环境不行也找不到人带,怎么才能尽快提高技术水平呢?
square本来要求就不低于很多大厂。建议可以试试非high tech公司,比如银行,投行。然后再转high tech公司。

而且你有个误区,小厂不一定工资低,同时很多小厂面试难度更大。

cetaphil : 2020-10-08#44
square本来要求就不低于很多大厂。建议可以试试非high tech公司,比如银行,投行。然后再转high tech公司。

而且你有个误区,小厂不一定工资低,同时很多小厂面试难度更大。
同意小厂不一定工资低,面试碰到有些bar还蛮高的。
我现在就是在五大行下的基金公司。但工作并不全是开发,还涉及很多数据处理方面。组里也只有两名程序员。开发出来的东西没什么太多闪光点,用户群也只是内部员工。

cetaphil : 2020-10-08#45
square本来要求就不低于很多大厂。建议可以试试非high tech公司,比如银行,投行。然后再转high tech公司。

而且你有个误区,小厂不一定工资低,同时很多小厂面试难度更大。
请问有哪些FinTech公司推荐吗?

麦田依然 : 2020-10-08#46
同意小厂不一定工资低,面试碰到有些bar还蛮高的。
我现在就是在五大行下的基金公司。但工作并不全是开发,还涉及很多数据处理方面。组里也只有两名程序员。开发出来的东西没什么太多闪光点,用户群也只是内部员工。
请问有哪些FinTech公司推荐吗?
银行也有很多lab部门,比如rbc的那个Borealis AI还挺有名。据我所知,银行部门与部门差距还是很大的,很多大数据,ai相关的部门技术水平应该也不会差。不如从内部看看机会,毕竟比直接硬跳外部要容易。

麦田依然 : 2020-10-08#47
请问有哪些FinTech公司推荐吗?
而且现在其实也不算找工作的好时机,求职的多,岗位少,基本上公司们都在压价。所以现在公司是五大行的话,真心建议先从内部转岗下手。能把一个大银行的重要系统玩转了也就很厉害了。