已联系我进行一些工作以通过TCP / IP进行LED遥控显示器的工作,但是我的经验和准备工作主要是关于高级编程语言的。我对与我联系有关这项工作的人说,他告诉我:
“如果您自称程序员,那么您应该了解所有这些内容”
程序员真的应该知道底层编程的细节吗?还是考虑到底层编程不是我的专长,我是否可以将其视为黑盒概念,理论知识,但不一定要这样做或实施底层语言解决方案?
已联系我进行一些工作以通过TCP / IP进行LED遥控显示器的工作,但是我的经验和准备工作主要是关于高级编程语言的。我对与我联系有关这项工作的人说,他告诉我:
“如果您自称程序员,那么您应该了解所有这些内容”
程序员真的应该知道底层编程的细节吗?还是考虑到底层编程不是我的专长,我是否可以将其视为黑盒概念,理论知识,但不一定要这样做或实施底层语言解决方案?
Answers:
您的联系人不知道他们在说什么。有许多语言,方法论,技术等等,因此一个人不可能很好地了解所有必要的细节。作为程序员,您要做的是知道如何学习完成工作所需的知识,以及如何解决问题的方法,无论使用何种编程语言,都可以采用该方法来解决问题。
承认您不知道的事是可以的,但是您也可以证明,无论面对什么,您都能学到足够的知识来达到预期的效果。好的程序员仅仅是解决问题的好手,可以用各种编程语言来实现他们的解决方案。
我不会为有您的联系态度的人工作。
“如果您自称程序员,那么您应该了解所有这些内容”
我强烈不同意这一说法。这就像要求厨师做饭,驾驶员驾驶任何类型的机动车或让医生知道所有疾病一样,这是一个荒谬的假设。
作为一名程序员,必须知道如何以某种语言编写软件,以便以自动化的方式执行某些任务。语言和任务会因程序员的不同而异,就像厨师知道如何烹饪,驾驶员知道如何操作,医生知道如何进行诊断一样,这取决于每个专业的专业程度。
当人们说“您需要知道X才能称自己为程序员”时,我真的很鄙视它。真?好吧,有些人整天都在研究COBOL,并且喜欢它。他们可能在这方面和问题领域都非常擅长,以至于我们旁边都是假装。
认真地,使人们尊重以凉爽而有趣的方式解决他们所面临的问题。理解解决问题的能力来自不同的背景。不是他们是否掌握了每个人都应该知道的所谓的技能“清单”,这样他们才能以相同的方式思考。那就是我们想要的完全相反的东西。每个人的“清单”都是并且应该不同。越多越好。如今,编程是解决问题的方法。尊重做得好的人,并了解每个人都有不同的优势参加会议。这是我们要互相帮助才能有效地团队合作的唯一途径。仅仅因为知道“ C”或某种东西确实可以帮助这个人变得很棒,并不意味着因为您没有
我建议您阅读以下内容:
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
如前所述,使用抽象时,较低级别的内容始终会对您的操作产生影响。这可以是性能方面的原因,失败原因,安全原因等。
因此,毫无疑问,您现在应该了解这些内容。尤其不是asm或CPU架构专家。但是,必须具备足够的知识来在需要了解更多信息时将自己记录下来。
他的论证是“ 没有真正的苏格兰人”逻辑谬论的一个很好的例子。
但是,低级和高级编程之间的区别不是语言,而是应用程序知识领域。将值分配为true可能意味着打开LED或启用小部件上的鼠标单击事件。语言不在乎。
例如,看一下该库,用于在arduino上使用LED矩阵。这不是火箭科学,而且如果不提出“低级哦,不!”,实际上任何程序员都可以稍加努力就能理解它。精神障碍。
每种编程语言都有其优点和缺点。学习一些知识,将使您对在给定项目时使用什么以及如何有效使用它有很好的认识。
作为程序员,您可以专注于特定的PL,将其用作解决任何问题的唯一工具,您还可以了解很多PL,但是不擅长于这些极端之间的任何事情。
也许告诉您“词组”感到沮丧的人,也许您不是与他交谈的唯一联系人。
知道问题并知道需要什么样的技能才能有效解决问题是程序员的一个好特征。case,您的情况是,由于您没有所需的技能,因此您也许可以将您的联系人推荐给具有所需技能的另一位程序员。
干杯,
警惕的
具有理论知识是很好的。必要时能够学习低级语言非常重要。
但至于“如果您自称程序员,您应该了解所有这些内容”,谁能了解所有内容呢?在他们还没有做之前?