一个平庸程序员的反思:你到底想干什么

前天晚上,老婆和我偎在床上说悄悄话,大致的意思是所有她的同学都有房子了,有些还当上了管理人员,并带着少许调侃说我以后也就这样了,1年10多万,失业就会掉头发。

    我今年28,一个C++/Java程序员,跟大多数人一样,天资平平,虽然爱学习,但没有上一个好大学,工作这么几年也没有混上一个管理人员,有时候在自己看来,稍稍有些可悲。因为官本位的残留+农耕文化,在中国搞技术历来就是一个吃力不讨好的事情。搞技术意味着被人管,薪酬低,上升通道窄,所以好多技术人员包括优秀的总是希望能在一段时间以后转型,可是管理也是一门学问,控制社会关系不一定比控制计算机简单,所以彷徨且不时有受挫感。我也一样,有时候一个人看书的人总会想自己的理想到底是什么?什么才会让我觉得自己有存在价值?思来想去,我还是觉得自己是一个比较典型的程序员,喜欢写程序,喜欢调试,喜欢帮助别人,这些都能带给我快乐。既然认定了这条路线,就坚定地走下去,但只是想做技术人员还不够。

    我有过一位法国同事,技术人员40来岁,做测试写文档,放在中国来说是典型的失败。有次看了他写的详细测试报告,我不敢相信Excel能做出这么NB的东西出来,在我的赞扬之下他脸上荡漾着满足感。听他说自己做了十多年技术人员,觉得自己挺适合干这个,非常坦然,我有一种朴素的感动。这根我看到国内程序员普遍焦虑不一样(当然有社会保障因素),那就是专注于自己喜欢的,一直干下去。在兴趣和严格要求自己产出物的导引下,一个你认为不起眼的小事情也会让人感觉莫大的惊喜。岁月会让我们老去,但兴趣,专业的心态不会。我更希望在帮传代的过程中,用朴素的,职业的技术情节影响新生代程序员,推动行业的整体进步。

    你到底想干什么?这是一个问题。我看到好多人工作几年后还在今天groovy, 明天ruby,后天uml,然后是struts2,反正什么火跟什么。一天一天宝贵的时间再流逝,人也越来越焦虑,我不知道他们到底想要干什么,因为普通人是很难同时干好几件事情的。或许他们认为这些新鲜简单,学学就会,但我认为,不专业是技术人员最大的敌人。很久前我面试过一个开发人员,据说对struts非常精通,我就问 说说你怎么将jbpm集成到struts里面去,然后支支吾吾一大堆,貌似200+k的struts源代码都没有读过(我试验过,扩展webActionContext, 引用jbpmcontext,增加线程保护,扩展struts bean映射jbpm var)。就如同学groovy,但不知道它是通过什么样的语法翻译出来的(parser generator);学ruby,不知怎样用C增加系统关联性,总在技术的外围打转,这样下去,焦虑就是一种必然了。我的想法就是抓住一种最感兴趣的,把它搞透,不要害怕哪一天这个技术被淘汰了,计算机越往下关联越大,周期越长。即使有时候因为工作的性质让我们在外围打转,我们也应该在兴趣点上持续深入,专业一点,更专业一点,即可以探奇得到满足感,也可以让你时时充满竞争力,说不定哪天就用上了。

    计算机的基础是编译+操作系统+数学,比如写一个高效的多线程程序,写一个调试器,写一个脚本语言。基础的基础是数学,所以要想专业必须趁年轻能看进去书的时候打好数学基础,即使不通透,也要知道概念。就拿我做的DSL的graphical editing来说,就包含解析几何、线形代数、立体几何、微积分、图论(离散数学)等学科,这还不包括DSL的Run/Debugger/Debuggee,Text Editing等。如果你做的工作感觉不到数学的存在,那很危险:)。曾经有人说“计算机是数学的艺术”,一点不假。

    但总是有些笨人比如我,小老头了还在看数值计算,概率等数学书,看到ms, google的requirements都不敢投简历,但没关系,只要能够按照自己定的目标逐步靠近,不断学习,不断挑战自我,肯定会有收获,无论物质上还是心理上。即使最终没有在IT史留下名字的一撇,人生也没有白活,因为我在自己站着的土地上认真地来过。

    爱就努力的去做吧,愿每个程序员都能有坚强的信念和一片属于自己的天空!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值