# Google Skills Project Programming Languages: Python, Bash, JavaScript & Markdown Guide

> Discover the programming languages in the google/skills project: Python for examples, Bash for automation, JavaScript for UI, and Markdown for documentation.

- Repository: [Google/skills](https://github.com/google/skills)
- Tags: programming-languages
- Published: 2026-08-14

---

**The google/skills repository uses Python for executable cloud examples, Bash for CLI automation scripts, JavaScript for minimal UI components, and extensive Markdown documentation containing reference snippets for additional languages.**

The **google/skills** project serves as Google's official collection of tutorial skills for Google Cloud Platform. Rather than shipping full applications, this repository provides lightweight, runnable demonstrations that developers can copy, modify, and deploy. Understanding the **programming languages used in the google/skills project** helps contributors and learners navigate its structure efficiently.

---

## Primary Programming Languages in google/skills

The repository follows a deliberate minimalism philosophy. According to the source code organization, four languages dominate the actual file distribution.

### Python: The Core Automation Language

**Python** handles the majority of executable logic in google/skills. The repository contains dozens of small scripts that interact with Google Cloud APIs, validate configurations, and orchestrate `gcloud` workflows.

Key characteristics of Python usage:
- Scripts typically range from 20-100 lines
- Heavy reliance on `subprocess` for CLI integration
- Standard library focus (no complex dependency chains)

The file [`skills/cloud/developer-device-platform-basics/scripts/demo_adb_forwarder.py`](https://github.com/google/skills/blob/main/skills/cloud/developer-device-platform-basics/scripts/demo_adb_forwarder.py) exemplifies this pattern:

```python

# demo_adb_forwarder.py – forwards ADB traffic to a remote device

import argparse, subprocess, sys

parser = argparse.ArgumentParser()
parser.add_argument('--device_session')
parser.add_argument('--ttl')
args = parser.parse_args()

cmd = [
    'adb', 'forward', '--listen', f'tcp:{args.ttl}',
    f'tcp:{args.device_session}'
]
subprocess.check_call(cmd)
print('Forwarder started')

```

Another representative Python file is [`skills/cloud/cloud-monitoring-chart-generation/scripts/validate_chart.py`](https://github.com/google/skills/blob/main/skills/cloud/cloud-monitoring-chart-generation/scripts/validate_chart.py), which validates Chart protocol buffer files using Python's proto parsing capabilities.

---

### Bash/Shell: CLI Workflow Automation

**Bash scripts** comprise the second-largest executable language category. These handle provisioning, validation, and environment setup tasks where shell primitives outperform Python.

Common Bash patterns in the repository:
- `gcloud` command batching
- File globbing for multi-resource operations
- Environment variable propagation

The script at [`skills/cloud/gke-tpu-metrics-monitoring/scripts/validate_queries.sh`](https://github.com/google/skills/blob/main/skills/cloud/gke-tpu-metrics-monitoring/scripts/validate_queries.sh) demonstrates this approach:

```bash
#!/usr/bin/env bash

# validate_queries.sh – runs a collection of stored queries against a project

PROJECT=$1
for q in queries/*.textproto; do
  echo "Running $q on $PROJECT"
  gcloud monitoring dashboards create "$q" --project="$PROJECT"
done

```

Similarly, [`skills/cloud/gke-workload-security/scripts/audit_cluster.sh`](https://github.com/google/skills/blob/main/skills/cloud/gke-workload-security/scripts/audit_cluster.sh) performs security posture audits using native `kubectl` and `gcloud` integrations.

---

### JavaScript: Minimal UI Layer

**JavaScript** appears sparingly and only where browser-side interactivity is required. The repository avoids frontend frameworks, using vanilla JS for lightweight status indicators and dashboard widgets.

The single significant JS asset lives at [`skills/cloud/gke-app-onboarding/assets/index.js`](https://github.com/google/skills/blob/main/skills/cloud/gke-app-onboarding/assets/index.js):

```javascript
// index.js – renders a minimal status card on the GKE onboarding page
document.addEventListener('DOMContentLoaded', () => {
  const card = document.createElement('div');
  card.textContent = 'GKE onboarding ready!';
  card.className = 'status-card';
  document.body.appendChild(card);
});

```

This represents the complete JavaScript footprint—deliberately minimal to maintain focus on backend cloud patterns.

---

### Markdown: Documentation-First Architecture

**Markdown** constitutes the bulk of the repository by file count. These files are non-executable but structurally critical: they define each skill's learning path, embed code examples, and provide architecture diagrams.

Notable Markdown characteristics:
- [`SKILL.md`](https://github.com/google/skills/blob/main/SKILL.md) files serve as entry points for every tutorial
- Code blocks contain snippets in Java, Go, Ruby, PHP, .NET, and other languages
- Frontmatter drives Google Cloud's internal documentation rendering

Example locations include:
- [`skills/cloud/gke-upgrades/SKILL.md`](https://github.com/google/skills/blob/main/skills/cloud/gke-upgrades/SKILL.md)
- [`skills/cloud/gke-autopilot/SKILL.md`](https://github.com/google/skills/blob/main/skills/cloud/gke-autopilot/SKILL.md)
- [`skills/cloud/cloud-run-jobs/SKILL.md`](https://github.com/google/skills/blob/main/skills/cloud/cloud-run-jobs/SKILL.md)

---

## Language Distribution by File Type

| Language | File Extension | Primary Purpose | Approximate Prevalence |
|----------|---------------|-----------------|------------------------|
| Python | `.py` | Executable cloud automation scripts | ~40% of executable code |
| Bash | `.sh` | CLI provisioning and validation | ~35% of executable code |
| JavaScript | `.js` | Browser-side UI components | <5% of executable code |
| Markdown | `.md` | Documentation and tutorials | ~60% of total files |
| Textproto | `.textproto` | Configuration schemas | Supporting format |

---

## Where Other Languages Appear

The **programming languages used in the google/skills project** for direct execution are intentionally limited. However, developers frequently encounter **Java, Go, PHP, .NET, Ruby, and C#** through:

- Embedded documentation snippets in Markdown files
- Reference implementations linked via external repositories
- Protocol buffer definitions that specify multi-language contracts

No complete source files for these languages exist in the repository itself. The design favors Python for immediacy and Bash for systems integration, while offloading production-grade polyglot examples to companion repositories.

---

## Key Source Files by Language

### Python

- [`skills/cloud/developer-device-platform-basics/scripts/demo_adb_forwarder.py`](https://github.com/google/skills/blob/main/skills/cloud/developer-device-platform-basics/scripts/demo_adb_forwarder.py)
- [`skills/cloud/cloud-monitoring-chart-generation/scripts/validate_chart.py`](https://github.com/google/skills/blob/main/skills/cloud/cloud-monitoring-chart-generation/scripts/validate_chart.py)

### Bash

- [`skills/cloud/gke-workload-security/scripts/audit_cluster.sh`](https://github.com/google/skills/blob/main/skills/cloud/gke-workload-security/scripts/audit_cluster.sh)
- [`skills/cloud/gke-tpu-metrics-monitoring/scripts/validate_queries.sh`](https://github.com/google/skills/blob/main/skills/cloud/gke-tpu-metrics-monitoring/scripts/validate_queries.sh)

### JavaScript

- [`skills/cloud/gke-app-onboarding/assets/index.js`](https://github.com/google/skills/blob/main/skills/cloud/gke-app-onboarding/assets/index.js)

### Markdown (Documentation)

- `skills/**/SKILL.md` (multiple locations across cloud service verticals)

---

## Summary

- **Python** drives most executable automation in the google/skills repository, using standard library patterns and subprocess CLI integration.
- **Bash scripts** handle provisioning, validation, and workflow orchestration where shell-native operations excel.
- **JavaScript** appears only for minimal browser-side UI requirements, avoiding framework dependencies.
- **Markdown** dominates file count as the documentation-first architecture, embedding reference snippets for languages not directly used in source files.
- The repository intentionally limits executable language diversity to reduce cognitive load and maintain copy-paste simplicity.

---

## Frequently Asked Questions

### What is the main programming language in the google/skills project?

**Python** is the primary executable language, appearing in approximately 40% of runnable code files. The repository emphasizes small, single-purpose scripts that demonstrate Google Cloud service integration using Python's standard library and subprocess capabilities.

### Does google/skills contain Java or Go source files?

No. While Markdown documentation embeds **Java and Go code snippets** as reference material, the repository contains no complete `.java` or `.go` source files. Production-grade examples in these languages are maintained in separate, linked repositories.

### Why does google/skills use Bash instead of Python for some tasks?

**Bash scripts** excel at CLI-native operations: piping `gcloud` output, iterating over file globs, and environment variable manipulation. The repository uses Bash where these patterns produce more readable, maintainable automation than equivalent Python implementations.

### Are the JavaScript files in google/skills using modern frameworks?

No. The **JavaScript** footprint is deliberately minimal—vanilla ES6 without frameworks. The repository's [`index.js`](https://github.com/google/skills/blob/main/index.js) file at `skills/cloud/gke-app-onboarding/assets/` creates simple DOM elements for status indication, prioritizing zero-dependency deployment.