程序员的中年危机:那些能工作到45、50、60的程序员们,究竟具备了哪些能力?

news2024/11/19 1:32:55

程序员行业新技术发展迅猛,可以说是日新月异。也正是这个原因,中年危机成为我们必须面对和攻克的问题。

思考一个问题:那些能工作到45、50、甚至60的程序员们,究竟具备了哪些过人的能力?

就我过去的经历和观察来说,我认为:他们掌握了一些硬核技能。这些硬核技能帮助他们克服了年龄带来的劣势。

1.算法能力

很多程序员朋友觉得:如果我不从事算法相关工作。算法可能对我没有价值。 虽然大多数程序员可能在工作中用不到算法,但这一点都不妨碍算法的重要性。培养算法能力,就是训练了我们的编码能力、解构能力和超强的逻辑能力。

我一直认为编程的本质其实类似解数学题,那么算法就是最难的数学题。 码皇MIT教授Erik Demaine的建议更为直接:

If you want to become a good programmer, you can spend 10 years programming, or spend 2 years programming and learning algorithms.

如果你想成为一个码农或是熟练工(Code Monkey),你大可以不学算法,因为算法对你确实没有用。

但如果你想成为一个优秀的开发者(Developer),扎实的算法必不可少,因为你会不断的掉进一些只能借助算法才能爬出去的坑里。

2.裸编程能力

什么是裸编程能力?

处理程序实际实现部分的子任务,实现函数或者算法之类的能力。

听起来很简单对吧?实际上很多程序员缺失这样的能力。

不知道大家有没有见过「复制粘贴工程师」,Review他们的代码甚至会发现一些网上的注释,又或者其他人的编写错误。

并不是所有程序员都具备利用必备的基本编程结构有效的实现某个产品或者某个模块。

不少工作多年的程序员甚至连一个简单算法排序都没有考虑,当然这并不影响普通工作的输出。

充当代码世界的搬运工,如同搬砖工人一般,完全可以在职业生涯初期求得苟存。

但在面临调优或者攻坚,这类型的程序员的表现甚至比刚毕业的优秀程序员还要糟糕。

当他们步入中年,当他们承担越来越复杂的任务之际,无力感会与日俱增。

3.Debug能力

调试能力某种程度上比编码能力更重要。

在工作中,编码只占据了我们一部分时间,查找和解决BUG会占用更多时间。

查找BUG产生的根源不是一件简单的事情。需要整体的分析和经验的沉淀,同时还需要对各种调试工具熟练应用。

团队的架构师除了架构设计,最重要的工作就是去解决那些其他人解决不了的BUG。

4.底层系统知识

处理复杂任务或解决复杂BUG时,具备深厚的底层系统知识非常重要。比如数据结构、网络协议、操作系统相关知识,等等。

程序的很多问题都是源于对计算机工作原理的误解。即使是使用高级语言开发的程序也一样。另外,一些更偏应用层的架构或框架,基础一定是更底层的系统。

了解了底层原理,我们才能看穿眼花缭乱的技术背后的东西,不被层出不穷的新技术所累。

比如Docker技术兴起,改变了CI/CD的方式,推动了云原生技术的发展。

那么Docker到底是什么东西呢,其底层无外乎:CGroups进行资源限制、Namespace对进程视图修改、rootfs为容器进程提供隔离后执行环境的文件系统。

了解了Docker的底层原理,才能在实际工作中更好的驾驭Docker。

以上四点,作为程序员,需要深耕取得突破。

大家可能会注意到,我并没有推荐任何一门语言作为基础能力。

对于真正的程序员大牛,语言只是工具,并不是本质。

这些大牛可以很轻松的熟练使用多种语言来实现业务目标。

作为身处开发类岗位的本人,我觉得技术深耕是个很重要的事,因为身处于同岗位开发人员有很多,我相信技术比自己差的没有多少,而技术能力比自己高的应该也不少,所以不管在什么行业中都是核心竞争力的,只有不断的提升自身的能力才是王道,即便相信找个稳定高薪岗位的也不是一件什么难事

深耕技术前,首先要给自己制定一个成长曲线图,按照路线合理学习;不要东拼西凑的去学,那就是在浪费自己的时间,而且很容易忘去;下面是对标腾讯 T10 级 Android 高级进阶学习路线,为了让你能够告别繁琐技术需求制定,里面记录的都是 Android 工程师必备技能和现主流技术的学习成长路线

希望以下的学习路线能对你有帮助

对标腾讯 T10 级 Android 高级工程师成长曲线图

