在编程行业想要有好的职业发展,必须有足够的创造才能。那么,当你的创意枯竭或者不知道该如何培养创意时该怎么办?
本文将给出十个编程提示,并附上要求指南,来给编程开发者提供一些思路和创意。
下文的项目将提供商业化的全栈技能,并且都可以在一两个月内完成。如果把下班后和周末的时间都花在这些项目上,绝对是可以实现的。
每个项目都有足够多的细节可以帮助开发者入门。我们的目标是采用可以在一段时间内完成的***编程实践,尽快地创建和完成项目。
1. 建立一个间歇性禁食的应用程序
项目介绍
人们越来越关注健康和健身的话题,间歇性的禁食成为流行的做法。此项目需要创建一个可以在应用商店内获取的移动应用程序。
对于JavaScript开发人员来说,这是深入研究跨平台移动应用程序开发和使用各种框架(如Ionic、Flutter和React Native)的机会。
商业需求
- 可通知用户禁食时长的计时器
- 可设置/编辑禁食开始和结束时间
- 可设置禁食提醒闹钟
- 跟踪以下数据:结束禁食时间、7天平均禁食时间、最长的禁食时间、最长的连续禁食时间、当前连续禁食记录
- 跟踪图表显示:禁食目标、已达到目标、未达到目标
- 可选择禁食方案:昼夜节律、16:8、18:6、20:4、36小时连续禁食
预期提升/掌握的技能
- 持久本地设备存储方面的经验
- 开发移动本地应用程序
- 利用移动设备的特定功能,如闹钟和通知
2. 制作新闻聚合器
项目介绍
世界上每天都在发生着海量的新闻,人们很难跟踪所有事件的***进展。可以创建一个新闻聚合器应用程序,从多个来源提取聚合内容(RSS),并根据日期将其整合。
此应用程序可以基于移动设备,也可以基于网络,具体取决于开发者想要在哪个平台提升技能。
制作一个新闻聚合器的好处是不需要数据库,并且可以只使用前端框架或库(如Angular、React或Vue)将其构建为单页应用程序。
商业需求
- 必须包含至少10个不同的资讯来源
- 按日期排序选项
- 按来源筛选选项
- 聚合到35个链接后分页
预期提升/掌握的技能
- 能够将XML数据转换为可读的JSON格式
- 了解前端架构
- 获得框架/库的经验
- 外部资源使用
3. 使用外部应用程序调用接口(API)创建在线商店
项目介绍
Printful有一个可靠的应用程序调用接口,开发人员可以利用它来创建贴牌商品。使用它可以创建一个具有购物车和支付功能的、功能齐全的电子商店。
使用Pngtree中的图片创建商品,并将其上传到Printful的免费帐户里,从而可以用MVP模式部分处理此应用程序。不需要太多的商品,只要10个就足够用于测试。也可以使用Pngtree的模拟生成器来创建成品图像。
理论上可以使用这个项目进行匿名验证,并且不需要身份验证系统。该项目的目的是帮助开发者深入了解应用程序调用接口的结构、工作机制以及商业层面上的配合方式。Printful提供了一个***的机会。
开发者还需要选择支付通道提供商(Stripe或Paypal),并了解支付的方法。两种支付通道都有测试版本,不需要现实中的货币就可以进行模拟购买。
商业需求
- 客户可以查看商品
- 客户可以添加商品到购物车
- 客户可以查看运费
- 客户可以下订单
- 客户可以查看/跟踪订单
预期提升/掌握的技能
- 了解商业应用程序调用接口套件的使用
- 了解常见的应用程序调用接口模式和结构
- 了解数据结构、JSON创建和使用
- 了解开发人员视角下的商业购物车流程
- 了解支付提供商处理流程
4. 使用自己的数据库架构创建日志
项目介绍
从零开始的博客系统是提升CRUD技能以及创建数据库体系结构能力的***方式。在这个项目中,开发者需要创建自己的应用程序调用接口,以连接数据库和前端来显示数据。
要关注博客的功能,而不是它的外观。建议使用诸如Twitter Bootstrap 和CSS Materialize的引导程序来加快开发过程。
至于数据库,可以使用MySQL数据库,也可以使用MongoDB之类的无表格数据库。由于历史原因,大多数雇主仍在使用MySQL,而初创企业则更倾向于使用无表格架构。但无论选择什么,它们都能有效地丰富你的简历。
该项目的重点是数据库、连接到数据库的接口以及数据的呈现。应用程序调用接口将带你了解Node.js这一领域,或者任何你选择的后端技术。
虽然一个博客听起来很简单,但它是个可以迁移到实际环境中的合适的全栈项目。
商业要求
- 用户必须在发布前登录
- 用户可以创建、更新和删除日志
- 用户可以将类别和标记附加到日志上
- 任何人都可以查看日志
预期提升/掌握的技能
- 掌握数据库体系
- 使用后端技术创建应用程序调用接口
- 提升对所选前端框架或库的掌握程度
5.使用产品的外部应用程序调用接口创建心愿单应用程序
项目介绍
这个项目既需要创建自己的数据库来跟踪心愿,也需要使用外部应用程序调用接口。许多传统零售商,如梅西百货和沃尔玛,都有可以用于这个练习的产品接口。
这个项目的优点是,开发者还需要创建自己的身份验证系统,或者利用开放的系统(如社交账号登录),以便为每个用户创建个性化的列表。开发者的选择取决于时间和希望学习的技能。使用社交账号登录可能比创建自己的身份验证系统更容易,因为开发者只需再次使用第三方应用程序调用接口。
商业要求
- 用户可以创建列表
- 用户可以从列表中添加/删除项目
- 用户可以将列表中的项目标记为已获取
预期提升/掌握技能
- 使用外部商业应用程序调用接口
- 数据库CRUD操作
- 提升对所选前端框架或库的掌握程度
6. 制作一个广告栏
项目介绍
Craigslist网站和其他招聘网站本质上都是电子广告栏。开发者需要具备制作付费广告位的能力,以此获得报酬。
看起来这似乎是个比较简单的功能,只需列出职位、创建表格,并添加支付方式就能完成。
商业要求
- 用户必须能够注册账户和发布广告
- 用户支付后才能展示广告
- 用户可以保存广告草稿
- 用户可以修改草稿和展示中的广告
- 广告过期后不再显示
- 广告对任何人可见
预期提升/掌握的技能
- 创建、读取、更新和删除等数据库操作
- 将API连接到数据库
- 支付通道流程和实现
- 提升对选定前后端框架或库的掌握
7. 搭建一个具有人工智能特性的预订App
项目介绍
机器学习是今年最火爆的话题之一,人工智能也是这一潮流的一部分。Google、AWS和Microsoft Azure都为开发者提供人工智能云服务。开发者可以从***或者自己最感兴趣的项目开始。
预订应用程序就像个游戏。你是个有特殊偏好的顾客,为什么不用这些偏好来影响这个游戏,通过人工智能增加销售量呢?
挑选一个需要预订服务的行业,比如宾馆、租车行或者餐厅,并创建一个允许用户执行预订操作的应用程序。然后让人工智能基于用户偏好给出建议。和朋友分享这一程序,测试它推销产品的能力。开发者还需要一个数据库来跟踪所有的订单。
使用社交媒体账号登录可以减少项目所需开发时间,但这并非必须。也可以使用Firebase的身份验证系统来达到同样的效果。如果开发者热衷于建立自己的身份验证系统,并且希望探索相关概念,这个领域有很多值得研究的内容。
可以把这个项目做成网站或者移动应用。它是个简单有趣的小练习,简单到足以入门,但也复杂到足以吸引潜在的面试官。
商业要求
- 用户必须登陆以访问预订列表
- 用户能够执行预订操作
- 系统能够检测用户偏好和基于历史数据提出建议
预期提升/掌握的技能
- 实现云端人工智能服务
- 理解身份验证系统以及它与前端的关系
- 能够跟踪数据的数据库架构
- 提升对选定前后端框架或库的掌握
8. 搭建无服务器社区论坛
项目介绍
未来的人工智能是无服务器架构的。这一项目与云架构相适应,使得开发者有机会探索满足项目需求的潜在架构方案。
本项目需要CRUD操作、身份验证系统以及数据库知识。但开发者的任务并非用传统的MEAN栈、MERN栈在机器上搭建Node应用,而是采取分布式解决方案并且使用无服务器架构。这意味着一种稍有不同的在本地构建代码的方式。这个练习能够很好地锻炼开发者应对各种困难的能力,同时帮助开发者培养新的思维习惯。
从编程角度来看,无服务器对于新手来说可能有些怪异,但它有自己的优点。名为serverless的框架可以帮助开发者的学习,并且它支持所有主流的服务供应商。这篇文档非常出色,这一社群也正在蓬勃发展。
商业要求
- 用户登录后才能创建/编辑/删除评论或帖子
- 用户可以发帖
- 用户可以评论
- 用户可以回复帖子中的评论
- 帖子和评论对任何人可见
预期提升/掌握的技能
- 理解无服务器架构的基础知识
- 理解无服务器条件下的CRUD操作和数据库连接
- 理解身份验证系统的工作机制
- 提升数据库搭建技能
- 接触云服务
9. 搭建一个基于云服务的聊天室
项目介绍
基于雷达应用的即时通讯工具极大地影响了人们的日常生活,以至于人们甚至不再注意它们。这个项目所需的主要技能是在无需刷新页面的条件下动态更新消息。
如果开发者不熟悉这一领域,或者不知道应该使用哪种服务,这一点可能有些困难。AWS有个叫做AppSync的应用,Google有Firebase,而Azure也有SignalR。这些只是建议,还有其他可用于不同服务的架构。
这一项目将让开发者了解他们选择的云服务商的产品。云端编程本质上也是其中之一。学会使用这些产品能够拓展开发者的能力范围。
商业要求
- 用户可以使用昵称匿名聊天
- 用户可以登录聊天
- 已登录用户可以创建聊天室
- 已登录用户可以将聊天室设置为公开或私密
- 匿名用户只能访问公开聊天室
- 用户可以在聊天室中发送消息
- 用户可以删除自己创建的聊天室
- 用户可以邀请其他用户加入私密聊天室
- 只有加入私密聊天室的用户才能在其中浏览和发送消息
预期提升/掌握的技能
- 了解指定的云服务
- 学会一系列特定服务的使用方式以及不同服务配合的方式
- 身份验证系统
- 数据库连接和更新
10. 扩展聊天室以包含付费订阅选项
项目介绍
前文列出的所有项目可能涵盖了制作商业项目所需技能的90%,但是付费订阅功能却没有被提及。
订阅功能需要开发者了解选定的支付服务供应商的应用程序接口以及支付流程。这就是在此提及这个项目来补充已有项目的原因。理论上,订阅功能可以用于以上任何一个项目,因为订阅功能的要求一般都是一致的。
Stripe和Paypal都把支付功能和其他沙盒环境一起作为自身应用程序接口的一部分。
商业要求
- 用户能够登录订阅以获得内容访问权限
- 用户可以取消订阅
- 用户可以把订阅作为礼物赠送给其他用户
预期提升/掌握的技能
- 了解选定的支付功能供应商的订阅功能
- 实现支付沙盒
结语
每个项目都需要独特的技能和知识,但也涉及一些重复的部分。
开发者的代码量越丰富,就越能跳出选择的特定编程语言或者技术栈,识别出重复应用的模式。上面的项目会为开发者执行CRUD操作和搭建身份验证系统打下坚实的基础。如今,它们是在几乎任何商业项目中都至关重要。
记住,这些项目的目的是丰富技能和编程知识。关注重要的特性而不是细枝末节,除非那正是你想要提升的技能。开发者可以尽可能地自己实现这些功能,或者在头脑中搭建可扩展和可增长的结构。具体的编程和实现方式将基于开发者目前的编程水平。