My name is Saptarshi Hatua, and I am a B.Tech Computer Science student from India.
I recently joined the OpenStreetMap community because I want to learn open-source development and contribute to OpenStreetMap. I am currently learning HTML, CSS, C++, Git, and GitHub, and I hope to participate in Google Summer of Code in the future.
I would like to start contributing now, but I’m not sure where to begin. Could you please recommend beginner-friendly repositories, issues, or documentation? I would also appreciate any advice on how to make my first contribution.
Thank you for your time. I look forward to learning from and contributing to the community.
It sounds to me like OP is asking about contributing to the OSM codebase, not the database. Probably still good advice though; learning how the existing tooling works is a good first step.
Probably also worth noting there are other tools besides just the OpenStreetMap core which could use more devs. E.g. StreetComplete, OsmAnd, Vespucci, AllThePlaces, MapRoulette, etc. Try them all and see which projects appeal to you.
There’s a wiki page designed as an introduction for new developers. It’s not especially up to date**, but does mention some of the pieces.
Unusually for this sort of big project, many of the things that people do with OpenStreetMap data are not directly part of the OpenStreetMap project, so it is very easy to do cool things with OSM and the data without committing a single line of code to the OSM repository. What I’d suggest is to say what sort of things you’re interested in contributing to, for example:
How people contribute data (editor software)
How people see what people have added to OSM (renderers, of many different sorts, raster, vector and other)
How people use OSM for routing (routers, pedestrian, bicycle, car, other)
How people locate OSM data (geocoding and reverse geocoding
What I’d also suggest is getting familiar with contributing data to OSM - for example, map the things in your neighbourhood. That way you’ll be familiar with the concepts and how they connect to each other.
** This paragraph hasn’t been accurate for around 14 years
People haven’t written code in Mapnik in about 14 years. The only time you’d go in there** is if you want to understand why a CartoCSS change isn’t working.
** shudder. Example CartoCSS. Example Mapnik. Deliberately simple versions of both chosen.
It’s a library that is used by other things but is almost entirely irrelevant even to people who develop map styles that depend on it. The are lots of things in that category (the Boost geometry library is another) but there is absolutely no point suggesting that someone who is learning about OSM, and the software around it, to start with that.