在国内,很多人说程序员是吃青春饭的,一开始说过了30岁就得转行,后来又有人35岁是一道坎……看起来好像程序员真的和风尘女子一样,注定有朝一日会年老色衰不再受人青睐。
No!我要说,不是这样的!
所有的道路都通向天堂
只是要度过路上的痛苦时光
那一天我正走在路上
两边的荒草,比人还高
——海子,《月全食》
真的程序员,敢于直面惨淡的人生和淋漓的鲜血,一定能够在荒草满布的岁月荒原里踏出一条自己的路来。
其实别人说的话,听一听就算了,决定还得自己来做。面对别人的怀疑、否定、讥讽,我们只需要坚定地前行,做给他看。行动是最好的证明,多坚持一秒,未来就会不同。
现在就实打实的来看看程序员的价值之路在何方。
一、应用技术
相当大一部分的程序员都在做应用层面的开发,所做的软件用来解决特定场景的问题,给用户的工作和生活带来方便。
开发一个应用,经常会用到高级语言和框架,比如 C# 和 .NET ,比如 C++ 和 Qt ,比如 J2EE ,比如 Ruby on Rails ,比如 Python 和 Django ,比如 Java 和 Android ,比如 Objective-C 和 Cocoa Touch ,比如 JavaScript, PHP……太多了,数不胜数。
应用层面的开发技术,很多人觉得门槛低,小年轻和富有经验的老资格差别不大,后浪会把前浪拍死在沙滩上,所以当新一茬韭菜长成时,老一茬就得玩完了。
其实不是的,即便从纯技术的角度来讲,你对一个语言和框架的理解与把握程度,也会严重的影响开发效率和产品质量。
什么样的人会被轻易替代?不求甚解,似懂非懂,干了多少年还看不透所用技术的本质,遇到问题仍然懵懂不解茫然无措,这样的程序员,注定很快被一大波正在赶来的小鲜肉挤下工作岗位。
假如你对一门语言的各种特性都体察入微了悟于心,假如你对一个框架的机理和各种应用场景都有独特的理解和丰富的实践经验,那你几乎是不可替代的,你已经成了这个语言和框架方面的专家,价值不可估量。你的一句话就可能为一个项目节省几个月的时间,别人一筹莫展的问题到了你这里分分钟就搞定。
所以,不要理会“能 Run 就行”、“完成任务就可以了”、“用不到学那么深干什么”之类的话,在你用完一项技术解决了一个实际问题满足了某个需求之后,继续钻进去吧,多学一点,深入一点,日积月累,你必然会与众不同。上班时没时间,那就下班了继续投入。记住,你的学习和研究都是为了自己,不是为了老板,不是为了项目,你唯一的产品就是你自己,而这个产品值得一辈子打磨。
二、高难技术
有一些技术,门槛是相对较高的,比如汇编语言,比如操作系统内核,比如驱动……正因为门槛高,回报也高。比如你熟悉 Windows 内核或 Android 内核,能够熟练撰写各种驱动,那找个月薪五六十K的工作不成问题,百八十K都不在话下。惟其稀缺,所以保值。
三、算法
大部分程序员其实不懂算法,都是用框架里的模块拼积木。如果你妙悟算法真谛,那你就超越了90%的程序员了,你的重要性和价值将不可估量。
比如你精通图像处理算法,比如你精通视频编解码算法,比如你精通搜索推荐相关的算法,比如你在模式识别领域有建树……试看谁能挡得住你前进的脚步!
四、业务
在一个行业内持续积累,对业务的理解到位,积累深厚,你的价值是巨大的。不信你去浏览招聘网站上的岗位需求,99%都要求相关行业背景。所以,选择一个靠谱的、前景好的行业非常重要,只要这个行业能够不断发展、前进,你的积累就是有价值的,你自己就是不断增值的。
特定领域的业务有一定门槛,比如金融,比如电力,比如电商,比如彩票,比如考古,比如医疗……在这些行业里,你是个业务门儿清的程序员,即便技术不是特别优秀,那也是价值无限的。
五、产品意识与思维
究竟什么是产品意识呢?我认为产品意识一般包含商业意识、用户意识、创新意识和团队意识。
——《人人都是产品经理》
互联网时代,产品为王。有产品意识,懂产品思维的程序员,是最受欢迎的人群,也是最能做出好产品的程序员。
商业意识通俗地讲,就是要思考这个产品能不能卖出去,好不好卖。这个一定是要有的,程序员虽然很少直接接触市场,但是一个产品成功与否,多数时候就是看市场表现,如果你能关注市场,从市场的角度来看待技术实现,接纳“技术为市场服务”的理念,那你更容易把产品做好。
用户意识是最容易理解的,它是说我们要从用户的角度来思考这个产品该如何设计,因为产品好不好用最终由用户说了算。如果你在实现产品时也能站在用户的角度来思考,斤斤计较一个功能是否符合应用场景、是否与用户的行为特点吻合、是否贴合用户的使用习惯,那恭喜你,你超越了90%的程序员——大部分程序员是按产品经理和UI设计师的要求来实现产品。
创新是人类发展的源泉,是社会进步的动力,同样也是产品的核心竞争力。但这里所说的创新不一定是那种颠覆性的创新,也许是把众多不被重视的细节做到更好,也许只是把另外一种理念引入到这个产品中去,也许是像海底捞的员工一样给用户不一样的感受,这些都是创新。创新意识是产品经理必须有的,否则,他永远不会有进步,产品永远也做不好。创新意识也是优秀的程序员必须要有的,否则他就不能把一个产品实现得很好,不能把产品的核心竞争力演绎到极致。
当下已不再是孤胆英雄单兵作战的年代,我们要想做好一个产品,多数时候都需要一个团队。团队意识是必不可少的,你是和一帮程序员在一起,你还和产品经理、UI设计师、业务分析师、项目经理等等在一起,如果你能融入团队,并且能影响、促进其他人为共同的目标做出有效的努力,那么,你这样的程序员,是无敌的,是国之瑰宝!
说了这么多,究竟你适合在哪个方向下功夫,还需要你自己来做决断。你可能一看便知自己适合做什么,那无需赘言。也可能你有些茫然,不要担心,我们都还有大把的时间,你可以去试着去做,发现不合适了换个方向再来,直到踏上适合你的路。
相关推荐
本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...
普通程序员如何转向AI方向普通程序员如何转向AI方向普通程序员如何转向AI方向普通程序员如何转向AI方向
它涵盖了程序员需要掌握的各种关键知识点,无论你是刚踏入编程领域的新人,还是希望巩固和提升现有技能的开发者,都能从中受益。 首先,教材的基础部分将引导你走进编程世界,讲解编程语言的基本语法和逻辑。这包括...
600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员...
系统架构设计程序员向架构师转型之路是一项艰巨但充满挑战的任务,涉及到技术深度、广度、沟通能力以及业务理解等多个方面。以下是对这一主题的详细阐述: 首先,我们要明确架构师的角色。架构师并不仅仅是高级...
除此之外,还有其他几个关键习惯: 8. **测试驱动开发(TDD)**:在编写代码之前先编写测试用例,有助于确保代码的正确性和可靠性,同时也能促进更好的设计。 9. **代码审查**:参与和接受同行的代码审查可以提高...
程序员做到一定程度,就很快达到了自己瓶颈。该如何提升,往那方面提升,如果拓展自己,本文中的内容,帮助你找到适合自己的突围策略
《程序员教程》是一本专为编程初学者和有经验的开发者设计的电子书,旨在帮助读者深入理解编程概念,提高编程技能,以及掌握如何从数据中提取价值的关键知识。本书涵盖了数据挖掘、商业智能、商业分析和行业应用等多...
在IT行业中,程序员是软件开发的核心角色,他们需要掌握一系列关键的知识点以确保高效、高质量的编程工作。本串讲将深入探讨这些重要知识点,涵盖编程语言、库文件、编译器组件以及资源管理等多个方面。 首先,我们...
Java程序员上班那点事 Java程序员上班那点事 Java程序员上班那点事 Java程序员上班那点事
Java程序员+上班那点事儿.doc Java程序员+上班那点事儿.doc Java程序员+上班那点事儿.doc Java程序员+上班那点事儿.doc
- **关键点:** 选择一个适合自己的技术栈对于程序员的成长至关重要。 - **详细解释:** 作为新入行的程序员,选择一个合适的技术栈(例如Ruby、Java等)是非常重要的一步。Sam Kaufman提到,不同的技术栈能够带来...
本书可能涵盖以下关键知识点: 1. **编程语言基础**:介绍至少一种主流编程语言,如Python、Java或C++,包括变量、数据类型、控制结构(如条件语句和循环)、函数、数组等基础知识。 2. **算法与数据结构**:讲解...
然而,当程序员成功解决一个难题,或者完成一个功能模块,那种成就感就如同蜜糖,甜蜜无比。看到自己的代码运行顺畅,或者得到用户的好评,那是程序员最甜美的时刻。此外,通过编程实现创新想法,为社会带来便利,也...
这份计划分为三个阶段:基础知识点的学习、专业技能的深化以及成为专家级程序员的目标设定。每个阶段都包含了具体的行动指南,旨在帮助程序员逐步提升,最终成为一名技术精湛的专业人士。 ### 基础知识点学习(0.1...
程序员计算器能够帮助用户方便地进行这些进制之间的转换,例如将一个十进制数转换成二进制或十六进制字符串,或者将一个十六进制数转换为十进制值。这对于理解二进制数据表示、内存地址、网络协议等至关重要。 2. ...
程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词
程序员转项目经理需掌握的关键知识点包括但不限于: 1. 项目管理知识体系:了解项目管理的五大过程组(启动、规划、执行、监控、收尾)和十大知识领域(项目整合、范围、时间、成本、质量、人力资源、沟通、风险...
《一个程序员的奋斗史》是一篇描述了主人公段伏枥从大学毕业生到步入职场,开始程序员职业生涯的心路历程。该文通过主人公的亲身经历,展现了程序员在职业生涯中可能面临的种种挑战和抉择,以及程序员如何通过不断的...