实践知识建设项目的列表。由于项目的目的是增加您的知识库,因此它们有些具有挑战性。但是,也有一些简单的东西。他们中的许多人甚至值得在您的投资组合上展示。
这些项目分为多个类别,并用一些建议的语言和框架/工具(我仍在研究此部分)标记,以使您开始使用。
要开始进行项目想法:
一般网络项目,从建立一个简单的网站到为复杂且困难的网络任务(例如数据包嗅探)构建工具。
您真正想在职业/生活中的某个时刻尝试建造自动机器人。
适当的软件或应用程序建议您甚至可能会在日常生活中使用,例如简单的文本编辑器或自定义音乐播放器。
主要涉及人工智能或机器学习的项目。如果您想申请任何与AI相关的工作或程序,则非常适合在投资组合上展示。
对您可能在日常生活中有意或不知所措的许多相关内容的内部运作提供了更深入的洞察力。
涉及处理加密/解密或一般计算机安全性的项目。
所有的工作,没有比赛使杰克成为一个沉闷的男孩!游戏是享受和学习许多编程概念在内的必不可少的游戏。
这些是一个独自一人的类别,我不想让他们感到孤独,所以我将它们汇集在一起。
一些推荐的渠道可以解决更多问题并提高您的编码技巧。
使用FTP(文件传输协议)的简单文件传输客户端。作为奖励挑战,请增加对安全文件传输的支持。它可以是网络,桌面或CLI应用程序。
您可以尝试首先实现TFTP(琐碎文件传输协议),因为它更容易。
建议的语言:C/C ++
建议的框架/工具:使用Wireshark观察数据包并调试它们
示例实现:Filezilla非常完整,这是一个简单的GO实现
为了更好地了解HTTP,您需要构建HTTP服务器。现在几天(周围有很多信息)并不困难。
建议的语言:Python(或您要掌握的任何其他语言)
建议的框架/工具:插座(Python库)
示例实施:Ruslan博客文章
构建一个将URL/关键字作为输入的Web刮板,并返回与输入相关的Web匹配结果。您还可以构建产品搜索者或类似的东西。
建议的语言:Python(或您要掌握的任何其他语言)
建议的框架/工具:美丽的套件(Python库)
示例实现:
构建一个端口扫描仪应用程序,该应用程序可以探测服务器或主机的开放端口。您将需要一些有关网络工作方式以及如何扫描端口或对其进行分类的技术知识。
建议的语言:Java,C ++,Python
建议的框架/工具:套筒python库
示例实现:Piescan是Python实施
数据包嗅探器用于通过检查网络上计算机之间流动的数据包的流来监视网络流量。要从项目开始,请正确研究网络协议。然后潜入实施一个应用程序,该应用程序以人类可读形式跟踪网络数据包并解析其内容。
建议的语言:Java,C ++
建议的框架/工具:
示例实现:Wireshark是一个非常完整的数据包sniffer,草食动物是一个更简单的实现。
构建一个应用程序,该应用程序将允许用Internet安全地共享点对点文件。这将帮助您将文件牢固地从一个位置转移到另一个位置或发送给您的朋友。
建议的语言:Java,C ++
建议的框架/工具:
示例实现:
构建诸如Google或Bing之类的网络搜索引擎。虽然不要从他们那里复制
建议的语言:网络语言。真正的工作将以Python,PHP,SQL,Node等语言在后端发生。
建议的框架/工具:django如果使用python,则数据库的mysql,如果需要一个
示例实现:SEARX是一种开源搜索引擎,主要是在Python和JavaScript中编码的
构建一个工具,以跟踪您已下载或上传到Internet的数据。请给您每周的用法报告(或在您获得超过指定使用限制时通知您)。作为奖励挑战,可以预测最高使用时间。
建议的语言:
建议的框架/工具:
示例实现:
根据您建立理想的产品着陆页。选择一个产品,构建页面并在您的投资组合上展示。
建议的语言:
建议的框架/工具:
示例实现:
博客是每个人都必须拥有的(根据我的说法)。将这个事实结合在一起,即您在从头开始构建自己的博客时学到了很多东西,瞧!
建议的语言:JavaScript,Python,Ruby
建议的框架/工具:Jekyll(用于Ruby),Django/Flask(Python)
示例实现:
如果您有兴趣展示所构建的内容,请建立一个投资组合网站!建立一个网站以显示所有内容,将教您很多有关网站设计的信息(如果您以前从未构建过网站)。
建议的语言:JavaScript,HTML,CSS
建议的框架/工具:gatsbyjs
示例实现:
尽管这似乎是一项小任务,但构建动画导航切换将教您有关Web开发的很多信息。探索您可以玩的所有想法,看看是否可以建立真正有趣的东西!
建议的语言:JavaScript,CSS
建议的框架/工具: -
示例实现:
您能从提供的IP地址找到该国吗?编写一个可以帮助您的脚本。对于奖励积分,请尝试从IP地址找出更多本地位置。
建议的语言:
建议的框架/工具:
示例实现:
构建一个聊天机器人,您可以在无聊时与之交谈。对于奖励积分,请使用机器学习/AI使其变得聪明。我建议您将其作为简单的CLI应用程序实现。
建议的语言:
建议的框架/工具:
示例实现:
描述
建议的语言:
建议的框架/工具:
示例实现:
建立一个将要么
建议的语言:
建议的框架/工具:
示例实现:
为Messenger构建一个机器人,可以执行一些琐碎的任务,例如翻转硬币,掷骰子,介绍新闻并在无聊时与您聊天。
建议的语言:
建议的框架/工具:
示例实现:
为WhatsApp构建一个机器人,该机器人可以从互联网,新闻,Wikipedia条目和其他内容中刮擦信息。使其能够跟踪您/其他人的生日等某些活动,并向您/其他人发送自动消息。
建议的语言:建议的框架/工具:实施示例:
用户选择一个类别,并从给定类别中获取一组随机问题。实施多项选择测验应用程序,以防止更多的并发症。
建议的语言:
建议的框架/工具:
示例实现:
构建一个可以调节用户网络连接的防火墙软件,并阻止/通知任何网站/内部软件/外部代理的可疑操作。
建议的语言:
建议的框架/工具:
示例实现:
构建一个可以跟踪给定作品(待办事项,正在进行,完成)的各个阶段的待办事项应用程序。对于奖励积分,使其可与重复任务一起使用,并结合任务调度(何时执行任务/任务截止日期)。
建议的语言:
建议的框架/工具:
示例实现:
构建一个简单的文本编辑器,可以帮助您打开,阅读和写入文本文件。对于奖励点,诸如查找工具和Regex搜索和更换之类的功能。
建议的语言:JavaScript,Java
建议的框架/工具:电子(JavaScript框架)
示例实现:Atom编辑器,记事本++
这可能是列表中最难的,也是最模糊的。设计一个基于文本说明的系统,并根据文本描述生成应用程序(或至少应用程序接口)。您也可以使用拖放功能来让用户构建应用程序。
建议的语言: -
建议的框架/工具: -
示例实现:Appgyver是没有代码应用程序构建器的一个很好的例子
构建一个应用程序,可让用户绘制任何内容并将其保存为图像。如果要多点积分,请添加着色和其他酷炫的东西,例如动画。
建议的语言:
建议的框架/工具:
示例实现:
构建一个应用程序/Web应用程序,该应用程序将使任何人都会创建调查问题并通过电子邮件将其散发以记录响应,然后分析收集的数据。
建议的语言:
建议的框架/工具:
示例实现:
构建一个软件,可以帮助您浏览任何HTML页面。对于奖励积分,请添加其他功能,例如Chrome和Firefox中的功能。
建议的语言:
建议的框架/工具:
示例实现:
构建一个应用程序,该应用在当前时间在您所在的位置。您可以在后台使用Web刮板来收集数据,也可以使用天气API。
建议的语言:
建议的框架/工具:
示例实现:
构建一个将正确格式化用户输入方程式的应用程序。我个人发现,使用特殊软件以像乳胶一样正确地编写和显示方程式,因此,如果您构建可以将普通英语文本转换为正确格式化的方程式的东西,请使用我!
建议的语言:
建议的框架/工具:
示例实现:
构建一个可以从MP3文件播放音乐的音乐播放器应用程序,并且还具有向前,倒带,暂停和播放的功能。
建议的语言:
建议的框架/工具:
示例实现:
构建秒表应用程序/Web应用程序。它也应该能够打败时间。
建议的语言:
建议的框架/工具:
示例实现:
构建一个可以缩短用户提供的任何URL的Web应用程序。您可以编码缩短用户提供URL或使用API的算法。
建议的语言:
建议的框架/工具:
示例实现:
建立一个可以处理假现金的付款接口(如果您能处理真实的货币,更好,尽管我不知道您是否必须为此采取额外的步骤)。用户应该能够接收和汇款,并检查其当前余额。
建议的语言:
建议的框架/工具:
示例实现:
构建一个应用程序/Web应用程序,该应用程序将覆盖文本覆盖图像,以便用户可以构建模因。
建议的语言:
建议的框架/工具:
示例实现:
构建一个Pomodoro计时器,可以帮助您在执行任务时在适当的时间休息。对于奖励点,包括不同的pomodoro计时器格式。
建议的语言:
建议的框架/工具:
示例实现:
构建一个使您可以练习打字的应用程序。使其生成随机的句子,并查看您可以输入句子的速度。打字是许多开发人员完全忽略的东西,但这是使用计算机工作的人最重要的技能之一。
建议的语言:
建议的框架/工具:
示例实现:
构建一个软件,该软件将在您编写的任何文本中拼写检查并检查简单的语法错误。有关其他要点/复杂性,请尝试猜测文本的心情(快乐文字,正式字母等),并提出适当的更改。
建议的语言:
建议的框架/工具:
示例实现:
构建一个将向您提供可靠来源的每日新闻的应用程序。确保您将有关来自不同站点的给定新闻标题的独特信息汇总,以删除给定来源中可能存在的任何偏差。
建议的语言:
建议的框架/工具:
示例实现:
构建一个将跟踪您每天吃的卡路里的应用程序。尝试还将有关其他宏观和微营养素的信息结合在一起,以提供更完整的图片。
建议的语言:
建议的框架/工具:
示例实现:
构建一个应用程序(电话应用程序会更好),该应用程序发现一条路线是如何拥挤的,然后建议您一条更好的途径到达目的地。
建议的语言:Java,Kotlin,Swift
建议的框架/工具:Android Studio
示例实现:
建立一个虚拟助手,该虚拟助手将帮助您执行诸如呼叫人员,安排任务,创建待办事项清单,记笔记等任务,..您明白了。
建议的语言:
建议的框架/工具:
示例实现:
建立一个防病毒软件,可保护您免受病毒和其他计算机蠕虫的影响。确保您经常更新它以处理新病毒。
建议的语言:
建议的框架/工具:
示例实现:
构建一个可以让您通过Internet的任何地方进行视频的应用程序。
建议的语言:Python,Java,C ++用于桌面应用
建议的框架/工具:
示例实现:NextCloud Talk和Jitsi是开源视频通话软件
为假设的应用程序(或者更好的是您附近的真实图书馆)构建一个将有助于管理的应用程序。您需要跟踪自己拥有的书籍,订购书籍,可以访问图书馆的人,借来的书籍,退回的书籍以及其他相关任务。
建议的语言:
建议的框架/工具:
示例实现:
构建自己的数据库管理系统,例如MySQL或PostgreSQL。它不必与它们兼容,但是它确实需要帮助用户有效地管理其数据并创建关系表。
建议的语言:
建议的框架/工具:
示例实现:
构建一块软件,可以分析图片(或更好的实时凸轮供稿),并在图像中以面部或盒子的形式分析标签面。
建议的语言:Python(或您想学习的任何其他语言)
建议的框架/工具:OpenCV
示例实现:
构建一个垃圾邮件分类器,该分类器会从您真正不想看的人那里过滤广告和其他未缴纳的电子邮件。
建议的语言:
建议的框架/工具:
示例实现:
构建一个浏览器扩展程序,可在网站上阻止电影破坏者。我将其放在AI中,因为您必须想到一种不断变化的算法,该算法应该足够聪明,可以从文本中识别剧透。
建议的语言:
建议的框架/工具:
示例实现:
同样的歌曲感到无聊,但不知道接下来要做什么?建立一个AI,根据您更可能喜欢的口味建议您的音乐。
建议的语言:
建议的框架/工具:
示例实现:
构建一个应用程序将文本从一种语言转换为另一种语言。对于奖励点,包括一个图像转换器,可以从图像中获取文本并将其翻译。
建议的语言:
建议的框架/工具:
示例实现:
构建一个可以从相机视频中识别手势的软件,然后根据手势执行某些任务。
建议的语言:
建议的框架/工具:
示例实现:
输入视频并获取字幕!构建一个软件,该软件会自动从提供的视频中创建字幕。一开始似乎很困难,但是要查找自然语言处理,以查看机器在理解人类语言方面已经走了多远。
建议的语言:Python(因为可用库真的很容易实施)
建议的框架/工具:autoSub
示例实现:您可以在此处引用文档,也可以检查此处提供的步骤。
构建一个可吸收公司名称和一些相关关键字的软件,以为用户生成全新的徽标。使徽标可编辑,以便用户不喜欢生成的输出,可以进行任何更改。
建议的语言:
建议的框架/工具:
示例实现:
构建一个推荐系统,可让您或任何用户选择要观看的下一部电影。不用使用精心研究的算法来复制现有的电影推荐人,而是尝试提出自己的算法并进行测试。
建议的语言:python(或您喜欢的任何其他语言)
建议的框架/工具: -
示例实现:有很多,Netflix推荐系统,电影镜头等
类似于视频翻译器,但是现在您需要将音频翻译成手语。手语部分可以是一系列图像或视频的形式。
建议的语言:
建议的框架/工具:
示例实现:
该项目在技术上将具有挑战性,并将加深您对计算机和操作系统如何工作的理解。从头开始建立操作系统是一项非常艰巨的任务,但是您肯定会找到一种方法。
建议的语言:C/C ++等低级语言。
建议的框架/工具: -
示例实现:LFS是一个解释创建Linux OS的每个步骤的项目
构建一个Web应用程序,以可视化可以用来洗牌标准卡片的不同改组算法。
建议的语言:
建议的框架/工具:
示例实现:
构建一个网页/视频,将可视化不同的排序算法。您可以使用不同种类的可视化效果:点,条,颜色条,圆形分散点等。
建议的语言:处理,JavaScript
建议的框架/工具:P5.js(JavaScript)
示例实现:
制作将浏览您的代码(无执行)的软件,并检查可能在执行过程中导致任何问题的任何不一致或错误(语法错误,缩进等)。
建议的语言:您对建议的框架/工具感到满意的任何语言:
示例实现:
如果要构建操作系统,则肯定需要命令行终端。尝试将Bash Shell或Windows PowerShell作为一个独立的项目克隆,以使其在构建自己的操作系统时变得更加容易。
建议的语言:
建议的框架/工具:
示例实现:
编写一个浏览您的OOPS代码的脚本,并为您的代码创建一个良好的UML图。
建议的语言:
建议的框架/工具:
示例实现:
为不同的探路算法制作可视化器。将其添加到迷宫制造商中,您拥有一个可以生成和解决迷宫的程序。
建议的语言:处理,JavaScript
建议的框架/工具:P5.js(JavaScript)
示例实现:
制作适当的版本控制系统,例如GIT,可以跟踪您对项目的任何更改。
建议的语言:
建议的框架/工具:
示例实现:
从头开始编码编程语言。该项目将使您了解为什么语言是按照其方式结构的,以及哪种语言适合哪些任务。因此,有很多编程语言包含一些非常奇怪(或有用的)功能,以使您的语言脱颖而出(例如,查看Brainfuck)。
建议的语言:
建议的框架/工具:
示例实现:
构建一个将为您加密和解密文本的软件。合并了很多算法,以为用户提供灵活性。
建议的语言:C,C ++,Java,Python
建议的框架/工具:
示例实现:
构建一个可以管理您在不同网站上使用的不同密码的软件。对于奖励积分,将包含一个随机密码生成器。
建议的语言:
建议的框架/工具:
示例实现:
构建一个可以加密和锁定选定文件夹的软件。没有正确的密码,不得访问/复制/移动文件夹的内容。
建议的语言:
建议的框架/工具:
示例实现:
构建一个网站/应用程序,该网站/应用程序将检查给定密码的强度。为了使其更加幻想,请将密码的强度放大(请查看示例)。
建议的语言:
建议的框架/工具:
示例实施:我的密码有多安全?
编码乒乓球游戏。使其成为多人游戏和视觉吸引力。
建议的语言:Python(或其他任何其他语言)
建议的框架/工具:Pygame(Python)
示例实现:
添加到您上面创建的Pong程序。创建一个AI对手以在单人模式下对抗。
建议的语言:Python(或其他任何其他语言)
建议的框架/工具:Tensorflow,Pytorch,OpenAI/Gym
示例实现:
尝试编码经典的风险棋盘游戏。确保您知道所有规则,并在编码之前正确理解游戏。
建议的语言:
建议的框架/工具:
示例实现:
从头开始编写国际象棋游戏。建造一个板,碎片(您可以在此部分使用图像)。规则中的代码,并确保不允许无效的动作。
建议的语言:JavaScript,Python,您要掌握的任何其他语言
建议的框架/工具:
示例实现:Chessboard.js
这是列表中最简单的项目之一。为了获得其他挑战,请尝试生成不同的地图以播放。
建议的语言:您对的任何语言
建议的框架/工具:
示例实现:
从四损开始到游戏界面,编码俄罗斯方块的游戏。 Web应用程序更好,因为它可以让您从任何地方玩。对于其他挑战,请尝试实现一个简单的HTML和JavaScript版本,而无需任何其他框架或库以提供帮助。
建议的语言:JavaScript,HTML
建议的框架/工具:
示例实现:
现在,您很可能已经建立了国际象棋游戏,请建立一个可以与之对抗的AI。为了启发,请研究提供的示例。这里的挑战是制作足够快的人工智能。最简单的国际象棋AIS确实很慢(移动大约需要一分钟或更长时间)。通过通用国际象棋界面与其他程序(例如其他程序)进行国际象棋引擎接口。然后,您可以在线对其他机器人/玩家进行测试。
建议的语言:Python,JavaScript
建议的框架/工具:Chessboard.js(JavaScript)示例实现:Stockfish AI,Leela Chess Zero
构建一个扮演蛇的简单蛇AI。为了增加挑战,请生成随机地图,然后训练您的AI在您生成的任何随机地图中播放。
建议的语言:
建议的框架/工具:
示例实现:
构建一个简单的程序,该程序将通过用户提供的种子通过程序生成生成随机的地形图。
建议的语言:
建议的框架/工具:
示例实现:
建立经典的战舰游戏。您可以使用任何2D图形模块构建使用图形的CLI应用程序或更好的应用程序。
建议的语言:Python(或您想学习的任何语言)
建议的框架/工具:Pygame(Python)
示例实现:
这是您可以构建的最简单的困难游戏之一。您可以将图像用于管道和鸟类,也可以为该项目生成自己的自定义鸟和管道。
建议的语言:
建议的框架/工具:
示例实现:
为TIC-TAC-TOE或图形接口构建CLI应用程序。有趣的想法之一是让用户绘制XS和OS,然后让机器自动识别您是否绘制了X或O。
建议的语言:
建议的框架/工具:
示例实现:
实现一个经典的内存拼图,用户必须单击两个类似的卡以消除它们。一开始就随机洗牌,并为用户提供固定数量的机会或清除板的固定时间。
建议的语言:
建议的框架/工具:
示例实现:
视频游戏在物理引擎上工作。建立自己的。您以后可以使用此引擎来构建游戏或进行模拟。尝试构建可以处理系统中碰撞,运动,加速度和其他力量的2D或3D物理引擎。您可能首先需要了解一些物理学才能构建某些东西,因此请花点时间为此。
建议的语言:处理(您对作品也感到满意的任何其他语言)
建议的框架/工具:
示例实现:
为Flappy Bird游戏设计AI。尝试一些学习算法来训练您的网络 - Q学习,整洁等。构建完美的AI,它将比您(或其他任何人)更好地发挥脆弱的鸟。
建议的语言:
建议的框架/工具:
示例实现:
在tic-tac-toe中构建一个无与伦比的AI(始终赢或至少赢得)。与其仅仅在进行硬编码时,还可以构建一个学习如何玩游戏然后制定胜利策略的AI。
建议的语言:
建议的框架/工具:
示例实现:
为电梯构建模拟。这似乎是一个随机的模拟,但是您需要在实施此事之前进行很多思考,当按下两个按钮时要转到哪个楼层?如果您添加偏爱上升或下降的偏好,是否会有任何更改?等等。
建议的语言:
建议的框架/工具:
示例实现:
建立对整个世界的模拟。尽可能详细。当您感到卡住并慢慢改进时,请保持简单。如果它使事情变得更容易,将其视为自我维持的游戏。对于奖励积分,请在系统中添加AI,以使其自行起作用。
建议的语言:C ++(或C-您需要快速的语言进行模拟)
建议的框架/工具:统一(适合可视化)
示例实现:BIBITES,塞巴斯蒂安·莱格(Sebastian Lague)模拟生态系统
构建一个工具,该工具将为您玩/构建的游戏(如探路者或神性)生成随机字符:原始罪。首先实现随机字符生成器,然后对其进行调整以制作您想要的字符(添加AI)。
建议的语言:
建议的框架/工具:
示例实现:
康威的人生游戏模拟了遵守算法定律的简单细胞的生活。您可以从Wikipedia页面中阅读算法规则并实现它们。使该程序能够图形渲染以显示最终产品。
建议的语言:处理,JavaScript
建议的框架/工具:P5.js(JavaScript)
示例实现:
构建一个简单的Web应用程序,以便以良好的价格出售您垂涎的物品时通知您。您可以使用网络刮板来拉动物品的产品页面,并将任何价格更改通知您。
建议的语言:
建议的框架/工具:
示例实现:
创建一个简单的接口(Web应用程序/电话应用程序),您可以用来添加和分类费用。根据输入生成每月报告,并为“一如既往地在咖啡上花费太多”等事情编写自定义警报。
建议的语言:
建议的框架/工具:
示例实现:
该应用程序(或服务)应从网络中生成新的食谱/刮擦食谱。因此,当您通过食谱烹饪时,您会对其进行评分,以告诉它食谱有多好。
建议的语言:
建议的框架/工具:
示例实现:
构建一个浏览器扩展程序,将任何提供的句子转化为表情符号的组合。您可以使用扩展名来自动更改用户通过消息传递或电子邮件发送的文本,甚至可以使用它来帮助撰写博客文章。
建议的语言:JavaScript
建议的框架/工具:
示例实现:
构建实现正则表达式的搜索工具。有了它,您可以轻松地搜索与您可能正在编写或浏览的网站或文档中的模式匹配的文本。
建议的语言:JavaScript
建议的框架/工具:
示例实现:
编码脚本,该脚本刮擦货币转换率,然后从给定的货币转换为另一起起诉当前市场利率的脚本。
建议的语言:Python,JavaScript
建议的框架/工具:
示例实现:
代码一个拍摄图片然后从图像创建像素艺术的脚本。您可以通过缩小图像来实现这一目标。您还应该能够使用此脚本生成随机艺术。
建议的语言:
建议的框架/工具:
示例实现:
使用用户在给定路径中存在的目录生成类似树的结构。这使您可以看到文件和目录的定位。我们是视觉动物,因此,目录的视觉描述更容易理解。
建议的语言:
建议的框架/工具:
示例实现:
Write a script to generate random usernames that you can use in games or various other places.
Suggested Language : Python or any other language
Suggested Frameworks/Tools : Random (Python Library)
Example Implementation :
Write a script that converts decimal numbers to roman numerals and vice versa. This may seem like an easy task but I assure you its not that easy.尝试一下。
Suggested Language : Python or any other language
Suggested Frameworks/Tools :
Example Implementation :
Project Euler contains mathematical challenges that require programming tools to be solved. There are over 700 problems that you can solve, I urge you to document each solution in a properly organized way (probably build a repo for the solutions) so that you can showcase them online.
Suggested Language : Any language you want to practice
Advent of Code challenges occur every year in the days leading up to Christmas. They include lots of fun programming challenges that can help you develop your chops in a programming language that you want to master.
Suggested Language : Any language you want to master
Kaggle offers fascinating challenges to introduce you to the basics of machine learning with Python or R: Use a real dataset from the Titanic passenger log to predict which passengers were most likely to survive the disaster.
Suggested Language : Python or R