程序员是世界上最理性、最睿智的群体,耶稣也反驳不了我,我说的!
有人说,程序员是吃青春饭的,35 岁就提前退休了。
猛一看,这句话是对的;仔细一看,这句话是不对的。
说它对,是因为现实中确实有很多程序员 35 岁就被毕业了;说它不对,是因为 35 岁以上的没被毕业的程序员还是有很多的。
程序员不是吃青春饭的,而是吃技术饭的。换句话说,如果你的技术跟不上年龄的增长,那么你就只能吃青春饭;因为同样的技术,我肯定找年轻的,年轻人精力旺盛好忽悠,还能提升公司门面。
但是,你会发现,一个公司的主心骨,或者说挑大梁的,大多都是经验丰富的、可靠的、技术好的人,而这样的人,大部分年龄都不小。
那么,为什么你成不了这样的人呢?好听点就是:因为你的技术跟年龄不匹配。难听点就是:你的性价比太低,不值这个价!
要改变这个状况,你就要下几个决心,做几件事情。你首先需要提高的不是技术,不仅是技术,不仅仅是技术。
态度
首先要做的,就是端正自己的态度,不要天天扯着脖子叫唤:我 35 就失业了,我还能干啥。大部分这样叫嚷的,都是有谋杀嫌疑的,你把悲观带给别人,导致别人也悲观,从而无所事事,跟谋杀没什么区别。
假设现在有一个问题让你解决,如果你解决不了,那你纠结个毛啊;如果你能解决,那你又纠结个毛啊。所以,不用纠结,踏踏实实干事才是正途。
在 IT 行业,永远是技术至上的,一门新的技术盛行,肯定有其原因,要么就是性能提升了不少,要么就是用起来更简单。而我们作为开发者,需要做的就是不断学习,不断了解新技术。
如果你遇到新技术不主动学习,就在那感叹薪资提升慢,35 岁就被干掉,上班就摸摸鱼上几个小时大号。那么就对不起,程序员涨薪不是靠熬年龄,被干掉更不是因为年龄,而是因为不思进取。
有人就不爽了,年龄就是工作经验啊,工作经验长才能拿高薪啊。
错!8 年工作经验中有 7 年都在 ctrl+c
、ctrl+v
的不是 8 年经验,是 1 年经验。建议大家招人的时候看下面试者的手形,左手大拇指和食指磨损严重的就是用的 Mac,左手小指和食指磨损严重的就是用的 Windows,总之:只要左手食指磨损严重的,就是平时CV
惯了,就要重点关照了。
总之,年龄大不是被干掉的原罪,也不是拿高薪的借口,技术才是王道,所以,你需要的态度就是:学好技术,技术就是一切。
乐观的态度是前进的动力,态度比能力更重要。
目标
好,现在,你已经准备学好技术了,那么,该学什么技术呢?
这就要看你的目标了,程序员的职业道路只有两条:管理路线和技术路线。并不是说管理路线就不需要学技术,而是要求不那么高深了。但是做管理前,还是需要技术达标才能晋升,所以你还是要先学好技术,不然难以服众。
假如你现在定了目标:我要成为一个前端专家。
那么,你可以去招聘软件上看看,前端专家都有哪些要求,然后把这些要求列出来,逐条去努力,去实现。你也可以看看你们公司的高级前端,他每天都在做什么,他做的事你是否能做到,如果做不到,你要怎么才能做到。总之,你要想方设法去找到“实现你的目标的条件”,然后让自己逐个满足这些条件。
你每天可以反思一下,今天做了什么,做的这些是否让自己距离目标近了些;当然,这不是一日可成的,这些都是需要坚持的。当你想放弃的时候,不妨就想象下自己已经达到目标的情景,指不定你的动力就又来了。
没目标的人朝三暮四,有目标的人始终如一。
坚持
当你有了目标之后,你要做的就是坚持不懈地向目标走,你可能坚持不下去了,想放弃;或者你看到别人在吃喝玩乐禁不住诱惑,没关系,你想想他 35 被辞退的情景,你就觉得挺爽的。
我曾经读过一本书,叫做《Utliers》,中文名叫做《异类》,这本书告诉我一个道理:坚持不懈地做一件事,只要花上 10000 小时,你就能成为专家。这叫做 10000 小时法则。
10000 小时,猛一听挺唬人的,按照每天 8 小时算,就是 1250 天,按每周工作 40 小时算,也就是 300 周,大概 6 年时间,6 年的时间就能成为专家?按照 23 岁毕业来算,也就是 30 岁就能成为专家,有几个人成了呢?这个法则不对吗?肯定是对的,比如:钢琴师朗朗,魔术师刘谦,他们都是世界级的人物了。那就说明:凡是 30 岁没成为专家的,都是没有坚持的,因为大部分程序员每天真正干活的可能也就三四个小时,剩余的时间没有去学习、写代码;而是在摸鱼。唉,我替你们老板求你们上会儿班吧。
坚持是一件很可怕的事,会积少成多,会将微弱优势叠加,产生质变的效果。而且坚持会成为一种习惯,一旦养成了习惯,改都改不掉,一个好习惯将会使你受益终生。
我有个同学坚持刷leetcode
7 年了,真不是人啊,当初我嘲笑他,现在他过着令我羡慕的生活。现在后悔也没用了,知来者之可追,所以现在,我也要坚持了,耶稣也挡不住我,我说的!
理性
理性是程序员的本性,就像物体的密度一样,不会随着时间、空间的变化而改变。
即使不理性的人,一旦当了程序员,也会变成理性,因为你要面对的是代码、是计算机。代码只跟你讲道理,胡搅蛮缠、煽情那一套对代码是没用的。
理性就是做事有理有据,错的为什么错,对的为什么对,都是要做到心中有数的。比方说:今天我 review
代码,我发现这一块逻辑不太对,应该会出 Bug,但实际却正常运行,结果对了我就不去纠结了吗?这肯定是不行的,如果将来出错了呢?换句话说,我们去纠结一个代码的出发点应该是:实际结果跟我预想的不对。而不是:结果不对。
或者说:决定我们是否做一件事应该是理论导向的,不应该是结果导向的。
比如,我在同事的代码中看到很多直接在 UI 线程操作文件的,我就嘀咕:文件操作是 IO 密集型的耗时操作啊,应该在 IO 线程啊,为啥在 UI 线程呢?那个同事说:这个文件很小,几十毫秒就完事了,不会造成 UI 卡顿。
他说的没错,但是不对!因为他这么做的原因是:文件不大,不会卡顿 UI,这就是根据结果做出的判断,也就是结果导向的。
结果在后面我们发现,ANR 率上升了 0.04%,最后定位到是这个文件引起的,明明文件不大啊,这是咋回事呢?因为部分性能差的手机,ANR 率就高了,还有就是有的用户选择了一些大文件。那么这个问题怎么避免呢?
我们这么理解:理论是根据大部分场景综合得出的结果,就像正态分布,独立概率一样,都是经过大量实验、场景得出的结论,所以适用于大部分场景;而你自己的结论,只是根据你自己的所见所闻得出的,而你自己的见闻远不如理论提出者。 所以,我们要尊重理论,根据理论来下决定,而理论说:文件是耗时操作,应该放在 IO 线程,那么我们放在 IO 线程就行了。这就是理论导向。
我们要做理论导向,不要做结论导向。
理性不是无情,程序员也是有感情的,也会开心,愤怒。我们要做的,就是不在愤怒时下决定,愤怒时是感性占上风的,此时做的决定大部分是从情绪出发的,很容易错,我们要避免之。
清醒时做事,糊涂时读书,大怒时睡觉,独处时思考。
基础
最后,要说的,就是基础!我们一定要重视基础。
基础很重要!!!基础衍生出其他所有知识。学得越深,基础越重要。
基础就是通用性技能。平时感觉不到它的存在,但是一旦遇到问题,你就知道它的重要性了。
有的人在遇到问题不能解决时就开始怀疑人生,怀疑这个怀疑那个,甚至怀疑自己学过的东西都没学对,这其实就是基础不牢,这也不能确定那也不能确定,就导致不能排除无用的信息,进而无法及时解决问题。
比如,我有个同事用ArrayList
写了个用户列表,后面发现列表中有两个一样的人,不知道是服务器返回错了,还是客户端自己加错了,其实这就是他不知道ArrayList
是否具有去重性,只能先写个 demo 确定一下,这就浪费了时间,其实我觉得像这种基础不牢的,应该先把ArrayList
源码抄 100 遍再说。
高手之间的较量,拼的就是基础,拼的就是对方犯错。你可以不会高级 API,但是不能基础不牢,因为高级的 API 都是基础 API 实现的,基础 API 也能实现,比如正则表达式,你可能记不住,但是只要你知道字符串的基础 API,你也能实现同样的效果。
基础是重中之重,两手都要抓,且两手都要硬。
结语
程序员为什么是最理性、最睿智的群体呢?
因为我们整天跟电脑打交道,能跟电脑讲理的人,能不理性、不睿智吗?
我们要做的就是:端正态度,定好目标,坚持不懈,理性做事,打牢基础。诚能如此,吾等前方,绝无敌手,三界之内,没人能挡住我们的脚步。
那么,下一节,就从基础开始,一步步迈向胜利之路。
程序员的必修课 - 奔波儿灞取经 - 掘金小册数据结构+计算机网络+操作系统+设计模式,软硬兼修,深入浅出带你夯实程序员基本功。「程序员的必修课」由奔波儿灞取经撰写,610人购买https://s.juejin.cn/ds/BoPu7q4/
相关文章:

