如何在没有正式培训的情况下学习编程

描述

从编程小白到完成第一款 Web 应用,我只用了 90 天,而且大多数时间都是在苦恼自己是否能成为开发人员,真正写代码的时候只有 30 天。

通过这场充满自我怀疑的旅程,我总结出了一些令人难忘的教训:

学习编程之路充满坎坷,直到有一天我做出了一项改变。

为什么使用无代码工具就是浪费时间?

为什么充满灵活性的产品往往最没有用?

何时学习编程最合理,以及如何在没有正式培训的情况下学习编程?

一连串的失败

当计算机科学流行的时候,当我认为学习编程可以帮助我成为一名项目经理的时候,当我想证明自己可以“成为技术人员”时,我曾尝试过编程,但都失败了。

每一次,我都在不知不觉中犯了同样的错误:我更喜欢编程的想法,而不是动手实践。所以,每当课程很无聊或遇到困难时,我都会放弃。放弃的次数太多了,部分原因是:我不是当程序员的料。

教训:除非实际尝试过,否则就不要否定自己。

如果真的想尝试编程,就找一个自己喜欢的项目。当你充满动力想要实现某个应用时,一切都会有所不同。

在(虚拟)教室中学习编程的风险太低,即使编写的功能现故障,我也不会担心。但是如果我的网站上的过滤器出现故障,我就会感到难为情,并在互联网的每个角落寻找修复方法。建立一个项目会强迫自己把代码写好。

我犯的另一个大错误是等待无代码工具来拯救我。

无代码工具的真相

围绕无代码或低代码的炒作有很多,以至于你会误以为学习编程不是必须的。

如果你想构建一个博客网站或登录页面,那自然没问题。你有很多选择,比如Typedream、Carrd、Webflow(难学,但百分百可定制)。你可以通过拖拽的方式制作精美的产品,从而产生一种“如今一切皆有可能”的错觉。

实际上,这些工具非常好用的原因就在于它们非常不灵活,只能创建静态网站。

如果你想制作一个简单的 Web 应用,例如根据用户的输入从数据库检索信息,那么不动手写代码几乎是不可能的。我前后尝试了5~6个糟糕的无代码原型,才意识到这种方式根本行不通。忽视产品开发的万有引力定律是很愚蠢的想法……

易用性与灵活性

每一款易于使用的产品背后,都有人付出了艰辛的工作。首先,需要深入理解特定用例,然后再下一番功夫尽可能简化常用操作。这意味着减少操作步骤,或者一目了然,通常两者兼而有之。

问题在于,可以简化的功能是有限的,屏幕空间就是天然的限制。看看下面这个导航栏:

如果不限制灵活性,就无法保证易用性。你需要在二者之间权衡利弊,这也解释了为什么无代码工具吹嘘的“完整的功能”和“完全自由的设计”根本无法实现。

Bubble是一款被人看好的产品,但结果却不尽如人意。尽管筹集了 1 亿美元的资金,却充斥着漏洞和劣质流量。说到这里,如果你在尝试无代码构建器的过程中发现了一些 bug,则请远离,永远不要回头。

继承功能和bug

选择无代码工具就相当于以低廉的成本雇佣了他们的产品开发团队。在此,我有两个重要的警告:

你也继承了他们的 bug 和响应能力:如果他们是二流团队,则你的产品最多只能达到二流质量;

你不仅需要支付费用,还要承担学习其系统规则和怪癖的时间。

灵活性从来都不是免费的。代价是易用性降低,以及更有可能出 bug,因为可能出错的地方更多。

尽管无代码工具有着种种看不见的缺陷,但在下列情况,这些工具仍然可以节省你的时间:

找到适合的解决方案(例如,Soft:出色的可视化前端;Retool:可用于内部工具的出色前端);

学习速度很快,而且还提供了能够满足最低可行产品的功能。

然而,如果想获得面向客户的 Web 应用的全面控制权,最大的捷径就是挑战最大的难题:学习编程。

编程才是捷径

我以为学习编程需要花费几年的时间,我以为我会无聊死,而且还无法获得任何好处。然而,事实证明,编写自己的项目情况完全不同。一旦掌握基础知识,编写程序的速度就会很快,而且利用基础知识就能完成很多功能。

整体的感受:

不能马虎:思考马虎的想法很容易,但记录马虎的想法很难,而将马虎的想法编写成代码则更难。

深刻地体会到了工程师的不易。

通过一行又一行的代码构建产品能产生巨大的满足感。

摆脱无代码的约束。

学习如何使用无代码工具是创业需要付出的代价,但学习如何编程是对自己的投资。如果你拥有一些想要构建的想法,并计划一遍又一遍地使用学习到的编程技术,那么投资回报率是巨大的。

为了寻找合适的无代码工具,我浪费了大量时间,最后反而是自学编程救了我。如果你也想拥有灵活性和易用性,那么就自己动手吧。

最后是一些学习编程的注意事项:

选择一种流行的编程语言,最好与英语很接近。我选择了 Python Django,因为简单易学,还拥有一个庞大的在线社区,这很重要,因为对于你遇到的问题,网上都提供了常用的解决方案。

编写代码=主要是修改别人的代码。我所有的代码都受到 Stack Overflow、JSFiddle 和 YouTube 上的解决方案的启发。

如果你不知道如何修改别人的代码,请参加短期课程,但不要在理论上停留太久,只有能够应用到自己的项目中的概念才能真正发挥作用。

在学习教程时,请确保下载最新的软件包。一些优秀的视频很老,而且使用的是过时的软件包,编写代码后升级可能会破坏功能。

95%的时间都会浪费在5% 的问题上,这 5% 的问题会让你欲哭无泪,但不要害怕,告诉自己这样的问题只有 5%!你可以在这些问题上发挥创造力。

如有疑问,请尽管尝试!尝试每一种变化;随着时间的推移,你的预感会变得敏锐起来。

最后,我想向 Python Django 的开发人员致敬!

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分