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 .
- ICLR 6-6-6！自注意力可以替代CNN，能表达任何卷积滤波层丨代码已开源
- App 1 | 在 Mac 上管理 Android 设备，这款免费开源的小工具即连即用：OpenMTP
- 开源工具 | H1ve攻防训练平台（解题 AWD）
- Free Software Foundation suggests Microsoft 'upcycles' Windows 7... as open source
- Our Pledge to Open Source
- Day2-开箱体验keystoneJS v5
- Opening Up Search Is an Ethical Imperative
- Dfinity launches an open source platform aimed at the social networking giants
- docker-18.06.3-ce启动panic: invalid page type: 0: 0的解决处理
- CI构建环境下的docker build最佳实践
- 全网最细 | 教你如何在 docker 容器下使用 mmdetection 训练自己的数据集
- 基于docker-compose的Gitlab CI/CD实践&排坑指南
- 首创诠释docker的Formulas: Windows 7 Tiny Linux 4.19 XFS Vmware Workstation = super ma...
- docker golang 开发环境