2019年愚蠢的Fullstack Web开发人员(像我一样):第0部分-精神障碍和开发环境

我写这篇文章的目的是为了帮助刚开始开发但又无法完成设置所需工具的人们,甚至可能不了解这些工具是什么或做什么。 所有这些内容都将在帖子的第二部分中介绍,因此,如果这对您最有用,请随时跳过。

这篇文章的第一部分更多地谈到了入门的心理障碍,而我尝试着解决我自己既是绊脚石又是观察到的其他人的恐惧的东西。 就是说,我还尝试总结并提出了最佳的建议和做法,使我有机会从开发人员那里得到我非常尊重的意见。 也许不适合所有人,但希望对某些人有用并声援。

哲学:

  1. Javascript,以及为什么要这样做:

用弗兰克·赫伯特(Frank Herbert)的话说,“恐惧是心灵杀手”。 当您自学如何在当前年龄进行编码时,这是绝对正确的。 冒名顶替综合症 (在编程世界中非常普遍),或者在HTML / CSS世界中还只是耳wet目染,甚至不知道从那里去哪里。

不管您做什么,如果想要的话都会有很多深度。 想要成为一名坏蛋设计师/开发人员,并真正了解CSS网格,GPU加速的动画,成为SASS大师等吗? 您绝对可以做到这一点,并且没有错。 但是,尽管10年前可以提供一些体面的工作保障,但我坚信,除非您已经在某种已经从事过这项工作的市场营销/创意开发商店中建立过,否则您可以成为直接的前端设计师已超越您。

是的,对自定义WordPress / Hubspot / Drupal网站等的需求将持续增长,但我的预测是Wix / Squarespace / et al和机器学习将杀死绝大多数静态网站开发行业。 熟悉HTML / CSS和内容管理系统过去足以建立事业。 尽管仍然可行,但在那方面进行投资只会提供递减的收益。

就是说: Javascript 。 学习吧。 不要害怕。 用双脚潜水。 它已经成为一种令人难以置信的通用语言,并且它的生态系统每天都在增长。 选择一个前端js框架并开始。 不要等到对HTML和CSS感到“自在”,因为a)在构建应用程序时您仍然会学到很多有关这些基础知识的知识,并且b)现在应该考虑使用JS或JS框架imo。这些基础之一。 如果您想成为Web开发人员,甚至是软件工程师,但几乎没有经验,请使用可以在后端和前端都可以使用的语言来构建基础知识(感谢Node.js),然后再使用在这种背景下学习其他语言。 尝试一次做所有事情时,不要分散自己的精力,因为您不必这样做。 最重要的是,不要害怕。 恐惧是心灵杀手。

2)我明白了,其他很多人也这样做:

当我们谈论恐惧时,我们谈论的是刚开始时的犹豫,由于大量信息和选择过多而导致的犹豫不决,离散的恐惧,即因为您现在不了解它,您将永远无法理解它。 真实的谈话,让我们许多人感到恐惧。

事实是,驱使恐惧的一切都不会真正消失。 总会有一个未知数。 总会有一些您会遇到的麻烦。 总会有一种缠绵的感觉,那就是您做得不够,不够快。 唯一改变的是您如何选择对此做出反应。 正如三届环法自行车赛冠军葛雷格·莱蒙德(Greg Lemond)所说的那样:“这永远不会变得容易,您只会变得更快。”我建议将此格言改写为:“永远不会变得容易,您只会更快地开始。”

因为这样做的速度更快,或者不想等待进入引擎盖下而弄脏您的手,这似乎是我最尊重的高级工程师的头等大事。 当然,他们的终生知识库可以帮助检查所有小盒子,但是当遇到新事物时,他们不会浪费时间, 他们只会投入工作。 您越早破坏某些东西,就越早有一条线可以拉动以开始弄清楚事情。

总之,拥抱恐惧,让克服恐惧成为驱动您的动力。 如果您像我经常做的那样感觉像房间里最愚蠢的人,克服恐惧并向自己证明自己确实可以做到,那将是一次令人难以置信的强大而富有动力的验证。

开发环境:

本教程系列的推动力来自与我公司现有非技术部门的一群人合作,他们希望提升自己的职业生涯并学习编码,以增强他们目前的角色,或者最终实现跳跃到工程位置。

就是说,与刚刚起步的各种各样的人一起工作,凭经验表明了两件事。 1)开始时人们需要运行的dev依赖项数量可能令人生畏,2)大量的教程/堆栈溢出线程/博客帖子/等。 假设开发人员将拥有一个bash环境。 通常,这在有人使用Mac的情况下很好,但是在Windows用户尝试入门时,可能会带来其他障碍。 考虑到这一点,任何Windows用户都应该做的第一件事就是获得bash终端模拟器。 我个人最喜欢的是Cmder 。 Cmder将帮助您标准化许多参考信息。 (另外,请重新输入:命令行。学习它。爱它。生活它。您很快就会有这样的感觉)。

文本编辑器:

可能有很多资源说要使用您选择的编辑器风格。 为了标准化(和很棒),我说VS Code 最好的事是现在还没有imo,现在还没有IDE,它得到了Microsoft和社区的大量支持。 集成终端非常漂亮。

Git

