网志

给高中生的建议

史蒂夫·布拉南2021年1月24日

内容

介绍

我最近收到一封来自印度尼西亚的年轻女士的电子邮件,询问有关机械工程与软件工程这门大学的专业。她试图在他们之间进行选择。

她对我的经历感到好奇,因为她在我的博客中读到我是从机械工程专业开始的,然后以软件工程师的身份毕业。

您可能正在考虑类似的决定,或者对一般的软件工程专业感到疑惑。这篇文章结合了我给她的建议和我给出的其他建议。

本文以PDF格式提供,便于打印

我对印尼,印尼的文化,教育系统或经济了解不多,从我大学一年级到现在已经42年了。因此,她的处境与我之间的距离和时间差距很大。

我的建议也非常以美国为中心。但是我认为,只要您根据自己的特定时间和地点来调整它,它就可以广泛应用。

我也没有遵循常规。我曾经有过成功的职业生涯,但是在此过程中我犯了一些错误,并且有一些曲折,起伏。

我希望通过描述我的失败,您可以从失败中学习并避免失败。

我将从一些有关我的教育和职业经历的背景开始,然后介绍基于这些背景的一些建议。

我的教育经历

我第二年辍学了。那是我最大的错误。不论具体的工程学科如何,这都使我的职业更加艰难。

是什么导致我退出?这很容易归结为不良的学习习惯。我一直是一个很好的学生,在中学和高中成绩不错,但是我从来没有养成良好的学习习惯,所以对大学的要求没有做好准备。

我在7年级上了第一堂代数课,在12年级(在美国读高中的最后一年)上了我的微积分课,所以把它当作我的大学预科期。

在那6年中,我参加了4种不同的学校系统,这只是生活中随意的一种。尽管这种不连续性造成了自己的复杂性,但确实允许我比较那些系统。

我的主要观察结果是,他们的课程设置,班级管理和作业方式都非常相似。

通常,每上课一个小时,我就有5至30分钟的作业时间。由于有些老师允许我们在上课的最后5或10分钟内进行家庭作业,而且我通常会有一个“学习堂”时期可以花在家庭作业上,因此我能够在离开学校之前完成大部分作业。

结果,我养成了一个习惯,那就是我只需要在课余时间做少量的额外工作。

粗略估计,这意味着90%的上课时间是课外作业,而10%的课外时间是功课。每周有20个小时的学术课外时间,我每周总共花费约2个小时的课外时间。

大学与众不同。我花了很长时间才了解到,每隔一个小时的课时或实验室时间,我需要在课外花费1-3个小时。这就是课程和班级的结构。

这意味着大学功课的上课时间是25-50%,课外时间是50-75%。每周有20个小时的学术课时,我本应该每周花费20至60个小时的课外时间。

您可以在这些数字中看到问题。我的习惯渐行渐远。我不习惯在校外花更多的时间在校外,而且我也没有适应。

结果,我表现不佳,落后了,最终退学了。那是我一生的低谷。

我最终确实养成了必要的习惯(请参阅 如何微积分)。但是,那时机械工程还为时已晚。

我的职业经历

我偶然地陷入了软件。我参加了一些夜校的大学软件课程,但大部分时间我都是自学成才,从书籍,个人项目以及从同事那里学到的在职培训。

没错,自学成才是艰难的事情。传统的软件工程职业道路为大学教育奠定了基础。至少十年没有一个人是一个严重的障碍。

即使我的经验超过了我的经验,它仍然偶尔会浪费我工作机会。我怀疑今天,随着本科软件工程课程的广泛普及,这将更加困难。

我是怎么陷入其中的?我在课外参加的一门大学课程是Fortran编程,这是工程学学位所必需的。

我喜欢上那堂课,并且愿意花各种时间在科技大楼的尽头。

离开大学后,我的第二份工作是计算机操作员。这是非技术性的工作,需要加载磁带和卡片组并拉出打印输出。

但是我是根据我在Fortran上的经验获得的,因为他们希望我做一些轻量级的编程。如此具有讽刺意味的是,尽管经历了艰苦的努力,但我的大学教育确实直接导致了我的职业生涯。

那是我需要的机会。他们非常支持我学习我想要的东西,并使用他们的计算机进行学习。

