从程序员到技术领导者

入行

你为什么要当程序员?每当我问起很多人入行的人,回答各不相同。

有很多人是因为喜欢。谁说过:热爱是最好的老师。当然,关键是热爱是否能支撑自己把爱好做成一份职业。但不论做多久,因为热爱或曾经热爱,这个理由就足够了。你不能希望撒一粒种子,都变成参天大树。所以,对进来和离开的人,我们都应该鼓励。

新入行的人,建议他们用1-2年来适应、评估程序员的生活状态。不论满怀希望还是充满失落,这些时间都不会浪费。在如今信息时代,曾经的经历,都会使有这方面经历的人拥有独特的眼光,很容易在其他领域内,引入新的思考。

进入软件行业,还是其他行业,其实,对一个新人来说,最重要的东西不是行业本身。而是,你自己得明白:你是什么样的人?你喜欢做什么?你希望做什么?你希望成为什么?你希望现在如何?你希望几年后又是怎么样?最关键的还有:你现在能做什么?

当然,你不可能凭空乱想,如果你自己都觉得目标遥远,那就仔细倾听内心的感受。你随时得问自己:我到底要什么?

有一定的方向感,就可以上路了,不必患得患失。

技能

作为立身之本,绝大多数的程序员首先关注的是编程知识、技能。他们大多容易忽视自己在从小到大的学习中,已经发展出来的能力:学习的能力、沟通的能力。这些能力虽然并不能马上换来高薪,但是,却对一个人后来的发展,有长远的影响。

程序员的工作,编码只是一个技能的部分,这种把知识转化为成果的技能非常重要。一个优秀的程序员所产生的绩效,是一般的程序员的几倍和几十倍。对一个软件公司而言,好的程序员仍然是公司的核心资产。

新入行的程序员都应该首先把精力都集中在技能的提高上。随着技能的提高,工作能力的增强,自信也会提高。

但是,不要光埋头干活,不抬头看路。如果你在一个不太正规的公司,你所做的东西和接触到东西,不太规范、有效的话,你可能在这个行业做了很多年,都算不上入行,就是说专业的起点太低。即使你有足够的时间学习,但是由于没有实践的平台,你要走的弯路就太多了。这样,你需要仔细的评估自己的选择了。

程序员普遍都有一种激情:希望自己做的产品,能为成千上万的用户使用。这种职业的自豪感,激励着每一个程序员的创造力和想象力。

即使程序员的工作能为你带来很好的收入,但你对自己所做的东西,毫无成就感,或者跟你的价值取向冲突的话,我想,你也应该考虑重新选择自己的职业生涯。

我认为,程序员的自律性都是比较高的。他们大多数人都热爱自己的工作,自己学习专业知识,努力提高工作技能。

除了对专业知识的把握以外,程序员还应该拓展自己的视野,程序员要学习关注自己的生存环境,随时审视未来的发展空间,选择自己的发展道路。仍然要问:我要什么?我要到哪里去?

总的说来,程序员生存的空间比较直接、单纯。程序员普遍不喜欢工作时受人打扰,这一切都在情理之中。

技术管理者

技术管理者和程序员,他们服务的对象和工作方式完全不同。

程序员是大我,主要是完成任务,所有的事情主要靠自己完成,目标就是完成技术思考和转化。

技术管理者是小我,服务的对象是团队,目标是组织和连接流程。用俗话说,就是要当“万金油”。

技术管理者,不论是项目经理,还是技术总监,首先要会选人和用人。要完成什么样的任务,选什么样的人,是领导的基本功。

技术管理者跟程序员最大的不同在于知道在有限资源的情况下,如何做出最合理的选择,不一定是最好的选择。领导者知道,用人用其长,而不会去苛求每个人都达到完美。

程序员可以谈论品味,像艺术家一样看待工作;而技术管理者谈论效果,是现实主义者。好的技术管理者,能在长期的理想和现实的结果中找到一个好的平衡。

技术管理者,关心的是外部目标、内部人员绩效和激励、质量控制、产品服务等一系列的活动,监督、评估并推进项目或产品的流程,直到产生一个可以交付的外部结果。

技术管理者的工作重心在人,在团队。他的绩效是通过组织和团队的绩效体现出来的。

从程序员到技术管理者

