作为一名从业多年的IT人,我来回答一下这个问题。 程序员在初入职场的前三年是成长的高速期,好好利用这三年时间对程序员来说非常关键,因为这三年往往能决定程序员未来的职场发展。 程序员要想在短时间内快速的成长起来,要做好以下几点: 第一,做好本职工作,培养良好的职业素养。 对于一名职场人来说,良好的职业素养是未来职场发展的基石,良好的职业素养体现在敬业、钻研、承担、团队精神等多个方面。 第二,提高业务能力。 在初入职场阶段要努力提升自己的业务能力(编码能力),要利用一切可以利用的时间多学习业务知识。提高业务能力的重要途径就是多看资料、多动手做、多思考、多问,多总结。 第三,多与技术专家交流。 交流本身就是一个成长的过程,与技术专家交流更是如此,有时候往往一个思路就能让自己受益匪浅,这一点我深有体会。我在做Java开发的初期曾经遇到过一个非常棘手的问题,当时我就跟一个C语言专家交流,他虽然没有使用过Java,但是他给了我一个思路,结果就顺利的解决了。所以说,思路往往比编程语言本身更重要。 第四,敢于承担新任务。 很多年轻程序员就是敢于承担新任务才快速成长起来的,任何新任务对年轻的程序员来说都是发展的机会。我们团队曾经有一次下来一个新任务,之前没有人做过类似的开发,开会时有一个初级程序员主动请缨,结果他通过这个项目快速的成长了起来,成为了研发团队的主力研发人员。 第五,制定一个清晰的发展计划和阶段性目标。 随着信息化社会的不断发展,程序员在未来的发展空间非常大,尤其是研发级程序员。作为程序员来说要紧跟技术发展的脚步,不断更新自己的知识结构,只有这样才能在职场获得持续的提高。 我带软件团队多年,我会陆续在头条上写一些关于软件开发方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。 如果有相关的问题,也可以咨询我。 谢谢! "做好计划,确定目标" 我们在做事情之前,先把事情按照轻重缓急程度来划分,分成重要紧急,重要不紧急,不重要紧急,不重要不紧急4个类型,并将事情根据不同类型分配不同的时间,然后按部就班的向既定目标前进即可,不会在思考需要做什么方面浪费时间和精力。"多思考,勤总结" 编程,就跟写作、绘画、作曲一样,是一种创造性的工作,而不是一个种无脑重复的工作,只有在构思好整体之后才能一步步去完成各部分工作,最终完成目标。而且在这个过程中也会出现各种问题,同样需要思考如何解决问题。在程序员的工作生涯中总会遇到同样的问题,如果之前对这些问题做过总结的话,那在解决这些问题的时候将会节省很多时间。编程只是自身能力的一部分,对自身也要"多思考,勤总结",多方面的能力提升,才能使得我们在工作中走得更远。"养成好的编程习惯" 好的习惯可以自己培养,写程序不能失于严谨,而严谨也是一种好习惯。因为在编程的过程中,稍不留神写错一个标点符号、或者大小写不对小,就可能出现BUG让成果付诸东流,可能要重新再来,所以写代码和学习要有严谨的态度。"多沟通,多交流" 多和其他同事沟通不仅可以学习到很多编程方面的知识还能提高沟通能力。程序员的工作不只是低头编程,良好的沟通能力可以有效的了解领导、同事以及客户的意思,对于准确完成工作很有帮助。数通畅联专注于企业IT架构、SOA综合集成、数据治理分析领域,感谢您的阅读与关注。 做好自己的工作,踏踏实实干活 刚毕业的程序员第一份工作时,接触公司的代码时,一定会大开眼界。面对公司的巨型代码,第一反应肯定是头大。即便自己在学校有写过一些编程算法练习代码,有做过一些大作业或是帮老师帮网上的客户做过一些私活,遇到公司的代码库肯定觉得非常头疼。有些人遇到这种情况会不知所措,有些人特别焦虑,总想着快点熟悉代码,快点上手干活。 做到以下几点可以更快更好地入手工作。 1、主动沟通 多主动跟技术主管或者带自己的师傅沟通交流一下。工作任务从简单到难来安排最好,这样可以让自己更好的适应和入门。 2、阅读代码 在公司里干活,对公司项目库代码的熟悉程度是决定你能不能做、能做多好。进入公司项目组后,拿到项目库的代码后,一定要多阅读代码。有些同学会说代码这么多代码怎么看,可以先从一个模块、一个文件、甚至一个函数开始。多尝试加日志或者打断点,根据线索和提示,逐步熟悉代码。对代码熟悉后,你心理干活一定有底气。 如果公司代码里有很多测试代码和测试案例,可以从这里入手。不过以我的从业经历来看,这种在开源项目里常见,但在企业的项目里却很少见。 3、写代码 写代码前一定要先想清楚,把功能需求、设计分析、特殊情况都考虑进来,如果功能比较复杂,可以先把自己的思考过程文档化,可以记在笔记本上,也可以整理成思维导图。写完代码一定要多测试几遍,你交付的产品就决定别人以后对你这个人工作的印象和认可程度。如果时间充裕,把自己的代码多重构几次,保证阅读起来的感受简单易懂。 进入社会了,学会生活 1、学点基本理财知识,但不要炒股,多存点钱,以后大有作用。适当根据自身条件做下基金定投就可以。 2、培养个不太花钱的爱好,有个兴趣爱好,人生很长但很多时候挺无聊,有个爱好的话,生活丰富一些 3、没有对象,认真想办法找个对象,一个合适的伴侣,很大程度决定自己以后的人生质量。这件事一定要多花点心思。 1、有合理的目标 2、有可行的计划 3、有足够的执行力 逻辑思维数学要好,其次是规范开发,不能图省事就注释也不写想怎么省事怎么来。养成不好的习惯很难有所成长和作为。 程序员容易焦虑,普遍的原因是:技术、社会在发展,害怕自己的"成长"速度赶不上。那么如何有效成长呢,尤其是对于普通程序员来说? 目前我们看到的文章多是从"技术"的角度分析程序员成长路径,最近阿里巴巴技术专家李建(甫田)在"技术琐话(ID:TheoryPractice)"发文,尝试用逻辑分析"普通程序员如何成长",以下是他的方法:分析问题 JTBD(Job to be done)是一个非常好的用于分析问题的方法。需要明确用户在特定场景下必须解决的问题或完成的任务,也就是目标用户(Who)、在什么场景(Job context)以及完成什么任务(Jobs)。回到"普通程序员如何成长"的问题:任务很清楚,就是"成长";而目标用户呢,普通程序员是谁?还有用户场景也不清晰。 普通程序员是谁? 这里采用的方法是"典型用户",用一个人来描述一群人,就像用中间值(median)描述一组数一样。不同点是典型用户在现实世界上不存在,只是为了理解和交流的方便故意把描述写得很真实。 普通程序员的典型用户是: 小明,大学毕业,在 IT 企业上班。小明每天工作很忙碌,朝九晚十,像很多在一线城市奋斗的年轻人一样,小明面临着房贷、养家糊口等压力。IT 技术发展很快,已有经验过时也很快,小明很困扰,每天瞎忙碌,成长却不多。如何才能摆脱眼前的苟且,获得理想的成长?从用户场景找"矛盾" 假设小明 9:30 到公司,打开电脑,处理邮件;10:00 开会汇报进度或是其他会议;11:00 线上出现紧急事故,需要修复 Bug;15:00 继续开会,到了 19:00 开始写代码,做需求;忙到第二天 0 点才睡觉。从场景中发现用户诉求和现状间的矛盾:成长的诉求与"瞎"忙的现状之间的矛盾。具体来说就是:朝九晚十,日常工作已经占满了小明的时间,如何才能"挤"出时间,做能让自己"成长"的事情? 有逻辑地解决问题 逻辑框架能帮助我们系统地思考问题,寻找解决方案。这里使用的逻辑框架是:从"问题"出发,提出假设,明确度量目标,过程中不断总结、迭代,解决问题。 回到"程序员如何成长"的问题:问题:繁琐的日常工作占用大量时间,却没有获得想要的成长;假设:如果成长了,可以承担更有挑战的工作,摆脱低水平的重复,也能获得组织认可;度量:度量和目标相关,成长的目标可拆解成各个阶段性目标,例如:掌握 DDD、提升提问水平、某个时间内达到目标职业层级等;认知:在过程中不断总结原因 / 经验,进行相应调整。用影响地图寻找解法 影响地图是一种结构化拆解目标达成路径的有效方法:需要明确目标是什么(Why)、为了达成目标需要哪些人(Who)、为此需要做什么(What)去(How)影响这些人。使用影响地图拆解"普通程序员如何成长"的达成路径: 用户故事地图组织优先级 用户故事地图就是通过组织写有"用户故事"的卡片,帮助分析需求核心价值和成本,从整体视角规划需求优先级。用一句话描述用户故事就是:某角色,通过完成用户需求,实现了什么价值。基于影响地图梳理出来的用户需求,根据价值进行分类:效率是第一优先级,提高效率才能挤出时间。做正确的事情是第二优先级,方向对了才可能成功。这需要提高判断能力,有正确的思考方法等。正确做事情是第三优先级,学习并掌握正确的流程和方法,结果才能保证。持续学习 了解了"普通程序员"如何成长的达成路径和优先级,可是要怎样实现具体的事项? 例如:有哪些提升效率的方法?怎样才能快速提高判断正确与否的能力?回答这些问题,需要不断学习,提升认知水平,因为学习是最高效的成长方法。 推荐使用学习三步法:学:明确学习目标,收集资料,坚持"系统"学习;练:熟能生巧,掌握一门技艺需要反复练习;教:通过把自己所学内容教给他人,既是检查学习熟练度的标准,也能获得反馈发现不足进行弥补。 此外,唯有持续学习,多学多知,不断提升认知水平,才能获得成长,摆脱焦虑。以上就是今天的内容,希望对你有所帮助。 快速成长的核心就是实践出真知,参与真实大型项目开发。程序的技术体现误区: 1,不是代码应该怎么写?(ctrl+c+v) 2,不是因为功能开发而去写代码。 我相信现在做了几年的开发,你让他写个代码或者功能,他会写,各种各样的野路子,能实现功能,但是不会考虑后期,后期维护,毫无移植性可言。 我们思考的问题: 成长提升的核心点: 1,通过设计模式结合面向对象的思想去考虑程序后期的移植性和拓展性。 2,代码规范,以及技术架构选型的特点对实际运用会产生什么影响,才是我们程序员要考虑的问题。 程序员的逻辑思维是考验技术实践的真知,结合负责的业务场景去拓展,技术的深度在于你对程序的设计,结合实战经验,沟通交流可以帮助我们更上一层楼。 一个公司的产品都有自己软件的特色,艺术性架构,在日渐饱和的软件行业,各种行业技术支持,支持,已经饱和了,那么企业能生存下去的唯一条件就是有自己独立的产品 3,各个角色都可以去尝试技术解决方案。 从客户经理->需求分析经理->项目经理->研发->测试 这里面的核心角色是需求分析,你懂了需求,在结合技术支撑去结合实际业务场景去研发,事半功倍,这个重点在于你的工作年限和实际遇到问题动手能力。 4,分析问题产生的根本原因。 我们可以通过分析日志,定位日志的错误信息去解决实际问题,这种情况很多,本地没有问题发到线上各种错误, 出现这样的问题无非3种答案: a,测试没有测试到位。 b,开发漏洞,代码考虑的场景不够全面。 c,系统兼容性包括服务器安全策略等。 我们迫不得已可以通过远程调试到本地的方式,这是最快,也是迫不得已的唯一办法,除非是重大的问题,当然本地还不一定能呈现出来,所以最好避免这样的方式去处理问题。 感谢邀请,但是我不是程序员,也不是很了解这一行,不过我身边的朋友有好几个程序员,前端,后端都有,他们也是从小白过来的,就目前跟我住一起的小姑娘,她刚开始也是没有任何经验,找工作都找了半年。我看她买了好多专业性的书,也经常看视频,我也没去问她的视频是买的还是免费的,很刻苦的一个小姑娘。我问过她,如果碰到不会的怎么办,而且项目又特别急,她说问百度,问同学,问长辈,然后自己慢慢想,加班加点做出来,她几乎每天都在加班,通宵也是经常的事情。她目前刚好做了一年了,据说做的还不错,领导也很器重她。具体怎么成长,最好还是问同行的前辈们吧。 程序员快速成长的基础就是要先打好基础,其次就是要找好路径,但是,程序员快速成长的主要方式方法还是要依靠积累。 打好基础至少做好以下方面,主要是:硬件结构,操作系统,编程语言,数据结构,算法。如果没有这些基础,程序编程就根本不可能。我们要做的是产品,能实际使用的,不是搞玩具,更不应该只是搞几个例子程序来安慰自己。强调下,不管什么发展方向,没有基础是不行的。勿在浮沙筑高台! 找好路径就是要有一个偏重的研究方向,比如偏系统,偏应用,偏嵌入,偏测试。毕竟,一个人的时间和精力是有限的,专一个方向可以达成更高境界。 快速成长在前期是一个比较快的过程,关键在于扎实。到后期就会相对慢,因为基础面更广,专业方向更深入。这个时候最需要的是耐心和韧性,通过不断磨练,进而形成不间断的积累,成就高深的境界。 记往,程序员这一行是匠人,需要的是工匠精神!