通过使用书籍和手册(1980年代),并在我的同事的指导和帮助下,我学习了Pascal和汇编语言。

从操作员转到程序员后,我学习了C。一旦个人计算机可用,我就将时间花在家里从事个人项目并学习更多。

我过去40年来一直遵循这种模式。随着新一代硬件和软件开发工具的出现,我学习了更多的语言和技能。

自学成才的一个缺点是我在很​​大程度上靠自己。如果我在某些方面遇到麻烦,那么我并不总是有人寻求帮助。

因此,我不得不花时间寻找其他信息并进行研究。这使进展更加困难。

但这是一把双刃剑。虽然它有时会伤到我,但我学会了使用它作为武器。它使我自力更生。我擅长从书本上学习,后来又学会了互联网,博客,视频和课程等在线资源。

我做出的一个很好的决定是,总是找一些可以学到新知识的工作。除了利用我的经验并获得高薪外,这也是任何新工作的标准。结果,我总是添加到我的工具箱中。

可负担的嵌入式系统开发平台供个人使用的相对较新的可用性是最新的迭代。

以前需要拥有数万或数十万美元设备的专门硬件实验室,现在可以放在我家里的桌子上,总成本不到1000美元。这足以成为整个职业的基础。

尽管花了我很长时间才能养成,但花大量的课外时间学习的习惯对我有好处。我花了很多时间自学新主题。即使是现在,我仍然每周定期花几个小时阅读书籍和其他技术资料,并尝试新事物。

这对于保持我的职业生涯至关重要。这是一个需要终身学习的领域。您可以开发的最重要的技能是学习新技能的能力。

没有计划这条路。我的计划是作为机械工程师从事太空计划。剩下的就是我滚滚而来,并试图适应这种情况。幸运的是,它奏效了。

我从中得到的教训是适应性和多功能性对于职业生涯的维持和长寿很重要,并且也可以为您提供帮助。

用弗朗西斯·培根和伊丽莎白·弗里德曼的话来说,知识就是力量。

我的建议

所以,您在这里,正在考虑软件工程或其他工程学科的高中生。

也许您自己亲自尝试过,或者您的父母或其他人建议这样做。您需要做出一些决定。还有一些养成的习惯,如果还没有的话。

首先要记住的是,您仍然是一名学生。您不应成为任何领域的专家。

因此,如果您对自己的技术技能和能力有所顾虑,请不要排除从事工程的职业。如果您愿意花费时间和精力,可以通过学习和实践来改善这些知识。

所有工程学科都需要大量工作。他们都不容易。您必须具有持之以恒的态度和克服困难的意愿。

我专注于软件工程,但是其中大部分适用于任何类型的工程。

还值得记住的是,每种类型都有许多专业。例如,在这里,我将比其他类型的软件更多地关注嵌入式系统。

不同的专业强调不同的事情。转换专业可能像开始一个全新的职业那样要求很高,需要一条全新的学习道路。

还有一些有趣的组合。机电一体化将机械,电气和软件工程的各个方面结合到了自己的专业中。

它用于机器人技术以及包括物联网在内的更简单的系统。我认为这是一个伟大的领域,具有巨大的职业潜力。

我的建议涵盖以下六个领域:
  • 学习习惯
  • 持续学习
  • 数学
  • 动手
  • 试试看
  • 软技能

学习习惯

大学要求您在课堂或实验室中每花费1到3个小时(或更多!)的课外时间。

这可能是一个艰难的转变,因此您应该立即着手制定这种工作时间表。理想情况下,当您高中毕业时,您会做到这一点。

大学要求您在课外做些什么?对于您修读的每门技术和非技术课程,它都是以下几种组合:

  • 读: 整本书,教科书部分,论文,文章,学习指南,教程和其他资源(包括基于视频的材料)。
  • 写作: 论文,报告,实验室报告。
  • 实验室: 科学实验室,程序设计项目。即使定期安排的实验室时间占用了您的课堂时间,但实验室和项目通常仍可能需要额外的工作,有时需要两倍或三倍的时间。
  • 工作问题: 每个教科书部分后面的问题,还有其他问题集。
  • 获得帮助: 如果您在处理某件事上遇到困难,则可能需要花更多的时间与辅导员,助教或学习小组联系,以完成任务。