中国有句古话:劳心者治人,劳力者治于人。很多时候容易理解为:程序员劳力,技术管理者劳心。这种想法最容易造成程序员内心的不平衡。我想,现在的知识社会,大多既要劳心,又要劳力。只劳心,不劳力的人,有知识,没有执行和转换能力,这样的人,很难驾驭和管理真正的技术团队;只劳力,不劳心的人,不会提高自己的竞争力,自己也不会满意。

做程序员,还是技术管理者,这只是分工不同,并没有高低贵贱之分。可以看见,由于程序员和技术管理者定位和服务对象的不同,他们的知识结构的要求也有所不同。程序员看起来更技术化,便于评估,比较深入,技术管理者看起来更行政化,似乎表面,宽泛化,但都需要专业的素养和才干。

程序员也可以成为好的技术管理者,但需要积累和调整自己的知识结构和心态:要能勇敢地获取外部的力量。因为管理者的目标并不意味着他有多大的能力,而是他的团队有没有能力,有没有成效。那种认为管理者不劳而获的想法,是一种偏见。大家职责不同,责任不同。

一个优秀的技术人才,一定要选择一个优秀的团队。一个好的技术管理者,也要充分发挥技术人才的优势,这样,只有团队的力量,才可以把自己的才能成百上千地放大。

从外部来看待成长

从程序员到技术管理者,是一个众说纷纭的话题。但是,这不应该是一个非此即彼,孰优孰劣的问题。我更愿意看成是一个组织环境中,不同环节上不同的位置和选择,跟定位和特长有关。

站在组织的观点来看,在一个团队的内部,是没有绩效可言的。只有团队,对外产生了价值,个人才有价值。

或许并不是所有的人都能接受这一点。

所以,当你问自己得到了什么的时候?你也应该问自己奉献了什么?什么是应该体现你的报酬?你的报酬是否体现了你的责任和承担的风险?

很多时候,不是你是否值多少钱的问题,而是在一个商业的环境中,没有贡献,就没有价值。

一个人要客观地看待自己,不论是程序员还是管理者,都不要不可一世或忘自菲薄。天生我才必有用。一个人的成长,应该从外部的趋势和影响,来学习、选择和发展。把更多时间和精力,放在建立自己的核心竞争力,找到自己事业的伙伴上。

请勇往直前,不要患得患失,不要怨天尤人,命运就掌握在自己的手中!

幸福和健康

没有任何正当的理由,让人用幸福和健康来交换所谓的前途。永远牢记:身体是革命的本钱。


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

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

相关文章

黑盒测试和白盒测试

黑盒测试(又称功能测试)把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输…

Diango博客--11.Nginx + Gunicorn + Supervisor 方式部署

文章目录0.部署前准备1.创建一个超级用户2.更新 SQLite33.安装 Python3 、pip3.6以及 Pipenv4.部署代码5.使用 Gunicorn6.启动 Nginx 服务器7.配置 Nginx8.关闭 DEBUG 模式,收集静态文件9.使用 Supervisor管理 Gunicorn 进程10.使用 CDN 加快 Bootstrap 和 jQuery 的…

计算机更改了用户名数据恢复,怎么把电脑更换用户后恢復到原来的用户呢?

如何让administrator帐户出现在登陆画面?安装Windows XP时,如果设置了一个管理员账户,那么系统内置没有密码保护的Administrator管理员账户是不会出现在用户登录列表中的。虽然它身在幕后,可却拥有系统最高权限,为了方…

StringBuilder类

1.1 StringBuilder类概述StringBuilder:是一个可变的字符串。字符串缓冲区类。 String和StringBuilder的区别:String的内容是固定的StringBuilder的内容是可变的1.1.1 拼接字符串耗费内存原因:每次拼接都会产生新的字符串对象,而利用StringBuilder来拼接字符串自始至…

如何使用搜索技巧来成为一名高效的程序员

没有人是完全独立的孤岛,每个人都是整体的一部分。—— 约翰多恩对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省…

电开大计算机应用基础作业,2016年电大-电大计算机应用基础作业 答案.doc