程序员是世界上最理性、最睿智的群体,耶稣也反驳不了我,我说的!
有人说,程序员是吃青春饭的,35 岁就提前退休了。 猛一看,这句话是对的;仔细一看,这句话是不对的。 说它对,是因为现实中确实有很多程序员 35 岁就被毕业了;说它不对,是因为 35 岁以…...

人工智能到底是什么?
人工智能(Artificial Intelligence,AI)是一种利用计算机科学和统计学理论和技术来实现人类智能的一门交叉学科,旨在使计算机系统能够模拟、扩展和增强人类的智能能力,使计算机能够像人类一样思考、学习、决策和执行任务…...

在动态规划的海洋中遨游(三)
前言:\textcolor{Green}{前言:}前言: 💞 好久没写题,有点生疏了。这也是给大家提一个醒,一定要一直坚持下去,哪怕每天只做一点点。💞 算法类别一、算法介绍原理适用的情况做题步骤二…...

enable_if模板编程实现字节序转换模板
enable_if和SFINAESFINAE是模板的一个特性,也就是替换失败不报错。正常来说,函数匹配的时候按照优先级依次匹配定义的重载函数,最终选择最佳匹配的函数运行。模板也是一样的,但是在替换模板时,即使出现异常错误也不认为…...

【人工智能与深度学习】基于能量的模型
【人工智能与深度学习】基于能量的模型 概述能量基础模型(EBM)方法定义解决方案:基于梯度的推理有潜在变量的能量基础模型推理例子能量基础模型和机率模型的对比自由能(Free Energy)概述 我们现在介绍一个新框架来定义模型。它提供了一个统一和系列性的方式来定义「监督模型」…...