即使您的高中课程包括这些课程,也要期望大学的工作量会大大增加。

您在高中能做什么以养成大学学习习惯?

  • 确保承担学术要求的课程负荷。
  • 做其他作业问题。您分配的作业可能只是教科书中问题的一部分。做多余的。看到 如何微积分 我之前提到的。
  • 从其他书籍和学习指南中解决问题,例如 绍姆的提纲 系列或补充教科书。
  • 阅读相关书籍并学习其他外部材料。
  • 做一些个人学习项目(请参阅 试试看 以下部分)。

其中一些可能更像是一种爱好,例如阅读您发现有趣的其他书籍并进行有趣的项目。拓宽您的主题并深入了解它们。

找时间做这可能具有挑战性,特别是如果您有其他课外活动或课余工作。时间管理是一项重要的发展技能(请参见 软技能 以下部分)。

只是不要误以为您的高中最后一年是放松的时间。如果您打算攻读工程学位,那不是。现在是时候加强学习了,因为大学的学习将会更多。

关于应该有时间做个孩子的说法呢?我有个坏消息要给你,阳光。那个时间过去了。您正准备认真地进入成年人世界,付出巨大的经济代价, 所以你需要投资。

持续学习

一旦有了这些学习习惯,就可以终身使用。如上所述,软件工程是一个需要终身学习的领域。

不要以为一旦获得那个学位,就完成了学习。您可能永远不会再上正规学校,但是您将永远自学。生活的学校永无止境。

领域不断变化。总会有新技术,新硬件,新语言,新技术和新产品。

随着技术的进步,以前可能不切实际的东西变得可行。看看电话。

当我开始上大学时,在美国,通常每所房屋只有一部电话挂在墙上。那些手持通讯器 星际迷航?科幻小说。

但是现在每个人都有一个,而且它恰好是整个手持计算机和娱乐系统。

这种不断的变化推动了对了解新事物的人们的不断需求。既可以做旧的又可以做新的,可以使您多才多艺,并且可以长期任职。

每当您找到一份新工作时,请确保它是除了其他所有内容之外的一项工作,您还将学到新知识。也许有些大,也许有些小。

但是,每项工作都会添加到您的工具箱中。这扩大了您的技能范围,使您的用途更加广泛且更具市场价值。那给 控制你的命运。

坚持在大学期间所学的知识,是一段短暂而无聊的职业之路。您可能会度过几年,甚至十年或更长时间,但最终世界将超越您。

数学

所有工程学都需要良好的数学背景。但是不同的学科和专业具有不同的重点和不同的要求。

在软件中,大量工作仅需要通用代数和基本描述性统计信息(您在高中科学课中使用的统计信息来进行测量和汇总)。

然后,某些类型的软件需要三角函数,向量和基本线性代数。其他类型需要基本演算和微分方程。

大数据和机器学习增加了推论统计和更多的线性代数。

嵌入式系统和信号处理使用各种类型的数学运算 过滤器,因为现实生活中的传感器数据比较嘈杂。这意味着它在测量值中具有随机性,随机噪声。过滤可以消除噪音,使数据平滑;它将信号与噪声分离。

他们还使用两个重要的变换,拉普拉斯变换和傅立叶变换。

典型的工程课程将需要微积分,线性代数和微分方程课程(并假设您已经具有代数,几何和三角学)。再说一次 如何微积分.

软件工程增加了离散数学,尤其是用于算法分析的数学。概率和统计可能是可选课程,但我强烈推荐它们。

如果您在所有这些课程中都做得不错,那么您将可以处理职业生涯中除了最高级的数学之外的所有数学。要处理这些其他情况,您可能需要研究生水平的数学课程。

了解正式数学在实践中的应用方式也很有用。微积分是对 连续 变量,但是软件不能那样工作,它可以与 离散的 价值观。

在微积分课程中,您将学习如何区分和积分符号方程,但是在软件中,您需要将数值方法应用于实际值。

具有讽刺意味的是,当您第一次学习差异化和集成时,它是由处理离散值和特定的值增量变化来激发的。减少增量,直到您获得理论上连续的形式。但是,要将所有内容应用到软件中,您将回到完整的圆圈以获取离散值和增量。

