想成为顶尖开发者吗?你必须开发应用!——7 款值得开发的应用

2025-05-24

想成为顶尖开发者吗?你必须开发应用!——7 款值得开发的应用

介绍

多年来,我在大学课堂和职业培训中心培训软件工程师软件开发人员,并由此得出了一些结论。我教过一千多名如今在行业中工作的学生,这让我看到了这些学生在12年后的未来发展。成为顶尖开发人员其实很简单:培养他们的纪律

这句话的一个明显例子是,武术老师并非仅仅通过学习理论就能成为真正的老师,而是通过与同行分享知识,最重要的是通过实践。“实践”是必要的,因为实践最终必然会导致我们犯错。这反过来又能让我们培养出解决问题的能力,而这些问题是简单的理论无法教会
我们的。

接下来,我将向你展示7 个可以尝试重现的项目,以训练你的思维能力,最终成为顶尖程序员。这一点非常重要:我不会指定你使用哪种技术,因为你可以自行选择。我建议你开发所有你想学习的技术栈中的项目。当你更换技术栈时,请再次尝试重现这些问题。

项目 1. 待办事项应用

如何开发一个待办事项应用,在大多数你能找到的关于任何技术的教程中都有讲解。这是因为这对于初学者来说是一个很大的难题。这个问题应该被视为Hello World应用程序开发中的一个问题。因此,我建议你在学习一门新技术时,将开发一个待办事项应用作为你的首批程序之一。

您将学到

  • 创建新任务。
  • 验证字段。
  • 过滤任务(已完成、活动、全部)。利用 filter 和 reduce 函数(或编程语言中类似的函数)。

待办事项节点 + mongoDB + Angular

使用 MongoDB 和 Angular 构建的 Node 应用。仅用于演示和教程。

Node 提供 RESTful API。Angular 提供前端并访问 API。MongoDB 像一个囤积者一样存储。

🔗
https://github.com/scotch-io/node-todo

Android 待办事项

一个完全 Material 的 ToDo 应用程序,具有最少的功能,足以实用。

🔗
https://github.com/avjinder/Minimal-Todo

项目 2. 产品管理仪表板

简单的 CRUD 应用程序,非常适合基础知识。

您将学到:

  • 创建和管理产品。
  • 与数据库交互——创建、读取、编辑和删除产品。
  • 输入验证以及如何使用表单。

我们是否处理产品、用户、任务等并不重要。我们必须尝试完成的是 CRUD 实现。

Vuejs + Firestore

一个使用 vuejs 和 firestore 构建的产品的简单 CRUD 应用程序

🔗
https://github.com/waseembarcha/vuejs-crud

Laravel 5.6 + Vue.js — 简单的 CRUD 演示

简单的项目展示了 Laravel 如何与 Vue.js 协同工作。

一个 CRUD 操作来管理公司——创建/编辑/更新/删除。

🔗
https://github.com/LaravelDaily/Laravel-Vue-First-CRUD

项目 3. 卡片记忆游戏

卡片记忆是一种游戏,您必须单击一张卡片来查看其下面的图像,并尝试在其他卡片下面找到匹配的图像。

您将学到:

  • DOM 操作(JavaScript)
  • UI 事件。
  • 动画
  • 视图中的基本逻辑。

HTML、CSS 和 JavaScript

记忆游戏项目是 Udacity 前端 Web 开发者纳米学位课程“使用 JavaScript 进行 Web 编程”部分的一部分。此作业旨在展示学生对核心 Web
开发技能(HTML、CSS 和 JavaScript)的掌握程度。

🔗
https://github.com/jdmedlock/memorygame/

JavaScript 记忆游戏

有趣而简单的记忆游戏,就像超级马里奥 3 中的游戏一样,用纯 JavaScript 制作。

项目 4. 绘画软件

在网络画布上创建数字艺术作品,以便在线共享并导出为图像。

您将学到:

  • UI 事件。
  • 低级屏幕操作
  • 几种设计模式如命令、单例或策略。
  • 几个用于操作画布的库(或不同堆栈中的类似库)

JS油漆

一款出色的基于 Web 的 MS Paint 重制版以及更多……

我们的目标是重塑微软画图软件(包括其鲜为人知的功能),对其进行改进,并扩展其可编辑的图像类型。到目前为止,它在这方面做得还不错。

Style2Paints(JavaScript + Python)

Style2paints V4 是目前最好的 AI 驱动的线条艺术着色工具。

与之前的端到端图像到图像转换方法不同,style2paints V4 是第一个在现实生活中的人类工作流程中对线条图进行着色的系统,并且输出是分层的。

项目 5. 制作一个机器人

如今,我们正处于机器人时代(聊天机器人和语音机器人)。因此,您可能想创建可在 Twitter、Telegram 或 Slack 上运行的机器人。最重要的社交网络都提供多种语言的 API。

几年前,我开始建议我的学生们制作一个带有一点人工智能的 Twitter 或 Telegram 机器人。我们“机器人之旅”的一个良好发展方向可能是:

  • 级别 0:制作一个 twitter/slack/telegram 机器人,当成员加入房间时向其打招呼。
  • 级别 1:制作一个 twitter/slack/telegram 机器人,从数据库中发布励志名言。
  • 第 2 级:每当有人关注该帐户或收听某个具体主题时,就发布一条感谢信息。
  • 级别 3:机器人回复评论并了解其他用户的行为。