功能测试三年,是应该改变了
前言 测试行业3年多经验,学历大专自考本科,主要测试方向web,PC端,wap站,小程序公众号都测试过,app也测过一些,C端B端都有,除功能外,接口性能也有涉猎,但是不…...

基于STM32的ubuntu交叉编译环境的搭建(arm-gcc 8.2)
常用的STM32的软件开发方法都是基于MDK keil或IAR集成开发环境,但以上两个集成开发环境软件都是需要收费的,且价格较为昂贵。本节介绍一种在ubuntu上安装arm gcc(arm-eabi)的方式,用于编译STM32的程序。 1.在arm官网下…...

数据结构:二叉树概念篇(算法基础)
目录 一.有向树的图论基础 1.有向树的相关基本概念 有向树的基本定义: 有向树的结点的度: 有向树的度: 有向树的根结点,分枝结点,叶结点: 树的子树: 树结点的层次: 树的高度: 2.一个基本的数学结论 3.有序有向树 二.数据结构中树的顺序存储结构与链式存…...

华为OD机试真题Java实现【字符串变换最小字符串】真题+解题思路+代码(20222
字符串变换最小字符串 给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。 变换规则:交换字符串中任意两个不同位置的字符。 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Java)真题目录汇总 ## 输入输出描述: …...