微积分的作用是为您提供将符号函数转换为它们本身的函数的导数和积分的方法。然后您可以实施 那些 离散步软件中的功能。

用于计算运动物体的位置,速度和加速度的牛顿方程式就是一个完美,简单,直观的示例。

与其他数学类似,您可以使用符号方程式,但是在软件中,您可以对实际数值执行计算算法。从字面上看,这实际上是理论与实践之间的区别。

您在课堂上学习的数学提供了驱动软件设计的理论。然后,代码将执行该理论的算法和数值方法实现。

您需要能够遵循理论介绍中的标记和步骤,然后了解软件方法是如何实现的。您还需要学习理论和表示法,以便在大学毕业后可以继续从论文和其他资源中学习。

如果您在学习数学上有困难怎么办?一切都不会丢失。最坏的情况是,您可能无法使用所有可能的软件专业知识。那限制了您的选择范围,但是仅使用高中数学就可以编写大量软件。

在大学期间和之后,还有其他学习资源可以提供帮助。例如,观看格兰特·桑德森(Grant Sanderson)引人注目的YouTube频道, www.3blue1brown.com.

一个相关的问题是,您将学习一些您一段时间未使用的东西,然后在某些时候您将需要它们。因此,最好花一点时间在大学毕业后长期保持数学技能,以免他们生锈。

如果您需要复习,这是替代学习资源可以为您提供帮助的另一个领域。这就是我发现3blue1brown的方式。

动手

采取动手方法有两个方面。首先,很容易阅读书中的内容或在讲座中看到它并认为您已经学到了。

不,那只是第一步。如果您认为自己已经完成,那么只会自欺欺人。

你真的在做中学。这是第二步,完成了学习。因此,请花点时间在此之后再做。

不要只做一次。钻直到你 当然 你知道的。

其次,没有什么能像在现实世界中实际使用知识和解决出现的实际问题那样锁定知识。

在高中期间,大学期间以及两次学习之间,您都在寻找机会获得实践经验。

这些将为您提供宝贵的实用技能,这些技能将在您的整个职业生涯中反复使用。

这就是理论付诸实践的地方。如果您可以应用它,或者需要一些评论,也可以在这里找到它。

基于实验室的课程或带有实践项目的课程是一种方法。这些是常规课程表的一部分,并且将存在明确的问题。

实习和合作社是另一种方式。这些可能是课程的常规部分,也可能是完全独立的。它们通常是无结构的,没有特定的事情可做。

这些可以为在真实的工作环境中学习良好的实践技能提供巨大的机会。看到 自我指导的虚拟实习 如果您找不到实习机会该怎么办。

个人项目是另一个(请参阅 试试看 部分),以及勤工俭学或兼职工作。您只需要在这些选项上注意时间管理,以确保您不会花太多时间在学术工作上。

动手方法将在您的整个职业生涯中为您提供良好的服务。每个人都赞赏工程师,无论遇到什么阻碍,他们都能把事情做好。

不管他们的GPA怎么说,没人尊重工程师实际上无法完成工作。

试试看

对于少量的金钱和时间投入,您可以立即尝试一些真正的嵌入式系统编程。这完全是有动机的中学生或高中生的能力。

您不需要任何编程经验即可上手。您可以学习一些实际技能,并开始学习更多知识。

这是找出这是否对您有吸引力的好方法,并且可以帮助您确定是否应选择软件工程专业。

Arduino的是价格低廉,易于使用的嵌入式系统板的开源产品系列,您可以从个人计算机(Windows,Mac或Linux)直接对其进行编程和运行。

Arduino的真正的好处是它可以处理很多细节,这些细节通常会妨碍初学者学习嵌入式系统。

您最终需要学习那些东西,但是您不必担心它们。您可以在以下位置了解有关Arduino的更多信息 www.arduino.cc,但现在,让我们看一个提供所需内容的工具包。

在亚马逊上,一家名为Elegoo的公司出售3种不同级别的Arduino兼容入门套件。该套件包括Arduino UNO R3兼容板,电缆,电线,面包板,以及可以连接到板上的各种设备。

每个套件都包括一张带有教程包的CD,其中包含用于演示套件中项目的简单项目的代码和说明。这些项目仅显示最基本的用法,但这足以使您入门。

