当前位置: 首页 > 科技观察

每个新手程序员都应该知道的七个咒语

时间:2023-03-16 21:57:29 科技观察

经验丰富的软件开发人员分享他们多年来在如何成功地在编程方面取得专业进步方面的经验。如果您是专业软件开发领域的新手,您可能认为自己在计算机科学和编程方面接受过多年的教育和/或培训,完全可以胜任。不过,在这个行业浸淫多年的资深开发者要提醒大家,光靠课堂灌输的知识是不够的。我们还需要从实践中学到更多最有教益和最宝贵的财富。为了获得这些见解,我与几位经验丰富的高级开发人员进行了交谈,他们在软件技术领域至少工作了十年或更长时间(其中一些人已经在该行业工作了几十年)。当被问及他们希望在刚从大学毕业并首次涉足编程时学到什么格言时,他们都有自己的答案。无论你是刚走出校门的大一新生,还是已经在编程领域有了一定经验的从业者,下面这些老手的建议相信能帮助你在未来的发展中找到正确的方向。了解底层系统的一切当然,从事软件开发工作最重要的部分之一就是编程语言本身。但正如前辈分享的经验所说,开发者也需要了解栈下发生的一切。“很多语言会以抽象的形式剥离出系统层面的运行机制,而这种抽象真的很重要,因为它可以让开发者在大部分时间保持更高的生产力。”Acquia公司技术支持工程师PeteBull指出。“但是当人们遇到障碍或非常严重的错误时,你需要对引擎盖下发生的事情有一个体面的理解。我们需要能够调试一个过程并查看系统调用以真正了解特定的部分与系统其余部分的代码交互,”他在电子邮件采访中写道。同样,Platform.sh的客户满意度副总裁RobertDouglass告诉我们,“当我第一次开始编程时,计算机本身有很多我不了解甚至听说过的奥秘。文件系统、网络、以及数据如何驻留在内存中,这是三个典型的例子。缺乏这部分知识意味着我无法真正从编程的角度理解开发项目中的一些目标。作为一个熟悉命令行工具的开发者,大家可能有很多时间都花在了使用IDE或者代码编辑器上,在此提醒大家,如果你知道如何在命令行上做同样的事情,你的日常生活一定会很更轻松。“有时人们会发现自己被一个设备所困,该设备已经设置了一切,但工具却非常有限,”一位在该行业工作了20年的资深程序员告诉我们。“像精通呼吸一样精通shell,包括find、comm、diff、vi/vm、sed、awk等。有时用正确的协作行编写小脚本非常重要,以查找必须的文件立即修改——因为生产系统可能受到了影响,导致URL指向未知文件的技术人员还在斐济休假。”作为一名开发者,Bull开始使用微软的工具,但逐渐转向了Linux阵营,他说,“我学到了很多与命令行相关的专业知识,并意识到Linux系统上提供的这些功能的重要性。现在我可以很容易地回忆起我几年前写的代码,或者抽出几天或几周来对grep+awk进行进一步的改进。”调试器是我们的好朋友为了显着节省宝贵的时间,使用相关工具非常重要追踪各种错误。诺华生物信息学开发人员DaveVaron强调了调试器的重要性,并解释了它如何帮助我们获得远远超过最初学习成本的收益。“学习使用调试器,快点!”他指出在采访中出来。”花一两天时间深入研究配置。之后,如果结果不符合预期,则立即调试:设置断点,运行代码,尤其是第三方代码。这不仅可以帮助我们大大减少出问题的机会,同时,还可以让大家学到很多只能通过阅读别人的代码才能学到的知识。”学习编写测试一些开发人员认为单元测试——具体来说,编写测试来验证小代码单元是否工作。对其预期的作用——非常关键。来自StrategicPowerSystems的数据库开发人员RichardHandloff就是其中之一。“我认为我能给新人的最好建议是学习如何在项目开发的早期就写好测试机制,制定一套可行的测试计划,”他在接受采访的邮件中写道。规划变革,理解新系统今天,每个从业者都深知技术日新月异。这种现象不仅影响了我们敬爱的客户的实际体验,也改变了底层系统、语言,甚至程序员在日常工作中使用的各种工具。MilestoneMade创始人兼移动开发人员AdamWulf建议新手程序员为技术变革做好准备并保持领先地位。“目前,我认为人们应该计划以四年为周期学习新技术,”他说。“当然,良好的基础永远有效,但我们每天使用的工具甚至技术解决方案每四年更换一次。”“不应再使用单一框架以单一语言编写项目,”一位不愿透露姓名的开发人员建议道。“大家千万不要在某个项目中只使用一种开发方式,所以请尽快适应不同项目之间语言/技术转换的实际需求,”他在采访邮件中写道。与他人保持良好的关系虽然常规观念下的程序员会戴着耳机,在自己的小世界里工作,但不可否认的是,我们仍然需要与他人并肩工作。SinclairDigitalVentures的首席技术官BenMiller强调了团队合作对取得职业成功的重要性。“大型项目往往由许多活跃的组件构建而成,如果不能顺利完成协作,组件的合并将成为不可能完成的任务。”他在采访邮件中指出。“在尝试优??化算法之前,请与您的团队交谈并确保任何任务分配计划都已到位以帮助减轻压力。编程是一项团队运动,所以不要忽视它。有点!”Varon还强调了人际交往能力的重要性,他说,“如果你自己无法完成API的审查或调试,请使用其他人。我们认为我们写了一段代码,称为杰作,并不是说它一定很好或者没有进一步改进的余地。就像在大学里,同一个房间里的其他同龄人都面临着同样的问题,每个人大概都找到了解决问题的最佳答案。与同事建立融洽的关系,有时甚至简单地相互描述问题就足以帮助我们找到解决方案。”另一位不愿透露姓名的接受者表达了类似的想法,即作为团队的一员为成功完成任务做出了贡献。“即使现在的工作比较繁重,我们也要尽量帮助其他成员解决各种问题,这样会让大家的事业走得更顺利,”他说。不过,在这种情况下,他也提醒大家,“但请大家注意,确保帮助的力度合理、有节制,否则我们很可能会被卷入其中,耽误职责。”勇敢地走自己的自由职业之路toCodeMiller在这里有一个有趣的提议,乍一看似乎难以理解。他在接受采访时告诉我,“当你在工作之外编写代码时,更容易提升职业生涯。找到一个问题最简单的解决方案,让代码灵活设置和免费维护,客户自然会把更多的工作交给我们去做。”.他们甚至会邀请我们指导他们的内部开发人员,”他解释道。“总之,过分担心当前工作的稳定性,反而会阻碍事业的健康发展。”原标题:每个新程序员都应该知道的7件事

猜你喜欢