这套 对标腾讯 T10 级 Android 高级工程师成长曲线图 也对其配套了一份学习手册;这里面包括了从接触互联网基础内容开始,再到了解一部分如 Java 基础Android 基础语言,最后进行学习其他底层NDK跨平台的相关技术知识;相信可以给大家提供一些帮助有需要的朋友们也可以领取一下,随时查漏补缺需要完整版的朋友,可点击这里查看获取方式 或者私信发送 “进阶” 即可 直达获取

工程师必备基础技能
  • 架构设计必入技能-泛型、注解
  • 架构动态编程技术原理
  • Android 虚拟机指令
  • Android 虚拟机垃圾回收
  • Android 虚拟机类和对象的结构
  • 并发内存模型
  • synchronize 机制
  • 深入并发原理之线程池
  • 高效数据序列化

工程师核心优化能力
  • 启动优化
  • 内存优化
  • 启动速度优化
  • 卡顿优化
  • 布局优化
  • 崩溃优化
  • Android 应用启动全流程分析

Framework 于 Android 内核系统信息
  • Framework 通信
  • Android Binder
  • Android Handler
  • Framework 底层服务
  • Android Framework 源码解析 AMS、PMS IMS WMS 及绘制流程
  • Framework 事件分发机制

Android 音视频工程师
  • 通过三种方式绘制图片
  • 使用 Audio Record 采集音频 PCM 并保存到文件
  • 使用 Audio Track 播放 PCM 音频
  • MPEG-4/H,264 AVC 编解码标准
  • AAC 音频编解码技术全解
  • 流媒体协议RTMP 多媒体文件格式 MP4 FLV M3U8 PCM WAV
  • FFmpeg 命令行工具全面阐述

Android 资深架构师
  • 架构师通用技能
  • 网络访问
  • 图片加载
  • 注入解耦
  • 架构师必备设计思想
  • 数据库管理框架

Android 车载工程师
  • 开发汽车媒体应用
  • 构建 Android Auto 即时通信应用
  • 构建车载导航和地图注点应用
  • 测试 Android 车载应用
  • 分发 Android 车载应用
  • Android Auiomotivs OS 通知服务

Flutter 高级工程师
  • Flutter 之环境搭建
  • Flutter 之 初始 Dart
  • Flutter 之 Dart 语法基础
  • Flutter 之集合、控制流程
  • Flutter 之函数、类继承、异步操作、弹框、网络请求
  • Flutter 之基本布局、容器、组件、列表

有需要这份 Android 高级架构师进阶路线及学习笔记 的朋友:可以私信发送 “进阶” 即可 直达获取

好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

A comprehensive overview of knowledge graph completion

摘要 知识图(KG)以其代表和管理海量知识的独特优势,为各种下游知识感知任务(如推荐和智能问答)提供了高质量的结构化知识。KGs的质量和完整性在很大程度上决定了下游任务的有效性。但由于知识产权制度的不完备性,知识产权制度中仍有大量有价值的知识缺失…

【《机器人技术》复习】

【《机器人技术》复习】1. 要求:2. 机械手运动解算问题2.1 自由度考点2.2 运动学方程2.3 动力学方程2.4 传感器2.5 编程题1. 要求: 本次大作业上交截止时间 之前,超时,本门课程判定不及格。 作业上交的格式如下 一律以 WORD 文档…

2022年江西省职业院校技能大赛“网络空间安全”比赛任务书

2022年江西省职业院校技能大赛“网络空间安全” 比赛任务书 一、竞赛时间 总计:360分钟 竞赛阶段竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略配置 A-3 流量完整性保护 A-4 事件监控 A-5 …

求交叉链表头结点-面试必备

这里分享一下一个交叉链表的关键题目,觉得不错的小伙伴别忘了点赞支持 交叉链表无环链表思路代码有环链表思路代码总结无环链表 已知有两个链表(无环)相交,求出相交的头结点 思路 因为链表相交,所以最后一部分一定重…

每天五分钟机器学习:常用的参数寻优方法——k折交叉验证

本文重点 本文我们介绍一种常用的参数寻优方法--k折交叉验证,现在的数据集一般分为三类,分别为训练集,验证集,测试集。训练集用于训练模型,验证集用于调参,测试集用于测试调参之后的模型效果。 但是很多时…

SpringBoot+Vue实现前后端分离社区疫苗接种管理系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JDK版…

xray和burp联动

