Don’t Just Learn a New Language/framework, Implement It as a Running Open Source Project
“For the things we have to learn before we can do them, we learn by doing them.” ― Aristotle, The Nicomachean Ethics. Imagine you already read 3 books about cycling. Then someone gave you a cycle and asked to ride it, will you be able to ride it? The simple answer is “No”. It is not about how much have you read about cycling or how many videos did you watch about it. It is about getting on a cycle, balancing on it, learning the feet, hands and eye co-ordination. Same goes for learning a new tech skill, a new language or framework.
Now if you think how will I do this new project I don’t even know language ‘X’ or framework ‘Y’ stop complaining. Maybe you are a new starter in tech or coding but you need to know how to learn new things. The best way to learn something new is by doing it. This post will focus on getting some common things right. It will help you get from I want to learn ‘X’ to I have a project running in ‘X’, so follow on. If you are convinced about doing a project to learn something new, open source it. Github is the leading service to host your open source projects. Then you can leverage lots of services for free. This post will be equally useful for coding new starters as well as experienced software engineers.
Write a project to learn that language/framework, open source it then leverage services for free. Don’t just watch courses, read the docs and then find solutions. Learn by doing. Use git and implement docker in your project. Code correctly add a code quality check service to be aware of the best practices, deploy your project to get a working URL for it.
Don’t just watch courses, read the docs and find solutions
Learn Git to collaborate
“No man is an island”, especially in tech you generally don’t work alone. You are part of a team. So even when learning something new try to find someone who you can collaborate with. Git is immensely popular compared to any of its competition. It is beneficial when there is more than 1 person writing code for a project. You should learn git by doing, check the Github tutorial . I would highly recommend the learn by doing section. After you push it to Github anyone can potentially contribute to it.
Implement docker, get over works on my machine syndrome
In 2018, if you want to make your application more accessible, use Docker . This will also help a lot in increasing contribution for your open source project. Running your project locally with docker compose will be like executing 2 commands. Docker has many advantages. For a beginner, it is a way to make sure your app runs the same way on your machine, your friend’s machine. It will also be the same on the server you deploy your app to. As long as it runs on Docker well, you can rest assured it will run without issues on any environment.
Add code quality check
Deploy your project
Now you are writing a new project to learn your favourite ‘X’ or ‘Y’. You have written some parts of it, you are collaborating with Git and have the code open source on Github. You have Docker in place and code quality checks run on each push, great! But you can’t show it to your friend who is living in a different city/country right? Wrong!
You can use different services to deploy your web application. With a URL you can show it to your friend, a recruiter or anyone who knows the URL. You can deploy it for free to services like Heroku or Zeit Now . If you have Dockerized your open source app I would recommend Zeit Now. With the recent Github integration , Zeit Now will give a new URL to each pull request. This makes testing a breeze. You can check an example on a demo currency converter API app I wrote.
To conclude, learning by doing is the best way to learn a new thing. Your aim should be to not only make it work but do it following the best practices. That is where code quality comes into play. If you can add automated tests and continuous integration it will be icing on the cake for a starter. Wish you all the best for learning by doing!
- Originally published at geshan.com.np .
- 计算机视觉领域新标杆：Facebook 开源 ResNext101 模型，全面刷新 ImageNet 记录
- 牛逼了！用 IDEA 扒出了开源组件导致FGC的原因
- Rust 的 GUI 框架生态概览
- 开源安卓恶意软件窃取用户隐私信息，Google Play强制删除无效
- 腾讯首个 AI 开源项目 Angel 发布 3.0 版本：迈向全栈机器学习平台
- 华为史上最强芯片昇腾910面世，算力超Tesla V100一倍，AI框架MindSpore明年开源