“35岁才是一个程序员成熟的开始!”
作者 | 王晓波,同程旅行机票事业群CTO
【写在前面】
不知道从什么时候开始,身边的“小朋友”们都开始为一件事感到焦虑,那就是:“到了35岁我还能找到一份编程的工作吗?”。坦白讲,我年轻的时候也有过迷茫的时刻,但是这么多年过去了,我依然身处开发的环境当中,我的经验唯一能告诉你们的就是:好好敲每一行代码,剩下的什么也不用想。
不就是比尔盖茨吗?
我从初中就开始接触编程了。那个时候正好处在世纪之交,所有人的思想都很活跃,我父母在那个年代觉得未来的世界肯定是科技的,虽然他们不懂什么是电脑,但还是花大价钱给我买了一台“练手”。
我记得那台电脑刚拿到时,操作系统应该是个DOS,玩个游戏什么的,要了命了,自己一路各种瞎拆。然后我爸就给我找了个老师,教我怎么用BASIC编程。我到现在都记得那个老师跟我说,美国有一个很厉害的人叫“比尔·盖茨”,他也是写BASIC的,但我那个时候认为所谓的编程不就是排个序找个素数嘛,有一阵子心里还对其十分鄙视,现在想想觉得自己当年真的很幼稚。
爱好+理论+工程=一个合格的程序员
后来上了大学,我选的是计算机专业,其实坦白来讲那个时候学校里教的东西和时代是有脱节的,完全没有实践的机会,我们想学习更多的知识只能去找一些翻译过来的外国编程书。直到某天我在报亭发现了一本杂志叫《程序员》,一下子就被吸引住了。我是我们班第一个买《程序员》杂志的人,一开始大家还只是互相传看,过了一段时间后几乎人手一本,其火爆程度在今天看来都难以想象。
早期《程序员》杂志珍藏一角(部分)
其实很多人在一开始是看不懂《程序员》的,在大学之前编程于我而言是兴趣,上了大学之后老师教的是理论,而《程序员》里更多的是工程。虽然我现在很难想起当时到底有哪些文章,但我记得很多给杂志投稿的都是各大公司的开发人员。在短时间内将爱好、理论与工程三者融会贯通是一件很困难的事情,但是当我又经过了一段时间的学习后,我发现有些文章慢慢也能看懂了,好像灵光乍现一样突然就“开窍”了,就这样边上课学习边买杂志看,这种独特的学习方式慢慢激励着我一直往前走。
35岁不要慌
对于后浪们,我的建议只有一句话,那就是:耐心地写代码,别多想。
这句话是什么意思呢?很多同学在学习或者工作的时候总是想太多,有没有名师来带我?我学什么技术才能一夜成功?我是不是不应该写代码?做架构是不是更有前途,要不要转岗?对于程序员而言,你能做的、你该做的就只有一点,就是好好写代码。一夜之间练成旷世神功那是武侠小说里才会出现的情节,在现实中是绝对不可能的。程序员本身代表的就是精耕细作,你只有每天都做好每件事情,才能做出好的程序。要想做到对架构或系统的完整掌握,一定是要从最基础开始做起的,日积月累慢慢打磨。
程序员在写第一行代码的时候为什么要写“Hello World”?因为我们写的每一行代码,每一个逻辑,在虚拟的时空里,它都是一个生命。每一台计算机都是一个世界,在你写下“Hello World”时,你就已经开始了创造,而真正的灵魂就来自于你的每一行代码,它是需要用时间慢慢打磨的。
在我年轻的时候,我问前辈“到60岁的时候我还能不能继续写代码”,有一个同事跟我说,“在国外有很多60岁的老人依然在写代码”。他说完这句话,我就放心多了,后来我就好好写代码,再也没有焦虑过。有人担心自己35岁还能不能找到一份编程的工作,在我看来35岁才是一个真正的程序员成熟的开始。
程序员这个群体过于细分,垂直领域的专业内容相对较少,内容上有一定的门槛。我很高兴看到《程序员》杂志复刊了,现在叫《新程序员》,这个“新”代表的不止是内容新,还有形式新,一切重新出发。《新程序员》现在有了小程序版本,从过去的纸媒走向了数字多媒体,紧跟时代潮流。内容上也致力于挖掘软件行业中最有价值的链条,一本书看透国内国外开发者的黄金十年,关注业内创新,帮助开发者快速成长。如果有可能的话,我希望能在小程序的基础上增加一些其他的功能,比如留言功能,让读者可以随时在文章下面评论提问,作者或专家来回答,形成更好的互动。
二十年过去了,《程序员》绝对不只是一本纸质杂志那么简单,它是一个工程实践的宝库,是开发者的技术大本营,更是陪伴中国一代又一代程序员成长的最好见证。
《新程序员》内容亮点抢先看
《新程序员》立足于行业前沿,深度探索技术未来,通过音视频、图文专栏等丰富的多媒体形式为载体,全方位解读技术与产业,为中国开发者打开新时代的技术之门。
《新程序员001:开发者黄金十年》内容涵盖
60位+ 技术大咖的经典观点与实践干货;
34篇 精彩文章;
13个 配文视频;
1000位+ 技术人才共同学习成长;
2张 开源核心技术全景工具收藏图;
《新程序员001:开发者黄金十年》目录
现在,会员季卡原价89元特惠58元,内容包括:
《新程序员》纸质收藏本 1本;
《新程序员001:开发者黄金十年》电子书 1本;
还能获得免费参加《新程序员》主题沙龙的机会!
长按识别二维码即可订阅
无论你是编程爱好者还是职场萌新,无论你是资深程序员还是架构师、CTO,在《新程序员》里,你都会有所收获。
——————
声明:本文作者王晓波已授权发布
相关文章:

