学习编程的一个常见问题是:在设计程序时,什么样的idea才算是好的?现在,你会经常听到陈词滥调的回答,比如:“做一个国际象棋游戏”或“命令行界面”,这些答案是对的,但它们不符合现代编程的需要。现代软件的很大一部分是SaaS和Web应用程序。这意味着您需要了解在线编程。写一个有用户的网站或应用程序需要服务器、身份验证和数据库,操作起来要复杂得多。不可避免地,将使用永远不会用于开发单线井字游戏的技术。其中一些可以通过AWS或大公司常用的其他第三方平台来完成。同样,您仍然会接触到业内大多数人倾向于使用的有用技术。这将增加您的简历并帮助您学习如何使用新技术。如果选择的项目很复杂,请专注于一个功能。一次构建一个完整的网站或应用程序很困难。从创建登陆页面或用户登陆页面开始。如果你试图一次接管整个项目,你很可能会失败。娱乐1.无需人工干预即可发布前10名博客的网络爬虫工具发布一些推荐项目的问题之一是编程不会激励程序员继续开发。例如,很多人建议开发网络爬虫。网络爬虫一旦搭建好,就会抓取数据,那么这些数据有什么用呢?与其只是抓取数据,不如用它们建立一个网站?它不必花哨或很多评论。爬虫工具可以将数据输入数据库,选择最受欢迎的帖子,复制标题和几句话,然后创建一个帖子在线分享。项目简单,却能真正展现其精彩的一面。现在已经表明,您可以做的不仅仅是编写系统的一小部分代码。相反,您可以考虑整个系统。这需要考虑如何自动化流程、数据库管理、网站创建和职位选择。实际上,您还创建了有形的最终产品。没有这样的成品,很容易变得没有动力,最终陷入构建网络爬虫的困境。此外,也许您永远不知道您的网站会有多受欢迎!涉及的技能:数据库操作、网络爬虫应用程序、自动化、网络开发(用于博客)、通用编程。2.使用Meetup和EventbriteAPI的旅行提醒系统你有没有想过去看乐队或喜剧表演,却发现是上周?也许你所在的地区有一个关于数据科学或大数据的免费会议,但你因为忘记查看日期而错过了。为什么不使用Meetup和EventbriteAPI创建您自己的组织者?当关键字出现在描述的事件或标题中时,它会通知您。现在,假设Meetup和Eventbrite都有类似的选项,尝试构建自己的系统总是很有趣。您可以自定义系统以按照您想要的方式工作,甚至可以将其变成一个网站供其他人制作自己的旅行提醒。我们喜欢这个项目的地方在于使用两种不同API的做法。您可以比较和总结您对两者的喜欢和不喜欢的地方。这样,如果您曾经负责构建API,您将更好地了解哪些有效,哪些无效。涉及的技能:API、数据库、自动化、Web开发、通用编程设计。3.仿冒9GAG创建自己的项目时,并不总是需要尝试重新发明轮子。简单的项目,例如您可以登录、发布照片、GIF包和通过提要更新内容的站点,提供了一个机会来首先构建一个坚实的基础站点。然后可以添加许多有趣的功能,例如关注,喜欢和搜索。特别是搜索功能,将是学习推荐系统和机器学习的绝佳机会!尝试复制热门网站总是很有趣。事实上,这实际上是一种很好的学习方式,因为您必须对每个功能进行逆向工程。逆向工程是一项非凡的技能,因为作为一名软件工程师,您将不断维护其他人的代码,潜入他们的系统插件。涉及的技能:机器学习(推荐系统)、数据库、自动化、网络开发、通用编程。零售网站4.礼物推荐应用程序您是否曾为为朋友寻找合适的礼物而苦恼?如果您可以创建一个网站来告诉您如何为朋友挑选礼物会怎么样?最终用户不仅可以在这里创建账户,还可以得到礼物推荐。同样,这为创建需要身份验证、数据库开发等的帐户提供了机会。此外,该项目的另一个重要部分是能够使用Amazon的API作为附属链接,您可以使用它来做一些事情。一、了解如何使用API??,能够轻松阅读API文档。第二,如果做得好,你可以从别人购买的每件产品中赚取佣金。该项目也是尝试创建基本机器学习模型的机会。您可以创建一个测验来尝试找出什么是好礼物,然后让模型根据响应率进行学习??,这取决于人们是否点击该礼物。涉及的技能:API、数据库、通用编程、应用程序开发。5.易货网站想想OfferUp,与其花钱,不如创建一个仅供易货的网站。这个概念迫使您在开发功能之前进行思考。你不能没有计划就取消这个项目。人们如何发布、他们在哪里找到最近发布的项目以及他们如何搜索都是可以构建的独立功能。此外,您需要考虑用户如何互动,甚至他们实际交易的方式。想法不一定要在现实生活中100%实用,但在提高程序员的技能方面一定要实用。涉及的技能:数据库、Web开发、通用编程、应用程序开发(如果您选择开发应用程序)。B2B6。发票和合同管理系统合同和发票管理是一个非常复杂的过程。因为有许多条款和法规存在细微差别,难以追踪。即使你把它剥离成几个核心组件,它仍然是一个非常好的项目。将复杂的业务流程转变为软件系统并不容易。但该项目也带来了很好的挑战。同样,不要使这个项目过于复杂。使用基本功能,例如输入合同条款,并首先开发该部分。然后,可以添加其他功能,例如发票跟踪、合同分析和预测。涉及技能:流程管理、数据库、网络开发、通用编程。7.任务管理系统像KanbanFlow这样的任务板是由几个模块化的功能构建而成的,这么大的项目让我们可以尝试更多。刚开始有一些操作,就像需要建立一个稳定的动态用户界面一样。事实上,这个项目更像是一个两人的工作。一个在前端,另一个在后端。不要因此而气馁!这实际上是您提高沟通和团队合作技能的机会。您需要讨论设计内容,以确保您既完全了解项目又知道您的模块将连接到哪里。通常,这比看起来更具挑战性。涉及技能:沟通、前端、数据库、网络开发、通用编程。8.工作板任何允许各种类型的用户输入的项目都会为设计添加一个有趣的元素。与潜在求职者相比,您如何确保雇主体验网站的方式满足他们的需求?与大多数其他项目一样,您不需要同时关注所有功能。首先尝试创建发布招聘信息的功能。然后,您可以关注求职者及其回复。涉及技能:数据库、网页开发、通用程序开发。9.基于利润预测的网站对于大多数公司来说,有很多非常标准化的数据集。这包括通常基于成本中心、账户、行描述和最终实际交易成本的会计数据。规范化任何数据集的好处在于,可以很容易地在该数据集之上进行分析。为什么不创建一个标准化的仪表板来帮助公司预测支出、查看每月支出,并可能帮助他们减少支出。对于这个项目,您可能会花费大量时间来学习如何保证数据安全。当然,建议大家先尝试构建以获取和规范化数据以及数据可视化为重点的模块,然后再深入研究安全性。那是永远无法避免的一步!涉及的技能:预测、业务逻辑、数据库、网络开发、通用编程。游戏思维10.贪吃蛇如果你在21世纪初拥有一部手机,你可能玩过贪吃蛇。这是一个简单的游戏,但您总是可以尝试让事情变得更复杂和有趣!首先,从尝试制作游戏开始。这就需要你弄清楚如何在线开发游戏。SebastianOpperman的《霓虹蛇》是一个很好的起点。但是,在原来的基础上,可以增加一些很酷的新功能,比如特殊物品或特殊能力。这可能是玩游戏和玩乐的机会。从许多注册和使用该网站的用户的角度来看,这个项目不需要任何技术技能。然而,让游戏在线运行是一个巨大的挑战。