如果您没有CD驱动器,或者想要在拥有工具包之前将其检出,也可以从Elegoo网站下载教程包。

更好的是,3D打印爱好者Bryan Vines整理了出色的YouTube播放列表: 电子代码.

在这些视频中,他介绍了Elegoo“超级入门工具包”的教程,展示了如何连接和运行事物,并说明了设备和代码的工作方式。

这是很棒的动手指导。这也非常有帮助,因为Elegoo指令不覆盖代码,并且Elegoo代码没有太多注释来解释其功能。

另一本很好的资源是这本书 制造:使用Arduino学习电子产品:物理计算图解入门指南 (物理计算 意味着使用可以检测条件的输入传感器以及可以显示和控制事物的输出,使计算机与周围的物理世界进行交互)。

除了Arduino网站外,还有大量其他网站和视频在线,其中包含丰富的信息。这些提供了更多的项目,更多的细节,更多的代码以及有助于解决问题的有用信息。

如果您想了解有关C编程语言的更多信息,请参见 C书,它是免费的,也可以作为 PDF格式.

这些工具包及其教程包下载链接:

套件 价格(美元) 教程包 额外
基本入门套件 $17.99 下载
超级入门套件 $36.99 下载
最完整的入门套件 $58.99 下载 高级项目

您也可以在以下位置找到下载内容 Elegoo Arduino的套件支持页面,您只需导航至正确的套件选择。

获取套件,并尝试完成套件教程中的所有项目。然后问自己以下问题:

  • 你喜欢做项目吗?
  • 您是否能够解决出现的任何问题?
  • 当他们工作时,您是否感到满足感?
  • 您学习做新事物了吗?
  • 他们让您想了解更多吗?
  • 您是否在其他地方寻找更多信息?
  • 他们是否给您一些其他尝试的想法?
  • 您是否尝试过其他一些东西?

如果你回答 对于所有这些人,您可能会喜欢嵌入式系统软件。如果你回答 没有 对于其中许多人来说,您可能没有(但不要忘记,还有其他类型的软件可以工作)。

如果您真的迷上了它,可以在我的文章中了解更多 所以你想成为一个嵌入式系统开发商.

最后一个重要的考虑因素是,任何一种软件工程都需要持久性,耐心,弹性和克服挫折的能力。

一路上经常出错。你不能让他们阻止你。尝试并使用此类工具包可以使您体会到这一点。

软技能

软技能 是可以帮助您在社交环境中运作的技能。这些至关重要,因为软件工程是团队合作的成果。

即使一次只有一个人同时开发一个软件,随着时间的流逝,也会有多个人。其他人将需要知道如何使用该软件。

通常会有一群人分工共享工作。

大学工程课程通常不会正式教授软技能。那么您在哪里学习呢?在大多数情况下,它们会非正式地发展为做其他事情的副作用。

不幸的是,这意味着它们可能还不够完善。最好有意识地主动开发它们。

我将在这里强调的主要软技能是沟通,书面和口头表达以及时间安排。

通讯

交流对于工程至关重要,因为您必须将复杂的主题传达给其他人。

您必须解释事物的工作方式,您希望它们如何工作,它们出了什么问题,如何使用它们。

您可以用书面形式进行,许多人都可以阅读您所写的内容,因此无论大小,您都可以通过语言或语言的方式获得强制消除的效果。

通过练习培养写作和公开演讲的技能。

写作

工程写作是技术写作,旨在传播和传播知识。您需要以简洁明了的方式提供详细信息。

需要对材料进行整理,并使用格式设置功能对其进行分解,使其易于遵循和导航。

使用标题,项目符号和编号列表,表格以及图形元素(例如照片,图形和图表)。甚至手机的手绘图照片也可能会有所帮助。

使用链接和交叉引用。确定您的来源 备份您写的内容,或者如果有人想了解更多。包括一个简单的目录。

这是一个易于阅读的技巧:使用简短的段落。有些人被长长而密集的段落所吸引,在那段段落中,眼睛很容易迷失方向,甚至可能无法阅读内容。

以简单,直接的风格积极地写作。想想海明威,而不是洛夫克拉夫特。

使用本文作为所有这些技术的示例。

练习编写解释和说明,然后让他们坐一会儿,然后回来查看它们。