centos安装easy_instal
easy_install与yum类似,使用easy_install,可以轻松在pypi软件库里面搜索python各类软件安装easy_install比较简单,如果配置好yum,就可以直接搜索python-setuptoolsyum –y install python-setuptools安装完python-setuptools之后&…

如何用xmanager远程连接centos6.0的桌面
在centos6.0系统上设置 修改custom.conf文件 vim /etc/gdm/custom.conf 在[security]下面添加 AllowRemoteRoottrue 在[xdmcp]下面添加 Port177 Enable1 修改完后效果如下: [daemon] [security] AllowRemoteRoottrue [xdmcp] Port177 Enable1 [greeter] [chooser] […

ASP.NET 3.5 企业级开发
议题 .NET Framework 3.5 和Visual Studio 2008 C# 面向对象程序设计 ASP.NET 状态管理和页面传值 ASP.NET 中的错误处理 ADO.NET与数据访问 架构与模式 安全与性能 优秀的团队开发管理功能C# 面向对象程序设计封装继承性多态性抽象类接口装箱和拆箱泛型ASP.NET 状态管理…

DEV报表之条形码
今天无意间发现DEV的报表居然自带条形码生成控件,正好要用到,省的自己手动生成图片了。前提:一张做好的报表Dev报表基础教程首先拖出XRBarCode控件,放到表头的空白位置,摆好高度宽度。选择Symbology,设置你…

Copilot 真会砸了程序员的饭碗?
作者 | 马超 责编 | 孙胜出品 | CSDN(ID:CSDNnews)最近OpenAI与GitHub联合构建的AI自动编程工具Copilot正式登场!Copilot基于自然语言处理模型GPT-3搭建而成,可在程序员编写代码时提供建议,甚至直接补…

提升城镇化质量 有利于激活智慧城市潜能
国家发展改革委副主任胡祖才指出,智慧城市建设是中国新型城镇化的重要内容,也是推进我国新型城镇化建设的一项长期的任务。如何通过智慧城市建设,促进城市发展模式向资源节约型、环境友好型转变,城市管理由粗放型、经济型向精专化…

变量的属性(全局变量、局部变量、动态变量、静态变量等)
变量的属性 1、变量的分类 l 根据作用域:可分为全局变量和局部变量。 l 根据生存周期:可分为静态存储方式和动态存储方式,具体地又分为自动的(auto)、静态的(static)、寄…

Science论文:诺奖经济学家的经典决策模型,被AI挑战
在2019年DOTA2的顶级赛事TI8的正赛完成之后,OpenAI的人工智能战队与TI8的冠军OG举行了一场表演赛,在英雄阵容限定17个,部分道具和功能禁用的前提下,OpenAI以2:0完胜了OG,尤其值得一提的是第二场比赛仅用时1…

Canny算法源码,欢迎交流
http://blog.csdn.net/jianxiong8814/article/details/1563109 http://blog.csdn.net/assuper/article/details/6937130 存在的bug 在dsp http://bbs.csdn.net/topics/390445572

Provisioning Services 7.8 入门系列教程之十三 使用 Boot Device Management(BDM)
续Provisioning Services 7.8 入门系列教程之十二 实现高可用性 可以使用 Boot Device Management 实用程序将 IP 和引导信息(引导设备)交付给目标设备,此方法可以取代传统的 DHCP、PXE 和 TFTP 方法。 如果使用此方法,当目标设备…

Memcached深度分析
Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载, 提升性能。关于这个东西,相信很多人都用过,本文意在通过对memcached的实现及代码分析…

【分享】 IT囧事
导读:企业的业务发展离不开信息化建设,信息系统的稳定运行更离不开IT运维的支持,许多生命期短暂或者使用效果不太好的IT系统,都是因为后期的维护和支持不到位,才导致前期投入的资金和人力付之东流,让人扼腕…

为什么掌握Linux对程序员这么重要……
人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个软件工程师岗位,都要求掌握Linux。可以说,打开 Linux 操作系统这扇门,你才是合格的软件工程师。如果不能熟练地操作 Linux,你基本上等于少…
Java并发编程有多难?这几个核心技术你掌握了吗?
本文主要内容索引 1、Java线程 2、线程模型 3、Java线程池 4、Future(各种Future) 5、Fork/Join框架 6、volatile 7、CAS(原子操作) 8、AQS(并发同步框架) 9、synchronized(同步锁) 10、并发队列࿰…

这届 AI 预测欧洲杯冠军,通通被打脸
持续了一个月的欧洲杯,终于落下帷幕。北京时间 7 月 12 日(周一)凌晨,本届欧洲杯决赛中,意大利对阵英格兰。两队在 120 分钟时间里 1-1 战平,意大利在欧洲杯中通过点球大战以 3:2击败英格兰夺冠。意大利上次…

资源的正确引用
对资源的引用应该发生在对资源的保护期间。 比如在所保护内hold住资源、local_bh_disable内hold住资源; 否则对资源的使用可能发生不一致的情况。 PS: 代码逻辑应该符合真实世界的合理逻辑。转载于:https://www.cnblogs.com/kernel521/p/4045976.html

给网站管理员的建议:创建可利用的、可抓取的网站
转载自 谷歌中文网站管理员博客 发表者 T.V. Raman,研究学者 原文: Webmaster tips for creating accessible, crawlable sites 发表于:2008年4月14日 上午10:47 Hubbell和我正在我们位于加州的家中度假。欢迎您随时 阅读在此之前我为网站管…

iptables如何开放被动模式的FTP服务
如何开放被动模式的FTP服务? 1.装载FTP追踪时的专用的模块; # modprobe nf_conntrack_ftp # lsmod | grep ftp 2.放行请求报文 命令连接: NEW,ESTABLISHED 数据连接: RELATED,ESTABLISHED #iptables -I INPUT -d 192.168.141.10 …

KNN 分类算法原理代码解析
作者 | Charmve来源 | 迈微AI研习社k-最近邻算法是基于实例的学习方法中最基本的,先介绍基x于实例学习的相关概念。基于实例的学习已知一系列的训练样例,很多学习方法为目标函数建立起明确的一般化描述;但与此不同,基于实例的学习…

Roadsend PHP-开源的PHP代码编译器
Roadsend PHP 是一个开源的php compiler, 可以将你的PHP代码编译成原生的二进制代码, 无需分发php源码. Roadsend 可以将你的PHP web项目编译成FastCGI的可执行文件,这样apache,nginx可以通过fastcgi方式和编译后的 程序进行通讯. 看起来,PHP 编写的程序可以和C编写的程序有同…

Android安卓开发中图片缩放讲解
安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制&#x…

a标签是什么意思 怎么使用?
转自:https://www.imooc.com/qadetail/190881 (1) a标签的作用:超链接,用于跳转到别的网页。 (2) a标签的用法:<a href"网址" target"_blank" >到百度首页</a> 其中target是a标签的一个属性&…

【Java】Lucene检索引擎详解
基于Java的全文索引/检索引擎——Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。 Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全…

大手笔 !Julia Computing 获 2400 万美元融资,前 Snowflake CEO 加入董事会
整理 | 梦依丹出品 | CSDN(ID:CSDNnews)2021 年 7 月 19 日,由 Julia 高性能编程语言创始人成立的 Julia Computing 公司完成了 2400 万美元的 A 轮融资,这笔融资由 Dorilton Ventures 领投,Menlo Ventures…

(Mirage系列之六)在Mirage里使用Collection
在Mirage中,Collection是包含一个或多个CVD的集合。 Collection的主要作用是简化操作。比如我有一百个终端设备需要分配基础层,如果没有Collection,那么管理员需要逐个点击。这是无趣的重复劳动。有了Collection,只要选择一个Coll…

WAS服务器负载测试软件导读
转帖:出处未知 你的Web服务器和应用到底能够支持多少并发用户访问?在出现大量并发请求的情况下,软件会出现问题吗?这些问题靠通常的测试手段是无法解答的。本文介绍了Microsoft为这个目的而提供的免费工具WAS及其用法。另外&#…

深度学习实现场景字符识别模型|代码干货
作者|李秋键出品|AI科技大本营(ID:rgznai100)# 前言 #文字是人从日常交流中语音中演化出来,用来记录信息的重要工具。文字对于人类意义非凡,以中国为例,中国地大物博,各个地方的口音都不统一,但是人们使用同一套书写体…

SQL Server 一些重要视图3
1、 sys.dm_tran_locks; 为每一把锁返回一行、request_session_id 可以与sys.dm_tran_session_transactions \sys.dm_exec_connections相关联。 request_status 查看锁的分配情况 2、 sys.dm_os_waiting_tasks; 为每一个等待的任务返回一行、blocking_session_id标记是因为谁而…

Linux下将Mysql和Apache加入到系统服务里的方法
Apache加入到系统服务里面: cp /安装目录下/apache/bin/apachectl /etc/rc.d/init.d/httpd 修改httpd 在文件头部加入如下内容: ### # Comments to support chkconfig on RedHat Linux # chkconfig: 2345 90 90 # description:http server ### 保存 在打入 #chkconf…

int、bigint、smallint 和 tinyint
int、bigint、smallint 和 tinyint使用整数数据的精确数字数据类型。 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,6…