`
ericFang
  • 浏览: 101537 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

程序员之路探究

阅读更多
前言

丰厚的薪水,高端的职位和有成就感的事业是人人都想要的,而这些都取决于你每天的认真工作,努力学习和灵活做人上。日子就像一块块砖,你就像是一个泥瓦匠每天在堆砌着你的人生,最终砌出一个宏伟的大厦或是一幢低矮的小屋甚至是堆成一堆瓦砾全取决于你自己。

程序员是一碗青春饭吗?

程序界和软硬件一样都要遵守摩尔定律,也就是说当前的技术知识很快会被替代,你需要不断学习新的东西,否则就会面临着被淘汰的危险。然而,一个人的学习动力和欲望都是有限的,记忆力还会随着年龄的增长而衰退,从这个道理上来说,年龄大的迟早会被年龄小的超过,成为鸡肋并最终将被无良的公司抛弃。难道程序员这个职业做不过三十五岁,永远是一碗青春饭吗?

根基是决定一个人会不会被淘汰的关键

我刚进入IT业就听说过这种说法,不过当时的年龄限度是30岁,当工作一段时间后,这个限度上调了五岁,而且还有陆续上调的趋势,而在各个公司中,超过35的程序员并不罕见,在外国做了一辈子软件的人也屡见不鲜。难道“程序员是吃青春饭的”是一个谬论吗?那么为什么很多人持有并宣扬此论调呢?
其实这个结论既正确也不正确,它的结果取决于要评判的人。一个人如果根基扎实,他就更容易学习新的事物新的知识,年轻和精力相对于扎实牢靠的根基是微不足道的,对于别人是一座山的障碍,对于他也许就是一张纸的隔阂,这样的人是不会面临着被超越被淘汰的危机的,青春饭的论调对他完全不适用;而一个人如果根基不牢,只是靠精力和年龄勉强立足,每次新事物新知识出现都在和年轻人拼体力拼精力,那么他迟早将被淘汰,优胜劣汰的社会就是这样残酷无情,但很公平 。

什么是程序员的根基

面向对象的思想。MVC,分层架构,按接口编程,依赖注入,OR Mapping,面向方面,SOA等都是OO的发展,不从根本上领会它,程序员就难以把握程序发展进化的趋势,永远停留在老窠臼中无法自拔,自我提高升华进化当然更是一句空话。
数据结构。程序的核心目的是收集,整理和展示数据,而数据的核心就是数据结构,它的重要性不言而喻。线性表、栈/队列、串、多维数组、广义表、树、图这些数据结构你都需要认真掌握,掌握的程度越深,日后学习的阻力就越小,相对于他人将更有优势。
算法。如果缺乏好的算法,程序架构得再完美数据再贴切都无济于事,犹如一台法拉利却用牛来拉一样。迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法都是你需要掌握的,不要以为这很难,读透一本算法导论就足够了。
基础API。只有思想,数据结构和算法只是一条腿,要健步如飞还得两条腿走路。程序员的另一条腿就是基础API,你需要认真掌握TCP/IP协议详解,Socket通信,线程,文件读写等每种语言和技术都需要的基础知识,一个新事务即使再绚烂夺目也是利用这些基石搭建而成的,如果你彻底了解了它们将永处不败的境地,甚至觉得新技术也不过如此。

如何打好根基

多学。从项目中学,从书本中学,从别人哪里学,从失败中学习,掌握基础API就是需要多学习,如果有已有的知识总结可以起到事半功倍的效果。
多想。学习OO和算法都需要理解,光是死记硬背毫无用处,子曰“学而不思则罔”,OO和算法的学习都需要一个理解消化的过程,只有彻底理解了,你才真正掌握了它们。
多练。经过代码的历练,程序员才能百炼成钢,成功的项目能告诉你什么是正确的,失败的项目会暗示它为什么会失败,下次你就能更进退有据。更重要的一点是,不做项目,不做多个项目,不做大项目,程序员对“度”的把握总是缺乏经验,不是过就是不及。真正亲手手写过10-20万行代码的是成为一个成熟程序员的必要条件(但不是充分条件)。
多见。眼光狭窄,目光短浅,固步自封只能造就一只井底之蛙,你的眼光必须超越自己所在的环境才能取得真正的进步,现在有许多开源社区和软件都是你应该涉足的地方,和什么样的人在一起你自然也会成为什么样的人。“蓬生麻中,不扶而直,白沙在涅,与之俱黑“说的就是这个道理。


程序员的身价是由什么决定的?

如果一个程序员有良好的根基,充满智慧的头脑,积极主动的精神和锲而不舍的毅力,他就一定能有丰厚的薪水吗?答案是否定的。原因在于薪水不光取决于自身的水平,还取决于周围的环境。
程序员的身价首先决定于他能给雇主带来多大的利益,如果带不来利益,程序员再有本事也是白搭,这就要求程序员一定要根据自己的特点寻找合适自己发展的公司,在你的职业生涯之初就要研究自己和世界,逐步选择一个合适自己的方向发展,永远记住,方向比努力更重要。
其次,程序员的身价也取决于他的不可替代性,即使一个人能带来很多的利益但身后有大批的后备军资源,干不好立即就有人顶替你,这样的人薪水也不会高,反正你不干有的是人干,资本家就是这样无情。这告诉我们要使自己不可替代,就要努力向高处走,一定和众人拉开差距才能彰显自己的价值。

程序员生涯能给我们带来什么

IT是一个朝阳产业,正处于蓬勃发展中,选择这一行比其它行业拥有更多的发展机会。
相对于其它职业,程序员对自己命运的把握程度更大。”荣辱自取,不求于人“,这是一种非常好的感觉,在别的职业中是难以找到的。
只要人们还在使用计算机,程序员这个职业就永远不会消亡,因为计算机运行永远需要软件。
在信息时代,程序是一个非常有效的收集或发布信息的工具,如果利用得当,它能直接带来巨大的收益。

程序员事业发展的方向

架构师,CIO。对于热衷于技术的程序员来说这是一个不错的方向,架构师这个职位的必要条件是有优秀的技术功底和丰富的设计经验,此外还需要有某个领域的深入知识。对于CIO要求更高,他需要对未来五年内的技术走势把握得比较清楚。
项目经理,部门经理。人际关系处理良好,语言能力出众的程序员适合走这条路。这也是大连大多数程序员的理想选择。
做自己的网站,当一个给自己发薪水的人。网站做好了收入颇丰,低端如hao123,高端如google的例子都摆在眼前。其实做网站初期投入并不巨大,但需要持之以恒的毅力尤其是敏锐的市场嗅觉,它决定了你是否能从网站中盈利。此外,拥有自己的网站对于自我宣传,建立个人品牌有很大的好处。这条路适合于热衷于网络技术的程序员。
开公司创业。制作软件并不难,难得是是否能接到活,能否接到长期的活,如果能做到的话,你就可以选择创业。拿工资致富是不可能的,而一次项目的利润可能就等于你前期的工资总和。

后语

相对于永恒的宇宙,我们确实非常渺小,应该有谦卑之心;但是跟别的任何生命相比,我们的尊严,我们的价值,我们的可能性,是一样的;就算人家确实是牡丹玫瑰,自己只是小小的,角落里的一朵苔花,也应该灿烂地绽放,把自己涨圆,并且自豪地仰望苍天,说:“我也能!”
分享到:
评论

相关推荐

    程序员之路探究1

    程序员之路探究1 在程序员的职业生涯中,丰厚的薪水、高端的职位和有成就感的事业是人人都想要的,而这些都取决于你每天的认真工作、努力学习和灵活做人上。日子就像一块块砖,你就像是一个泥瓦匠每天在堆砌着你的...

    程序员晋级之路

    ### 程序员晋级之路核心知识点解析 #### 前言:稳定基础与长远规划 在《程序员晋级之路》这篇文章中,陈皓及其合作伙伴Mailper通过分享个人的学习经验和心得,为希望提升自身技术水平的程序员提供了宝贵的建议。...

    易语言程序员老黄历

    在这个项目中,我们可以深入探究易语言的特性和应用,特别是涉及到“文本_取出中间文本”这一功能,它在处理字符串时具有重要意义。 易语言的核心特点是其全中文的语法,使得对编程不熟悉的用户也能快速上手。它的...

    作为一个程序员的最基本要求

    经典书籍如《Writing Solid Code》和《Writing Secure Code》是程序员必读之作。在掌握C++之后,进一步学习设计模式,可以提升面向对象编程的水平。 最后,建议在条件允许的情况下,深入学习数据结构、算法原理、...

    C++ 程序员成长中最常走的 4 条弯路

    在C++程序员的成长道路上,经常会遇到一些...总之,C++程序员的成长之路充满了挑战,但只要能够识别并避免上述弯路,就能更快地成长为一名出色的C++开发者。不断学习、实践和反思,是每个程序员成长不可或缺的环节。

    一个游戏程序员的学习资料

    游戏程序员的学习之路是一个涵盖广泛领域的探索过程,包括但不限于算法、数据结构、图形引擎、人工智能以及脚本系统。以下是一些核心的学习知识点: 首先,对于算法和数据结构的理解是基础中的基础。《数据结构(C ...

    程序员代码表白-爱你一辈子.zip

    这个压缩包文件包含了程序员们用代码来传递爱意的方式,让我们一起深入探究其中蕴含的IT知识。 首先,"img"文件夹通常包含HTML页面中使用的图像资源。在代码表白的情境下,这些图片可能是一些精心设计的图形,如...

    2021年云南省地区网页程序员岗位薪酬水平报告-最新数据.pdf

    该报告的数据是基于大数据系统处理薪酬数据的基础上形成的,每年处理超过3000万条薪酬数据,为全国200个行业、180多个城市和地区的838个报告之一。 报告详细展示了网页程序员在不同公司类型下的薪资水平。根据报告...

    优秀程序员45个习惯

    - **追根溯源**:深入探究问题本质,持续提问,增进理解。 3. **开发流程篇**: - **让客户做决定**:尊重用户需求,让用户参与决策。 - **设计指导而非操纵**:灵活调整设计,确保其适应性。 - **合理选择技术...

    程序员 面试 宝典 各大公司面试集锦

    在准备过程中,不仅要理解答案,更要深入探究其背后的原理,这样才能在面试中展现出自己的专业素养和深度思考能力。同时,不断实践和动手编码,将理论知识转化为实际操作,是提高技术实力的关键。最后,保持积极的...

    程序员行为研究调查问卷

    7. **理解代码的帮助因素**:探究程序员认为有助于理解代码的手段,如交流、文档、网络资源等,以及这些方法的有效性和使用频率。 8. **文档制品的重要性**:研究项目大小与文档重要性的关系,以及文档制品在不同...

    我的程序员成长之路

    【我的程序员成长之路】 在程序员的成长道路上,每个阶段都有其特定的学习目标和挑战。下面将详细阐述这九个阶段,帮助年轻的程序员理解成长路径并从中获得启示。 **第一阶段:入门阶段** 在这个阶段,程序员在...

    java程序员面试交流项目经验.zip

    面试时询问家庭问题不是非要知道求职者家庭情况,探究隐私,而是要了解家庭背景对求职者的塑造和影响。面试官希望听到的重点也在于家庭对求职者的积极影响。 3:说说你的最大优缺点 这个问题的概率很大,面试官...

    如何识别真正的程序员

    对于新技术,他们不仅会了解其表面特性,还会探究其背后的原理,以便更好地应用到实际工作中。 最后,团队协作能力也是真正的程序员不可或缺的素质。他们懂得如何有效地沟通,分享知识,以及与他人合作完成项目。在...

    程序员的思维修炼

    2. **批判性思考**:培养批判性思考能力,意味着能独立分析问题,不盲目接受既定的解决方案,而是深入探究其背后的逻辑和原理。 3. **系统思维**:系统思维强调的是整体观,它帮助程序员理解各个部分如何相互作用,...

    程序员技术练级攻略

    5. 探究操作系统原理,理解进程、线程、内存管理等概念。 6. 学习网络编程,包括TCP/IP协议、HTTP协议等。 7. 了解软件工程和敏捷开发,学习版本控制工具如Git,掌握持续集成和自动化测试。 8. 参与开源项目,通过...

    10+年程序员总结的20+条经验教训,看完必须转发、收藏、学习

    这篇文章是一位拥有超过10年经验的程序员总结的20条宝贵经验,旨在为开发者提供指导,特别是对初学者很有帮助。以下是这些经验的详细解读: 1. **从小事做起,逐步扩展**:开发时应从最小可行性产品开始,逐渐增加...

    程序员眼中的古典名画 – 码农网1

    然而,当我们深入探究程序员的世界,会发现他们对于艺术的敏感和欣赏力往往被编程工作本身所激发。尤其在程序员群体中,对古典名画的解读呈现出一种独特而富有创意的视角。他们在经典艺术作品中寻找与编程世界的交集...

Global site tag (gtag.js) - Google Analytics