㈠ 从事程序开发工作,已过33岁,还能撑多久
我觉得33的年龄不算大。我猜大概工作了七八年。也积累了很多的工作经验。每天加班到两点不是一种可持续的工作生活节奏。需要先分析一下原因。
1. 锻炼身体,劳逸结合,保持头脑清醒,提高工作效率。
2. 理清楚思路,避免重复劳动和返工。很多加班都是因为时间紧,来不及想清楚就开干。干了半天发现不对,又重来。所以不管怎么样要先想清楚。
3. 及时解决技术债务。在很忙的情况下来不及重构代码。到处复制黏贴,会让你的项目越来越难维护。需要建个jira计划时间来清理代码,可以读读clean code这本书。清理代码也是在清理思路。
4. 需要和产品经理充分沟通需求,确保需求的一致性,确定需求的重要性和紧急程度,估计需要的开发测试时间。利用jira管理好自己的task。可以尝试kanban来管理项目和资源。整个小组相互帮助,平衡工作,集中力量完成最重要和最紧急的任务。
5. 学习和沉淀技术,熟练的使用工作中需要的工具。比如intellij比eclipse高效很多,要学会熟练的使用快捷键,提高效率。
6. 深入理解原理,可以提高学习新技术的效率。我分享了一些分布式系统原理的视频和文章,欢迎讨论。理解了原理也可以帮你转型成为架构师甚至cto。或者去做培训讲师。做自媒体分享技术和经验。至少可以锻炼你的设计思维,改善你的代码的设计。
慢就是快,少就是多。
33岁对于互联网行业中的年轻力量来说,确实算不上小,蒋凡在成为阿里的副总裁时,年纪也就是33岁。但是,我们并不能说33岁的程序员就不行了,对于程序员来说,更重要的还是能力,年龄虽然也是一个参考,但是并不绝对。
就我个人的经历而言,我肯定是大于33岁的,虽然现在不怎么写代码了,但有些时候还是会上场练那么一两下。不说我就比所有人强吧,但是也肯定强过不少人。
而且,程序员是一个不断学习积累的过程,很多的解决方案也是基于业务场景来设计的,所以,当你在技术和业务上的积累越来越多时,其实你能够解决的问题还是多过于年轻的程序员的。
33岁的程序员的价值,更多的是在于你自己比别人(特别是那些年轻一代的程序员)强出多少。你可以写代码写得少了,但是你懂的一定要比别人多,而且当遇到问题需要你亲自下场的时候,那一定是要破门得分的。
所以,如果你在20多岁的时候,觉得自己年轻,觉得自己学习能力强、技术好,就在学习的道路上三天打鱼两天晒网,那么到了30多岁的时候,确实就会出现能力不济、精力也不济的情况,可能真的就只有早早的改行了。
但如果你年轻的时候不断学习,不断积累,其实到了30多岁时,正是你将自己的所学所想用到实处的时候。也不必去担心你的思维是不是慢了,说真的,只要你学习得够多,理解的够多,那么你的思维就不可能会慢。因此,“改行”至少也是10年后的事情,现在完全不用考虑。
至于身体,30多岁的人肯定是比不了20多岁的人。但是也不是说就熬不了了,就算我现在没有写代码了,但是身处这个行业,不可能说就不熬夜、不加班了。
而且,并不是只有程序员才会熬夜加班,测试、产品、项目实施、运营基本都是在项目紧急的时候连轴转。这里面有年轻人,但是也有比我年纪还大的人。曾经我在国外工作的时候,我的一位领导,每年从他手里批出去的项目资金上亿元。但是,每天2-3点都在给发邮件,上班也从来没有迟到过,那时候他已经50岁了。
看到50岁的人还这么努力,当时还不到30岁的我,真的是有什么理由说我身体受不了?
当然,我并不是说加班就是正常的,就需要没日没夜的工作。我只是想说,我们别把身体受不了这种理由当成了自己懒惰的借口,只要我们是正常人,那么就应该不需要说我30岁了,做程序员我身体受不了的话。
因此,如果你觉得程序员是你的爱好,是你喜欢的职业,你想要未来做得更好,那么30岁只是开始。如果你觉得受不了了、累了、坚持不下去了、不再爱了,那确实,可以考虑改行了。
谈谈我的看法。
本人已步入不惑之年,30岁之前编码,后十年从事业务咨询和系统交付。题主这个问题,我结合我周围的情况谈 一下。
首先,关于技术能否可以干一辈子,这个答案我认为是肯定无疑的。虽然年龄大了精力上不去年轻人充沛,但是在这个年纪也不用每天加班编码了,主要工作是负责架构选型、疑难问题排查、效率优化、新技术跟踪和预研等工作。我很多还在编码的哥们儿,都是这种技术专家或者开发组长的角色,从事的就是类似评审,选型,攻坚等工作。
其次,对于题主提的思维逻辑迟钝的事,我认为还是经验导致,这个阶段,题主除了一线日常工作,得安排一定时间学习编码的一些方法和技巧,所谓磨刀不误砍柴工,就是这个意思。框架学习、数据库知识、构建工具、开发工具、中间件等,都要逐步学习,要是觉得记忆力不好,就做笔记!我本人不算聪明,学东西就喜欢做笔记。
再次,关于总是加班,前几年由于产出比较低,肯定是如此,后续要多看案例程序和泡泡技术论坛,也可以公司内拜师或者跟小伙伴结对开发,这样才能提升效率和质量。
最后,要说一句,任何的坚持一定源于热爱,如果题主热爱开发,那就努力做下去。如果兴趣一般,尽早转行也不失为一个好的选择。现在的技术,种类众多,一个项目或者产品涉及的各种技术很多,所以肯定要不断学习和深入,还得紧跟潮流才行。
以上就是我个人的一点看法,如有不对请大家指正。
还是早做打算吧,程序员在中国的情况,你是知道的。
先不谈职业生涯,你数数头上的头发还剩多少,你就知道还能撑多久[泪奔]
虽然我是学机械的,但是毕业后在16年也接触过JAVA开发,那时候我以为我可以坚持做下去,最终放弃了。程序员吃的是青春饭,生活就是这样很现实,虽然程序开发工资高,工作环境美好,但是时间久了,就会发现,年龄大了,如果不考虑转方向,我觉得以后的路可能会难走。不管怎么样,趁现在多挣点钱,这样的话,为以后做准备。加油
要撑就看自己的精神强度,要投入就看自己的未来选择。
如果你真正热爱程序开发,不管年龄多大,总是充满激情,如果你只是简单的把他作为谋生工具,那不管什么时候都是煎熬,而且随着年龄增长,这种煎熬会越来越明显,越来越刻骨。本来挺好的一个技术人才, 社会 需求量也蛮大,而现在却被戏称为码农,只是我们自己把他给做瞎了,一抓一大把的程序开发,可是精通的,专业的没几个,大部分都是蜻蜓点水,而大部分企业也不够重视对程序的培养,只是简单的把他作为流水线工人,要年轻能加班,工资少的,使得大部分人的路越走越窄
你怎么老的那么快,这就快报废了,我比你大点觉得自己技术越来越牛逼了,我平时除了工作学习也很注意锻炼身体,我感觉我能一直干下去,我编程也有十多年了,正是牛逼的时候。
不好撑了,年纪大了,除非去做主管
㈡ Java开发人员应当具备的哪些基本素质
1、积极,主动性:要主动的去学习,主动的去发现问题,跟进问题,其实很多技术类的问题都不是问题了。这个放在第一位的素质。
2、有风险提前抛出来:做项目肯定有风险,没有风险项目也就没有挑战了。需要每个开发同学能够主动的发现风险,并提出规避方案,如果没有规避方案,那提出来也行。
3、区分主次,合理规划:对于系统中的功能进行核心/非核心、主流程/非主流程、高优先级/低优先级的划分。优先完成出核心、主流程、高优先级的部分。避免铺地毯式的一步一步的逐步推进。
4、新的想法打算用在项目中的,自己提前搞demo验证过:有些同学,包括我自己,都会尝试一些新东西,例如新框架,新的工具等。但是有个前提,不要在项目开始或者进行中的时候才考虑用新东西试一下,项目一般都是有时间限制要求的。项目一般有预研阶段,这个时候,如果有新的想法,可以尝试做一些例子。为啥要这样呢?因为新东西有学习成本,这个倒是其次,有些新东西有坑在里面,因为这个世界没有银弹的方案。
5、主动承担没人负责的模块:有些模块的划分,可能没法划分到具体的人,因为可能是两个模块衔接的,这时候,如果时间允许,建议开发同学主动的承担一些没人负责的模块。例如两个模块的衔接、整体页面的安全方案考虑、单元测试的集成、持续集成等。
6、自己负责的部分完成之后帮助其他同事:项目内部人员的技术素质可能是参差不齐的,有些东西可能熟悉的人几个小时就能搞定,有的可能需要一天时间,这个时候,如果你熟悉一个模块,而另外一个同事不熟悉,你就可以帮助一下了。
7、代码注释充分:由于我们参与的大多是业务项目,有个特点就是复杂。这时候,就需要有充分的注释,当然是非常必要的环节才加。至于一看就能懂的,那就没有必要添加了。
8、代码自测充分,高质量的完成自己负责的模块:这个必须提一下,开发同学代码编写好了之后,需要提交给测试同学进行测试,有时候测试还分几轮。这时候,bug的情况体现了代码的质量,而质量的保证,除了经验和代码review之外,还需要自己完成一些自测的事情。尤其是主流程必须有,还有就是自己觉得一些边界的条件下。自测充分之后,后续bug就少,返工就少,讨论问题就少,省了很多时间的。
9、畅通的沟通氛围:项目中有各个角色,沟通必不可少,讨论过程中,注重沟通的方式,要做到对事不对人。
10、重构:写代码就像写文章,不是一蹴而就的。需要反复的修改和重构。当你发现代码重复、类结构不合理的时候,或者自我对代码感觉不太好的时候,就去重构。
11、编码前充分设计:编码前宁可多花时间进行方案的详细设计,千万不要一接到需求就进行编码。提前进行详细设计,会缩短编码的时间,也会降低bug的发生。
12、学会换位思考:一个项目是需要多方协作的,不同的人必然会有不同的想法,因为大家的知识积累以及经验积累肯定不一样,在大家想法不一致的时候,可以更多的是做个换位思考,先理解对方的观点,了解这个观点背后的原因,然后再来反观自己的想法,同时在互相理解的基础上,做事情的默契和结果也会有很大的提升;
•在协助中多一些换位思考,多站在对方的角度思考和理解问题,最后大家在协作中能够实现共赢;
•开发功能之前站在用户的角度去思考,假如你作为业务用户,你对这个功能会有什么样的需求。
13、责任心:这个放在最后,其实并不是说排名在最后,这个我认为也是很重要的,试想一个没有责任性的人写出来的代码,别人能信得过吗。写代码前要进行深度的思考。写完后要对自己的代码进行充分的测试。上线前需要反复确认自己的代码有没有问题
㈢ 程序员未来会成为非常内卷式的职业吗
内卷化在我之前已经有18人将其概念阐述了,在此我就不再重复了。
非常即不平常。我个人认为,程序员已经是或将来也是一种职业,正象各种工程师一样,是其中的一个普通的职业而已,所以不存在非常之说。
任何职业到了一定时间都会推陈出新,或者说被前进中的、发展中的经济 社会 淘汰,也是 社会 发展的正常现象。比如,伐木工、个体裁缝师、掏粪工……等等许多职业被 社会 发展淘汰了。
程序员这个职业, 社会 发展到一定阶段,也会停滞不前或无法转化,这也是时代发展的必然结果!谢谢!
1 我对内卷化的理解
网络这样描述内卷化:指一种 社会 或文化模式在某一发展阶段达到一种确定的形式后,便停滞不前或无法转化为另一种高级模式的现象。最早出自美国人类学家吉尔茨(Clifford Geertz)的《农业内卷化——印度尼西亚的生态变化过程》(Agricultural Involution: The Processes of Ecological Change in Indonesia)。
参照网络的定义和网络其它资料对内卷化的解释,我认为程序员的内卷化是指:不断的重复现有的编程工作,无法取得创新性的成绩或推动这一领域的变革,在编程这件事儿上很难再更上一层楼。
2 我对本问题的回答如果将这个问题加一个限定,限定为 中国的程序员 ,答案将会是肯定的。未来30年,程序员不会内卷化。
理由一: 当前美国对我们实施技术封锁,涉及到工业基础的软件基本沦陷,猛一看去,遍地是国外产品。因此,涉及到这些国家工业命脉的基础类软件在未来的几十年内我们都要自立更生,自主开发,等待程序员的挑战还很多,离内卷化还很远很远。
理由二: 结合我自身12年 直升机HUMS系统 的科研经历,我发现我们国内科研人员的编程能力普遍较弱,我自己也包括在内。而有的国外工程师则既是专业领域的大牛,又能将自己的专业知识用程序实现,最终还能成为产品,这种能力不得不服。而我们国内的很多程序员则只会开发程序,对专业又不懂。这就造成了国外同行一个人可以做的事情,我们需要一个小组。这就形成了效率方面明显的反差。
理由三: 未来,纯粹的程序员会越来越少,既精通专业又精通某一程序语言的人会越来越多,也会越来越受欢迎。这样的模式也是国家在未来30年内急迫的需求,只有这样我们在工业基础领域才会以较快的速度诞生越来越多的自主软件,完成Matlab、Solidworks、AutoCAD等软件的替代。另一方面,科学技术的发展是没有止境的,起码对于我们祖国当前的处境来说是这样的,我们离内卷化还很远很远, 科技 是不断进步的, 科技 不会内卷化,那么作为一个科研程序员就也不会内卷化。
第一:目前互联网行业,高级工作不够多,程序员的成长在资本家眼里就不是一项优势,而是成本负担。就会直接导致内卷。
第二:有容易写的程序,也有难写的程序。程序员慢慢积累到能力的巅峰之后退休了,下面的人就得补上来,每个人都有自己的位置。
首先我们要确认什么是程序员
会敲代码的只是coder,俗称码农,那种996,过得非人的生活,堪称“码畜”,毫无生活可言~
会敲代码,有编程思想,有业务理解的见解之人请叫他们“程序员”,programmer
分清楚什么是程序员以后,程序员是不会非常内卷式的职业
即使本人无强烈意愿,但是技术更新的迭代也迫使他们往前走,vb、Delphi、pb的程序员不会该转行的转行,转语言的转语言了。
为了更好的设计程序,必要讨论需求及业务是必要的,如果是完全内卷,工作都完成不了,企业还要ta吗?企业都不要ta了,ta还是程序员吗?
因此程序员为了自己为了利益,必须是不断学习及进步的一群人,中国的 科技 兴国也在这群人身上。
至于coder,不要拿出来侮辱程序员了
对于未来的不确定性,哪个职位不可以被这样质疑呢?
例如现在视频发展越来越火,那么文字工作者会内卷吗?
现在新生人口下降,那么未来教师行业会内卷吗?
......诸如此类。
在我看来,行业充满着不确定, 社会 也存在不确定性。
作为程序员或者想从事程序员的人士,现在考虑的不是将来会不会内卷,而是精进技术,多掌握几门语言。这才是最重要的。
我妈妈在我小时候是名裁缝,那时候学得裁缝这门手艺就可以养活自己乃至家人, 社会 发展至今,工业代替了大部分手工。裁缝这个职业被边缘化,那么,我妈妈饿死了吗?也没有,妈妈不是裁缝之后,选择了去卖衣服,因为做裁缝让她对布料、剪裁等烂熟于心,所以进的货好,生意也好,和我爸爸俩人把一大家子养活得白白胖胖。
所以程序员未来会成为非常内卷是的职业吗?你完全不必要去杞人忧天,做好当下的工作,不断进取,不断学习,这才是成长之道!
未来这个应该有一个限定,比如说10年,20年,30年。30年我不敢去猜测,但是,未来10年内,程序员不可能成为内卷式的职业,相反,随着国外对中国技术的封锁,国内更加需要软件方面的自主创新发展,软件开发环境的改变也会带动整个软件行业发展的大变革,每个程序员的作用也会变得越来越重要,所以,我认为,未来10年,程序员不会成为非常内卷式的职业。
很高兴回答你的问题,我大学学习7年,程序员工作4年了,说一说我对程序员行业的判断。
现在 科技 的发展可以说是一年一个样,作为程序员的我们也在不断的学习新的技术。而人的学习能力和主动性是不一样的,因为这个会将程序员进行划分:
第一类:初级程序员。这类程序员会是it行业建设的中坚力量。主要负责基础软件和系统的基础编码编写工作,随着一些中间件和智能系统的不断呈现,这类编码工作门槛逐渐降低,工资水平也会降低并趋于稳定。
第二类:中级程序员。主要负责一些新技术的预研和攻坚,并结合业务场景搭建一些中台系统,从而降低公司的开发成本。
第三类:高级程序员(技术专家)。这类人专注于某一个领域进行研究,比如计算机视觉、图片语音分析识别等。这类人会创造出很多专利性的技术,帮助公司拓展新领域的业务!
本人资深程序猿一枚,我觉得要判断一个职业是不是内卷式,要从几个方面来分析:
一、职业的依赖工具。还记得 历史 书上说过:能不能使用工具是人和动物的主要区别。比如中国历经5千年的农业一样,农民这一职业高度依赖农具,农业的发展史实际上是农具的发展史,从刀耕火种到使用铁器,再到目前部分发达地区的农业自动化,农具一直在变化,。只要农具向更先进化发展,我们就不能说农民这一职业具有内卷性,实际上几千年来农民一直是向前发展的,而人总要吃粮食,农具(或者农业技术)向前发展是毋庸置疑的。再说程序猿,我们使用的工具就是电脑,相对于农具,电脑这一工具的发展可谓光速,从台式机、到智能手机、各种智能设备都可以归为电脑这一类,可以肯定的是,电脑只会发展,不会消失,而且会进一步影响我们生活,比如物联网、比如AI,只要电脑这一工具发展,程序猿这一职业就不会消失,只会向更高端进化,以适应更高级工具的操作要求。
二、职业人群。众所周知,程序猿无论从学历、知识还是智力在 社会 人群中是属于中等以上的。 社会 的发展,是教育发展的推动,作为普遍的受过高等教育者,最有可能保持开放的思维去接受新的事物,只要能够学习,这一职业只会进化,而不会停滞不前。但是这一过程中,不适应这种发展的部分程序猿会被淘汰,这是毋庸置疑的。
三、 社会 发展趋势。 社会 的发展本质是 社会 生产力的提高。怎么提高 社会 生产力?依赖机器!依赖自动化!就像当下程序猿存在的意义一样,程序猿创造了各种自动化工具,提高了 社会 生产力。只有提高 社会 生产力这一大趋势不变,程序猿就不会停滞不前,只会不断进化。
一开始还不是996 coder,若干年之后才见分支,有的人悟性慢,有的人用心专而已,coder 是最基本的付出,连自己的起点都漠视了的匠人怎么做继承,内卷也不可怕,反射够多就需要内卷式的人才积淀出火花,就算是普通的coder,也是信息世界的基石,不尊重民意和基础的国度在大洋彼岸塌了,就这样开始在信息砖工上开始新的歧视?
学好python大数据分析和机器学习等,就拥有了改变世界的能力,故好的程序员永远有发展前途。
本人预计,随着信息化等技术的发展,市场经济将被计划经济代替,人类将会有更多创造性劳动的时间和休闲的时间。
㈣ 程序员周未有人找他开会是技术提升了吗
程序员周未有人找他开会不是技术提升了。程序员有时候是一言不合就会开会,各种的需求会、讨论会、周例会、分享会、总结会,项目相关的预研,立项,阶段总结,试验准备,试验总结,定型等,周末找程序员可能是需要确定内容,比如"今天的任务,目前计划的任务与实际进度是否一致、遇到了什么问题、需要什么支持"等。
㈤ 如何查看大型工程的源代码
首先我不是程序员哈,有个程序员的好朋友,专门咨询他来回答问题。首先程序员写代码的时候,经常会有要阅读源代码的时候类似于技术预研、选择技术框架、接手以前的项目、review他人的代码、维护老产品等等。可以说,阅读源代码是程序员的基本功,这项基本功是否扎实,会在很大程度上影响一个程序员在技术上的成长速度。
而且不同的目的会有不同的心情,会影响到工作的进展,像修复他人的Bug这种事情,类似于没被掰弯的男猿捏着鼻子给另外一个男人擦屁股,是很恶心的,很容易让人拒绝的。所以因这种目标而阅读源码,往往是欲拒还迎、欲说还休,效率较低。然而修复实际工作中帮别人修复Bug这种情形,十有八九你要遇到,无可逃避。所以,心理调试很重要。
知识准备
在阅读源码的过程中,做笔记是必须的。我有这样的体会,因为代码不是自己写的,很难很快在脑子里刻下印记,经常是看着这里忘了那里,早上觉得弄懂了数据流向,中午吃个饭就忘了。所以,笔记就显得尤为重要。
㈥ 如何查看大型工程的源代码
程序员在工作过程中,会遇到很多需要阅读源码的场景,比如技术预研、选择技术框架、接手以前的项目、review他人的代码、维护老产品等等。可以说,阅读源代码是程序员的基本功,这项基本功是否扎实,会在很大程度上影响一个程序员在技术上的成长速度。2014年写《Qt on Android核心编程》和《Qt Quick核心编程》时,很多内容都是通过分析Qt源码搞明白的。这阵子研究CEF和PPAPI,也主要靠研究源代码来搞明白用法。最近工作上要修改已有项目的一个子系统,也是得硬着头皮先读懂代码。总之在开发工作这十来年中,读过太多源码了,从源代码中学习到太多东西了,如果不阅读源代码,真不知道自己能否成长起来。写代码是从模仿开始的,提高也是从观摩别人的优秀设计和代码开始的。所以阅读源码至关重要,接下来咱从下列方面聊聊阅读源码的事儿。不同的目的会有不同的心情,会影响到工作的进展,像修复他人的Bug这种事情,类似于没被掰弯的男猿捏着鼻子给另外一个男人擦屁股,是很恶心的,很容易让人拒绝的。所以因这种目标而阅读源码,往往是欲拒还迎、欲说还休,效率较低。然而修复实际工作中帮别人修复Bug这种情形,十有八九你要遇到,无可逃避。所以,心理调试很重要。为了学习去读源码,这是最愉快的最放松的。不过提醒一点,设定可检验的目标才会有收获,否则就会像走到大街上看见一美女擦肩而过那样,惊艳一下下,过后嘛关系嘛收获也没了。其他的目的,重构旧代码、添加新功能,比帮别人擦沟子(陕西话,屁股)略强,因为他带有创造性,创造性的活动能给人带来强烈的愉悦,所以虽然这两种目的也有很多让人不爽的部分,不过想到我可以让一棵老树焕发青春,不爽也就慢慢弱下去了。