Skip to main content

一个老程序员的忠告:不要一辈子靠技术生存

发信人: bachelier (bachelier), 信区: Quant
标  题: 一个老程序员的忠告:不要一辈子靠技术生存
发信站: BBS 未名空间站 (Wed Nov  7 09:00:16 2007)

转载一篇文章.

我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉
得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体
会中,多少受点启发(也许我说的不好,你不赞同但看在我真心的份上别扔砖头啊).


一。 在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你千
万更不要认为哪些从事 市场开发,跑腿的人,没有前途。

不知道你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都
小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一
个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日
没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块功能而心怀忐忑,有
的时候如果你不幸加入现场开发的团队你则需要背井离乡告别你的女友,进行封闭开
发,你平时除了编码之外就是吃饭和睡觉(有钱的公司甚至请个保姆为你做饭,以让
你节省出更多的时间来投入到工作中,让你一直在那种累了就休息,不累就立即工作
的状态)

更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外你几乎见不
到做其他行业工作和职位的人,你的朋友圈子小且单一,甚至破坏你原有的爱情(想
象一下,你在外地做现场开发2个月以上,却从没跟女友见过一面的话,你的女友是
不是会对你呲牙裂嘴)。

也许你拿到了所谓的白领的工资,但你却从此失去享受生活的自由,如果你想做技术
人员尤其是开发人员,我想你很快就会理解,你多么想在一个地方长期待一段时间,
认识一些朋友,多一些生活时间的愿望。

比之于我们的生活和人际关系及工作,那些从事售前和市场开发的朋友,却有比我们
多的多的工作之外的时间,甚至他们工作的时间有的时候是和生活的时间是可以兼顾
的,他们可以通过市场开发,认识各个行业的人士,可以认识各种各样的朋友,他们
比我们坦率说更有发财和发展的机会,只要他们跟我们一样勤奋。(有一种勤奋的普
通人,如果给他换个地方,他马上会成为一个勤奋且出众的人。)

二。在学习技术的时候千万不要认为如果做到技术最强,就可以成为100%受尊重的人


有一次一个人在面试项目经理的时候说了这么一段话:我只用最听话的人,按照我的
要求做只要是听话就要,如果不听话不管他技术再好也不要。随后这个人得到了试用
机会,如果没意外的话,他一定会是下一个项目经理的继任者。

朋友们你知道吗?不管你技术有多强,你也不可能自由的腾出时间象别人那样研究一
下LINUX源码,甚至写一个LINUX样的杰作来表现你的才能。你需要做的就是按照要求
写代码,写代码的含义就是都规定好,你按照规定写,你很快就会发现你昨天写的代
码,跟今天写的代码有很多类似,等你写过一段时间的代码,你将领略:复制,拷贝
,粘贴那样的技术对你来说是何等重要。(如果你没有做过1年以上的真正意义上的
开发不要反驳我)。

如果你幸运的能够听到市场人员的谈话,或是领导们的谈话,你会隐约觉得他们都在
把技术人员当作编码的机器来看,你的价值并没有你想象的那么重要。而在你所在的
团队内部,你可能正在为一个技术问题的讨论再跟同事搞内耗,因为他不服你,你也
不服他,你们都认为自己的对,其实你们两个都对,而争论的目的就是为了在关键场
合证明一下自己比对方技术好,比对方强。(在一个项目开发中,没有人愿意长期听
别人的,总想换个位置领导别人。)

三。你更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己
是搞技术的。

如果你那样认为,真的是大错特错了,你可以做个调查在非技术人群中,没有几个人
知道C#与JAVA的,更谈不上来欣赏你的技术是好还是不好。一句话,技术仅仅是一个
工具,善于运用这个工具为别人干活的人,却往往不太擅长用这个工具来为自己创业
,因为这是两个概念,训练的技能也是完全不同的。

创业最开始的时候,你的人际关系,你处理人际关系的能力,你对社会潜规则的认识
,还有你明白不明白别人的心,你会不会说让人喜欢的话,还有你对自己所提供的服
务的策划和推销等等,也许有一万,一百万个值得我们重视的问题,但你会发现技术
却很少有可能包含在这一万或一百万之内,如果你创业到了一个快成功的阶段,你会
这样告诉自己:我干吗要亲自做技术,我聘一个人不就行了,这时候你才真正会理解
技术的作用,和你以前做技术人员的作用。

[小结]

基于上面的讨论,我奉劝那些学习技术的朋友,千万不要拿科举考试样的心态去学习
技术,对技术的学习几近的痴迷,想掌握所有所有的技术,以让自己成为技术领域的
权威和专家,以在必要的时候或是心里不畅快的时候到网上对着菜鸟说自己是前辈。


技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢他,但最
好不要一辈子靠它生存。

掌握技术的唯一目的就是拿它找工作(如果你不想把技术当作你第二生命的话),就
是干活。所以你在学习的时候千万不要去做那些所谓的技术习题或是研究那些帽泡算
法,最大数算法了,什么叫干活?
就是做一个东西让别人用,别人用了,可以提高他们的工作效率,想象吧,你做1万
道技术习题有什么用?只会让人觉得酸腐,还是在学习的时候,多培养些自己务实的
态度吧,比如研究一下当地市场目前有哪些软件公司用人,自己离他们的要求到底有
多远,自己具体应该怎么做才可以达到他们的要求。等你分析完这些,你就会发现,
找工作成功,技术的贡献率其实并没有你原来想象的那么高。

不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国
不会出现BILL GATES,因为,中国目前还不是十分的尊重技术人才,还仅仅的停留在
把软件技术人才当作人才机器来用的尴尬境地。(如果你不理解,一种可能是你目前
仅仅从事过技术工作,你的朋友圈子里技术类的朋友占了大多数,一种可能是你还没
有工作,但喜欢读比尔。盖茨的传记)。

--

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...