您觉得您所写的内容翔实且充分吗?你喜欢你的解释方式吗?

如果您还有其他人阅读该怎么办?他们同意吗?他们会感到有些困惑吗?

修改并重复。不管一开始有多困难,随着时间的推移,您都会变得更好。这将是您职业生涯中的一项关键技能。

公开演讲

公开演讲往往会吓倒人们。我对自己的职业生涯充满了恐惧。如果我前面有三个以上的人,我几乎听不见声音。

使我无法接受的是加入 国际演讲会 工作组。演讲大师的目标之一是帮助人们学习在公共场合演讲。

这是在支持性环境中练习和克服恐惧的一种好方法,可以增强在别人面前讲话的信心。

在大学里寻找Toastmaster俱乐部。甚至有一个 青年节目 未满18岁的孩子,因此您也许可以在高中找到一个。

然后,如果要求您在会议,聚会或会议上展示某些内容,则可以进行处理。就像写作一样,随着时间的流逝,您会变得更好。

这些可以与另一个伟大的概念相结合:看到一个,做一个,教一个。向某人教一些东西的行为,事实证明是提高自己的知识的好方法。在我的文章中阅读有关它的内容 Sodoto:见一做一教.

时间管理

这是很多工作。这使人忙碌。如果您的时间安排得不好,就会遇到各种各样的问题。

您需要分配时间和管理时间,以便在所有需要做的事情上花费足够的时间,并为其他事情留出时间。您需要确保在事情上取得足够的进展,但是每次要确保一点进展,以免它们使您不知所措。

您需要确定优先级并避免拖延,以确保在需要时可以完成操作。您需要将大型任务分解为较小的块,以免它们完全接管并阻止您完成其他事情。

一种非常有用的方法是 番茄技术。这个想法是,您为特定的时间设置一个计时器,以花费在某件事上,而在此期间,您专门专注于该任务。

波莫多罗 是番茄的义大利文,这项技术因形状像番茄的厨房计时器而得名。我喜欢用手机定时器或 这个定时器.

我小时候从来都不擅长时间管理。我会花无限的时间在自己喜欢做的​​事情上,然后拖延直到我不喜欢做的事情陷入危机。

现在,我将pomodoro方法用于各种事情,使用计时器来设置最大和最小时间限制。我将它设置为我喜欢的东西的最大限制;否则时间将离我远去。

我将其设置为我不喜欢的事物的最低限制,以确保我至少在该时间上花费了最短的时间;否则我会拖延拖延。

好消息是,一旦您开始做某事,动力和对那点小成就的满足感就会鼓励您将计时器设置为另一段时间并做更多的事情。

无论您必须执行或想要执行的大型或小型任务,请将它们分解为合理的时间块。组成在这些时间段内可实现的小任务的分层清单。这被称为 工作分解结构 (WBS)。使用计时器将其耗尽。

例如,我使用做家务的方法(我讨厌这样做!)。我将计时器设置为15分钟,以确保我花一些时间来完成它。

我有一个逐个房间的清单,列出了覆盖整个房子的数十个小型家务任务,每个任务需要5到15分钟。那是我的WBS,我用计时器执行。

认真!该方法有效。否则,我会被总时间所淹没:我没有时间花时间照顾房子!好吧,是的,我一次,每次5-15分钟。

无论是上课还是大型项目,或者只是生活中简单的平凡责任,这种方法都行之有效。

番茄定时器对您周围的人也很有帮助,向他们显示您当时的忙碌状态,但在定时器用完时将可用。

您可以根据自己的需要来组织结构。您不必全天候地生活。一定要让自己有一些时间放松,深呼吸和冥想。

但这可以帮助您控制苛刻的学校和课外时间表,以及所有课外时间以及日常生活中的所有细节。

这将继续您的职业生涯,在那里项目有最后期限,并且对您的时间有同样多的要求。


要发布对评论的回复,请单击每个评论所附的“回复”按钮。要发布新评论(而不是回复评论),请查看评论顶部的“写评论”标签。

注册后,您可以参加所有相关网站上的论坛,并获得所有pdf下载的访问权限。

注册

我同意 使用条款隐私政策.

试试我们偶尔但很受欢迎的时事通讯。非常容易退订。
或登录