全文共 3241 字,预计学习时长 6 分钟前端
被问到如何学习编程时,最常听到的问题就是:“有没有什么新项目的好点子?”程序员
一些老套的答案有:“作一个象棋游戏” 或者 “命令行界面”。面试
这些答案没有错,但这些例子不符合现代编程的须要。现代软件编写须要常用软件服务化(SaaS)和网络应用,这意味着程序员须要了解如何在线编程。算法
用户网站或应用程序的编程须要服务器、身份验证和数据库,这个过程十分复杂。它会迫使你使用高难度的技术互动,而这些互动在开发井字游戏命令行时永远不会用到。数据库
其中一些能够由亚马逊云计算服务或其余大公司经常使用的第三方来管理。一样,这有助于你接触到行业中有帮助且大量使用的技术。这将成为你简历上更具实践性的一笔,也有助于你学习使用新技术。编程
小贴士:若是你选择了一个复杂的项目,那么一次专一于构建一个特性。一口气构建一个完整的网站或应用程序是很困难的。首先,建立一个登陆界面,或者在用户登陆后建立主登陆页面。若是试图马上完成整个项目,那么你极可能会失败。网页爬虫
某些项目推荐帖子存在问题:他们推荐的项目没有激励程序员继续开发。例如,不少人建议建造一个爬虫工具。后端
一旦你创建了网页爬虫并抓取了数据,你会怎么作?api
为何不利用这些数据建一个网站呢?不必定要很花哨或拥有不少浏览量,这个爬虫能够将数据拉入数据库,而后选择最受欢迎的博客。它能够复制该博客的标题和几个句子,而后建立一个在线分享的帖子。这个项目看似简单,但会使人印象深入,让你不同凡响。安全
经过这个网站,你已经代表本身能够作的不只仅是对系统的一小部分进行编码。相反,能够从整个系统的角度思考。你须要考虑如何实现流程自动化、管理数据库、建立网站和选择博客。据此,你还可能拥有一个有形的最终产品。
若是没有有形的最终产品,你可能会变得没有动力,仅仅知足于建立一个爬虫工具。
另外,说不定你的网站会变得很流行!
所需技能:数据库、网页爬虫工具、自动化、网页开发(用于博客)和通用编程。
你想去看乐队或喜剧表演,可最终因忘记而错过?也许你所在的地区有一个关于数据科学或大数据的免费会议,可是却由于忘记检查而错过参与。
为何不使用 Meetup 和 Eventbrite APIs 制做本身的聚集器呢?当关键字出如今事件描述或标题中时,它就会提醒你。如今,假设 Meetup 和 Eventbrite 都有类似的功能,但尝试创建本身的系统老是十分有趣。
你能够定制系统,让它按照你想要的方式工做,甚至能够将它作成一个网站,让其余人也能够收到提醒。经过这个项目,你能够练习使用两种不一样的 API,比较和概括两种 API 中你喜欢或不喜欢的部分。所以,若是负责构建一个应用编程接口,你将更好地了解什么是有效的,什么是无效的。
所需技能:API、数据库、自动化、网络开发和通用编程。
当建立本身的项目时,你不须要每次都重造轮子。试着先创造一个可靠的基础网站,容许用户登陆、发布照片和动图、滚动订阅等。接下来,能够加入更多有趣的特性,例如关注、点赞和搜索——特别是搜索功能,它能让你深刻了解推荐系统和机器学习的工做原理。
试着复制受欢迎的网站老是十分有趣。实际上,这是一种很好的学习方式,由于你必须对每一个特性进行逆向工程。逆向工程是一项伟大的技能,由于做为一名软件工程师,你将不断地维护他人代码,你须要用他们的思惟方式进行思考。
所需技能:机器学习(推荐系统)、数据库、自动化、网络开发和通用编程。
你是否曾经尝试为朋友挑选合适的礼物?若是你能建立一个网站,预测什么样的礼物适合朋友呢?这个网站可让目标用户建立一个帐户,或是仅是获得一个推荐。
一样,这也为建立须要身份验证、数据库开发等的账户提供了机会。
该项目的另外一个重要部分是你可使用亚马逊的应用编程接口做为附属连接。你将学习到如下内容:第一,了解如何使用应用编程接口,轻松阅读应用编程接口文档。第二,若是你作得好,就能够经过用户购买的每件产品得到佣金。
经过这个项目,你也能够建立一个基础的机器学习模型。能够建立一个测验,筛选出最好的礼物,而后根据人们点击该礼物的回应率,学习驱动模型。
所需技能:API、数据库、通用编程和应用程序开发。
考虑建立与 OfferUp 类似的网站。与其花钱,不如建立一个只容许交易的网站。这个概念将迫使你开发一些须要思考的特性。没有计划的话,就不能开展这个项目。
如何发布、在哪里找到最近发布的项目、以及如何搜索——这都是你能够构建的独立功能。此外,你须要考虑用户将如何互动,甚至他们其实是如何进行交易的。
这个想法在现实生活中不必定有用——但它能提高你做为程序员所掌握的技能。
所需技能:数据库、网络开发、通用编程和应用程序开发(若是你选择制做一个应用程序的话)。
合同和发票管理很是复杂。合同中可能有许多难以追踪的细微条款和规定。
所以,即便你将它简化为一些核心组件,这依然一个很是好的项目。将复杂的业务流程转化为软件并不容易。但正因如此,本项目是一个很好的挑战。
再次强调,咱们不会把它复杂化。你须要采起一个基本特征,好比输入合同条款,并首先开发这一部分。而后,你能够添加其余功能,如发票跟踪、合同分析和预测。
所需技能:过程管理、数据库、网络开发和通用编程。
像 KanbanFlow 这样的任务板由几个模块化特性构建而成,所以是一个很好的项目。起始部分会花费你一点工夫,由于须要创建一个耐用的、动态的用户界面。事实上,这个项目可能须要两我的合做:一我的在前端工做,另外一我的在后端工做。
不要所以而气馁!这其实是一个提升沟通和团队合做技能的机会。大家两人须要谈论设计,确保双方都能彻底理解,而且知道大家的模块将链接到哪里。
这比看起来更具挑战性。
所需技能:沟通、前端、数据库、网络开发和通用编程。
任何旨在拥有不一样类型用户的项目都须要有趣的设计。如何确保雇主和潜在求职者都能经过体验网站以知足自身需求?和其余大多数项目同样,你不须要同时关注全部项目。首先尝试建立职务公告,而后能够关注求职者及其反应。
所需技能:数据库、网络开发和通用编程。
大多数公司都拥有许多很是标准化的数据集,包括成本中心的会计数据、帐户、行描述,最后则是实际交易成本。
数据集标准化让建立分析变得更容易,这就是它的伟大之处。你能够尝试建立一个标准化的仪表板,帮助公司预测支出,查看每个月支出,并尽量帮助他们改善支出。
对该项目来讲,可能要花不少时间学习如何确保数据安全。固然,咱们建议在深刻研究安全性前,首先尝试构建侧重于获取并显示标准化数据数据的模块。这是一个永远绕不开的难题!
所需技能:预测、业务逻辑、数据库、网络开发和通用编程。
若是在本世纪初就用过手机的话,那你可能已经玩过贪吃蛇了。这是一个简单的游戏,可是你能够试着让事情变得更复杂!首先,从尝试开发游戏开始。
你须要弄清楚如何在线开发游戏。Sebastian Opperman 的《霓虹贪吃蛇》是一个很好的开始。以后能够添加一些很酷的新功能,好比特殊物品或者特殊能力。
这是一个玩耍和娱乐的机会。该项目并非很是技术化,由于不会有不少用户注册并使用该网站。然而,如何保持游戏在线运行是一个很好的挑战。
所需技能:网络开发、通用编程和用户界面。
真心但愿这个列表能激励你建立一个超棒的新项目。能够把它添加到你的简历中,并在面试中谈论它。也许你会所以成为一家市值十亿美圆的创业公司的下一任 CEO!
“不积跬步,无以致千里”,但愿将来的你能:有梦为马 随处可栖!加油,少年!
关注公众号:「Java 知己」,天天更新Java知识哦,期待你的到来!