自学者甚至可能具有优势
你是否担心没有计算机科学学位意味着你准备不足?
或者,你认为拥有学位对于成为一名开发人员非常重要?
CS 学位的强大神话需要消亡。以下才是真正重要的。
CS 程序教授什么
当你获得计算机科学学位时,你学到了什么?
仅仅快速浏览美国顶尖计算机科学院的课程表就能给你一个概述:
- 计算机基础知识 - RAM、CPU、操作系统、硬盘、电路和逻辑门
- 网络 - 计算机如何相互通信、互联网的基础知识、网络协调问题
- 编程 - 大多数学校教授一种或两种通用脚本语言
- 数据结构 - 如何存储数据;哪种结构最适合读写、快速查找、排序、搜索等
- 算法 - 计算复杂性的基础知识,常数/线性/指数问题,如何设计高效算法
- 数学 - 微积分、向量微积分、矩阵理论、概率/统计学
当你完成计算机科学学位时,你会学到很多!而且这是非常艰苦的工作。学生掌握了一些非常困难的领域,比如微积分、工程学和算法思维。
那是否能准备你去工作呢?
不幸的是,你在计算机科学学位中学到的东西并不总是能帮助你在工作中。
是否有一些工作需要微积分?当然,但不多。
你真的需要了解电路板背后的电气工程吗?这很酷,但在 99% 的开发工作中并不是必要的。
你是否需要编写一个证明给定问题的算法复杂性?除非你在研究环境中工作,否则不需要。
计算机科学教授了许多与编码相邻的技能。但这些技能并不一定能让你成为一名优秀的开发人员!
一个好的开发者所需要的技能
如果你想成为一个开发者,编程很重要。计算机科学专业确实教你如何编写代码。
但是,还有许多其他的技能,计算机科学专业要么没有教授,要么主动忽略了这些技能:
- 与非技术相关的利益相关者在团队环境中进行良好的沟通
- 在没有结构或清晰资源的情况下解决新问题的答案
- 在工作中快速自学新的主题
- 不要过度优化,只写“好到足够”的代码
- 考虑部署策略和向后兼容性
- 响应生产中的关键事件,优先处理并进行快速修复的分类
除了编写算法,还有许多其他事情软件开发人员可以做。
你不会很落后
如果你没有计算机科学学位,不用担心。你并没有处于劣势。
你可以了解更多关于计算机、算法、数学和网络的知识,当然,你始终可以这样做!
但是,这些技术主题只占我们工作的一小部分。
有时,我发现计算机科学毕业生习惯于被灌输新材料,他们很难快速学习新事物。或者,他们习惯于有界结构的问题,而现实世界呈现无限制、模糊的问题!
在这些方面,自学是一种优势。你习惯于学习新事物,独立寻找答案,解决以前未曾遇到过的新问题。
作为一名自学或者参加过 bootcamp 的开发者,你可能有更多的部署代码、编写一个简单功能的 MVP 或者修复真实 bug 的经验。
这些都是有价值的技能,而你并不总是在计算机科学专业中学到它们。
每日清单
我帮助软件开发人员建立有意义的事业和目标。
与其他人不同——他们建议追求高薪、在精英公司(FAANG)工作或者磨练面试准备——我指导开发人员迈向充实、平衡的软件事业。
我的目标是帮助你参与创造让世界变得更好的软件。
如果你喜欢我的文章,点赞,关注,转发!
标签:开发人员,计算机科学,算法,微积分,CS,学位,技能 From: https://blog.51cto.com/u_12409319/6251285