加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

过来人经验:程序员怎么升职加薪,迎娶白富美

发布时间:2018-12-01 02:10:17 所属栏目:移动互联 来源:Ryan9
导读:我是码农出身,工作十年,从 初级程序猿(半年) - 项目主力(一年) - 初级技术管理(一年) - 中级技术管理(两年) - 部门管理(两年) - 高层管理(三年) - 职业经理人,一条路走过来,关于升职,有一些自己的心得可以分享。以下大致说说从技术到管理的转变,暂不
副标题[/!--empirenews.page--]

我是码农出身,工作十年,从 初级程序猿(半年) - 项目主力(一年) - 初级技术管理(一年) - 中级技术管理(两年) - 部门管理(两年) - 高层管理(三年) - 职业经理人,一条路走过来,关于升职,有一些自己的心得可以分享。以下大致说说从技术到管理的转变,暂不涉及管理的进阶。

过来人经验:程序员怎么升职加薪,迎娶白富美

Love Coding 热爱编程

大四开始找工作的时候,我正在上一门可视化编程的课,大概就是用VC编写出可以绘图、简单动画和播放多媒体文件等各种操作的程序。基于这门课,我编写了贪吃蛇、俄罗斯方块等各种游戏。另外的一段编程经历是大二时候的Java大作业,编了一个很弱的图片管理器。实际上,这些程序都非常弱智,那时候的我算法极差,代码规范性极差,甚至于对SDK或库函数的掌握也极差,是个地地道道的菜鸟,但这并不妨碍我喜欢编程。我发现,当我坐在电脑前敲代码,或者对着千疮百孔的程序不断调试,打断点,加入调试代码,单步执行查看内存变化的时候,我是乐在其中的,甚至于忘了时间。所以,面临工作方向选择的时候,我毫不犹豫选了coding。

于是,当07年我在缺少指导,对Linux不甚了解,对路由器也一知半解的情况下,开始开发国内厂商的第一代11N路由器的时候,倾注了大量的精力阅读《LDD3》,搞定交换芯片驱动;大段大段的啃Linux Kernel源码,搞定netfilter/iptables;阅读《UNIX环境高级编程》,搞定各种同步互斥进程线程;阅读网上的各种技术博客,包括把竞争对手的GPL代码Down下来仔细阅读。。。一年里加班无数,五一十一也都是在加班中度过,一年下来基本上搞定了领导交给我的艰难任务。然后又用一两个月的时间,把产品上市后爆出来的各种Bug一一解决,最终赢回了市场口碑。

如果没有这种热爱,你就无法在日复一日的coding中保持专注,更不用说脱颖而出。

任何成功背后,都有不为人知的苦闷和寂寞。程序猿的苦逼之处,就在于别人高谈阔论指点江山的时候,别人推杯换盏觥筹交错的时候,别人出差南北纵横内外的时候,别人利用工作之便撩妹泡妞啪啪啪的时候,你只有面对屏幕,把键盘敲的啪啪啪。如果你忍受不了这种寂寞,体会不到其中的乐趣,请尽早换行。程序猿的高潮,来自于屏幕上排版良好的指令,按照你的意志精确执行,并且分毫不差。

Know yourself 贵有自知之明,了解自己

自知之明这个词,说的容易,做起来特别难。但又特别重要。

以前我团队里有个小伙,非常非常内向,话没说几句就脸红,后来程序猿不干了要去做展会,学跟人打交道,说是要挑战自己。我不知道他后来怎么样,估计结果不太好。人的性格在十几岁的时候基本就定性了,二十几岁的人再想彻底改变自己,极难,有这个毅力,估计什么都能做好了。

扯远了。这一条最想说的是,弄清楚你到底适不适合干程序猿这一行,我多年的经验总结下来,优秀的程序猿都有如下的性格特质(或部分):细心严谨、细节强迫症、完美主义、做事情有条理、耐得住寂寞、喜欢跟机器跟代码打交道(相比跟人打交道)、口才一般不佳、容易偏激或钻牛角尖、人情世故方面稍显笨拙。与之相对的是销售:口才极佳滔滔不绝、擅长跟人打交道、为人处世圆滑、八面玲珑、说话虚虚实实、为达目的不择手段。所以,适合什么样的职业方向是有章可循的。

仔细想想自己是什么样的人,结合上一条,有没有一颗热爱coding的心,你就能知道自己到底适不适合这一行。

自知之明还体现在,干这一行的过程中,详细了解自己的各项技能的长短,扬长补短。程序猿不是简单会敲代码就行,构思、设计、编码、测试、调试,往往编码只占很小的比例。而且程序猿这一行范围又极广,底层驱动、操作系统、协议栈、前端、服务器、APP、数据库、大数据、分布式、系统集成。。。。。。怎么选择,怎样能够发挥优势,真的应该好好想想。

这一条展开来说,可以讲一天,具体也可以参照我在其他问题下面的回答。职业生涯规划里面,知己知彼是非常非常重要的,知己,即是了解自我的个性、特点、优劣势、需求;知彼,即是了解行业、企业、团队、职位的情况和要求。

Be reliable 可靠,说到做到,做好本职

作为程序猿,最基本要求是:代码可读性好、功能正常没有明显bug。

但我见过太多这行里的毛头小伙,数字常量到处埋,函数命名用拼音,if else 十层八层嵌套,匈牙利命名法和Linux命名法混杂,代码像挤在一张皱了的纸上,零注释或写完代码补注释,异常处理缺失,还有基本功能一用就崩溃,还辩解说,在我那里是好的呀。遇到这一类人,通常我在心里先给打个D等(ABCD),日后恐难以翻身。

还有稍微进阶一点的毛病,说这个功能包我身上没问题,又或者一周之内绝对给你搞定,领导你放心。最后拿出来的代码不是错漏百出,就是规定时间根本完不成,而且到deadline前你询问他的时候才告诉你搞不定。。。项目组里有这样的人,要么得配一个给他擦屁股的,要么得配一个项目助理时刻监督他,换一句话说,他的贡献值其实为负。

程序猿要想进阶,其实什么设计模式、架构、高深算法、莫测技术都不重要,这些都只是术,或者说套路。最核心的应该是,把简单的任务完成好,之后再完成更难一点的任务,这样你就慢慢进阶了。为了自己的承诺和项目组整体的进度,有的时候,你需要在保证质量的基础上,拼命加班,不负所托。

再补充一点,可靠并不是说绝不出错,是人都会犯错。但你不能重复犯错,相同的错误出现两次,会严重影响别人对你的信心。

Work hardest 以绝大多数程序猿的努力程度,还轮不到拼天赋

这一点可能会有争议,也会有很多程序猿跳出来说,老子996都不止,一周工作80个小时都有了。并不否认,很多行业里的程序猿,以互联网尤甚,加班是很夸张的。但我想表达的是,你要做你们团队里最努力的那个人,别人工作80个小时,你就工作90个小时。你以为所有爬上去的人都是领导亲戚或是被潜规则?别傻了,如果大家资质差不多,一定是最努力的那个人首先得到机会。领导又不傻,马群里挑一匹跑的最快挑的最重的来带头,肯定会有示范效应,也容易服众。当然,健康是自己的,如何保持足够的休息和锻炼是你必须认真考虑的问题,不是你领导考虑的问题。另外,如果真的资质相差太大,省点力气,排队等机会吧,不行就换行。程序猿这一行里,最牛逼和最平庸之间的生产效率之比大致是50:1。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读