You're interested in learning to code. You've made some friends that know Python, Javascript, maybe some C and C++ and they've persuaded you into trying it out. Where do you start?
For me I didn't have a clear path or direction to start in. I started with Objective C. I had been jailbreaking for years and after the release of the iOS 11 jailbreaks I decided I would try creating a tweak. My first tweak was EzRespring which added a respring button to your Control Center. This was such a simple tweak looking back at it but when I started it took me a week just to get working. Working on this tweak introduced me to a whole bunch of new things.
To start, it introduced me to theos and a new language. On top of that it introduced me to the usefulness of GitHub and open source software. And that's what this blog post is going to focus on. How useful open source software can be for a new developer. If it wasn't for GitHub and Andrew Wiik's decision to open source Silo (the framework that EzRespring used), I never would have been able to make this tweak, and maybe I would have given up and never become a developer.
Every language I've learned so far I've taught myself. I haven't taken any courses, read any books, or watched any videos. It's all through trial and error and personal experience. Even though I haven't taken a traditional route of learning to code, I've learned by studying and working with Open Source software. When I first tried to learn Python I would convert Python2 source codes to Python3. This helped me learn how things worked because I'd write everything out line-by-line, and while this was basically copying a project, I wasn't doing it to release and get recognition, I was using it as a learning tool.
So I challenge you to find an open source project and contribute. Just make a pull request no matter how large or little. Even if it's just a typo fix in a README or you're completely porting a piece of backend code from Python to Golang, DO IT! It's not going to hurt. And if you fuck up you will have the maintainers or others in the community there to point out your mistakes and more often than not be willing to help you out.
That's the end of this blog post for now, thanks for reading :)
- Max