软件工程:成瘾者的天堂
直到我大学一年级才开始开发者的旅程。 我曾在高中尝试过编程课程,但我的学校似乎并不太热衷于。 我确实参加了很多数学和科学课程,以及一些动手实践的贸易课程,例如木工和焊接。 我喜欢解决逻辑难题,玩视频和棋盘游戏,并且通常喜欢任何需要策略或批判性思维的东西。 自然,我对软件开发事业非常感兴趣。
当我上大学的第一门计算机课程时,我已经下定了决心要在本科期间完成两件事:1)获得计算机科学学位; 2)了解有关软件的所有知识。 获得学位是一个非常直接的目标,但是我显然不明白完成2分几乎是不可能的,我可以花整个职业生涯来实现这一目标。
当您决定进入基于STEM的职业时,会发生一件有趣的事情。 您可能会想,“我将获得<在这里插入工程专业的学位,然后我将完成学习。” 90秒钟内您都是正确的。 在科技行业,现实世界看起来就像我上大学时熬夜的时候一样,学习新的语言并完善我最近获得的技能。
学习所有的东西
我从学习Basic开始,然后转到Python,C,C ++和SPARC Assembly。 我自学了HTML,CSS,PHP,Javascript和SQL,因此可以找到一份兼职工作。 从那里开始,螺旋式失控。 每个学期,我都用一到两种“熟悉的”语言进行编码,并用三到四种对我来说是新的语言进行编码。 在大学三年级结束时,我已经用大约16种语言工作。 这帮助我找到了新的编码机会,但是这也使得在面试中保持所有语法的一致性非常困难。 上大学的最后一年,我已经尝试了足够多的语言,我的高级项目将有很多选择。
现在回想一下, 如果我没有花时间继续寻找新的语言来学习,那么我可能会陷入对我的高级项目和职业生涯的一条单一道路。 我觉得很多人都认为,如果您拥有计算机科学学位,那么选择一种新语言就变得微不足道了。 当然,我们学会了很多理论,并且学习了语言在幕后的实际工作方式,但是我认为实践最终使每次选择一种新语言变得更加容易。 您会开发使学习过程本身成为可能的技能和习惯,而不是始终知道要学习什么。
迅速陷入深渊
在我作为iOS开发人员的职业生涯的几年中,Swift的第一个版本发布了。 在那段时间里,我几乎一直只在Objective C中工作,没有真正接触其他语言。 斯威夫特出来时我的下意识反应是奔跑。 奔跑无处不在,并坚持使用过多的括号和混合C代码。
Swift刚问世时,我对此表示怀疑。 我看不到如何实现我想要的一切,而且我当然无法像在Objective C中那样快地工作。实际上,我大多只是害怕抛弃对Objective C的熟悉而继续前进新的和不同的。 如果我学不到该怎么办? 如果我在Swift方面不如在Objective C方面成功,该怎么办? 这能使我失去工作吗? 让我们花一些时间来谈论这些问题。
如果我学不到该怎么办? 这太荒谬了-我已经训练自己超过五年了,能够快速,成功地学习新事物。 教育的大部分好处不一定基于我所学的知识,而是基于我的学习方式。 我应该能够做出真诚的尝试来学习Swift。
如果我在Swift方面不如在Objective C方面成功,该怎么办? 这能使我失去工作吗? 简短的回答:绝对可以。 我的一部分工作是编写不会被逻辑错误困扰,易于维护且不会充满误用概念的代码。 如果我无能为力,那么我不应该从事这项工作。 掌握新技能并紧跟最新技术是我高效完成工作的方式。 如果 我无法学习,我将无法做更长的工作。
我知道当时的雇主不会很快开始采用Swift,但是我仍然很想给它一个机会。 我完成了一个教程,您知道吗? 在Swift时,我真的非常恐怖。 我编写了可编译的代码,但是将来我将无法破译我创建的项目的火车残骸。
直到两年后的今天,我才真正精通Swift。 我花了所有的时间阅读博客文章,尝试新技术,让我的代码同行进行审查,并最终找到了一些东西。 与使用Objective C相比,我现在可以更加高效地使用Swift。在这一点上,我几乎没有涉及任何内容,而且我仍然可以学到更多有关Swift的知识,尤其是在Apple的领导下,Swift不断发展和壮大。管家。
重点是什么?
我刚刚从事全职工作才4年,每天我都会学到一些新东西。 有时来自博客文章和StackOverflow,有时来自我的同行,有时仅仅是我自己的错误。 这也适用于我的非技术学习。 例如,我大学毕业后的第一份工作是创建带有白色标签的移动银行应用程序,这意味着我需要学习并遵守银行业的安全性和联邦要求。 如果我可以回头告诉过去的一件事,那就是在那些漫长的白天和深夜里学习新技术,真正了解如何学习这些技术,才真正获得了回报。
Yello的核心价值观之一是学习和好奇。 我认为软件工程师最强大的技能是他们的学习能力。 没有这种技能,最终将不会有任何进步或创新。 现在,我为新技术的刺激和探索未知而生活。 我的职位是软件工程师,行业的是学习者。