这是个人对程序员生涯的一孔之见,只代表作者的个人想法,其中疏漏甚至错误之处在所难免,希望大家多提宝贵意见。
前言
丰厚的薪水,高端的职位和有成就感的事业是人人都想要的,而这些都取决于你每天的认真工作,努力学习和灵活做人上。日子就像一块块砖,你就像是一个泥瓦匠每天在堆砌着你的人生,最终砌出一个宏伟的大厦或是一幢低矮的小屋甚至是堆成一堆瓦砾全取决于你自己。
程序员是一碗青春饭吗?
程序界和软硬件一样都要遵守摩尔定律,也就是说当前的技术知识很快会被替代,你需要不断学习新的东西,否则就会面临着被淘汰的危险。然而,一个人的学习动力和欲望都是有限的,记忆力还会随着年龄的增长而衰退,从这个道理上来说,年龄大的迟早会被年龄小的超过,成为鸡肋并最终将被无良的公司抛弃。难道程序员这个职业做不过三十五岁,永远是一碗青春饭吗?
根基是决定一个人会不会被淘汰的关键
我刚进入IT业就听说过这种说法,不过当时的年龄限度是30岁,当工作一段时间后,这个限度上调了五岁,而且还有陆续上调的趋势,而在各个公司中,超过35的程序员并不罕见,在外国做了一辈子软件的人也屡见不鲜。难道“程序员是吃青春饭的”是一个谬论吗?那么为什么很多人持有并宣扬此论调呢?
其实这个结论既正确也不正确,它的结果取决于要评判的人。一个人如果根基扎实,他就更容易学习新的事物新的知识,年轻和精力相对于扎实牢靠的根基是微不足道的,对于别人是一座山的障碍,对于他也许就是一张纸的隔阂,这样的人是不会面临着被超越被淘汰的危机的,青春饭的论调对他完全不适用;而一个人如果根基不牢,只是靠精力和年龄勉强立足,每次新事物新知识出现都在和年轻人拼体力拼精力,那么他迟早将被淘汰,优胜劣汰的社会就是这样残酷无情,但很公平 。
什么是程序员的根基
面向对象的思想。MVC,分层架构,按接口编程,依赖注入,OR Mapping,面向方面,SOA等都是OO的发展,不从根本上领会它,程序员就难以把握程序发展进化的趋势,永远停留在老窠臼中无法自拔,自我提高升华进化当然更是一句空话。
数据结构。程序的核心目的是收集,整理和展示数据,而数据的核心就是数据结构,它的重要性不言而喻。线性表、栈/队列、串、多维数组、广义表、树、图这些数据结构你都需要认真掌握,掌握的程度越深,日后学习的阻力就越小,相对于他人将更有优势。讲话
算法。如果缺乏好的算法,程序架构得再完美数据再贴切都无济于事,犹如一台法拉利却用牛来拉一样。迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法都是你需要掌握的,不要以为这很难,读透一本算法导论就足够了。
基础API。只有思想,数据结构和算法只是一条腿,要健步如飞还得两条腿走路。程序员的另一条腿就是基础API,你需要认真掌握TCP/IP协议详解,Socket通信,线程,文件读写等每种语言和技术都需要的基础知识,一个新事务即使再绚烂夺目也是利用这些基石搭建而成的,如果你彻底了解了它们将永处不败的境地,甚至觉得新技术也不过如此。
如何打好根基
多学。从项目中学,从书本中学,从别人哪里学,从失败中学习,掌握基础API就是需要多学习,如果有已有的知识总结可以起到事半功倍的效果。
多想。学习OO和算法都需要理解,光是死记硬背毫无用处,子曰“学而不思则罔”,OO和算法的学习都需要一个理解消化的过程,只有彻底理解了,你才真正掌握了它们。
多练。经过代码的历练,程序员才能百炼成钢,成功的项目能告诉你什么是正确的,失败的项目会暗示它为什么会失败,下次你就能更进退有据。更重要的一点是,不做项目,不做多个项目,不做大项目,程序员对“度”的把握总是缺乏经验,不是过就是不及。真正亲手手写过10-20万行代码的是成为一个成熟程序员的必要条件(但不是充分条件)。
多见。眼光狭窄,目光短浅,固步自封只能造就一只井底之蛙,你的眼光必须超越自己所在的环境才能取得真正的进步,现在有许多开源社区和软件都是你应该涉足的地方,和什么样的人在一起你自然也会成为什么样的人。“蓬生麻中,不扶而直,白沙在涅,与之俱黑“说的就是这个道理。
程序员的身价是由什么决定的?
如果一个程序员有良好的根基,充满智慧的头脑,积极主动的精神和锲而不舍的毅力,他就一定能有丰厚的薪水吗?答案是否定的。原因在于薪水不光取决于自身的水平,还取决于周围的环境。
程序员的身价首先决定于他能给雇主带来多大的利益,如果带不来利益,程序员再有本事也是白搭,这就要求程序员一定要根据自己的特点寻找合适自己发展的公司,在你的职业生涯之初就要研究自己和世界,逐步选择一个合适自己的方向发展,永远记住,方向比努力更重要。
其次,程序员的身价也取决于他的不可替代性,即使一个人能带来很多的利益但身后有大批的后备军资源,干不好立即就有人顶替你,这样的人薪水也不会高,反正你不干有的是人干,资本家就是这样无情。这告诉我们要使自己不可替代,就要努力向高处走,一定和众人拉开差距才能彰显自己的价值。
程序员生涯能给我们带来什么
IT是一个朝阳产业,正处于蓬勃发展中,选择这一行比其它行业拥有更多的发展机会。
相对于其它职业,程序员对自己命运的把握程度更大。”荣辱自取,不求于人“,这是一种非常好的感觉,在别的职业中是难以找到的。
只要人们还在使用计算机,程序员这个职业就永远不会消亡,因为计算机运行永远需要软件。
在信息时代,程序是一个非常有效的收集或发布信息的工具,如果利用得当,它能直接带来巨大的收益。
程序员事业发展的方向
架构师,CIO。对于热衷于技术的程序员来说这是一个不错的方向,架构师这个职位的必要条件是有优秀的技术功底和丰富的设计经验,此外还需要有某个领域的深入知识。对于CIO要求更高,他需要对未来五年内的技术走势把握得比较清楚。
项目经理,部门经理。人际关系处理良好,语言能力出众的程序员适合走这条路。这也是大连大多数程序员的理想选择。
做自己的网站,当一个给自己发薪水的人。网站做好了收入颇丰,低端如hao123,高端如google的例子都摆在眼前。其实做网站初期投入并不巨大,但需要持之以恒的毅力尤其是敏锐的市场嗅觉,它决定了你是否能从网站中盈利。此外,拥有自己的网站对于自我宣传,建立个人品牌有很大的好处。这条路适合于热衷于网络技术的程序员。
开公司创业。制作软件并不难,难得是是否能接到活,能否接到长期的活,如果能做到的话,你就可以选择创业。拿工资致富是不可能的,而一次项目的利润可能就等于你前期的工资总和。
后语
相对于永恒的宇宙,我们确实非常渺小,应该有谦卑之心;但是跟别的任何生命相比,我们的尊严,我们的价值,我们的可能性,是一样的;就算人家确实是牡丹玫瑰,自己只是小小的,角落里的一朵苔花,也应该灿烂地绽放,把自己涨圆,并且自豪地仰望苍天,说:“我也能!”
分享到:
相关推荐
Java程序员的职业生涯规划是IT专业人士发展道路上的重要环节。在快速变化的IT环境中,保持竞争力和持续发展至关重要。本文主要探讨了Java程序员如何规划自己的职业道路,以适应行业需求和技术变革。 首先,Java...
### 程序员职业规划:让自己变得重要的关键策略 #### 一、引言 在IT行业快速发展的背景下,程序员面临着越来越激烈的竞争和技术更新的压力。本文将深入探讨如何通过有效的职业规划,使自己在职场中变得不可或缺。...
### Visual C++程序员职业规划深度解析 在IT行业,尤其是对于专注于Visual C++的程序员而言,职业规划显得尤为重要。随着软件行业的快速发展与竞争加剧,如何规划个人职业路径,以适应不断变化的市场需求,成为了每...
《我编程,我快乐:程序员职业规划之道》这本书聚焦于软件开发者如何在职业生涯中找到乐趣、实现个人价值和持续成长。作为一个程序员,你的工作不仅仅是编写代码,而是通过代码创造价值,解决问题,甚至改变世界。...
本文将深入探讨如何制定有效的职业规划,助力C#程序员实现职业生涯的成功转型。 ### 明确职业定位:选择兴趣所在 职业规划的第一步是确定自己的兴趣点和职业目标。如果你对游戏开发充满热情,那么专注于游戏设计和...
《我编程,我快乐:程序员职业规划之道》这本书由Chad Fowler著作,于梦瑄翻译,人民邮电出版社出版。本书着眼于如何帮助程序员在IT行业找到属于自己的成功之路,涵盖了程序员在职业生涯中应该如何规划、技术与商业...
《我也能做CTO之程序员职业规划》是高阳撰写的一本深度剖析程序员职业发展路径的书籍,旨在为IT行业内的专业人士提供系统性、实践性的职业规划指导。本书通过丰富的案例分析、理论阐述以及个人成长经历分享,为读者...
### 程序员职业规划之道:稳定成熟技术与新兴技术的选择 在IT行业的广阔天地里,程序员的职业发展路径充满了无数可能性与挑战。面对稳定成熟的技术与新兴技术的选择,每位程序员都面临着职业生涯的重要决策。本文将...
在IT行业中,程序员不仅...同时,随着职业生涯的发展,了解和掌握产品思维,甚至适时进行技术转型,如从开发转向产品管理,都是不可或缺的。通过阅读和学习提供的资源,程序员可以不断提升自己,适应IT行业的快速变化。
项目管理是程序员职业生涯中一个更为直接的发展方向。具备丰富经验和良好外语能力的软件项目经理在市场上非常受欢迎。根据相关数据显示,大型IT企业的软件项目主管往往能够获得较高的年薪。对于Jacky来说,向项目...
在IT行业中,技术更新换代的速度非常快,因此持续学习成为程序员职业生涯中的常态。比如.NET框架、数据库管理(DBA)等都是需要不断跟进的技术领域。随着经验的积累,程序员们也会逐渐拓宽自己的技能树,比如从专注于...
最后,持续学习和自我提升是程序员职业生涯中的重要一环,无论是通过在线课程、专业书籍还是实践项目,不断充实自己,才能在快速变化的IT行业中立足。 总的来说,Python开发者需要全面的技能,包括扎实的技术基础、...
本文主要探讨了几种职业规划路径,以及如何根据自身特点和市场需求来规划职业生涯。 首先,Java程序员需要强化系统设计能力。在当前的项目开发中,创新和巧妙的设计思想越来越重要。因此,程序员不仅需要掌握现有...
此外,学习如何根据项目需求选择合适的工具,以及自定义和配置工具以满足个性化需求,是程序员职业生涯中的一项重要技能。 在程序员的生涯中,持续学习是不变的主题。随着技术的快速发展,不断更新知识库、跟进最新...
本文将详细介绍Java程序员如何制定有效的职业规划,并探讨其在职业生涯中的重要作用。 #### 二、明确职业规划目标 对于即将毕业的学生而言,明确自己的职业目标至关重要。很多学生往往对自己的目标职位较为模糊,...