获取git 。 Git是一个版本控制系统。 如果您对此感到不满意,请理解团队的基本用法是能够一起处理同一段代码。 通常的过程是创建一个仓库(文件存储库),通常是在Github上 (请注意git和github是不一样的……),然后让团队成员在本地计算机上克隆该存储库,并将更新推入/拉出该共享代码库。 通常,如果一个人正在使用与其他所有人不同的功能,则他们将从主存储库创建自己的分支,在代码的该分支副本上进行更改,然后进行测试以确保它可以与其他人的代码一起使用代码,然后再将其拉回共享存储库。 这是一个如何在命令行中使用git的示例(尽管有可视界面可以执行此操作,但使用cli工具确实可以使您学到最好的东西):

  git clone www.github.com/exampleuser/example-repo 
cd example-repo
git checkout -b我自己的分支
/ *在分支中做一些工作* /
git添加
git commit -m“这是一个提交,我将在这里留下有关我已完成的工作的消息”
git push origin -u我自己的分支

这是上面发生的事情的流程:

  1. 我们正在将remote存储库的一个版本(在本例中为github)复制(复制)到我们的local计算机。
  2. 我们将cd' (切换目录)放入刚刚克隆的目录中
  3. 我们正在从已克隆的存储库中创建local分支。
  4. 在分支中做一些工作。 更改文件的内容,创建新文件,删除文件等。
  5. add我们所有的更改,以便git跟踪它们
  6. commit我们添加的所有文件,以便我们可以将其向上推送。 Git版本控制围绕提交的想法进行。 每个提交都将获得一个唯一的提交ID,如果我们真的弄乱了我们的代码(或其他人的代码),我们可以使用提交ID来还原为未拧入的代码,例如git reset --hard uniqueC0m1tId (有一些请注意,请查看 rad stack-overflow帖子以进一步阅读)。 提交必须具有提交消息-m ,btw(使这些消息描述提交新工作的良好实践)。
  7. 现在我们已经locally提交了代码,我们将向upstream推送到remote分支。 第一次上推在locally创建的分支时,我们将-u标志用于-upstream 。 ( upstream / downstream ,与remote / local相同)。
  8. 可以使用git push origin my-own-branch完成对分支的所有进一步推送。
  9. 最终,在完成了针对特定功能的所有工作之后,我们将希望将my-own-branch分支合并回我们最初克隆的remote master分支中,以便其他在代码库上工作的人都可以git pull origin master并获取您已完成的所有更新工作。
  10. Git可能会让您感到困惑。 刚开始时,如果这一切都没有意义,请不要担心。 只需关注clone, checkout, add, commit, push开始的基础知识。 我保证,您有机会学习有关git的更多信息。

Node.js:

以我的拙见,Node是一件美丽的事情。 Node仍然是企业级后端世界的红发继子(尽管正在发生变化,https://www.monterail.com/blog/nodejs-development-enterprises),Node允许开发人员对后端服务器和api进行编码逻辑与前端使用的语言相同:Javascript。

如果我们看一下传统的前端开发人员学习路径,通常会这样:学习一些HTML和超基本的CSS。 现在学习一些更高级的CSS。 现在学习一些Javascript,也许是简单的动画,显示/隐藏| 扩展/折叠功能等。现在了解更多高级JS,以动态生成一些标记,通​​过api调用获取数据,在浏览器中创建跟踪对象等。而且,很长一段时间,这与JS差不多。 ,因为您必须在浏览器中使用它。 如果要构建后端,则必须学习php或python或.NET或Java或允许服务器端编码的多种其他语言。

现在,尽管前端Web开发人员需要自己的专业知识,而且绝对不是没有挑战,但似乎已成为编程的“较软”方面,因此颇有声望。 但是,这正是为什么它是入门的绝佳媒介。 首先,它可以提供切实的早期结果(“看,我有东西要显示在屏幕上!”,“看,我将背景设为蓝色!”,“看,我做了一些动画!”,等等-等等),直到真正开始使用Javascript时,他们已经在学习“真实”编程的基础知识:循环,条件,运算符等。

因此,如果浏览器中的HTML / CSS / JS是网关药物,那么Node就是纯属无用的东西。 首次编写自己的代理api绕过CORS限制可能会令人陶醉。 而且,如果坚持下去,就像您通过浏览器端JS学习了那些编程基础知识一样,您还将学习诸如HTTP协议,RESTful服务,身份验证,MVC等的后端基础知识。等等。Node terraforms您可以用JS知识做什么,而用相同的语言连接完整的管道是一件崇高的事情。

话虽如此,请在此处获取Node。 安装完成后,您应该可以通过运行node -v从终端访问它。 如果返回版本号,则表明已安装Node,并且可执行文件已添加到系统路径。 通常这仅适用于Mac,但Windows用户可能会从本文中受益。

结论:

因此,您应该具备入门所需的一切 您现在可以执行任何操作。 但是,我强烈建议您从学习React.js开始。 然后使用Express.js为您的React应用构建后端。 然后,使用Amazon Web Services上的托管基础​​结构来部署您的应用程序。

如果上面的声音听起来不错,为0到60,请放心,它是。 也就是说,请查看我即将发布的有关这些重点领域中每个领域的文章,并且到最后,您应该a)拥有一个功能正常的Web应用程序作为您自己的投资组合(此处没有记笔记的应用程序),以及b )学到了很多东西,希望以某种方式为您做好准备,使您可以出门随意创建一些很棒的东西。 敬请关注近期内与这些帖子的链接,并在建立开发环境时遇到的任何痛点发表评论,我将努力为这篇帖子提供最新的解决方案。 干杯!