人月神话编程系统产品读后感
这是什么?
我希望在我的早期职业中了解计算机编程的一些常见神话和事实(有针对性)。
编程需要数学
- 中性。
- 只有很少一部分程序员在职业生涯中处理数学问题。
- 分析能力有助于解决问题。 将编程视为理解问题,分解为更小的步骤并加以解决。 类似于数学吧?
- 但是,对Math不好的人可以成为一名优秀的程序员。 这也取决于他们要解决的角色类型和问题类型。
这全都与键入代码有关。
- 假
- 编程(入门级)关于:
- 阅读文档和要求
- 您花费在键入代码上的时间取决于您的角色和职位描述。 有时候您将不会输入任何代码。
- 大部分编程工作需要维护多年来由几个人编写的系统。 您将需要添加功能,自定义,修复错误等
您不需要大学学位即可成为程序员
每个人都可以在几个月内学习并成为程序员
编程真的很难
- 中性。
- 这取决于个人,他们的学习/智力能力以及他们学习/参与的编程角色的类型。
- 某些事情您可以轻松学习。 但是,大学学位将有助于您拓宽视野并快速学习。
就像在工厂的流水线上工作一样
- 假
- 在某些日子或长时间担任同一职位,您可能会感到工作单调。
- 但这不像在流水线上工作。 它需要大量的思考和分析。
编程不适合女孩
- 假
您需要在整个职业生涯中不断阅读新知识
- 中性
- 您不需要“不需要”。 但是学习新知识可以帮助您发展事业。
- 此外,它取决于您使用的工具和技术的类型。 每隔几年就会淘汰某些工具/技术(例如:JS框架)。 有时
- 学习新的范例,最佳实践,新的体系结构概念总是很有用的。
机器学习和AI似乎很容易学习。
我对统计/概率/建模一无所知。 但是,我在网上找到的ML / AI教程只有10行代码,这似乎很容易。
- 假
- 使用其他人创建的ML / AI工具或阅读食谱似乎很容易。 但是您将需要了解许多概念,才能在解决实际问题时使用这些工具。 不要被简单的教程吓到。 从基础开始,然后深入研究工具。
所以我应该这样编程:
- int a = read() int b = 1000 if (a > 18 && b > 50 )
- println( "Entry allowed" )
- 假
- 使用编译语言,否。 对于解释性语言,可能但但差异可以忽略不计。
- 始终专注于可读性。 将上面的代码与以下代码进行比较:
- int age = readMemberAge() int balance = 1000 if (age > 18 && balance > 50 )
- println( "Entry allowed" )
我必须学习许多编程语言,例如C,Python,Java,Ruby,Kotlin,Scala,Groovy,C#,要成为一名优秀的程序员。
- 假
- 将编程语言视为自然语言,例如:尼泊尔语,法语,英语,日语和中文。 并将写小说或诗歌的艺术作为实际编程。 如果您掌握了五种语言,但没有技巧用任何一种语言写(好)诗,那么您仍然不是艺术家。
- 认为编程是一门艺术。 尝试以至少一种语言成为一名艺术家。 考虑一个业余项目,并在开发时注意代码质量,性能,UI,功能等。
- 专注于学习编程而不是学习语言。
- 编程是仅使用一种语言即可获得的一项技能。
HackerRank,LeetCode将保证我获得一份工作
- 假
- 毫无疑问,这些站点上的问题可以帮助您进行批判性思考并解决问题。
- 最近,它是一种广泛使用的筛选方法,用于筛选候选人。
- 宠物项目和您的大学项目也将帮助您找到第一份工作。
一定很好,所以我应该学习。
- 假
- 几年后,技术专家开发的许多工具都已弃用。
- 寻找许多公司长期使用的工具/语言/框架。
我应该学习和使用它。
- 假
- 无法保证这些工具一定是好的。 不要迷上广告
- 查看Linkedin / Indeed等上的100个职位描述,发现自己在市场上很流行
我必须学习Angular,React,Vue和XYZ Web框架以掌握我的Web开发技能
- 假
- 最好在没有框架的情况下开始Web开发,以便您了解这些框架如何解决不使用这些框架的问题
- 您不需要学习所有这些,一个就足够了。 如果您在不使用框架的情况下开始学习Web开发,则在框架之间进行切换会更容易。
我不应该申请这份工作。
- 假
- 如果您知道X1框架/库/工具,则需要进行自我测试,以学习X2。
- 只要您了解抽象概念并且自己完成了至少一个宠物/专业项目,就有很大的机会可以快速学习另一种框架/库/工具。 他们都试图解决一个类似的项目,但是方式略有不同。
- 还要在职位空缺中寻找“首选”与“必需”技能。
社交媒体上的每个人都讨厌X语言/框架。X一定很糟糕。
- 假
- 不要为人们的“意见”而堕落。 人们认为语言/框架/工具是宗教。 他们彼此讨厌。
- 找出学习内容的最佳方法是查看职位空缺。 至少有一百个。
因此,这是最好的语言。
- 中性
DB.allRecords().read().toCsv( "file.csv" );
- 很高兴他们开箱即用地提供了该功能。 但是幕后隐藏了很多代码。
- 所有语言都支持创建库模块以扩展功能。 有些语言从本质上来说太抽象/太低了,它要求开发人员围绕它编写库以使事情变得更简单。
- 因此,这并不意味着语言X是最好的。
想要添加更多的Q / A和更正吗?
请在https://github.com/GT-Corp/myths-and-facts-about-programming/blob/master/README.md提交拉取请求
翻译自: https://www.javacodegeeks.com/2020/05/myths-and-facts-about-programming.html
人月神话编程系统产品读后感