2016年电大-电大计算机应用基础作业 答案计算机作业2单项选择题:第1题:在Word中编辑文本时,编辑区显示的“水印”在打印时( )出现在纸上。(2分)A、不会B、全部C、一部分D、大部分第2题:Word文档以文件形式存放于磁盘中,其默认的文件扩展名为(…

软件测试的步骤

大型软件系统的测试过程基本上由模块测试、子系统测试、系统测试、验收测试和平行运行等五个步骤组成。 1.模块测试 在设计得好的软件系统中,每个模块完成一个清晰定义的子功能,而且这个子功能和同级其他模块的功能之间没有相互依赖关系。因此&#xff…

linux系统优化思路

文章目录一. 影响linux性能的因素1.系统硬件资源2.操作系统相关资源3.应用程序软件资源二. 分析系统性能涉及的人员1.Linux运维人员2.系统架构设计人员3.软件开发人员三. 系统性能分析工具四.思路总结一. 影响linux性能的因素 1.系统硬件资源 1)cpu 2)…

递归锁

from threading import Thread,RLock import timemutexAmutexBRLock()#一个线程拿到锁,counter加1,该线程内又碰到加锁的情况,则counter继续加1, #这期间所有其他线程都只能等待,等待该线程释放所有锁,即counter递减到…

UI体系的本质是结构化存在

UI体系的本质是结构化存在; UI系统的问题需要使用结构化的思维来处理。

什么是视图

视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等&#xff…

30分钟,让你成为一个更好的程序员

我相信激励是非常重要的。这也是为什么我常常把时间管理(这些书激励我不管改进我的时间管理方法)的书和软件开发拿出来看看。我最近刚看完一本 书,“Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman”。这本书推动我…

如何启用计算机的远程服务,远程桌面服务,教您怎么打开远程桌面服务

远程桌面可以通过控制另一台电脑的功能,让网络管理员可以在家中安全的控制单位的服务器,而且这个功能是系统内置的,所以比使用其他第三方的远程控制工具更方便。那么我的重点来了,我今天就教你们怎么打开桌面远程服务,…

pipenv相关指令

pip install pipenv 安装pipenv pipenv install 创建虚拟环境 (项目根目录下) pipenv shell     进入虚拟环境(如果不存在,则创建并进入虚拟环境) pipenv install flask   安装模块 pipenv uninstall flask 卸…

简易多线程爬虫框架

本文首发于知乎 本文使用多线程实现一个简易爬虫框架,让我们只需要关注网页的解析,不用自己设置多线程、队列等事情。调用形式类似scrapy,而诸多功能还不完善,因此称为简易爬虫框架。 这个框架实现了Spider类,让我们只…

【小松教你手游开发】【unity实用技能】给每个GameObject的打开关闭加上一个渐变...

在游戏开发中,经常会因为直接将GameObject,setActive的方式打开关闭,这种方式效果太过生硬而给它加上一个Tween 可能是AlphaTween或者ScaleTween。 再加上一个PlayTween来做控制。 这样子需要在每个GameObject上加上这几个Component不说&…

静态网页和动态网页

静态网页是指不应用程序而直接或间接制作成html的网页,这种网页的内容是固定的,修改和更新都必须要通过专用的网页制作工具,比如Dreamweaver。动态网页是指使用网页脚本语言,比如php、asp、asp.net等,通过脚本将网站内…

在微型计算机中 如果电源突然中断,微型计算机在工作中电源突然中断,则其中的信息全部丢失,再次通电后也不能恢复的..._考试资料网...

请根据下面的文字材料,完成一节课的教学设计。 丝绸之路 一座古朴典雅的“丝绸之路”巨型石雕,矗立在西安市玉祥门外。那驮着彩绸的一峰峰骆驼,高鼻凹眼的西域商人,精神饱满,栩栩如生。商人们在这个东方大都市开了眼界…

Vmware上安装RedHat Linux 7.3操作系统手册

文章目录1.点击“创建新的虚拟机”,勾选“自定义”选项,点击一步;2.默认选择最高版本的workstations,点击下一步;3.选择“稍后安装操作系统”,点击下一步;4&a…

软件开发的“三重门”

自从上次写了“程序员技术练级攻略” 以来,就觉得似乎还有很多东西没有谈到,但当时没有继续思考了。而春节前有人问我,是做底层技术,还是做业务。这问题让我思考了很多,不由自主地回顾了一 下我这十多年的软件开发经历…