两天内成为全栈开发人员的清单

两天内成为全栈开发人员的清单

原文:https://medium.com/hackernoon/a-listicle-to-become-a-full-stack-developer-in-2-days-ef781e3a071e

【2017 年 8 月更新:我最近发表了一个关于全栈开发的新视频。看这里

https://youtu.be/B0Vo2XFZZ-4

当然,这是不切实际的,也不会发生在你身上,除非你正在阅读这篇文章的时候,知识的矩阵式下载已经成为现实,但是这篇文章至少会给你一个简短的想法,告诉你为了成为一名知识下载者,你需要知道些什么。

Image Source

最近,我在 Quora(一个问答社区)上收到了太多关于如何成为全栈开发者的回答请求,自从我发布了对 的回答后,你已经走了多远以向某人展示你被他们吸引了?

因此,我在 Quora 上写了一篇关于我成为全栈开发者的旅程的详细文章。以下是我的答案的复制粘贴版本,你可以在这里阅读,给我的媒体朋友。

我已经开发网络应用 5 年多了,所以我想我可以回答你的问题。所以你想成为一名全栈开发者?太好了!要成为其中一员,你需要先处理好这两件事:

本回答包含固执己见的观点和行业趋势,所以在听从任何建议之前,做出聪明的选择。

  • 后端:这是任何软件栈的核心层,所有的业务逻辑都驻留在这里。这就是T21 的枢纽。所以为了建立这个中心,你需要一个数据库来保存数据,一个编程语言/框架来编写逻辑,以及一个服务器来处理用户请求。让我们考虑这三件事的选择。
  • 数据库:我个人使用 MySQL 来持久化数据,但是也有很多其他的,比如 MongoDB (一个 NoSQL 数据库)等等,你可以使用它们来持久化数据。我已经做了三年的 Oracle DBA ,但是我仍然不能使用 Oracle 数据库来做我的个人项目,因为它一点都不便宜,而且使用 Oracle 来做简单的应用程序绝对是一种过度的行为。
  • 编程语言/框架:你可以使用任何编程语言来编写应用程序逻辑,但是 Java / PHP / Node / Python 在整个行业中被广泛使用。我使用 Laravel (这是一个基于 PHP 的框架来编写我所有应用程序的后端)。是我个人最喜欢的。(更新 2017:我已经过渡到基于 JS/Node stack 的开发者了)。我在过去的两个主要项目中使用过 Django (一个基于 Python 的框架)。如果你想在企业部门找份工作,我会推荐 Java 或 Python 来构建后端。我使用 Laravel 是因为你几乎可以在每一台服务器上找到 PHP 并且我不必寻找云托管选项来托管简单的站点,以防需要。
  • 服务器:这个领域实际上是由 Apache2 网络服务器主导的。尽管 Nginx 正在迅速赶上。你可以使用其中任何一个来托管你的应用程序/站点,所以基本的管理命令是全栈开发者想要的,比如如何启动/停止/重启服务器等等。如果你使用 Java,你需要一个像 Apache Tomcat 等的应用服务器。我不使用 J2EE,所以我不是合适的人来评论它。
  • *前端*:这是你的应用程序的用户可以看到并与之交互的 UI 部分。基本上有三个基本构件,即 HTMLCSSJAVASCRIPT 。因此,作为一名全栈开发者,你需要知道如何设计/修复/排除简单网页的故障,并使用 JS 使它们具有交互性。为了构建支持 web 的前端,如果你知道一些前端框架,如 jQueryPolymerTwitter Bootstrap、Foundation、ReactAngular 来快速构建新的 web 应用,那将非常有帮助。我个人使用 React、Foundation 或 Polymer 为我的应用程序快速构建 ui。当我开始学习的时候,我从个人书籍中学习了 HTML、CSS/CSS3、T21 和 JavaScript,每一种都致力于特定的主题,以便牢牢抓住这三位 web 开发的创始人。今天我不必挠头去解决 UIs 的小问题。 注:** 有很多全栈开发者至少知道一个像 Android 或者 iOS 这样的主要移动平台。如果你想成为其中一员,你还需要学习构建 iOS 移动客户端的 Swift 或者构建 Android 客户端的 XML / Java 。我就是其中之一,具体来说是一个 Android 开发者。

这是你自己构建一个成熟的网络/移动应用程序的最低要求,有了这些知识,你可以称自己为一个初学者。尽管为了成为一名合格的行业级全栈开发人员,您还需要学习一些东西。据我所知,其中一些事情如下:

  • 缓存:你必须知道什么是 RedisMemcached 以及如何使用它们来解决延迟问题。我不在乎你过去是否用过这些。你只需要意识到这些事情是存在的。
  • 容器:像 Docker 这样的东西已经成为在服务器上部署代码的行业标准。所以一定要熟悉 Docker 和 Kubernetes。
  • RESTful API:你应该知道 REST 或 SOAP 的概念,以及如何为你的 web 或移动客户端设计 REST/SOAP 兼容的 API。
  • Cookies/Sessions/authentic ation:你必须了解真实世界中的身份验证是如何工作的,以及行业中流行的保护数据的方法。您还应该有构建用户必须登录的服务的实践经验。我并不是说你应该自己编写/构建一个认证系统(事实上,最好不要自己编写),但是你应该知道如何在你的技术栈中设置它,无论是 Java/J2EE、Django、Laravel 还是 Javascript。
  • 安全的 HTTP/SSL :随着世界朝着安全性的方向发展,让你的 web 服务完全安全会非常有帮助,为此你需要 SSL 的知识。你至少需要知道,它是什么,它是如何工作的。如果你知道如何设置,这是一个额外的优势。
  • Cronjobs/Shell 脚本:作为一名全栈开发人员,你有时必须为数据库备份或服务器清理编写维护脚本。我在巴什写我的,但也有其他像 KSH,CSH 等。
  • Git/版本控制:保护你写的代码同样重要。因此,您需要知道如何使用版本控制系统来控制代码,以及如何在发生意外时使用它。
  • Ajax :你必须知道如何使用 jQuery 或者 vanilla JS 或者使用你所选择的框架的内置库对后端进行 Ajax 调用。
  • 流浪者等:有一些新东西叫做预配置开发环境,你可以下载并开始使用,不需要额外安装任何东西,而且这些环境可以随意丢弃。就我个人而言,我不使用它,但许多全栈开发人员正在积极使用这些系统。

如果你知道单子上的每一件事。恭喜你,你是全栈开发者了。

Source

如果你喜欢这篇文章,请把它推荐给你的社交网络,并关注我的更多文章。如果你喜欢开发数字化的东西,你也应该订阅我的 YouTube 频道。

脸书 | 推特 | YouTube

直到下一次…


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除