目录 xray下载安装CT Stack 安全社区 Burp和xray联动 xray下载安装下载地址:CT Stack 安全社区 先通过PowerShell打开xray所在的目录,运行,生成yaml文件 genca在目录下生成证书 生产证书后将证书导入浏览器 导入后在本地安装一下 Burp和xray…

WebdriverIO – 完整的初学者课程2022

WebdriverIO – 完整的初学者课程2022 从零开始学习和使用 JavaScript 实现 Webdriver IO!构建功能齐全的 Web 测试自动化框架 课程英文名:WebdriverIO - Complete Beginner Course 2022 此视频教程共1.0小时,中英双语字幕,画质…

SD-WAN不断冲击传统WAN架构

随着全球化数字信息转型,网络结构也是在不断的发展和完善。随着云时代的到来,传统的网络布局的局限性开始凸显出来。在过去几年广域网最重要的变化是软件定义广域网技术 (SD-WAN) 的广泛部署,它改变了网络专业人员优化和保护广域网连接的方式…

python基于PHP+MySQL的大学生宿舍管理系统

大学宿舍管理系统是信息时代的产物,它是学校宿管部门的一个好帮手。有了它不再需要繁重的纸质登记,有了它宿管员不在需要繁重的工作,一些公寓信息和住宿等基本信息可以由管理人员及时的对信息进行查询、更新、修改和删除,方便简易,且时效性高 基于PHP大学生宿舍管理系统采用当前…

年薪50w+的软件测试工程师是怎么炼成的?

随着互联网行业的迅速发展,软件测试工程师的地位越来越高,公司招聘时的薪资也越来越高,那么市场上为什么还有大量的软件测试工程师薪资只有5-6k呢?因为他们有一个共同的弱点,就是只会手工测试!!…

Python编程运算符 比较运算符

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.比较运算符 二.比较运算符使用 (1)等于 &…

操作系统之保护模式

保护模式保护模式概述初见保护模式保护模式之寄存器扩展保护模式之寻址扩展全局描述符表段描述符全局描述符GDT,局部描述符LDT级选择子保护模式的开关,CR0寄存器的PE位进入保护模式保护模式概述 ** 问题1:为什么会有保护模式** 实模式下操作…

D-逃亡的贝贝(二分+有限制最小边权)

D-逃亡的贝贝_牛客练习赛104 (nowcoder.com) 题意:给你一个n个点,m条双向边的图(有边权),再给你起点s与终点t,以及有k个药水可以使某一条边,减小,求起点到终点经历边权最小值为多少. 题解: 首先建图,然后看到题中让我们找的是一个最小,或最大的值,是一个线性的值,我们就可以想…

整理了几个100%提高Python代码质量的技巧,直呼过瘾

B站|公众号:啥都会一点的研究生 相关阅读 整理了几个100%会踩的Python细节坑,提前防止脑血栓 整理了十个100%提高效率的Python编程技巧,更上一层楼 Python-列表,从基础到进阶用法大总结,进来查漏补缺 Python-元组&…

类和对象下篇

目录 再谈构造函数 构造函数体赋值 初始化列表 explicit关键字 static成员 访问静态成员变量的方法 C11中成员初始化的新玩法 友元 友元函数 友元类 内部类 再次理解封装 再次理解面向对象 内容大纲: 再谈构造函数 构造函数体赋值 在对象创建时&…

【牛客刷题专栏】0x08:C数据结构栈实现反转链表

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 牛客数据结构题目位置如下: 目录前言问题描述:举例&#x…

Pytest+Unittest+Git+Jenkins企业级CICD自动化测试平台建设方案

随着持续集成的引入,项目中的自动化测试用例越来越多,每轮执行所消耗的时间也越来越久。 要提高自动化测试用例执行的效率,以下几点是需要考虑的根本点。 (1)公司项目的交付策略如何 首先,测试团队服务于…

Autosar MCAL-ICU输入捕获

文章目录前言ICUIcuChannelIcuChannelIdIcuDefaultStartEdgeIcuMeasurementModeIcuSignalTypeIcuWakeupCapability子配置项IcuSignalMeasurementIcuSignalMeasurementPropertyIcuDutycycleBufferMarkerIcuOptionalApisIcuGetDutyCycleValuesApiIcuSetModeApiIcuSignalMeasureme…

尝试模仿现实通讯录

学习C语言已有一段时间,我虽不敢说代码水平尚可,但学习一段时间总需要有些成果。下半年开学后,专业课程增多,我需要每天完成学校任务,所花的时间也不算少,但还是有些空闲的。想起自己之前学过用C语言写通讯…