---
title: Dev
description: >-
  You develop software. Your goal is to get observability by writing code. You
  want to have your dependencies emit telemetry for you automatically.
spelling: cSpell:ignore otel
weight: 2
---

OpenTelemetry can help you! To accomplish your goals of having your dependencies
instrumented automatically and instrumenting your own code with our API
manually, we recommend that you learn the following concepts first:

- [What is OpenTelemetry?](/docs/concepts/what-is-opentelemetry/)
- [How can I instrument dependencies without touching their code?](/docs/concepts/instrumenting/#automatic-instrumentation)
- [How can I instrument my application manually?](/docs/concepts/instrumenting/#manual-instrumentation)

If you develop libraries, frameworks or middleware that is used as a dependency
within other software, we recommend that you learn how you can provide telemetry
natively:

- [How can I add native instrumentation to my library?](/docs/concepts/instrumenting-library/)

Next, you can deep dive into the documentations for the language you are using:

- [C++](/docs/instrumentation/cpp/)
- [.NET](/docs/instrumentation/net/)
- [Erlang / Elixir](/docs/instrumentation/erlang/)
- [Go](/docs/instrumentation/go/)
- [Java](/docs/instrumentation/java/)
- [JavaScript / TypeScript](/docs/instrumentation/js/)
- [PHP](/docs/instrumentation/php/)
- [Python](/docs/instrumentation/python/)
- [Ruby](/docs/instrumentation/ruby/)
- [Rust](/docs/instrumentation/rust/)
- [Swift](/docs/instrumentation/swift/)
