I'm Simon Zhang, previously worked in Meta as a IOS developer, a newcomer to Swift with several years of iOS experience. However, finding the right channels for in-depth discussions and problem-solving has been a challenge.
So, here's an idea: I'd like to form a collaborative group for new Swift contributors. We can support each other, share knowledge, and grow together. We also wholeheartedly welcome experienced contributors to join and share their insights.
If this interests you, please leave a comment or send me a email through szhang2378@gmail.com. Depending on the responses, I'll set up a WhatsApp or Discord group for us.
Looking forward to embarking on this Swift journey together!
Hey Simon! Always glad to see new contributors take an interest in Swift. I’d be curious if you could elaborate on which channels you explored and why they didn’t seem to be the right fit.
For instance, is there a reason why these forums, or GitHub issues, aren’t suitable for the type of discussions you’re looking to have? It would be great to know what needs current channels are unable to serve and potentially have project-sponsored support for any changes that might need to be made!
Thanks for your reply. Yeah the Swift Forums is awesome, it's opened and welcomed where you could find the answers, so don't get me wrong. But still hard for me to ramp up quickly and I do believe it happens for all new contributors. For example, I failed to build a lots of scheme, didn't know where to find the correct codebase, didn't knew which branch to pull etc etc. So I just want to create a team of dummies, who are frequently blocked and annoyed by entry level questions and scared to ask. Hope that make sense
And in terms of the "type of discussions", I think it would be "All types" for me, which I think was the problem. For me, I'd like to contribute to anything that I could do as a starter point: e.g. write some tests, fix unimportant bugs, refactor some old codes etc. I have a good understanding of Swift and IOS but still I could not find a good task to start. I also tried to apply for the mentorship program but it seems closed already.
All those feelings I have, I think it happens to all new contributors. If the forum does not encourage on small teams, it's okay and understandable. But shall we create a place(maybe a Category) for new contributors to talk, OR create a First Pull Request task for everyone to understand the process, like if you just joined a company, your team would give you a one line change fake task to help people understand in practice.
Swift is quite a big project. It helps to have goal; it gives you some direction.
You say you have a good understanding of Swift. Are there perhaps parts of the standard library which could be improved? That alone has several facets:
Documentation. We have loads of documentation issues, and technically-speaking, they're relatively easy to get started with.
Implementation improvements. Maybe you've been disappointed at the performance of some APIs, and would like to examine them in-depth to look for optimisation opportunities? This will often involve writing benchmarks and tests. You'll have to build the standard library, and benchmarks, and tests, so it's a bit more involved.
New APIs. Perhaps you've experienced frustration and the lack of some API or another in the standard library. You can prototype things in a package, or start a pitch thread with a rough design. People will tell you if they think it doesn't belong in the standard library.
Also bear in mind: there are additional standard library modules such as swift-experimental-string-processing (not really experimental; has been shipping in releases for a while now), as well as supplementary packages such as swift-algorithms and swift-collections. They're all part of the Swift project. Perhaps take a look at their open issues as well, or take a look at their development history as inspiration for the kinds of things they might wish to add.
And of course, if you need fundamental new language features, there's also the compiler.
But yeah, in my opinion it is best to use your own experience with Swift as motivation. Think of some things that you would like to be better and try to implement them. If you're looking for small things, I would start with the standard library and supplementary packages. They are high-impact parts of the project, so they are not "easy", but it is more straightforward for somebody with experience writing Swift code to think of and implement valuable contributions there.