Skip to main content

谈谈在美国做码农是否是青春饭

说起在IT行业做码农(软件工程师或者程序员),总是有些人持有这样一些观点:1)这个职业是青春饭,2)加班加点太多、工作强度太大,3)超过一定年龄就不能做技术工作了,比如35岁,40岁就做不动了。

Warald在这里说一下这类话题。首先提醒:我说的是美国的情况;美国IT行业的工作环境,跟国内不一样。

1 美国对中年和老年的定义跟中国不同
-google 1point3acres
大家在美国读书,稍微大点的学校,相信你在学校里会遇到30几岁的人还在上学。同时,我相信你绝对见过60岁以上的教授,而在中国,30多岁的人还读书,会被耻笑;50多岁的人就进入退休年龄了。

好吧,如果你觉得学校环境不同、教授职业不同,那可以问问学长,公司里面40岁以上的程序员有多少。如果你在大公司工作,你周围很可能连五六十岁的也有。如果谁告诉你周围一个这么老的都没有,他一定在还小型创业公司里工作,员工数目少,搞不好是个位数。

2 工资如何?是否会40来岁工资还不如小年轻?

40岁还会有工作可以做的,但是工资涨幅未必有期望的那么大,这倒是真的。刚毕业的时候,就算24岁,也许你工资只有8万,1年半后跳槽有10万,然后再1-2年去了湾区马上变成15万,等你34的时候25万,翻3倍还有的多。但是你下一个10年,44岁的时候是否能有25万的三倍?这个对大多数人来说基本不可能啊。。。

好吧,你说75万太多了,40万就满足了。。。。仍然希望不大!

如果你希望生活和工作取得平衡,那么薪水可能到某个程度以后涨幅会比较小,你也懒得跳槽,或者职位有一定级别后再往上爬也很难,你也不希望把全部时间都投入进去,错过自己子女的成长,错过跟家庭享受天伦之乐,那可能也就跟公司随大流一年5%涨幅,一直这么下去。

想自己创业什么的不在此列,样本点不够多并且maximum and variance 都很大,不做什么预测了。

40几岁工资不如小年轻是有可能的。工资只能由一件事决定,那就是:你创造的价值,对雇主来说值多少钱;这个价值不是由你说了算,是由雇主、由就业市场决定。如果你多年完全不学习,就在一个公司里面死盯着,又不升职,技术又不更新,经验又一般,那凭什么指望工资比别人高呢?指望着自己年长,显然是不行的。

经验并非由年龄或者工作年限决定。相信大家都见过这样一种人:工作20年,只相当于把他第一年经验重复了20次,极端例子就是你们学校看大门的或者清洁工。同时,公司里也不乏只工作2-3年就飞速成长可以担当重任的人。

如果你说,我40岁的时候就学不动了,不想费劲提高了,就是想偷得浮生半日闲,这个可以理解,完全正常。只要你对工资的期望值做相应的调整,仅仅混饭吃还是没有那么难的。

3 辛苦程度如何?年龄大了,还干的动吗?

美国当然有压力大或者需要加班的公司,尤其是年轻人激情澎湃的创业型小公司!但是请放心,如果你不喜欢创业公司的加班文化,美国有很多不加班的公司,可以让你加入,而且往往大公司里可以偷懒的部门会比较多(尽管并非每个部门都比较闲)。美国的加班文化比中国的IT公司要人道的多了,比较地道的做法就是加班额外给钱,而且比正常工作时间工资高。

美国IT行业,大体氛围是闲散的,理论上大家要朝九晚五上班,但是在大部分公司里,你早晨几点上班、下午几点走人,根本没人管,只要你在开会的时候出现、在需要你的时候能找到你人、工作按时完成,就可以了。而且,午饭时间、去健身房锻炼,大家往往都占用那八小时的工作时间。美国IT行业,很多人抱怨的不是工作压力大、工作时间长,而是抱怨开会时间太多、开会的时候很无聊,以至于自己不能专心做事。

这些,跟国内快节奏、高压力、动不动加班到半夜的工作环境,是截然不同的。如果你在国内IT行业工作几年,再来美国工作,那你非常有可能会赞叹美国工作的清闲、可以偷懒,而不是觉得工作强度太大。

4 做技术的,是否20来万就封顶了?有没有光明的前途?

前面说了,纯靠技术背景,大多数人是在20几万就封顶了。但是:
1)如果你真的技术出色,请参考Warald的文章《拿微软软件工程师做例子,说说做码农、做工程师技术活的工资上限:一年50-100万美元是可能的. 涓€浜�-涓夊垎-鍦帮紝鐙鍙戝竷
2)如果你在google, facebook,linkedin, twitter上市前加盟,跟着公司股票上市赚一笔,那会是额外的收入。而且,你不需要作为一号或者10号员工来加盟一个风险很大的创业型公司,比如很多人是在明知twitter要上市之前跳进去的,twitter一上市,按照前段时间的股票价格,出来一堆百万富翁。而且,的确是有中国人,GFLT这四个公司,按照顺序,全都在上市之前赶上了。

最后,推荐大家也读一下2009年一亩三分地里很多人讨论过的热门帖子《说说作编程/coding的,有没有前途

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...