我自学编程所使用的所有资源(从第一天到找到工作)
如果您时间紧迫,只想获取资源,我已将所有链接放在文章末尾。
我花了整整7个月的时间。我只漏掉了3天(有时候我忘记提交更改了)。
从学习如何声明变量,到找到我的第一份软件开发工作。
以下是我使用的资源。
路线图
注:我最初走的是前端开发路线,最终却从事了全栈开发工作。即使你确定未来想从事后端开发,我仍然建议你先从前端入手。
我主要根据一位资深软件开发人员兼好朋友(😘 Jorge)提供的以下路线图来指导自己。
这段视频提供了一种不那么令人不知所措的方法。
Web基础架构 - HTML/CSS/JS
我需要说明一下,我并非完全是新手。我曾在IT支持部门工作了两年,并在大学学习了IT专业(包括一些编程),一年半后辞职。
我的IT工作经历在2011年结束,这篇文章的时间线是从10年后开始的。我基本上不记得任何与代码相关的东西了。一点也不记得。
在复习了互联网/浏览器的工作原理以及 HTTP/DNS 是什么之后,我开始学习 FreeCodeCamp。
FreeCodeCamp(https://www.freecodecamp.org/)
- 响应式网页设计认证(我没完成这个认证)
- JavaScript 算法和数据结构认证
我没有按照推荐的路径,先学习响应式网页设计,然后再去考取 JavaScript 认证。
我出于好奇心(它总能给我动力),直接开始了 JavaScript 认证课程的学习。完成基础部分后,我的好奇心得到了满足,于是又回去学习了网页设计认证课程。
最后,在对 HTML 和 CSS 感到厌倦之后,我又回来完成了 JavaScript 认证。
这时,我需要做点什么,我有很多想法,也很想看看最终能做出什么来,所以我开始寻找可以做的项目。
在freeCodeCamp 的 YouTube 频道上偶然发现了 John Smilga 的 15 个 JavaScript 项目课程
它立刻大受欢迎。我全程参与,玩得很开心。
为了更有效地学习,
由于这是一门 JavaScript 课程,John 不会讲解项目中的 HTML 和 CSS。
我的做法是,在开始项目之前,先查看他网站的最终版本,然后自己重新创建一遍。这样,我在编写 JavaScript 代码的同时,也对 HTML 和 CSS 有了相当的了解。
我学完他在 YouTube 上的免费课程后,还想学更多,所以我在 Udemy 上购买了 John 的 JavaScript 全套课程。
这是约翰的网站,上面有他所有的课程。
计算机科学
另外,我通过freeCodeCamp的网站找到了哈佛大学的CS50计算机科学入门课程。这门课简直太棒了,对于像我这样的自学者来说绝对是必修课。
值得一提的是
- 我在YouTube上看的。
- 我没看第六讲 Python 和第九讲 Flask。
- 我没有做练习,只是试图理解发生了什么。
- 我没有尝试学习 C 语言语法,我对计算机科学概念更感兴趣。
- 每当我看不懂的时候,我就会倒回去再看一遍,或者暂停一下,试着理解发生了什么。
- 我当时是被动学习,只要不实际写代码,我就看 CS50 的视频。
JavaScript 框架 - React.js
学完John的JS课程后,我毫不犹豫地
买了React.js课程。这门课几乎涵盖了所有基于JavaScript课程的项目,只不过这次是用React.js实现的。
一开始我有点沮丧,不想再做同样的项目,但仔细想想,这反而是巩固知识的最佳途径。
再次,接触相同概念的次数翻倍,巩固知识的机会也翻倍(重复)。
后端 - Node.js + SQL
没有捷径可走,即使你打算成为前端开发人员,你也必须了解后端开发的基础知识。
事实上,要创建一个更有趣/更具个性化的项目,就需要一个数据库和一个简单的服务器。
当时,我很好奇后端是如何运作的,如何将数据库连接到服务器,以及所有那些有趣的东西。我完全不知道为什么它如此吸引我。
此外,网上大多数人都认为,一个项目要想脱颖而出,或者至少值得被添加到你的作品集中,就必须至少能够执行 CRUD(创建、更新、删除)操作。因此,它需要服务器和数据库。
实际上,学习 Node 和 SQL 的基础知识只需要几天时间,足以搭建一个简单的数据库后端。
学习了SQL的基础知识(正是我进行 CRUD 项目所需要的):
Node.js 基础知识
- John 的 Node.js 课程(只完成了 5%)
算法与数据结构
无论你喜不喜欢,没有算法和数据结构就没有代码。你编写的所有代码都离不开它们。
一开始非常难,后来就只是难而已。
一旦你掌握了一些技巧,提高了解决问题的能力,事情就会变得容易得多。
我建议你重点练习数组、哈希表、字符串和数字,因为它们很可能是你工作中的主要工具。
就我而言,除了上述内容之外,出于好奇,我还加入了:链表、树/AVL树/二叉树、图以及深度优先搜索/广度优先搜索算法。(我计划之后继续探索我未完成的部分)
以下是我使用的一些资源:
注意:我差点因为用力过猛而精疲力竭。千万别学我。一定要循序渐进,否则你可能会把电脑扔出窗外,从此再也用不上电脑了。
Git/Github 和 SCSS
在此过程中,我完成了许多项目和编程挑战。
- 60 多个 CodeWars 挑战
- 16 道 LeetCode 挑战
- 在此过程中完成 20 多个小型项目。
以下是我参与制作的一些小型项目:
我的作品集主要包含以下项目:
我认为的关键因素
除了少数例外情况,我做事并没有按顺序从上到下、从头到尾进行。
我有一个“北极星”,然后通常让好奇心引领方向。
这让我:
- 坚持不懈地理解复杂课题。
- 实验(强化学习)
- 额外动力
在进行项目建设时,我通常会:
- 有了想法之后,我上网查找类似的项目,看看他们是怎么做的,遇到困难就上网搜索。
- 将两个教程融合到一个独特的项目中。
- 前端是按照教程做的,后端是我自己做的(或者反过来也一样)。
我也:
- 如果按照教程操作,千万不要使用相同的变量名(这迫使我理解代码的运行逻辑,而不是盲目地照搬)。
- 更改主题(如果正在学习如何构建电影应用,我会改做图书应用)。
说了这么多,我最终找到了一份工作,它的技术栈是:
- C#、.NET MVC、SQL、Vue.js、jQuery
在第二次面试前的十天里,我需要证明自己具备足够的知识和能力来获得这份工作……
那又是另一个故事了。
感谢阅读!
关注我的推特账号@theguspear,获取更多短篇内容。
回头见,
格斯
所有链接
路线图
Web基础架构 - HTML/CSS/JS *
- FreeCodeCamp(https://www.freecodecamp.org/)
- 响应式网页设计认证
- JavaScript 算法和数据结构认证
- 15 个 JavaScript 项目课程
- johnsmilga.com(JavaScript)
- 对于任何 JS 问题
Git/Github 和 SCSS
JavaScript 框架 - Reacj.js
- johnsmilga.com(React.js)
计算机科学
后端 + SQL
算法与数据结构
文章来源:https://dev.to/gustavupp/all-resources-i-used-to-teach-myself-how-to-code-from-day-1-til-i-got-a-job-bd4
