0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员最应该学习什么

工程师人生 来源:工程师吴畏 2019-07-26 17:33 次阅读

大多数人以为他们需要学习特定技术、算法、数学或其他形式的具体知识。 但是在Joost看来,这些从来都不是最主要的。 最主要的是他们需要学习“ 自律 ”。

过去七年半以来我在Ronimo辅导了很多编程实习生,数百名学生和毕业生,在他们身上我看到一样同样的东西需要学习,也许有人认为,他们应该是需要学习特定技术、算法、数学或其他形式的具体知识。 但是在Joost看来,这些从来都不是最主要的。 最主要的是他们需要学习“ 自律 ”。有纪律地编写清晰代码,有纪律地在代码变得混沌时重构它们;有纪律地删除未使用的代码和添加备注。

我在这个主题上花了大部分时间辅导实习生,不是解释先进的技术或我们的引擎的细节,而是让他们编写更好的代码,我总是询问有工作经验的开发者,他们认为成为优秀程序员最重要的是需要什么?他们通常回答代码应该清晰,易于理解和维护。这确实也是我想听的,但是年轻的程序员罕有能始终遵循的。

记住自律,不要停息,如果所有变量的名称都错了,但是功能完美,那么代码将超级混乱,从功能代码中逐步理清虽然在短期内可能得不到回报,但这就是迈向自律的第一步,这也是作为实习生的好的导师通常非常注意代码质量,从而能迫使实习生迈出正确的第一步。

下面是我经常看到的一些例子:

假的函数/变量/类

这些函数 类和变量实际做的事情并不是它们名称的意思所代表的,而是实现其他功能,它们的名字是假的,名不符实,很明显,名字应该是正确的,但是让我们惊讶的是很少见完全封闭的名称。

。..。..

(banq注:缓存失效和命名是计算机科学最难的两件事)

纠结在一起的类

我看到另外一个问题是泥团一样黏糊在一起的类,做了很多无关的事情,无关的新特性新功能一点点加入,让简单的类变得臃肿,塞入各种与该类名无关的行为,有时一个类的大小超过几百行代码。

。..

避免这个问题的办法应该总是想:我在这里添加的功能符合类名本身吗?如果不是,那么重新命名类的名称,或者分成两个独立的类。

如果你不能想出一个代码类的合适名称,就会发出坏味道,那类的内部就会变得混杂。有时可能一个需要分成两个部分,才能找到合适的名称分别代表它们。

超大号的类

随着时间推移,越来越多代码添加到一个类,变得非常臃肿,虽然这个类还能工作,但是代码太长,非常繁琐,容易发生很多bug,方向和细节混同在一起。

切分一个非常大的类的工作是枯燥的,也是一个挑战,类中代码高度交织在一起,运行中不断修复添加新功能,最后结果是必须有自律才能阻止它变得更大。

一般经验是我们尽量保持类代码低于500行,函数低于50行,有时虽然不可行,但是我们总能寻找到办法来重构它,切分成更小 更易于管理的代码块。

代码的注释

如果没有注释,代表没有任何信息,这是临时破碎的代码吗?被取代的旧代码在哪里呢?

。.

并行逻辑和重复代码

举一个例子,有某个结构特征的名称暗示我们一些它是什么的信息,比如“TreeBackground.dds”。 为了了解这个特征能被用于一个tree类,我们需要检查文件名中是否以单词“Tree”开始。 通过使用 filename.beginsWith(”Tree”)检查得很快。 这段代码如此短,但是我们在不同地方需要它,这样我们就拷贝粘贴它,这就造成了重复代码,当然每个人知道重复代码不好,但是这段代码真的很短,拷贝粘贴非常容易,我们这里面临的问题很明显:也许以后我们会检查这个结构特征是否适合树tree的改变,那是我们就需要在每个地方单独一个个去解决(因为这段短代码被复制到这些地方)

一般经验是,这段代码不应该被复制,应该放在一个函数中,即使它超级短,主要因为做一个函数再调用需要许多代码,而直接复制粘贴更直接简单?

本文讨论的事情似乎很简单,它们应该是大学第一年教,但是面临的挑战是如何让他们花时间去遵循,总是记住它们,这就是这为什么是最重要的事情,他们最应该学习的不是知识,而自律。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    949

    浏览量

    29761
收藏 人收藏

    评论

    相关推荐

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 111次阅读

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置有岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 156次阅读

    京东上万程序员都AI用它!

    对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自动驾驶”模式,不但减少人工接入、提高工作效率,更为企业抵御内外部各种攻击构建起一道坚固的安全屏障,确保业务的连续性和稳定性。 JoyCoder是京东云自主研发的一款辅助开发人员
    的头像 发表于 07-17 16:29 226次阅读
    京东上万<b class='flag-5'>程序员</b>都AI用它!

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    助力程序员告别困扰已久的梦魇-Bug

    程序员的噩梦是什么?不用怀疑,就是让你加班到崩溃的Bug!下面是经过业界大佬们“长期加班”积累的小妙招,助力你离早下班又进一步~一、定位Bug范围及性质要有效解决问题,首先要缩小范围,集中关注最近
    的头像 发表于 07-02 08:10 271次阅读
    助力<b class='flag-5'>程序员</b>告别困扰已久的梦魇-Bug

    大模型时代,程序员当下如何应对 AI 的挑战

    随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。 通用领域大模型的“泛化能力” 在过去的二十年内,AI 领域的大部分研究
    的头像 发表于 06-28 16:19 502次阅读
    大模型时代,<b class='flag-5'>程序员</b>当下如何应对 AI 的挑战

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 388次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    进入裁员阶段。所以我们程序员要做的只能是与时俱进。 适者生存,程序员亦是如此 顺应时代发展,是我们必须跟紧的。就好比技术更迭我们就要学习更新。而现在我们程序员最好的赛道出路在哪? 目前
    发表于 03-06 21:32

    感觉我国的程序员前景一片灰暗,是这样吗?

    程序员也分为好几等,在现在看来大部分的Android、Java、前端等等开发。已经看不到希望了,很多人都在边缘挣扎;刚看到一位Android开发者,过完年回公司就通知被裁;可见每年都会有很多互联网
    发表于 02-20 20:52

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 783次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13

    诚邀报名 | GPT驱动的新程序员时代,开发者如何编程?

    2023开放原子开发者大会 . OPENATOM DEVELOPERS CONFERENCE GPT驱动的新程序员时代 我们该如何编程 2023.12.17 生成式AI正以旋风般的速度重塑我们的工作
    的头像 发表于 12-11 22:20 514次阅读