如何学习计算机科学的基础

多年来,在计算机科学教育方面,我已经观察到了两个不利的方面。 首先,它通常是不好的,不好的是我的意思是结构错误且不完整。 专注于一件事,却错过了许多其他事情,而这是掌握整体情况所必需的。 如果教育水平很高,它仍然主要集中在一个领域。 我是一个整体思想家 “基础知识越多,您所获得的新知识就越少。”-查理·芒格(Charlie Munger) 我是一个整体思想家,这意味着我总是喜欢理解整个图片。 我不仅想知道如何编写代码或编译器如何工作,还想知道代码如何与硬件交互以及硬件如何在基本层次上工作。 显然,由于没有足够的时间,我无法专注于所有事情,但是至少我仍然可以对每个领域都拥有很好的理解和直觉。 问题是如何? 长期以来,大学和在线课程都提出了这样的观念,即我们必须专注于利基市场,并在智力上仅限于特定的信鸽。 用德语,那个地方叫Fachidiot这个词很不错。 Fachidiot大致上是指一个专家,他是如此专业,以至于他对其他一切都不了解,而愚昧无知的伤害如此之大,以至于使他的专长不复存在。 无论如何,我发现对我来说,一种不屈服于“理想主义”的好方法就是阅读好书。 当我免费收集一些免费的顶级书籍时,我偶然发现了《计算系统的元素:从第一原理构建现代计算机》一书。 我认为它的方法正是计算机科学教育中所需要的。 零散是不好的,对第一原理的了解很多是好的。…

通过Bug潜水提高开发速度和客户体验

调试会导致工程师陷入代码库的黑暗角落,使他们有时间深入了解某些代码部分,但是这些至关重要的信息(错误和修复)通常留在负责此问题的工程师的脑海中。 如果将来出现类似的错误,会发生什么? 您是否要求其他工程师提供修复程序,还是最好让原始工程师脱离他们现有的工作? 在此博客中,我们将深入探讨在工程组织内部为初创企业共享知识的最佳实践。 Bug潜水:统一工程师和开发人员成功团队 在Nylas,我们使用协作式错误探究来帮助我们的团队了解错误,调试策略以及导致错误的代码库相关部分。 在进行bug潜水期间,解决bug的工程师向工程和开发人员成功(尼拉斯的客户成功版本)团队说明了他们的方法和最终解决方案。 这不仅有益于其他工程师,而且对于技术客户成功团队而言,对于以最佳方式交流更多有关其他用户可能遇到的问题以及他们将来如何诊断类似技术问题的信息,也更有利。 如何组织Bug潜水会议 对于Nylas的Bug潜水,工程和客户成功团队每两周聚会一次,以分享经验。 我们使用Zendesk跟踪客户问题,因此带头进行Bug潜水的工程师将与团队共享Zendesk凭单以添加上下文,或者,如果该Bug是内部报告的,他们将显示相关日志,错误消息,或堆栈跟踪。 然后,我们将讨论: 工程师关于错误的最初假设 他们如何能够复制问题 如果原始假设被反对,那么它怎么被反对 使用了哪些调试策略 咨询了哪些监控工具 最后,他们提出了最终的解决方案,并逐步介绍了解决该问题的代码。…

学习如何编码的重要性+链接到软件开发培训,书籍等的链接

学习如何编码的重要性 我永远不会忘记,当我的父母告诉我他们之所以愿意让我去罗马一所令人惊叹的国际寄宿学校的原因是,他们因为不懂英语而“感到智障”。 这些话确实影响了我,我一直将它们牢记在心,首先是因为我非常感谢他们为送我到一所如此优秀(昂贵的学校)所付出的巨大努力和牺牲,还因为我感到他们的恐惧看到我在同样的障碍下成长。 这不仅仅是让自己感到沮丧……机会就是巨大的!!! 由于我只学习商业知识,所以我越来越开始对编码感到“后退”,因此我一直在积极寻找学习编码方法。 再加上人工智能带来的所有重大变化,很多工作都将消失,因此学习编码(尤其是应用于以下领域的编码): 乔希·埃尔曼(Josh Elman)表示,精明的求职者将把目光投向这些新兴行业:人工智能(AI),增强现实(AR),虚拟现实(VR),无人机,机器人技术,基因组学和脑机接口( BMI)。 我猜想学习编码的主要方法如下(按优先顺序排列): 进行在线课程(虽然我认为这可能是最好的选择,但我需要帮助弄清楚什么是最好的网站和课程)(也可以与其他想学习编码的朋友结对,我可能会大大增加我们的成功机会) 做一个开发训练营(有点担心时间投入,再次需要了解什么是最好的) 再次上大学(虽然我不放弃它,但我认为它太慢且耗时,我实际上只看到在我想加入他们的斯坦福大学校友俱乐部(如斯坦福大学或享受他们惊人的设施) 链接到软件开发培训,书籍等。 软件开发的世界被划分为多种语言,因此,我认为根据您的热情以及今天和明天最相关的内容,首先了解要关注的对象以及原因是关键。 顶级编程语言 通过http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages 到目前为止,我的主要开发语言选择…