无题:领导程序员


 

Enterprise Application Development:我心目中的软件研发
软件人:反对的力量永远比支持的大
看了几篇别人的blog,一次又一次的震动。经历的原因使我不能站在一个领导者的角度,我能选择的只有程序员的角度。

很多程序员,包括我自己,都有些自命不凡,而且程度基本上与水平成正比。Barbara Moo说过,管理一个软件开发团队,就像放牧一群骄傲的猫。不管领导们如何蔑视软件开发终人的作用,最终为公司创造价值的软件,还是经过程序员们的手一行行写出来的。
正是因为经过了自己的手,代码就是自己的孩子,谁愿意眼见自家孩子堕落呢?一个不甘心原地踏步的程序员总愿意不断改善自己的软件,让它更加茁壮的成长。随着开发经历的不断丰富和视野的不断拓展,脑子中出现一些新想法是很正常的。
作为基层程序员,我们通常无法擅自将一个新想法,尤其是一个可能对系统做出重大修改的想法付诸实施。这时,我们会想到有这个决定权的人——直接领导。

去年的时候,项目还是由原来的负责人领导。在项目中做了一段时间,我对项目中存在的一些问题有了自己的一些看法,于是经常在各种场合透露了一些对系统进行改进的想法。结果得到的几乎是清一色的否定。理由无非是系统已经基本成型,做大的改动会给项目造成极大的压力。经历了一次又一次打击,我渐渐失去了提出新想法的兴趣,因为我知道,那只是给自己增加一次被批评的机会而已。
正如《The Progmatic Programmer》第一章提到的“破窗户”问题,忽略一处腐烂的结果只是更多的腐烂在系统中迅速传播。看着自己开发的代码日趋混乱,那是一种心痛的感觉,而我又对此无能为力,我忽然感到一种无助,一种无可奈何。有一段时间,我的意志极为消沉,完全打不起精神。
一切的改变出现在2.0系统的开发,原来的负责人升迁了,现在的负责人走马上任。他是一个很有想法的人,作为原来的项目主力,对1.0的混乱也是看在眼中。1.0的合作使我们俩之间有了一种难得的默契,经常是一个人提出一个想法,另一个人很快就知道这个想法好在哪里。借由开发新功能的机会,我们俩大胆决定完全重写整个系统。这是一个让我后来有些后怕的决定,因为给我们的只是一个开发新功能的时间,紧接着就是项目的实施,那段时间是年终岁末,各种各样的活动又特别多。
凭借着一股生猛,我们就开始了2.0的开发。有一段时间,虽然嘴上没有明说,但身上的压力让我一度想放弃2.0,回归1.0,把新功能添加其中,这样我们就可以很快的完工。那段时间里,我得到的总是负责人的鼓励,“我相信,你可以”。新年之后,完全进入状态的我开始了疯狂的编码,在十天左右的时间里,每天从早上八点半上班一直干到晚上十一点。就这样,2.0最终顺利上线了。
那是一段累但开心的日子。如果没有负责人的鼓励,我很难相信自己能够让2.0顺利出炉。

每当我在开发过程中遇到什么难以解决的问题,我总会情不自禁的抱怨一句,坐在身边的负责人听见了,就会对我说“你可以”,虽然对于我解决问题没有直接的帮助,却给了我不小的信心,犹如心理暗示,筋疲力尽之际注入一针兴奋剂。

现在的我也不会像从前那样提出想法就想让别人接受,我更愿意稍微探索一下,即便是脑中的一闪念,提出之后,我也会说,等我尝试一下可行性。毕竟,很少有人愿意接受空手套白狼,切实的东西总要比空洞的想法更容易让人接受。

对我而言,两个负责人之间最大的差别就在于一句鼓励。
鼓励,给人自信,否定,送人自卑。自信和自卑的差别毋庸我赘述。
其实我们的直接领导就像婆媳关系不好的家庭中的男人,往往需要来自双方的夹板气。如果公司的硬环境,我们无力改变,那一句鼓励还值得吝惜吗?

如果现在让我选择一个公司,薪水、发展机会和工作环境会是我比较看重的。我并不想装得有如圣人一般,没有物质文明的精神文明不现实,我已经不再是初出茅庐的大学毕业生了。钱,只有在切实解决温饱问题之后,我才会忽略它。我喜欢写程序,但我不想永远作最底层的程序员,我希望得到一个发展的空间,让我知道天道真的酬勤。工作环境有软硬之分,只要硬环境不是很差劲,我通常不会太在乎,我更多关注的是软环境。水涨船高的道理人人都懂,我现在极为鄙视那种“宁为兵头,不为将尾”的想法,当兵头虽然可以让周遭的人高看一眼,但基本上失去再进一步的可能,当将尾虽然开始时不能获得人们的瞩目,但起码拥有成为将头的可能,尽管那可能是一个永远无法到达的彼岸。所以,我希望身边能多一些值得我学习的高手,而不是作一天和尚撞一天钟的老手。直接领导同样重要,一个好领导会给向前的动力,反之,只有自甘堕落的份了。
我知道,这些想法有些理想化,谁没有点理想和追求呢!

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,广泛应用于图像处理、计算机视觉和模式识别等领域。物体识别是OpenCV的一个重要应用场景,以下是一些常见的物体识别方法和技术: 1. **特征提取与匹配**: - **SIFT(尺度不变特征变换)**和**SURF(加速稳健特征)**:这些算法用于检测和描述局部特征,能够在图像中识别出相同的物体,即使它们的大小、旋转或光照条件发生变化。 - **ORB(定向快速旋转BRIEF)**:一种快速的特征检测和描述算法,适用于实时应用。 2. **模板匹配**: - 通过在图像中滑动一个模板(已知物体的图像),并计算模板与图像区域的相似度,来找到物体的位置。 3. **机器学习与深度学习**: - **支持向量机(SVM)**:用于分类和回归分析,可以用于物体识别任务。 - **卷积神经网络(CNN)**:深度学习模型,特别适合处理图像数据,能够自动学习图像的特征并进行分类。 4. **目标检测算法**: - **Haar级联分类器**:基于积分图和AdaBoost算法,用于实时人脸检测。 - **YOLO(You Only Look Once)**和**SSD(Single Shot MultiBox Detector)**:实时目标检测算法,能够在单次前向传播中同时进行目标定位和分类。 5. **实例分割**: - **Mask R-CNN**:在目标检测的基础上,进一步分割出目标的精确轮廓。 OpenCV提供了丰富的API和工具,可以方便地实现上述方法。以下是一个简单的示例代码,展示如何使用OpenCV进行模板匹配: ```python import cv2 import numpy as np # 读取原始图像和模板图像 original_image = cv2.imread('original_image.jpg') template = cv2.imread('template.jpg') template_gray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY) w, h = template_gray.shape[::-1] # 转换为灰度图 gray_original = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY) # 模板匹配 result = cv2.matchTemplate(gray_original, template_gray, cv2.TM_CCOEFF_NORMED) threshold = 0.8 loc = np.where(result >= threshold) # 绘制矩形框 for pt in zip(*loc[::-1]): cv2.rectangle(original_image, pt, (pt[0] + w, pt[1] + h), (0, 255, 255), 2) # 显示结果 cv2.imshow('Detected', original_image) cv2.waitKey(0) cv2.destroyAllWindows() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值