软件工程师:意外之旅(如何学习编码和找到工作)
软件工程师:意外之旅(如何学习编码和找到工作)
如果(in_a_rush):
如果你上车迟到了,需要完成你最近的副业,或者(上帝保佑)和一个真正的人(不是人工智能)约会,我会为你节省一些时间。 TL;DR 停止观看 YouTube 教程,停止使用新兵训练营(大部分情况下),只做一些有趣的事情。想不出有趣的事?从别处偷一些有趣的东西。在这里,像我一样用一种你认为学习起来很酷的编程语言制作一个终端网站( 由这个伟大的 ForrestKnight 视频提供的想法 ) 并由九位神将它放到你的 GitHub 上!你去那里玩得开心!
别的:
大家好,我是拉布。截至四年前的这个时候,我是我家族企业的主厨,厌倦了热情好客。到现在为止,我是全职工作的一级荣誉软件工程师。这是怎么发生的,我是怎么到这里的?阅读麦克达夫。
我将从我的堆栈开始。对于我的工作,我使用 C#/.NET 作为托管在大量 Azure 服务上的后端。至于前端,我使用 React、Typescript 和 SCSS。当我为了好玩而编写代码时,我或多或少都喜欢 Python 来完成我所有的业余项目,而且我真的(真的)想在未来一两年内学习 Rust。
我经常对自己说:“我到底是怎么到这里的?”。我不得不从学校的 A-Levels 中退学,因为我每个单元都不及格。或多或少谴责自己过着贪污受贿和辛勤工作的厨师生涯。但这种情况并非如此!我是如何走出这个低谷的?你可以说接下来发生的事情是…… 一个意外的旅程!!!
A scene from “The Hobbit: An Unexpected Journey” but unlike the journey, I DO expect you knew that.
这个问题的简单答案是“你上大学三年了,白痴,你必须问这个问题吗?”我大胆地回答“是的! (但 cretin 的评论是不必要的)”。我不认为这很简单……
起床,起床,开始编码
当我第一次开始我的发展之旅时,我清楚地记得学习的两个主要港口:
- 一个非常棒的 YouTube 频道,叫做 开发版 (不是赞助文章(除非你想让我编辑……))。
- Sololearn,一个教授软件开发的平台。
我认为将这两种学习形式中的任何一种都拼凑起来对我来说太残忍了,但是它们都成功地突出了作为新开发人员的代码学习的不同问题。在强调这两种学习形式的问题之前,我必须强调,当时两者都有一些东西帮助了我,但有可能做得更好。
不要抱歉
Part one of two (spoiler alert)
YouTube 教程非常棒,而且非常有用!我现在有时仍然使用它们……但它们属于以下两类之一:
- 天哪,这是我一生中最无聊的事情:
We’ve all seen these.
2. 天哪,这到底是怎么回事,太棒了。
事实证明,这两个视频都没有帮助。如果你不明白 YouTube 男人在做什么,你不会接受它,你会 绝不 能够使用它(很快就会有一个例外)。
如果您不知道自己在做什么,我认为编码训练营非常适合开始。但尽快 尽你所能 你需要离开那里。我记得在我学习的第一年左右使用 Sololearn,起初它很棒,在使用它之前我对 HTML、CSS 或 JS 一无所知。但 Sololearn 应该对你说的是:“ 恭喜!您已经完成了一个很棒的网站!你已经证明了你的技能是正确的,现在开始吧! ”。
我的观点是,学习编程语言的语法应该是你学习时最不想考虑的事情。它不是那么有用,更重要的是,它很乏味。 Sololearn 和 codewars 之类的网站上的编码挑战的想法在一定程度上弥补了这一点。
会更好
Part two of two
让我们和 Python 一起做一个,希望我们可以快速学习一些新东西:
Our challenge
Our base method
好的,这就是我们的起点(我已经不喜欢“n”这个参数,但我是个学究,我们将在下一张图片中更改它):
好的,所以我在这里想到的第一件事是“我需要一个递归函数来做到这一点”,所以我们可能会在几秒钟内考虑这个问题。首先,我们将数字拆分,然后将它们全部相乘,当我们在那里时,我们将添加一个新的计数器参数,默认为 0,如果 start_number 小于 10,我们将返回计数器,否则我们'将再次调用该函数并增加计数器。
The solution to this problem
Successful test cases!
多么好的小解决方案啊!我们有一些额外的东西来改进它。我喜欢对我的评论保持极简主义,但我在这里添加了一个,只是为了让您在不确定时更清楚发生了什么。其中,我们使用了类型提示(可能是它自己的一篇文章)来定义我们预期的变量和参数类型(例如 split_numbers 应该是一个“:list”),我们使用了带有 prod 的数学库(我看过这在创建此方法的过程中出现),甚至还有一些递归以及递归以及……(您会开玩笑)。
Another person's one-liner (There’s always a bloody one-liner!)
我认为这是一种相当不错的学习方式,但是有两个问题! (这篇文章中的一切似乎都有2个问题)。首先,这个解决方案的实际应用是什么?我的意思是这很有趣,对吧?但是我们什么时候应用它(脚注,我确实认为这个对于现实世界的使用来说还不错,但很多其他的都是)。其次,雇主会希望看到这一点吗?我的意思是,它很酷,但尽管 Reddit 会让你相信竞争代码不会找到工作。当雇主要求一个你热衷的项目时,你会告诉他们“ 顽固的虫子 “卡塔?可能不是。
真正的学习之神……个人项目!
我记得很久以前我看了一个 YouTube 视频,有人说“试着点亮那些 GitHub 磁贴”,很长一段时间我都这样做了:
Yeah I was that guy they complain about on Reddit (see next image)
I hate these memes.
但它确实有效。如果可以的话,每天醒来,并尝试编写一些代码。看你不会每天都抽出 S-Tier bangers(通过在周日更新 Readme.md 以获得简单的瓷砖来作弊),但它确实让你处于正确的心态。你能做的最好的事情就是开始一个有趣的个人项目,我的上帝,这是在你的旅程中到达任何地方的唯一途径。
让我成为现在的开发者的唯一一件工作就是我的宝贝:Discord Bot WordADay。这个坏男孩还没有看到商业用途,但从头到尾完成这个项目是我作为开发人员所取得的最大进展。我用 Node.JS 编写了一个机器人,它使用字典 API 在 discord 的计时器上每天告诉你一个单词。一开始这是一项非常难以克服的任务,但到最后,我有了真正引以为豪的东西。你猜怎么着,它今天还活着并且踢着 Heroku!!!
Wordadays word function still works!
丑吗?是的?怎么样?好吗?不?这是我最好的作品吗?我希望不是!但是让我告诉你,即使是现在,糟糕的 Javascript 的 1000 行文件也是我必须踏上工作大门的对话之一!我充满激情,我喜欢它,我的一部分依赖于那个破碎、凌乱的小 Discord 机器人!
更近的
你的旅程不必枯燥乏味,你的旅程是你自己的,开辟一条道路,如果你用枯燥乏味的教程折磨自己,编码的时间投资可能会非常高,但如果你做得恰到好处,价格低!用Iroh叔叔的不朽名言:
追随你的热情,生活会回报你!
谢谢阅读!请考虑发表评论并喜欢这篇文章,我总是愿意听听你的想法!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明