开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《从头开始 vanillawebprojects》
今日推荐英文原文:《Bored? 7 Fun Things You Can Build》

今日推荐开源项目:《从头开始 vanillawebprojects》传送门:GitHub链接
推荐理由:新手上路最开始用的就是基础的 HTML+CSS+JS 三件套,而在框架和库越来越多的现在,更多的时候使用它们来提高效率是常见的选择。这个项目则是反过来,是使用老三件套实现的一些小项目合集,不管是为了更好理解框架,还是为了验证一下自己的知识水平,重新操刀老三件套都不失为一个好选择,要知道不管是什么框架和库,基础都是由这三板斧搭建起来的。
今日推荐英文原文:《Bored? 7 Fun Things You Can Build》作者:Daan
原文链接:https://medium.com/better-programming/bored-7-fun-things-you-can-build-91833439b5d4
推荐理由:无聊时的精选,学生党接下来可还要待家里好久呢

Bored? 7 Fun Things You Can Build

From Tetris to smart contracts and more

There is no real secret when it comes to becoming a great developer. The thing that separates great developers from mediocre developers is the effort they’ve put in. Unfortunately, there are no shortcuts. Getting your hands dirty is what will make you grow as a developer.

So while you’re on your way to becoming a fantastic developer, why not do it making something that’s actually fun to build?

What’s fun to build? You’ve probably thought about this for a while. You want to build something but you don’t know what…well, let me help you out.

In this piece, I’ll share seven projects with you that are both challenging and fun.

Project 1: Hardware That Waters Your Plants


Photo by Harrison Broadbent on Unsplash

This is a project I’ve been wanting to work on for myself for quite some time. When developing, I spend a lot of my time on web development. But software development is just so much more! If you like the combination of software and hardware this project is for you.

This project aims to water your plants automatically. All you need for this is an Arduino (or Raspberry Pi), a moisture sensor, and a water pump. The goal is to write a piece of code that keeps your plants alive for as long as possible.

What you’ll learn:
  • The basic usage of an Arduino (or Raspberry Pi).
  • Reading sensors.
  • The interaction between software and hardware.

Project 2: Tetris


Check the GitHub repository here

Building Tetris is a great way to get a feeling of how games are developed from a basic perspective. If you want to make an app you could use Swift for this project. If you want to make this using HTML5, you could go for a JavaScript framework, like React or Vue.

Things you’ll learn:
  • The movement of entities.
  • The detection of key presses.
  • Collision detection.
Find the example GitHub repository here.

Project 3: Smart Contract


The official Solidity documentation

Cryptocurrency has been a hot topic for a few years now. Despite this, there still aren’t many developers capable of writing smart contracts.

Many blockchains that use smart contracts — the Ethereum blockchain currently being the biggest of them. The programming language that’s used for these Ethereum smart contracts is called Solidity.

To get started with writing a smart contract you could start with a smart contract that sends transactions. If you want a more advanced smart contract, you could make one that functions as an escrow.

What you’ll learn:
  • A whole different mindset when it comes to programming.
  • Blockchain.
  • The basics of Solidity.
You can find a great starting point for Solidity here.

Project 4: Classification of Iris Flowers


Source

If you are new to the world of machine learning, then the classification of iris flowers is a great way to get a grasp of what machine learning is all about. That’s because this project is known as the “Hello World” of machine learning projects.

The aim of this project is to classify iris flowers among three species (setosa, versicolor or virginica) based on measurements of length and width of sepals and petals. This project is perfectly suited being made in Python. All you need to get started is the data set.

What you’ll learn:
  • You will get a grasp of machine learning

Project 5: Contribute to Open Source


Want to know more? Check this

If you’re not the type of person that likes doing solo projects, you could always choose to contribute to open source. It might seem scary at first sight but there are lots of projects that could use a little help.

If you don’t feel comfortable enough to submit pieces of code, that’s fine. Contributing can be as simple as checking a pull request.

Pick a project you like and start helping people out!

Here’s a good starting point if you want to contribute to an open-source project on GitHub.

What you’ll learn:
  • Open source is fun and engaging, you meet awesome people.
  • Huge variety in projects.
  • Lots to learn from different people.

Project 6: Creating Your Own Trading Algorithm


Photo by M. B. M. on Unsplash

Creating your own trading algorithm is a project that requires a lot of finetuning. But before you can start building your algorithm you should do some research on trading strategies. Once you’ve got your strategy figured out, you can use a free stock API, like IEX Cloud, to check current the prices of your stocks.

Let the algorithm run for some time and see how it performs. There are plenty of stock simulators you can use that will let you play with virtual cash instead of real cash.

What you’ll learn:
  • Learning and implementing trading strategies (algorithm).
  • Interacting with an API.
  • You could go the extra mile by letting the algorithm decide which stocks or assets to buy.

Project 7: Dashboard


Source

There are lots of out-of-the-box projects available when it comes to dashboards — but nothing’s as fun as building your own!

This is one of the easier projects from this list. Very useful for developers who are just starting out. You can make this in basic HTML5 and CSS but if you want to go the extra mile, add React or Vue into the mix.

What you’ll learn:
  • Web development basics, like HTML5 and CSS.
  • Implementing graphs.
  • Interacting with the database.
  • Don’t want to do all the CSS yourself? Let Tailwind help you out!

Now it’s Your Turn!

It’s time to do some real work and have fun while you learn new things. These projects should keep you busy for quite some time. Picked one and just go for it!

I would love giving you feedback on your project — I’m looking forward to seeing the results.
If you can’t have fun, there’s no sense in doing it — Paul Walker
Happy coding!
下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/