我如何在6个月内学会编码和构建真正的软件产品

2020年12月30日10:43:09 发表评论 37 次浏览

本文概述

2020年5月21日, 我写了我的第一行代码, 这是哈佛CS50在线课程的一部分。我今年30岁, 以前没有编程或工程方面的经验, 没有全职工作和一个家庭。

我如何在6个月内学会编码和构建真正的软件产品1

C语言中的第一行代码!

六个月后, 我推送了可用于生产环境的Web应用程序(请参阅joyful.gifts: 自动送礼服务)供全世界使用。

在本文中, 我将分享我学习编码的方式, 旅程的样子, 并为同一旅程的人提供一些非常规的建议。

我如何学习编码

从一开始, 此旅程就是要灵活地作为一名构建者。我的目标是学习解决现实问题的最佳工具。

如果你的目标是成为软件开发人员的入门级工作, 那么请认真考虑所有这一切-这里有些事情可能不适用。

这是我学习的方式。

我专注于建筑的乐趣

我专注于构建并从构建中获得快乐。如果感觉像匆匆忙忙地浏览一组材料, 我知道我做错了方法。

对于初学者来说, 常见的陷阱是观看教程而无需跟进并尝试根据他们所学的知识进行构建。

因此, 例如, 相反, 在学习HTML / CSS之后, 我尝试构建每周的日记应用程序。考虑到我只知道简单的HTML / CSS语法, 这也许是一个完全不现实的目标。但这是一次很棒的学习经历。你可以看到我的尝试这里.

我没有把自己和别人比较

我没有将自己所在的位置或与其他人使用的技术堆栈进行比较。如果它有效, 并且工作可靠且令人愉快, 则表明我来对地方了。

当你是一个初学者, 正在为所学知识而苦苦挣扎时, 新工具和新技术可能比帮助更分散注意力。

例如, 很多时候人们都倾向于放弃C和Python, 以使用更新的, 更漂亮的工具。

早期, 编程原理比你所使用的语言或框架重要得多。另外, 不管看起来多么不受欢迎, 都坚持使用对你有用的工具。

我搜寻了专家

我付出了很多努力寻找真正的专家, 一旦找到他们, 我便寻求他们的建议。

学习编码行业非常庞大。每天似乎都有一个新的教程或框架, 有许多福音传教士想向你教授。

寻找使用这些工具的专家。在尝试这些工具之前, 先询问这些工具可以解决什么问题, 并评估你是否会面对这些问题。

我花时间在与我相关的新技术上

我根据需要熟悉了新技术, 但是只有解决了我当前遇到的特定问题时, 我才能深入研究。

这是一个例子。单页应用程序是一种很棒的技术。通过各种JavaScript框架构建它们的进展令人印象深刻。因此, 我使自己熟悉了他们的工作方式, 但从未深入研究, 因为我还没有遇到他们为我解决的问题。

作为初学者, 重点关注需要解决的问题以及解决这些问题所需的最简单工具。

我解决了困难的事情

如果问题解决了, 我不会回避"困难"的事情。

例如, Docker很难完全理解, 但是它解决了我遇到的一个问题。

初学者很难安装和升级软件库和软件包。

同样, 努力找出一种如何导航Python字典的方法也可以, 这是该过程的一部分。

但是, 由于Windows和库的运行不佳而放弃它并不是理想的选择。

我通常坚持使用成熟的技术

只要有选择, 我总是会选择经过验证且久经考验的技术, 而不是新颖而有光泽的技术。

随着技术的成熟, 诸如最佳实践, 安全漏洞和限制之类的事情将变得显而易见。

作为初学者, 你是否想重新发明轮子, 弄清楚什么是跨站请求伪造(CSRF), 以及如何防止伪造?可能不会。

因此, 如果可以的话, 请坚持一开始就证明的内容, 然后继续进行探索。

我的编码之旅-我使用的资源

这应该作为总体指导, 而不是具体的逐步指导。软件开发发展非常迅速, 资源已经过时。

此外, 在运输产品的过程中还需要学习一些较小的主题。一个简单的教程将针对这些主题。示例包括GIT, Bootstrap, 第三方集成, 部署和文本编辑器。

这是我用来学习编码的资源:

C和算法简介CS50.

