成为程序员与编写代码无关
成为一名程序员并不是要知道如何编写代码和学习应用程序框架。 应用程序框架趋向于使新来者错过这一点,并在变得有趣时停止他们的旅程。
使用框架编写代码是一个很好的起点,并且可以实现令人印象深刻的结果。 但是,在框架内工作相对容易,尤其是结果令人印象深刻,可能会使后续步骤显得艰巨。
重要的是要记住,应用程序框架所提供的结构是由中级和高级程序员设计,和维护的。
他们正在处理应用程序的繁琐细节,因此只需要编写特定实现的代码。 您无需编写使这种类型的应用程序成为现实的代码。
这一切都很好。 真棒。 我喜欢框架,并一直与他们合作。 我已经设计并开发了框架。 它们是重要和有用的。
但重要的是要记住,工作中最难的部分正在为您完成。 您实质上是在配置现有应用程序,并为特定的实现添加行为细节。
就您的学习过程而言,这可能是有害的。
应用程序框架以及其他高级库是如此之高明,以至于结果可以使新手感到自己正在编程,而说他们正在配置其他人的工作则更为准确。 他们是新手,站在经验丰富的程序员的肩膀上。
忘记或不了解它,可能会导致您对制作应用程序的编程赞不绝口,而实际上,您只做一小部分工作,而这是最简单的部分。
这可能会导致人们认为这是成为程序员的旅程的终点,而实际上这仅仅是开始。
除非您是经验丰富的程序员,否则您不清楚。 即使那样,您也可能没有考虑过。 但是,成为一名程序员与编写代码无关。 您将学习编写代码,但之后便不再考虑它。 它只是发生。 这与编程无关。
如果可以的话,请允许我进行类比以帮助说明这一点。
经验丰富的棋手知道,您学习的第一件事是如何在棋盘上移动棋子。 您了解到象沿对角线移动,国王向任意方向移动一个空间,骑士很有趣,并且以特殊方式移动等。
棋子在棋盘上的移动方式有一些警告,需要花费一些时间来学习。 但是玩了几次之后,您就不会考虑太多了。 一段时间后,您根本不会考虑它。
一旦超过了初学者阶段,您就不再需要考虑各个棋子在棋盘中的移动方式。 您不再需要考虑游戏的机制。 当您查看它们时,您只知道它们可以移动到哪里。 您无需思考,"象可以移动一个以上的空间吗?"
这些想法让您晋升为中级玩家。 在中级水平上有太多其他要考虑的内容,您仍然需要考虑全局原理。 您必须达到这一步。
一旦您成为初学者,下棋就不再是棋子在棋盘上的移动方式。 玩游戏是关于战略,战术,专注力,学习,记忆力,耐力,承诺,政治和人际交往能力等。
编程没有什么不同,尽管其中有些技能是。 一旦进行了一段时间(通常是数年)的编程,您就不再需要考虑语法的工作原理。 语法上的任何更改或新发展都将很快被吸收。
编程涉及以下方面:您正在使用的代码的结构,所设计的使模块模块化,并使代码可重用的接口,如何分离职责以最好地支持应用程序的需求,而不是锁定可能的方法。 阻碍未来的发展。 您将如何使其可测试。
学习过程永无止境。
应用程序框架会为您处理这些决策中的绝大部分,并且使您确实需要设计的代码中的那些决策变得草率,因为它们的范围有限,且整体上受应用程序框架结构的保护。
当然,您仍然可以将其弄得一团糟,这并不意味着应用程序框架消除了所有复杂性,或者与它们一起使用不是编程。 这里的要点是说明存在一种使您免受困难之苦的趋势,这可能导致您避免学习它。 意识到这一点意味着可以解决它。
当在应用程序框架中工作时,编程就成为了了解框架所做出的决定以及如何在其中进行最佳工作的意识。 能够自己做出这些决定并理解原因,可以帮助您更有效地与他们合作,尤其是随着应用程序规模的扩大。
那该怎么办呢?
花一些时间从头开始构建软件。
在您的个人项目中远离应用程序框架和库,并自行构建事物。
设计自己的类层次结构。 构建一组可重用的模块来解决特定问题。 直接使用数据库。 从头开始创建Web应用程序。 手动解析JSON。 参与开源项目。 学习函数式编程。 创建一些算法。 自动执行一些常见任务。 使一些很酷的事情发生。 拆开东西再放回去。 不要害怕弄乱。
向马丁·福勒,肯特·贝克,戴夫·托马斯学习。
一切适合您所处的空间。找到适合您的空间。 突破极限,列出您知道但不能理解,学习和与他人交谈的领域。 保持学习。
拥有这些经验将有助于您使用应用程序框架,并使您成为更好的程序员。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)