数字化转型的企业会用低代码平台深化重塑什么形态
随着数字化转型的浪潮不断推进,越来越多的企业开始关注如何更好地利用数字技术提高业务效率和创新能力。而低代码平台作为一种能够快速构建和部署应用程序的新型工具,正越来越受到企业的青睐。那么,数字化转型的企业会用低代码平台深化重塑什…...

【华为OD机试模拟题】用 C++ 实现 - 拼接 URL(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

六千字让你明白什么是数字孪生?
文章目录1. 背景2. 数字孪生基础2.1 概念2.2 价值3. 技术生态3.1 技术体系3.2 核心技术3.2.1 多领域、多尺度融合建模3.2.2 数据驱动与物理模型融合的状态评估3.2.3 数据采集和传输3.2.4 全生命周期数据管理3.2.5 虚拟现实呈现3.2.6 高性能计算3.3 建设3.3.1 重点3.3.1.1 数字孪…...

判断字符串是否是纯数字不包括符号(含符号显示False)isnumeric()和isdigit()
【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 判断字符串是否是纯数字 不包括符号(含符号显示False) isnumeric()和isdigit() [太阳]选择题 对于代码中当s为‘二十六’时isdigit()和isnumeric()输出的结果是? s …...

计算机408考研先导课---C语言难点2
目录 一、字符型数据与字符串型数据的比较 1、字符型数据特点 2、字符串型数据特点 二、字符数组 1、定义 2、输入输出 ①输入 ②输出 3、字符处理函数 ①put函数 ②gets函数 ③strcat函数 ④strcpy函数 ⑤strcmp函数 ⑥strlen函数 ⑦strlwr函数 ⑧strup…...

682. 棒球比赛
题目:你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。 比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操…...

【《C Primer Plus》读书笔记】第13章:文件输入/输出
【《C Primer Plus》读书笔记】第13章:文件输入/输出13.1 与文件进行通信13.1.1 文件是什么13.1.2 文本模式和二进制模式13.1.3 I/O的级别13.1.4 标准文件13.2 标准I/O13.3 一个简单的文件压缩程序13.4 文件I/O:fprintf()、fscanf()、fgets()和fputs()13…...

Datacom-HCIE考试经验分享
我是誉天Datacom秦同学。作为誉天众多通过Datacom-HCIE考试的学员之一,我感到很荣幸。 首先说说自学的感受吧: 我是从2020年开始接触网络行业的,听单位的前辈说华为的HCIE认证是行业含金量最高的证书,从那时起心里就种下了一个“I…...

第十二章 系统错误消息 - 一般系统错误消息 P - S
文章目录第十二章 系统错误消息 - 一般系统错误消息 P - S第十二章 系统错误消息 - 一般系统错误消息 P - S 错误代码描述<PARAMETER>由用户编写的函数引用或 Do 命令传递给标记行的参数数量超过了为标记行声明的形式参数的数量。<PRIVATE METHOD>已尝试调用一个私…...

【git】Idea中git的使用
配置git 创建git仓库 不同颜色代表的含义 红色——未加入版本控制;绿色——已经加入控制暂未提交;蓝色——加入,已提交,有改动;白色——加入,已提交,无改动;灰色——版本控制已忽略文…...

Centos安装Python、PyCharm
安装Python 1、打开终端(Terminal) 2、输入以下命令更新系统: sudo yum update 3、安装Python: sudo yum install python3 4、安装完成后,可以使用以下命令检查Python版本: python3 --version 安装PyCharm 1、下载PyCharm的安…...

搞百亿补贴,京东不能只“砸钱”
出品 | 何玺 排版 | 叶媛 京东“百亿补贴”真的要来了。 据多家媒体报道,京东“百亿补贴”已于2月23日启动内测。根据此前消息,京东“百亿补贴”频道将于3日晚8点正式上线。 在京东“百亿补贴”频道正式上线之前,我们来聊一聊“刘强东为什…...

automl介绍以及代码实例
使用AutoML来自动构建机器学习模型,可以使用多种不同的Python包,包括AutoGluon、TPOT、Auto-Keras等。AutoGluon可以自动搜索最佳模型,以便满足开发人员的需求;TPOT可以自动调整模型的参数,以获得更好的性能࿱…...

kill 与killall
【查询命令所属软件包】 rpm -qf /usr/bin/killall psmisc-22.20-15.el7.x86_64 rpm -qf /usr/bin/kill util-linux-2.23.2-65.el7_9.1.x86_64 【命令参数】 killallkill -e,--exact require exact match for very long names -I,--ignore-case case insensi…...

【加密】开发常见加密类型
相关加密方法具体使用,查阅工具官方; 对称加密(单密钥加密):常用于传输数据加密 信息的加密和解密使用相同密钥; 常见对称算法: DES(Data Encryption Standard)&#x…...

数据结构之基:从根儿上了解数据结构的特性
学好数据结构,就等于成功了一半。 程序是对现实的模拟,现实是由时间和空间组成的,高效的人都是用最少的时间、最少的空间来做最伟大的事,程序亦是如此。我们要选择最合理的算法和最合理的数据结构,来写最好的代码&…...

C++ 枚举详解
C 枚举详解 C 枚举类型详解 枚举类型的定义格式为: enum <类型名> {<枚举常量表>};关键字enum——指明其后的标识符是一个枚举类型的名字枚举常量表——由枚举常量构成。“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量&…...

【vue3】ref , reactive ,toRef ,toRefs 使用和理解
这篇文章是基于理解写的,仅助于理解,如有任何错误之处,感谢指正! 文章目录一.ref的使用1. ref的功能主要有两个:2.使用ref注意事项二.reactive的使用三.使用ref 和 reactive 实现双向数据绑定四.toRef 和 toRefs 的使用…...

fastadmin:如何点击按钮弹出存在的指定页面的弹窗
样式:方法一:直接使用超链接进行操作{:url(popup/purchase/itemno)}:表示地址信息btn-dialog:表示弹窗<a href"{:url(popup/purchase/itemno)}" title"跳转第三方" class"btn btn-success btn-dialog…...

【storybook】你需要一款能在独立环境下开发组件并生成可视化控件文档的框架吗?(三)
storybook插件addons核心插件插件APIargTypes写文档组件注释法MDX生成在线可视化UI文档上一篇: https://blog.csdn.net/tuzi007a/article/details/129194267插件addons 插件用于增强storybook的UI功能。 核心插件 storybook/addon-essentials 它几乎控制了整个s…...

Android源码分析 —— Activity栈管理(基于Android8)
0. 写在前面 本文基于 Android8.0源码,和Android9.0大同小异,但和Android10.0差别非常大!新版改用ATM来管理Activity的启动,Activity的生命周期也通过XXXItem来管理。由于我分析的Activity启动流程就是基于Android8/9的ÿ…...