我最喜欢的是:这是对计算机科学的终极介绍。计算机为什么以及如何执行我们告诉他们的操作。

你会从中学到什么:什么是数据类型和结构, 什么是算法, 什么是大O表示法以及为什么这么重要。

我如何使用它:设计和构建有效的数据库操作和业务逻辑。

HTML / CSS基础知识notlogy

我最喜欢的是:notlogy是入门到编码的完美工具。你可以立即进行编码, 并在此过程中构建有用的项目。

你将获得的好处:到目前为止, notlogy是初学者学习HTML和CSS的最佳方法。今天, 我重新学习CSS模块, 每次都学习新东西。

如何使用:帮助我创造了外观和感觉joyful.gifts。

JavaScript通过雄辩的javascript

我最喜欢的是:如果你熟悉算法和计算机科学的基础知识, 并且只需要学习JavaScript的语法和怪癖, 那么这是一个很好的资源。

你将从中学到什么:了解JavaScript行为背后的原因并练习语法。

我如何使用它:的前端付款逻辑joyful.gifts大量使用JavaScript。此外, 通过JavaScript可以最大程度地减少表格摩擦。

Python / Flask通过CS50

我最喜欢的是:Python确实是一种美丽的语言, 它使构建一切成为可能。

你将获得的好处:如何使用Python通过Flask框架构建简单的Web应用程序。

我如何使用它:Python是一种通用的后端语言, 它是joyful.gifts.

Django-通过本书开始"适用于初学者的Django"

我最喜欢的是:简化的Django方法。本质上, 这是构建Django应用程序的分步方法。

你将从中得到什么:什么是Django, 如何开始使用它以及可以使用它构建什么。

我如何使用它:Django是使用Python的稳定且成熟的Web框架。像这样的网站洋葱和Instagram的是基于它构建的, 因此我的Web应用程序也是如此。

通过使用Django + Modern JavaScriptCS50W

我最喜欢的是:这些项目非常实用, 可应用于现实生活。我能够构建一个类似Wikipedia的Web应用程序, 一个电子邮件客户端和一个拍卖网站。

你将获得的好处:如何使用前端和后端语言构建复杂的应用程序。

我如何使用它:大型Web应用程序需要JavaScript才能工作。连接后端逻辑和前端魔术对全栈开发人员很重要。

Docker通过潜入Docker

我最喜欢的是:深入研究Docker的所有细节后, 事情变得很复杂, 但最终通过逐步指南进行了简化。

你将从中获得的收益:如何对你的Web应用程序进行docker化并使用Docker拥有一个理智的开发环境。

我如何使用它:如前所述, 在学习编程时, 你将需要不断下载各种工具和库。 Docker简化了该过程, 并确保你的程序可在任何笔记本电脑或服务器上运行。

Django-通过"Django专业版s"和"两勺Django"。

我最喜欢它的地方:这是部署可用于生产环境的Web应用程序的很好的演练。

你将从中获得的收益:应该遵循的最佳实践以及如何确保应用程序能够扩展。

我是如何使用的:在构建某种东西作为学习工具与部署具有实际用户和交易资金的Web应用程序之间存在巨大差距。在后者中, 最佳实践对于确​​保安全性和可伸缩性非常重要, 这些对我们很有帮助。

一些非常规的建议

如果你想学习, 请学习全新的知识。如果要构建, 请使用已经知道的和已证明有效的方法进行构建。当你成为唯一使用该软件的人时, 还有更多的实验和学习空间。

流行工具并不总是等同于有用工具。在评估是否学习新工具时, 请考虑其解决的问题。作为初学者, 你遇到的问题通常与大公司不同。

向经历过一两次灾难的更有经验的开发人员寻求建议。在学习过程中, 可以忽略最佳实践并使用快捷方式。甚至鼓励重新发明轮子, 因此你完全了解它是如何工作的。但是, 当你开始构建供全世界使用的软件时, 请尽可能遵循最佳实践。

学习编码就像学习阅读或写作。如果你有话要说, 它的功能要强大得多。在学习过程中, 观察周围的问题, 并尝试思考编写代码如何解决这些问题。这将使过程更加令人愉悦, 并带来切实的成果。

祝你旅途顺利!

我很高兴回答有关我的旅程或joyful.gifts-联络我的最好方法是推特。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: