分享

CS 学位不能完全准备你成为一名软件开发人员

 技术的游戏 2023-05-23 发布于广东

自学者甚至可能具有优势

你是否担心没有计算机科学学位意味着你准备不足?

或者,你认为拥有学位对于成为一名开发人员非常重要?

CS 学位的强大神话需要消亡。以下才是真正重要的。

CS 程序教授什么

当你获得计算机科学学位时,你学到了什么?

仅仅快速浏览美国顶尖计算机科学院的课程表就能给你一个概述:

  • 计算机基础知识 - RAM、CPU、操作系统、硬盘、电路和逻辑门

  • 网络 - 计算机如何相互通信、互联网的基础知识、网络协调问题

  • 编程 - 大多数学校教授一种或两种通用脚本语言

  • 数据结构 - 如何存储数据;哪种结构最适合读写、快速查找、排序、搜索等

  • 算法 - 计算复杂性的基础知识,常数/线性/指数问题,如何设计高效算法

  • 数学 - 微积分、向量微积分、矩阵理论、概率/统计学

当你完成计算机科学学位时,你会学到很多!而且这是非常艰苦的工作。学生掌握了一些非常困难的领域,比如微积分、工程学和算法思维。

那是否能准备你去工作呢?

不幸的是,你在计算机科学学位中学到的东西并不总是能帮助你在工作中。

是否有一些工作需要微积分?当然,但不多。

你真的需要了解电路板背后的电气工程吗?这很酷,但在 99% 的开发工作中并不是必要的。

你是否需要编写一个证明给定问题的算法复杂性?除非你在研究环境中工作,否则不需要。

计算机科学教授了许多与编码相邻的技能。但这些技能并不一定能让你成为一名优秀的开发人员!

一个好的开发者所需要的技能

如果你想成为一个开发者,编程很重要。计算机科学专业确实教你如何编写代码。

但是,还有许多其他的技能,计算机科学专业要么没有教授,要么主动忽略了这些技能:

  • 与非技术相关的利益相关者在团队环境中进行良好的沟通

  • 在没有结构或清晰资源的情况下解决新问题的答案

  • 在工作中快速自学新的主题

  • 不要过度优化,只写“好到足够”的代码

  • 考虑部署策略和向后兼容性

  • 响应生产中的关键事件,优先处理并进行快速修复的分类

除了编写算法,还有许多其他事情软件开发人员可以做。

你不会很落后

如果你没有计算机科学学位,不用担心。你并没有处于劣势。

你可以了解更多关于计算机、算法、数学和网络的知识,当然,你始终可以这样做!

但是,这些技术主题只占我们工作的一小部分。

有时,我发现计算机科学毕业生习惯于被灌输新材料,他们很难快速学习新事物。或者,他们习惯于有界结构的问题,而现实世界呈现无限制、模糊的问题!

在这些方面,自学是一种优势。你习惯于学习新事物,独立寻找答案,解决以前未曾遇到过的新问题。

作为一名自学或者参加过 bootcamp 的开发者,你可能有更多的部署代码、编写一个简单功能的 MVP 或者修复真实 bug 的经验。

这些都是有价值的技能,而你并不总是在计算机科学专业中学到它们。

每日清单

我帮助软件开发人员建立有意义的事业和目标。

与其他人不同——他们建议追求高薪、在精英公司(FAANG)工作或者磨练面试准备——我指导开发人员迈向充实、平衡的软件事业。

我的目标是帮助你参与创造让世界变得更好的软件。

如果你喜欢我的文章,点赞,关注,转发!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多