① 普通程序员的工作生活是怎样的
通常我们进入公司以后,不会是重头开始一个项目,而是在已有代码的基础上进行维护或新功能的开发,所以必须“读代码”。
读有“泛读”,了解系统架构、功能模块,对系统有一个大致的认识,各个功能能找到相应代码实现的位置。
还有“精读”,通常就是调试了,在fix bug的时候使用。此外还包括审核:一些规范一点的公司,都会有code review,也是精读,但不用debug。
对于一个成熟的项目来说,读代码——而不是写代码——可能是最耗时间的工作了。
写注释文档
为了减少“读代码”的时间,我们不得不花时间“写注释”“写文档”——这个程序员最深恶痛绝的工作。所以现在“烂代码才需要注释”的声音变得越来越强,但无论如何,文档还是要写的。(注意:要能区分注释和文档)
了解需求
好了,终于到了“写代码”的时间了。
然而,在动手开始写代码之前,你必须花时间“了解需求”。和自己写个小程序玩玩不同,在公司,你是为别人写代码,所以你一定要了解别人究竟想实现什么功能。通常,这并没有你想象的那么简单,需要反复的沟通。
当然,也有一些团队和个人,不愿意在这上面“浪费时间”,通常他们的下场就是不断的写代码,然后不断的改代码,加班加点的做大量的无用功,整个公司怨气冲天一地鸡毛。
② 正在工作的程序员,生活状态什么样
从上图中我们可以看到,工作年限为 5-10 年成程序员占了程序员群体的 43.4%,属于资深程序员。刚参加工作的程序员占总体的 12%,工作 2-4年的程序员占总体的 33.1%,而工作十年以上的程序员占总体的 11.6%。
与去年的数据相比,刚工作的程序员数量显着减少,工作两年以上的程序员从73.4%上升到了88%。很大可能是受疫情影响,企业用人需求减少导致的。
在过去几年与程序员这个群体的深度接触以及交流中,发现很多程序员都对工作时间过长,导致没有太多时间提升自己这一现状颇有微词。所以此次的问卷调查中,程序员客栈特意增加了关于工作时长以及学习时长的调查。
上图是关于程序员每周花在工作上的时间,可以看到一个很有意思的现象,就是一共有66.9%的程序员过着理想的朝九晚五一周工作五天的工作生活,只有剩下33.1%的程序员都有不同程度的加班,这与我们日常听到的程序员这一职业普遍加班严重的言论并不相符合。
在此基础上,更是只有不到十分之一(8.6%)的程序员每周工作时长达到了996,甚至更长的工作时间。
③ 一般的程序员,工作一天平均有多长时间在写程序
这个就是看个人的工作性质了
也看公司的项目情况
如果公司项目比较多时间比较紧,那么一天到晚就是在看代码,写代码了,而且很大可能需要加班
如果暂时公司没有项目,那么就比较轻松连,空间时间多,可以看看自己想学的知识
如果公司的性质是外包的话,那么非常不幸就是一直在忙了
另外一般忙的时候都是在项目开始初期和项目要结束的时候,项目中间时间的话不是很紧张
④ 说一说作为一个程序员,作息时间是怎样的
通常早上9点半左右起床,到公司10点半。早上没什么工作效率,上上网,折腾折腾就过去了,中午午休到1点半,干活到6点,吃过晚饭继续干活,通常到9点下班,忙的话会到10点,下午和晚上的工作效率比较高。到家之后上上网,查查资料学习一下,12点半左右睡觉。每个月大概有两个周六会加班,周日在家休息,有时带娃出去玩玩。
⑤ 编译程序大多数时间花在什么上
编译程序大多数时间花在目标代码生成。
编译程序把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。
它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
编译程序的基本功能是把源程序(高级语言)翻译成目标程序。但是,作为一个具有实际应用价值的编译系统,除了基本功能之外,还应具备语法检查、调试措施、修改手段、覆盖处理、目标程序优化、不同语言合用以及人-机联系等重要功能。
编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。
但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。
⑥ 为什么程序员每天都要加班
我就是学游戏编程的,程序猿吧,很奇怪的一个职业,自由度低,精力低,时间低的一个职业。
所以奉劝没有耐心的人就不要学编程了,你承受不了总是改正就不要学编程了,你承受不了日夜加班就不要学编程了,你承受不了英年脱发就不要学编程了。
⑦ 程序员一天都在写代码吗程序员的一天除了敲代码还有做什么
程序员一天都在写代码吗?
来自我个人的感叹:如果能天天写代码,该有多幸福啊~
如果程序员的一天都在写代码,这就说明了公司的需求明确,老板的战略完美,产品经理也不会天天找人撕B,技术Leader已经把框架制定好了,大家都安心编码,安心做有创造力的工作。在这种情况之下,程序员的成长也是飞快的,心无旁骛的驰骋在代码王国。
然鹅。人生不如意事常八九。
那八九不如意的时间,大多数程序员要面临以下问题:
会跟产品经理吵架会对着搜索引擎出来的结果说卧槽,需求不明确,随意更改,架构频繁更换,焦头烂额。
测试频繁告知你各种千分之几的无法复现的bug。
各种低效会议,无形中浪费生命。
除了以上这些,可能还有:兴奋的写了半天发现编译不过。
折腾就是半天,开心的上了线,各种线上bug弄得心跳加快,血压升高。
日常情况下把每天状态最好的2-3小时拿来敲代码就可以搞定一切需求了。
因为其他时间都基本上是用来开会,跟产品经理互怼,然后就是debug整天。有bug必须赶紧找出来,如果今键穗凳天没找出来,明天继续一整天,如此族宏循环。
所以要提高水平。经常写bug的人就很忙。或者说,瞎忙。而且代码写得太多了还需要花点时间稍微整理一下文档之类的,免得以后自己都看不懂。有些东西可能也需要花时间重构一下。
但可惜,程序员的工作不是仅仅只有写代码。你得了解业务。了解功能需求。要知道代码是为了让人使用的,你需要和人打道。
真正用来写代码的时间占全部工作时间的比例其实稿旅并不高,就算是没有人打扰,也需要花很多时间去设计怎么写代码,或者是花很多时间去读懂别人的代码来找到Bug产生的根本原因。
在这个过程中看似面对的是代码,其实还是在面对人。
程序员并不是一天到晚都在写代码的,大部分程序员一般平均每天应该不超过3个小时吧,大部分时候在了解需求、各种开会、找bug、以及学习。大部分时候是在做写代码之外的事情,偶尔也会划水。
总之程序员的工作远不止写代码,花时间学习提高自己,总结沉淀一些东西来提高自己的影响力,都很重要!
最后还有句话是这么说的:栽一棵树最好的时间是十年前,其次是现在。对于学习编程的小伙伴,如果你想更好地提升你的编程核心能力(内功),在未来成为一名有为的技术人员!笔者这里或许可以帮到你~
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
⑧ 初级程序员该如何逆袭
在程序员圈,一直流传着这样一个传说,用发量来判断程序员的级别,这明显是种调侃。那么,中级程序员,相对于初级程序员,有哪些不一样的特质呢?
总得来说,比较于初级而言,中级程序员在执行层面属于攻坚力量,他们不仅能独立完成高档难度的开发使命,并且在用户体验(质量提高)和功能优化(优化效率)都能作更全面的考量。
以下,是小编总结的关于中级程序员七大特点,各位可以对号入座。
(一)善于沟通
程序员内向的居多,喜欢交流的很少,但中级程序员往往能够克服自己的内新的恐惧心理,多和同事交流。
甚至有管理者认为,程序员应该80%的时间,花在同事的交流上。不仅是部门内的同事,也还包括跨部门沟通,敲代码的需要经常与产品经理、运营的同事沟通需求。
日本不少跨国公司,甚至有让程序员去体验几个月销售员的传统。公司要求,程序员在敲代码的同时,也要能够理解一线用户的需求。
交流对于初级程序员了解技术的发展,也相当有好处:读读博客、学学新语言和框架、讨论讨论话题、看看同行在做什么。自扫门前雪,很难成为一个优秀的程序员。闭门造车型的程序员终将被时代的潮流所淘汰。
(二)对编程有激情
有些程序员干这一行只是为了挣钱,如果有更好的职业,他们会毫不犹豫的辞掉程序员的工作。
能够顺利晋升为中级程序员的人,往往热爱编程,喜欢钻研代码中的问题,他们感到能指挥电脑来帮助人们和自己解决现实生活中的问题是一种神奇的能力。当遇到问题无法解决时,他们会茶不思、饭不想,无法入睡。
每个人都有心理上的舒适区,但是中级程序员,会不断地突破自己心理上的舒适区。
他们很乐于经常去研究没有接触过的代码,也正因为这样,成长速度快的中级程序员会越来越熟悉不同的代码结构和设计模式。
(三)精通代码调试
几乎所有的程序员写代码都不是一遍就能写好的。精通代码调试 ( debug )很多人在写代码的过程中,经常会有的一个问题就是:为什么我写出来的代码不能运行?为什么运行的结果不是我想要的?
中级程序员非常快的就明白自己代码的问题可能是什么。代码调试是一个很重要的能力,但是偏偏学校里不教,面试的时候考官也不经常提及。那么怎么去调试代码呢?
代码调试是有一套方法论的。最简单的就是在代码里输出日志来判断,复杂一点则需要去接触一些高级的工具,或者直接带有 Debug 功能的编辑器。
(四)主人翁精神
部分初级程序员刚入行,可能还没有进入状态,往往认为自己是打工者,以打工者的身份和心态工作。
中级程序员却会把自己当成企业的主人,他们知道企业的利益和自己休戚相关。
成熟的程序员明白一点,作为一名优秀的企业员工,自己是生产者而非消费者。他们心中一直想得是自己能够为公司,为顾客创造什么价值,而不仅仅只想着待遇。
(五)工具型思维
中级程序员知道如何能更高效的完成任务,如何更能有效的解决问题。其原因是工具型思维,如同荀子所言,“君子生非异也,善假于物也。”
Facebook 前技术总监 Bobby Johnson 说,高效率的程序员都把时间花在制作工具上。很多人也认为工具是很重要的,但是他们并没有花时间去制作、整合自己的工具。但是,Jonson 团队最出色的员工耗费了他们 1/3 的时间在工具制作上,这些工具可以用来发布代码,监控系统,以及能让他们花更少的时间去做更多事情。
中级程序员遇到问题时,不钻牛角尖,善于利用外部工具解决自己的问题,特别是能熟练应用搜索引擎。
(六)刻意练习迭代速度
魔鬼在细节上,如果一个程序员想要提高自己的工作效率,就需要他能够不断地在细节方面,进行微创新,提高效率。
举一个例子,假设一个初级程序员,每次要花 12 秒钟去搜索某个函数是在哪里定义的。如果,他每天做这个动作 60 次,就要花 12 分钟去搜索函数定义。
中级程序员会选择用一个好一点的编辑器,每次找到函数定义只要 2 秒钟,那么他每天将节约 10 分钟,每年节约 40 个小时。如果能够找到 3 个这样的场景去优化一下,那么对于中级程序员来说,每年可以节约一个月的时间。
(七)系统学习
学习是要有方法的,尤其是在职场中,程序员的自我学习要符合两点要求:一是有结果;二是高效。因此,系统性学习,非常重要。
高级程序员系统学习指南如下:
第一步,源码分析。看看大牛是如何写代码的,提升技术审美,提升核心竞争力。
第二步,工程化。工欲善其事必先利其器,不管是小白,还是资深开发,都需要先选择好的工具,提升开发效率和团队协作效率,让自己有更多的时间来思考。
第三步,分布式。从深度到广度的完善自己的知识体系,准备迎接高并发大数据的挑战
第四步,微服务。绕微服务的通用模式,学习spring Cloud的常见用法及原理,让微服务的开发更加方便 快捷,让微服务应用更加稳定 可用。
第五步,性能优化。从JVM底层原理到内存优化 再到各个中间件的性能调优,做最科学和最严谨的性能调优。
第六步,并发编程。深入了解底层原理,不只是做一个开发者。
第七步,积极参加大牛的分享。
(八)总结
可以理解,对于初入职场的程序员来说,他们在内心也知道学习的重要性,但因为没有时间,被老板的需求给填满,没有精力去提升自我。
然而,根据人类的学习曲线来说,任何一门新的技艺,都是一条对数曲线。其分为两个阶段:缓慢期和高速发展期,即初期很慢,后期进展迅速。
如果,能够让程序员在刚进入职场的时候,便摆脱初级程序员的桎梏,直接拥有中级程序员的实力,是不是就能跨越学习曲线的缓慢期呢。
知名IT教育机构传智播客已开通了中级程序员课程,发布了全新的项目,想学习的小伙伴抓紧