Ⅰ 程序员加班如此疯狂,都有哪些原因
程序员加班是程序员,工作中很常见的一个情况。为什么要加班呢?顾名思义就是工作没完成,或者是工作任务量太大,他没有办法在规定的时间里面做完,所以他就只能疯狂地加班来完成自己的任务,这样才能不被上司批评。
第三个原因就是因为程序员的日常比较繁琐。因为我们都知道程序员这个工作对于工作人员本身的要求是非常高的,不管是她知识领域的专业性,还是她实际操作的技巧性,都是有着严格要求的。所以说这个岗位上面的人才还是比较稀缺的,工作的人数比较少,分配到每个人身上的任务也比较重。
Ⅱ 程序员的功能是怎么划分的,做游戏的程序员一定厉害吗
程序员的功能是怎么划分的,做游戏的程序员一定厉害吗?
一般分为以下几个级别,初级工程师、中级工程师、高级工程师、资深工程师/架构师
再往上可能就是技术专家或者首席技术官了。
高级工程师
高级工程师,一般是混迹多年,且有一定技术积累的程序员,有一套自己的开发方法。对于高级工程师要求能快速的理解业务、够独立负责一个中大型系统,且在工作中需具备指导他人的能力,属于团队骨干,在团队中有一定的技术影响力。
资深工程师/架构师
程序员到了资深的级别之后,其实在职业上可以分为两个发展方向。
一个是继续往技术深度上钻研,在某个技术领域内有一定的深度和影响力,我们称为资深工程师。
还有另一个方向就是往技术的广度上发展,除自身技术线以外,对周边相关技术也有一定的研究和理解,能够站在更高的维度上去俯视项目里的技术结构,业务理解能力也很强,根据不同业务,设计出不同的技术方案,这一类我们称为架构师。
Ⅲ 为什么老板总想着程序员把软件开发成万能傻瓜式,以后没有技术人员也能做项目
一般我们中国把程序开发设计人员及程序维护测试人员都归为程序员;
可以,高数只是数学方面的知识,很多没有上大学的程序员开发程序做软件能力很强,高数和软件开发维护没有必然的联系,当然你连一些基本常用的数学知识也没有就不行啦。
程序员的要求如下:
1:团队精神和协作能力
2:文档习惯
3:规范化的代码编写习惯
4:需求理解能力
5:模块化思维能力
6:测试习惯
7:学习和总结的能力
我就是要问你 工作内容怎么不一样了
答:
首先软件工程师与程序员工作上最大的不同,可以打一个比喻:把一款软件比做一座大桥,那么软件工程师相当于施工总指挥,而一般的开发人员也就是程序员相当于建筑工人!
所以很多人就说自己是IT民工就是这么来的;
软件工程师的工作不同于程序员但是一个软件工程师必定是一个优秀的程序员!
为什么工程师要懂?
答:
前面也已经说了,高数和软件开发没有必然的关系,工程师也不一定要懂高数;要讲一点高数是可以提升你的逻辑思维,但是软件开发技术范围很广,这之间没有必然的关联,学了高数软件开发就很厉害或者不学高数软件开发就不行都是伪命题。
软件的开发工具、开发技术在不断地发展。在校学生所能学到的东西很难跟得上发展的需要但是也不能说那些东西完全没有用,只有在完全理解了相应的基本技能之后你才能很轻松地掌握新的技能,软件技术都是一个循序渐进的过程。所以高数只是你在大学里面学习的东西,是很重要的但不是必要的;
软件工程师要理解和领会软件工程,软件工程只是一个理论一个指导思想,搞软件开发的都必须了解这些基本理论并在平时的工作中认真地去贯彻执行,做软件工程师更是如此。
写思路用懂的高数吗?
答:
同上,写思路的关键是要懂软件技术,具体的实现不需过多的考虑,当然有时候设计的时候动数学建模也有帮助,不过不是必需的。
加一句,大学里学的知识上了社会很多都没有什么用处,社会是最好的大学,当然学好高数对开发什么的也有帮助,但是关键是你要一直不断地提升自己,高数再好软件技术不好你也成为不了IT精英,成为高手没有捷径,不可能速成!天道酬勤,作为学生你应该知道眼前需要做什么。那就是打基础,多动手做程序,首先争取成为一个优秀的程序员,技术达到一定高度再转软件管理方面的工作,比如:软件工程师,项目经理,IT主管,IT经理,企业CIO。
Ⅳ 程序员为什么加班多,是什么原因导致的
导致程序员加班的原因很多,主要由以下几方面吧:
1.需求不清晰。需求人员或者项目经理、产品经理没有吧需求梳理分析清楚,等开发到一半甚至开发完了,才意识到需求错了,需要重新做,眼看项目或产品都快交付了,只能让程序员加班了。
2.管理问题。企业文化,就是加班,本来没啥活,但领导就觉得员工加班他心里踏实,所以那不管你是不是程序员,一律加班。
3.自身问题。效率低,解决问题能力不行,分配的工作任务无法在规定时间内完成,那只能加班,自行解决了。
4.工作任务紧急。突然要开发一个新功能,客户要求时间紧迫。不加班,无法完成。
5.工作量大。日常工作量就是大,一个人干两三个人的工作,干不完,加班还干不完呢,加班成常态了。
从甲方角度看,我就想要什么产品3个月上线,这是战略和领导决策决定的,不能拖太长时间。
甲方以这个要求去找乙方,乙方销售为了完成业绩,他满口答应。
售前一般不会反对销售。
合同一旦签署完毕,销售业绩就认为算完成一大半,后续介入内部流程就可能减少。
这时候认为,按时交付的责任应该在研发方面。
开发和产品团队此时可能还需要进行需求分析,系统设计,提交文档,正规一些的测试部门还要审核文档。
然后这些事都走玩,开始开发任务。开发人员每天一个日报,每周一个周报,几乎天天开会讨论。
白天都在讨论问题,只有晚上其他部门都走了,无人打扰时,研发才可能专心敲代码。
没让专业的人做专业的事情, 是工作开展的大忌,在工业上,早已证明了一切,在工厂生产中,工人流水化作业,一个人只专注一件事情,会越做越熟练,越做越快,越做效率越高。
在软件开发分工越来越明确的今天,让后端人员抢前端人员的饭碗,去写网页、样式,效率能高吗?让后端人员去抢DBA的饭碗,去做数据库优化,效率能高吗?
不专业的人做不专业的事情,可能和公司的发展历程、组织架构、人员规划有关;也可能和任务安排有关。
公司发展初期,养不起很多专业的人,可能更需要“全栈”工程师,啥都一把捉;公司发展的过渡期,有点钱了,也意识到了要让专人做专业的事情,但是人员还没招齐,那没办法,你也得兼职着做各种各样的事情。如果公司有钱了,发展也成熟了,不是属于以上两种阶段,在IT组织中,连前端、后端、测试、架构、DBA、网络、服务器运维、技术支持、安全、产品,这些职能都没区分好的话,就会对工作效率有影响。IT一线工作人员,每个坑位,都需要一颗专业的螺丝钉。
开发人员不注重代码质量,导致后期返工,导致效率低
有 时候,快即是慢,对于经验不足或者习惯不好的开发人员,开发前期,被迫或者自己没意识到,为了追求进度,逻辑没考虑周全,没做好自测,代码能跑起来就算完 成任务了,表面上任务完成得很快。但是在项目后期,测试阶段,问题大规模爆发,甚至要返工,由于测试后期,离自己写代码的时候,可能隔了一段时间,有的东 西自己都忘了,再回过头去重新“熟悉”,效率能不低吗?更为严重的后果是让项目进度不可控。因此,就算进度再紧张,也顶住压力,必须要做最基本的测试,再进入下一个任务点。
个体组织人员膨胀,出现沟通成本大的问题,导致效率低
沟通成本是人员膨胀后,暴露出来的首要问题。
举个简单的栗子,很多公司都有每天晨会习惯,如果一个组有5个人,开晨会汇报工作,平均一个人汇报2分钟,就需要10分钟,现在一个组增加到10个人,一人汇报两分钟,都要20分钟才能汇报完。时间就这样过去。
再举个栗子,30人天的工作,分给2个人做,可能需要15天,共耗费30人天,但是分给5个人做,6天能完成吗?
信息在沟通、传递的过程中,可能会“失真”,你想的,不一定能100%说出来,你说出来了,别人也不一定能100%理解,而且每个人的理解能力、知识体系都不一样,理解起来容易产生偏差,产生偏差就容易做错事情。
因此,如果人员出现膨胀,要以项目为单位,进行合理的项目拆分、人员拆分。同一个“小项目”最好不要超过4个人负责。沟通的时候,推荐使用口头+书面+复述,减少沟通过程中的信息失真。
上、下属之间相互不信任,做事有阻碍或者导致重复工作,导致效率低
上 下属相互信任是一切工作的基础。如果上级不信任下属,不敢授权给下属,凡是都要自己过一遍,而上级往往是一对多的关系,这个时候,工作瓶颈会出现在上级身 上;如果上级不信任下属,搞一堆监督机制,为了下属不做错事情,又让别人同事过一遍,又要耗费额外的成本,劳民伤财,而下级得不到信任,做事受阻,久而久 之就会畏手畏脚,很难独当一面,或觉得自己有能力没地方使,干脆走人。
上级应该充分信任下级,放心授权让下级去做事情,但这些都一个前提就是要有一个较好的软件管理过程,包括开发环境和测试团队和在完成任务的过程中进行一些辅导和进行重要节点管控和监督。
上级不信任下级,经常碰到,而下级不信任上级也很要命。程序员是很有个性的工种,不好管理,往往特别多想法。就好像车轮子陷入泥潭中,上级说车子往前推,有的人又说,往后拉,各自发力,估计车子永远都摆脱不了泥潭,还谈何效率?
因此,如果有意见,前期可以提,但是解决方案一旦定下来,应该上下一心(即使有意见也埋在心底吧),朝着目标一起去努力。
不同部门之间沟通存在隔阂与障碍
软件开发过程中,在IT范畴内,不同部门难免有交集,例如开发与运维、开发与测试,不同岗位承担的责任、掌握的知识体系、考虑问题的角度往往不一样,导致处理事情受阻。
举 个栗子,有一次,开发人员为了验证某个问题,需要运维人员协助重启某个站点。对于开发人员来说,这个站点,用的人比较少,而重启也是一瞬间的事情,风险为 基本为0,但是由于运维人员掌握的知识体系不一样,怕重启了会造成很大影响,甚至害怕出了问题要自己承担责任,明明可以瞬间操作解决问题的,又要等到中午 或者半夜三更没人的时候才敢重启,效率就是这样降低了。这个时候,需要运维人员,去学习一下相关知识,或者引入新流程,例如,重启站点,需要某个专业人士 口头同意,即可立即执行。
因此,不同部门之间的人,应该互相学习,才能更好地沟通;做事情,尽量做轻量级的流程化、标准化。
上级工作安排不到位
上级工作安排不到位,也会导致工作效率低。有时候会有这种怪现象,可能很多事情没做,但是下面的人没事可做;或者有的人很忙,有的人很闲。
软件开发分工,不像搬砖头,一人搬一车就行了。软件开发, 工作量化本身就是一个很难的地方,如果项目经理没有做项目计划,没有做工作点、任务点拆分工作就很难安排到位。特别是刚刚从程序员转型做项目经理的人,过 程性思维,不会对项目做整体的把握、整体规划,想到哪里就做到哪里,想到什么就分配什么工作,最后一团糟,一会把下面的人累死,一会又让下面的人闲死。
Ⅳ 我的梦想是成为一名出色的程序设计人员,想问问那些成功的朋友们,我要怎样努力,谢谢大家!
这是一条漫长而艰辛的路
Ⅵ 外包程序员被甲方粗暴辱骂:一个破外包,你就是来打杂的杂狗
看着让人气愤不已,一名网友曝光了自己的屈辱遭遇。其其在某甲方当外包员工,被主管粗暴辱骂,事情起因是给经理送雨伞耽误了几分钟。面对如此羞辱,这名外包员工选择了忍气吞声,只因为了老婆孩子生活所需。
我是一个有着5年工作经验的架构师,关于web前端,自己有做材料的整合,一个完整学习web前端的路线,学习材料和工具。能够进我的群51615,6028收取,免费送给大家。希望你也能凭自己的努力,成为下一个优秀的程序员!
如下便是这名主管辱骂该员工的对话截图,看着让人着实生气:一个破外包心里没数?别以为自己真的是做开发的,你就是来打杂的杂狗云云。
对此,不少网友自然有话说:这也这太过分了,都开始人身攻击了,你签合同的时候有包含送伞这个工作?没有干嘛给他送?这上司是什么玩意儿。
还有网友表示应该努力怼回去:要是敢这么对我说,我能把他脑袋打开花。骂回去,都是打工的装什么,一个主管有权利开除你?
另外一名网友则列举了自己身上的真实案例:这个破公司,让我想起了上上一家公司,我一个人帮忙做的电影点播系统,公司花200万采购的一个歌曲点播系统,总经理在拿我做的项目和歌曲点播系统作比较,说我做的不如人家,我当着全公司的面把他骂了,我说你三万开发的东西和200万比较有可比性嘛?就你这智商还能做经理?然后第二天被炒了,不过还是很解恨。
有网友劝慰楼主:别想太多,这个和外包不外包不相关,只是你碰到了这种人,也没有必要去为这种人生气,不值得。生活艰辛,不容易,这要是换成刚毕业小年轻,不仅会离职还会削他。你应该找HR,甚至在媒体上曝光他的全名,真正需要离职的人是他。
Ⅶ 怎么样开发一个软件
一般而言开发一款软件,大致需要这三个大模块:需求分析、代码编写、软件测试。
首先,分析用户需求,进行客户调研。
这个过程是开发一款软件的关键性步骤,需要准确把握用户的需求。若需求不够明确。那么后期的工作都将白费。因此在这阶段,需要多与用户沟通,认真分析用户的需求,将各个功能合理划分,最终才能开发出一款符合用户需求的软件。
开发一款软件,在开发过程中大致划分为以上这些步骤。每个阶段都是在上一个阶段的基础上完成的,这些步骤是不可逆的。第一阶段的需求分析是开发软件的重中之重,相当于地基,所以相对耗时较长。