特朗普现金

这个机器人会关注唐纳德·特朗普的推文,并等待他提及任何上市公司。当他提及这些公司时,它会使用情绪分析来判断特朗普对这些公司的看法是正面还是负面。然后,该机器人会根据预期的市场反应自动执行相关股票的交易。它还会在@Trump2Cash上实时发布其调查结果摘要。

🔗
https://github.com/maxbbraun/trump2cash

Twitter-Bot 教程

在 Twitter 上为你的新粉丝创建欢迎消息是让更多人参与你的推文和链接的第一步,如你所知,有很多在线服务可以帮助你向新粉丝发送自动直接消息,但我认为在线服务对一个创建机器人的简单工具收取 5 到 15 美元的费用太疯狂了,而你可以自己构建机器人。

在这个 repo 中,你将逐步学习如何创建自己的 Twitter 机器人。开发这个机器人需要:

  • Node.js 已安装
  • Twit:用于节点的 Twitter API 客户端(REST 和 Streaming API)
  • Github 账户
  • Twitter 帐户
  • Heroku 帐户用于部署机器人。

🔗 https://github.com/yjose/twitter-bot

项目 6. Messenger 克隆版

了解原生或混合应用程序和 Web 应用程序的工作原理。

您将学到:

  • Web 套接字(即时通讯)。
  • 原生或混合应用程序如何工作。
  • 布局在本机中如何工作。
  • 为本机应用程序进行路由或使用 Ionic、NativeScript、Angular 或 React 等框架。

WhatsApp克隆教程

您正在查看的 Whatsapp Clone 版本使用:

  • React(使用 Hooks 和 Suspense)
  • 样式组件
  • 材料用户界面
  • TypeScript
  • Apollo GraphQL
  • GraphQL 代码生成器
  • GraphQL 模块
  • PostgreSQL
  • GraphQL 检查器

🔗
https://github.com/urigo/whatsApp-Clone-Tutorial

Flutter 聊天应用

一款基于 Firestore 和 Firebase Cloud 构建的 Flutter 聊天应用。它是 Messenger 的克隆版。用户可以创建故事、实时聊天和搜索。

🔗
https://github.com/singhbhavneet/chat_app

项目 7. 国际象棋引擎/国际象棋游戏

尝试编写一个可以与人类对手下棋的引擎。如果挑战不那么艰巨,你可以只关注一个棋子的行为,

了解原生应用程序和网络应用程序的工作原理,将使您脱颖而出。

您将学到:

  • Web 套接字(即时通讯)。
  • 原生应用程序如何工作。
  • 布局在本机中如何工作。
  • 本机应用程序的路由。

Lila(li[国际象棋中的sca] la)

Lila(li[chess in sca]la)是一款免费的在线国际象棋游戏服务器,专注于实时
游戏和易用性。

它拥有搜索引擎、基于渔网的计算机分析、锦标赛、模拟游戏、论坛、团队、战术训练器、移动应用程序和共享分析板等功能。得益于社区的支持,用户界面支持 80 多种语言。

Web 客户端使用 TypeScript 和 snabbdom 编写,使用 Sass 生成 CSS。

🔗 https://github.com/ornicar/lila

Sunfish:111 行代码的 Python 国际象棋引擎

Sunfish 是一款简单但功能强大的国际象棋引擎,用 Python 编写,主要用于教学目的。它不包含表格,界面简洁,仅需 111 行代码!

Sunfish 代码精简,小巧易用,因此它提供了一个绝佳的实验平台。人们已经用它来测试并行搜索算法、实验评估函数,以及开发深度学习国际象棋程序。立即 fork 它,看看你能做些什么!

🔗
https://github.com/thomasahle/sunfish

国际象棋.js

chess.js 是一个 Javascript 国际象棋库,用于国际象棋走法
生成/验证、棋子放置/移动以及将军/将死/僵局
检测——基本上除了 AI 之外的所有内容。

chess.js 已经在 node.js 和大多数现代浏览器中进行了广泛的测试。

🔗 https://github.com/jhlywa/chess.js

结论

在这篇文章中,我向你展示了一些训练编程技能的方法。你在工作之余开发的任何想法或项目都是有益的,可以帮助你提升技能。

完成项目后,分享你的代码!其他年轻的开发者需要灵感。随着你开发不同的项目,你对特定
技术栈的了解会不断提升,并且能够轻松地从一个技术栈跳转到另一个技术栈。

如果你有任何有趣的想法或项目,欢迎随时联系我!文章最后,我会在评论区留下几个问题,请大家回答:

你从个人项目中学到了什么?
你会给那些正在着手类似项目的人什么建议?


最初发布于https://carloscaballero.io

文章来源:https://dev.to/carlillo/do-you-want-to-be-a-top-developer-you-must-build-things-7-apps-to-build-2oje
PREV
ES2020 特性的简单示例
NEXT
设计模式 - JavaScript 中的策略模式