You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by me...@apache.org on 2019/01/08 08:25:26 UTC

[beam] branch master updated: Merge pull request #7303: Add Learning Resources page

This is an automated email from the ASF dual-hosted git repository.

melap pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 109eeb8  Merge pull request #7303: Add Learning Resources page
109eeb8 is described below

commit 109eeb81535a1fd4f5d8cc724f3ddbddab326c3d
Author: David Cavazos <da...@gmail.com>
AuthorDate: Tue Jan 8 00:25:15 2019 -0800

    Merge pull request #7303: Add Learning Resources page
---
 .../src/_includes/section-menu/documentation.html  |  16 ++-
 website/src/documentation/index.md                 |   2 +-
 .../documentation/resources/learning-resources.md  | 125 +++++++++++++++++++++
 .../videos-and-podcasts.md}                        |  34 ++----
 website/src/get-started/beam-overview.md           |   4 +-
 website/src/get-started/mobile-gaming-example.md   |   7 ++
 website/src/get-started/quickstart-go.md           |   3 +-
 website/src/get-started/quickstart-java.md         |   3 +-
 website/src/get-started/quickstart-py.md           |   3 +-
 website/src/get-started/wordcount-example.md       |   8 ++
 10 files changed, 176 insertions(+), 29 deletions(-)

diff --git a/website/src/_includes/section-menu/documentation.html b/website/src/_includes/section-menu/documentation.html
index b7ff501..c6355f9 100644
--- a/website/src/_includes/section-menu/documentation.html
+++ b/website/src/_includes/section-menu/documentation.html
@@ -102,6 +102,20 @@
         <li><a href="{{ site.baseurl }}/documentation/programming-guide/#composite-triggers">Composite triggers</a></li>
       </ul>
     </li>
-    <li><a href="{{ site.baseurl }}/documentation/resources/">Additional Resources</a></li>
   </ul>
 </li>
+<li class="section-nav-item--collapsible">
+  <span class="section-nav-list-title">Learning Resources</span>
+
+  <ul class="section-nav-list">
+    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#getting-started">Getting Started</a></li>
+    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#articles">Articles</a></li>
+    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#interactive-labs">Interactive Labs</a></li>
+    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#code-examples">Code Examples</a></li>
+    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#api-reference">API Reference</a></li>
+    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#feedback-and-suggestions">Feedback and Suggestions</a></li>
+    <li><a href="{{ site.baseurl }}/documentation/resources/learning-resources/#how-to-contribute">How to Contribute</a></li>
+    <li><a href="{{ site.baseurl }}/documentation/resources/videos-and-podcasts">Videos and Podcasts</a></li>
+  </ul>
+</li>
+<li><a href="https://cwiki.apache.org/confluence/display/BEAM/Apache+Beam">Beam Wiki</a></li>
diff --git a/website/src/documentation/index.md b/website/src/documentation/index.md
index dce7c8e..803f1b2 100644
--- a/website/src/documentation/index.md
+++ b/website/src/documentation/index.md
@@ -31,7 +31,7 @@ Learn about the Beam Programming Model and the concepts common to all Beam SDKs
 
 * The [Programming Guide]({{ site.baseurl }}/documentation/programming-guide/) introduces all the key Beam concepts.
 * Learn about Beam's [execution model]({{ site.baseurl }}/documentation/execution-model/) to better understand how pipelines execute.
-* Visit [Additional Resources]({{ site.baseurl }}/documentation/resources/) for some of our favorite articles and talks about Beam.
+* Visit [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources) for some of our favorite articles and talks about Beam.
 
 ## Pipeline Fundamentals
 
diff --git a/website/src/documentation/resources/learning-resources.md b/website/src/documentation/resources/learning-resources.md
new file mode 100644
index 0000000..47959e3
--- /dev/null
+++ b/website/src/documentation/resources/learning-resources.md
@@ -0,0 +1,125 @@
+---
+layout: section
+title: "Learning Resources"
+section_menu: section-menu/documentation.html
+permalink: /documentation/resources/learning-resources/
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Learning Resources
+
+Welcome to our learning resources. This page contains a collection of resources that will help you to get started and use Apache Beam. If you’re just starting, you can view this as a guided tour, otherwise you can jump straight to any section of your interest.
+
+If you have additional material that you would like to see here, please let us know at [user@beam.apache.org](mailto:user@beam.apache.org)!
+
+* TOC
+{:toc}
+
+## Getting Started {#getting-started}
+
+### Quickstart
+
+*   **[Java Quickstart](https://beam.apache.org/get-started/quickstart-java/)** - How to set up and run a WordCount pipeline on the Java SDK.
+*   **[Python Quickstart](https://beam.apache.org/get-started/quickstart-py/)** - How to set up and run a WordCount pipeline on the Python SDK.
+*   **[Go Quickstart](https://beam.apache.org/get-started/quickstart-go/)** - How to set up and run a WordCount pipeline on the Go SDK.
+*   **[Java Development Environment](https://medium.com/google-cloud/setting-up-a-java-development-environment-for-apache-beam-on-google-cloud-platform-ec0c6c9fbb39)** - Setting up a Java development environment for Apache Beam using IntelliJ and Maven.
+*   **[Python Development Environment](https://medium.com/google-cloud/python-development-environments-for-apache-beam-on-google-cloud-platform-b6f276b344df)** - Setting up a Python development environment for Apache Beam using PyCharm.
+
+### Learning the Basics
+
+*   **[WordCount](https://beam.apache.org/get-started/wordcount-example/)** - Walks you through the code of a simple WordCount pipeline. This is a very basic pipeline intended to show the most basic concepts of data processing. WordCount is the "Hello World" for data processing.
+*   **[Mobile Gaming](https://beam.apache.org/get-started/mobile-gaming-example/)** - Introduces how to consider time while processing data, user defined transforms, windowing, filtering data, streaming pipelines, triggers, and session analysis. This is a great place to start once you get the hang of WordCount.
+
+### Fundamentals
+
+*   **[Programming Guide](https://beam.apache.org/documentation/programming-guide/)** - The Programming Guide contains more in-depth information on most topics in the Apache Beam SDK. These include descriptions on how everything works as well as code snippets to see how to use every part. This can be used as a reference guidebook.
+*   **[The world beyond batch: Streaming 101](https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101)** - Covers some basic background information, terminology, time domains, batch processing, and streaming.
+*   **[The world beyond batch: Streaming 102](https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-102)** - Tour of the unified batch and streaming programming model in Beam, alongside with an example to explain many of the concepts.
+*   **[Apache Beam Execution Model](https://beam.apache.org/documentation/execution-model/)** - Explanation on how runners execute an Apache Beam pipeline. This includes why serialization is important, and how a runner might distribute the work in parallel to multiple machines.
+
+### Common Patterns
+
+*   **[Common Use Case Patterns Part 1](https://cloud.google.com/blog/products/gcp/guide-to-common-cloud-dataflow-use-case-patterns-part-1)** - Common patterns such as writing data to multiple storage locations, slowly-changing lookup cache, calling external services, dealing with bad data, and starting jobs through a REST endpoint.
+*   **[Common Use Case Patterns Part 2](https://cloud.google.com/blog/products/gcp/guide-to-common-cloud-dataflow-use-case-patterns-part-2)** - Common patterns such as GroupBy using multiple data properties, joining two PCollections on a common key, streaming large lookup tables, merging two streams with different window lengths, and threshold detection with time-series data.
+*   **[Retry Policy](http://blog.nanthrax.net/?p=811)** - Adding a retry policy to a `DoFn`.
+
+## Articles {#articles}
+
+### Data Analysis
+
+*   **[Predicting news social engagement](https://medium.com/google-cloud/predicting-social-engagement-for-the-worlds-news-with-tensorflow-and-cloud-dataflow-part-1-b92ba8f14a7)** - Using multiple data sources, many common design patterns, and sentiment analysis to get insights into different news articles for TensorFlow and Dataflow.
+*   **[Processing IoT Data](https://cloud.google.com/community/tutorials/cloud-iot-rtdp)** - IoT sensors are continuously streaming data to the cloud. Learn how to handle the sensor data which can be useful for real-time monitoring, alerts, long-term data storage for analysis, performance improvement, and model training.
+
+### Data Migration
+
+*   **[Oracle Database to Google BigQuery](https://medium.com/google-cloud/oracle-data-to-google-bigquery-using-google-cloud-dataflow-and-dataprep-20884571a9e5)** - Migrate data from an [Oracle Database](https://www.oracle.com/database/index.html) into [BigQuery](https://cloud.google.com/bigquery) using [Dataprep](https://cloud.google.com/dataprep/).
+*   **[Google BigQuery to Google Datastore](https://medium.com/google-cloud/export-bigquery-to-google-datastore-with-apache-beam-google-dataflow-7fff1566f345)** - Migrate data from a [BigQuery](https://cloud.google.com/bigquery/) table into [Datastore](https://cloud.google.com/datastore/) without thinking of its schema.
+*   **[SAP HANA to Google BigQuery](https://cloud.google.com/blog/products/gcp/using-apache-beam-and-cloud-dataflow-to-integrate-sap-hana-and-bigquery)** - Migrate data from a [SAP HANA](https://www.sapphiresystems.com/en-us/products/sap-hana) in-memory database into [BigQuery](https://cloud.google.com/bigquery).
+
+### Machine Learning
+
+*   **[Machine Learning Preprocessing and Prediction](https://cloud.google.com/dataflow/examples/molecules-walkthrough)** - Predict the molecular energy from data stored in the [Spatial Data File](https://en.wikipedia.org/wiki/Spatial_Data_File) (SDF) format. Train a [TensorFlow](https://www.tensorflow.org/) model with [tf.Transform](https://github.com/tensorflow/transform) for preprocessing in Python. This also shows how to create batch and streaming prediction pipelines in Apache Beam.
+*   **[Machine Learning Preprocessing](https://cloud.google.com/blog/products/ai-machine-learning/pre-processing-tensorflow-pipelines-tftransform-google-cloud)** - Find the optimal parameter settings for simulated physical machines like a bottle filler or cookie machine. The goal of each simulated machine is to have the same input/output of the actual machine, making it a "digital twin". This uses [tf.Transform](https://github.com/tensorflow/transform) for preprocessing.
+
+### Advanced Concepts
+
+*   **[Running on AppEngine](http://amygdala.github.io/dataflow/app_engine/2017/10/24/gae_dataflow.html)** - Use a Dataflow template to launch a pipeline from Google AppEngine, and how to run the pipeline periodically via a cron job.
+*   **[Stateful Processing](https://beam.apache.org/blog/2017/02/13/stateful-processing.html)** - Learn how to access a persistent mutable state while processing input elements, this allows for _side effects_ in a `DoFn`. This can be used for arbitrary-but-consistent index assignment, if you want to assign a unique incrementing index to each incoming element where order doesn't matter.
+*   **[Timely and Stateful Processing](https://beam.apache.org/blog/2017/08/28/timely-processing.html)** - An example on how to do batched RPC calls. The call requests are stored in a mutable state as they are received. Once there are either enough requests or a certain time has passed, the batch of requests is triggered to be sent.
+*   **[Running External Libraries](https://cloud.google.com/blog/products/gcp/running-external-libraries-with-cloud-dataflow-for-grid-computing-workloads)** - Call an external library written in a language that does not have a native SDK in Apache Beam such as C++.
+
+## Interactive Labs {#interactive-labs}
+
+### Java
+
+*   **[Big Data Text Processing Pipeline](https://qwiklabs.com/focuses/608?locale=en&parent=catalog)** (40m) - Run a word count pipeline on the Dataflow runner.
+*   **[Real Time Machine Learning](https://qwiklabs.com/focuses/3393?locale=en&parent=catalog)** (45m) - Create a real-time flight delay prediction service using historical data on internal flights in the United States.
+*   **[Visualize Real-Time Geospatial Data](https://qwiklabs.com/focuses/1160?locale=en&parent=catalog)** (60m) - Process real-time streaming data from a real-time real world historical data set, store the results in BigQuery, and visualize the geospatial data on Data Studio.
+*   **[Processing Time Windowed Data](https://qwiklabs.com/focuses/3392?locale=en&parent=catalog)** (90m) - Implement time-windowed aggregation to augment the raw data in order to produce a consistent training and test datasets for a machine learning model.
+
+### Python
+
+*   **[Python Qwik Start](https://qwiklabs.com/focuses/1100?locale=en&parent=catalog)** (30m) - Run a word count pipeline on the Dataflow runner.
+*   **[NDVI from Landsat Images](https://qwiklabs.com/focuses/1849?locale=en&parent=catalog)** (45m) - Process Landsat satellite data in a distributed environment to compute the [Normalized Difference Vegetation Index](https://en.wikipedia.org/wiki/Normalized_difference_vegetation_index) (NDVI).
+*   **[Simulate historic flights](https://qwiklabs.com/focuses/1159?locale=en&parent=catalog)** (60m) - Simulate real-time historic internal flights in the United States and store the resulting simulated data in BigQuery.
+
+## Code Examples {#code-examples}
+
+### Java
+
+*   **[Snippets 1](https://github.com/apache/beam/tree/master/examples/java/src/main/java/org/apache/beam/examples/cookbook)** - Commonly-used data analysis patterns such as how to use [BigQuery](https://cloud.google.com/bigquery), a CombinePerKey transform, remove duplicate lines in files, filtering, joining PCollections, getting the maximum value of a PCollection, etc.
+*   **[Snippets 2](https://github.com/apache/beam/tree/master/examples/java/src/main/java/org/apache/beam/examples/common)** - Additional examples on common tasks such as configuring [BigQuery](https://cloud.google.com/bigquery), [PubSub](https://cloud.google.com/pubsub/), writing one file per window, etc.
+*   **[Complete Examples](https://github.com/apache/beam/tree/master/examples/java/src/main/java/org/apache/beam/examples/complete)** - End-to-end example pipelines such as an auto complete, a streaming word extract, calculating the Term Frequency-Inverse Document Frequency ([TF-IDF](https://en.wikipedia.org/wiki/Tf%E2%80%93idf)), getting the top Wikipedia sessions, traffic max lane flow, traffic routes, etc.
+
+### Python
+
+*   **[Snippets](https://github.com/apache/beam/tree/master/sdks/python/apache_beam/examples/cookbook)** - Commonly-used data analysis patterns such as how to use [BigQuery](https://cloud.google.com/bigquery), [Datastore](https://cloud.google.com/datastore/), coders, combiners, filters, custom PTransforms, etc.
+*   **[Complete Examples](https://github.com/apache/beam/tree/master/sdks/python/apache_beam/examples/complete)** - End-to-end example pipelines such as an auto complete, getting mobile gaming statistics, calculating the [Julia set](https://en.wikipedia.org/wiki/Julia_set), solving distributing optimization tasks, estimating PI, calculating the Term Frequency-Inverse Document Frequency ([TF-IDF](https://en.wikipedia.org/wiki/Tf%E2%80%93idf)), getting the top Wikipedia sessions, etc.
+
+## API Reference {#api-reference}
+
+*   **[Java API Reference](https://beam.apache.org/documentation/sdks/javadoc/)** - Official API Reference for the Java SDK.
+*   **[Python API Reference](https://beam.apache.org/documentation/sdks/pydoc/)** - Official API Reference for the Python SDK.
+*   **[Go API Reference](https://godoc.org/github.com/apache/beam/sdks/go/pkg/beam)** - Official API Reference for the Go SDK.
+
+## Feedback and Suggestions {#feedback-and-suggestions}
+
+We are open for feedback and suggestions, you can find different ways to reach out to the community in the [Contact Us](https://beam.apache.org/community/contact-us/) page.
+
+If you have a bug report or want to suggest a new feature, you can let us know by [submitting a new issue](https://issues.apache.org/jira/secure/CreateIssue!default.jspa).
+
+## How to Contribute {#how-to-contribute}
+
+We welcome contributions from everyone! To learn more on how to contribute, check our [Contribution Guide](https://beam.apache.org/contribute/).
\ No newline at end of file
diff --git a/website/src/documentation/resources.md b/website/src/documentation/resources/videos-and-podcasts.md
similarity index 78%
rename from website/src/documentation/resources.md
rename to website/src/documentation/resources/videos-and-podcasts.md
index 1ca2d94..a10ea0f 100644
--- a/website/src/documentation/resources.md
+++ b/website/src/documentation/resources/videos-and-podcasts.md
@@ -1,9 +1,11 @@
 ---
 layout: section
-title: "Beam Learning Resources"
-permalink: /documentation/resources/
+title: "Videos and Podcasts"
+permalink: /documentation/resources/videos-and-podcasts/
 section_menu: section-menu/documentation.html
-redirect_from: /learn/resources/
+redirect_from:
+  - /learn/resources/
+  - /documentation/resources/
 ---
 <!--
 Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,9 +20,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-# Additional Resources for Learning about Apache Beam
+# Videos and Podcasts
 
-This page provides links to some of our favorite videos, podcasts, and articles that will help you get started and learn more about Apache Beam.
+This page provides links to some of our favorite videos and podcasts that will help you get started and learn more about Apache Beam.
 
 * TOC
 {:toc}
@@ -56,24 +58,6 @@ Presented by Dan Halperin, *Apache Beam PPMC member*
 <iframe src="https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fatscaleevents%2Fvideos%2F1775945569345206%2F&show_text=0&width=560" width="560" height="315" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe>
 <br>
 
-### The World Beyond Batch: Streaming 101
-
-Written by Tyler Akidau, *Apache Beam PPMC member*  
-
-Click on the image to read the article.
-
-<a href="https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101" target="_blank">![alt text]({{ site.baseurl }}/images/resources/streaming-101.png)</a>
-<br>
-
-### The World Beyond Batch: Streaming 102
-
-Written by Tyler Akidau, *Apache Beam PPMC member*  
-
-Click on the image to read the article.
-
-<a href="https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-102" target="_blank">![alt text]({{ site.baseurl }}/images/resources/streaming-101.png)</a>
-<br>
-
 ### Software Engineering Radio Podcast Episode 272: Apache Beam
 
 Presented by Frances Perry, *Apache Beam PPMC member*
@@ -123,3 +107,7 @@ Strata+Hadoop World, New York, 2016
 Presented by Kenneth Knowles, *Apache Beam PPMC member*
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/E1k0B9LN46M" frameborder="0" allowfullscreen></iframe>
+
+## Next Steps
+
+* Take a self-paced tour through our [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources).
\ No newline at end of file
diff --git a/website/src/get-started/beam-overview.md b/website/src/get-started/beam-overview.md
index ed5ff41..5dddf94 100644
--- a/website/src/get-started/beam-overview.md
+++ b/website/src/get-started/beam-overview.md
@@ -62,7 +62,9 @@ Get started using Beam for your data processing tasks.
 
 2. See the [WordCount Examples Walkthrough]({{ site.baseurl }}/get-started/wordcount-example) for examples that introduce various features of the SDKs.
 
-3. Dive into the [Documentation]({{ site.baseurl }}/documentation/) section for in-depth concepts and reference materials for the Beam model, SDKs, and runners.
+3. Take a self-paced tour through our [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources).
+
+4. Dive into the [Documentation]({{ site.baseurl }}/documentation/) section for in-depth concepts and reference materials for the Beam model, SDKs, and runners.
 
 ## Contribute
 
diff --git a/website/src/get-started/mobile-gaming-example.md b/website/src/get-started/mobile-gaming-example.md
index 4a289b4..39d1480 100644
--- a/website/src/get-started/mobile-gaming-example.md
+++ b/website/src/get-started/mobile-gaming-example.md
@@ -401,3 +401,10 @@ This gives us a set of user sessions, each with an attached duration. We can the
 
 We can use the resulting information to find, for example, what times of day our users are playing the longest, or which stretches of the day are more likely to see shorter play sessions.
 
+## Next Steps
+
+* Take a self-paced tour through our [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources).
+* Dive in to some of our favorite [Videos and Podcasts]({{ site.baseurl }}/documentation/resources/videos-and-podcasts).
+* Join the Beam [users@]({{ site.baseurl }}/community/contact-us) mailing list.
+
+Please don't hesitate to [reach out]({{ site.baseurl }}/community/contact-us) if you encounter any issues!
\ No newline at end of file
diff --git a/website/src/get-started/quickstart-go.md b/website/src/get-started/quickstart-go.md
index e835ba5..e97e675 100644
--- a/website/src/get-started/quickstart-go.md
+++ b/website/src/get-started/quickstart-go.md
@@ -79,7 +79,8 @@ $ wordcount --input gs://dataflow-samples/shakespeare/kinglear.txt \
 * Learn more about the [Beam SDK for Go]({{ site.baseurl }}/documentation/sdks/go/)
   and look through the [godoc](https://godoc.org/github.com/apache/beam/sdks/go/pkg/beam).
 * Walk through these WordCount examples in the [WordCount Example Walkthrough]({{ site.baseurl }}/get-started/wordcount-example).
-* Dive in to some of our favorite [articles and presentations]({{ site.baseurl }}/documentation/resources).
+* Take a self-paced tour through our [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources).
+* Dive in to some of our favorite [Videos and Podcasts]({{ site.baseurl }}/documentation/resources/videos-and-podcasts).
 * Join the Beam [users@]({{ site.baseurl }}/community/contact-us) mailing list.
 
 Please don't hesitate to [reach out]({{ site.baseurl }}/community/contact-us) if you encounter any issues!
diff --git a/website/src/get-started/quickstart-java.md b/website/src/get-started/quickstart-java.md
index 9edbb4f..a9e7205 100644
--- a/website/src/get-started/quickstart-java.md
+++ b/website/src/get-started/quickstart-java.md
@@ -367,7 +367,8 @@ has: 2
 * Learn more about the [Beam SDK for Java]({{ site.baseurl }}/documentation/sdks/java/)
   and look through the [Java SDK API reference](https://beam.apache.org/releases/javadoc).
 * Walk through these WordCount examples in the [WordCount Example Walkthrough]({{ site.baseurl }}/get-started/wordcount-example).
-* Dive in to some of our favorite [articles and presentations]({{ site.baseurl }}/documentation/resources).
+* Take a self-paced tour through our [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources).
+* Dive in to some of our favorite [Videos and Podcasts]({{ site.baseurl }}/documentation/resources/videos-and-podcasts).
 * Join the Beam [users@]({{ site.baseurl }}/community/contact-us) mailing list.
 
 Please don't hesitate to [reach out]({{ site.baseurl }}/community/contact-us) if you encounter any issues!
diff --git a/website/src/get-started/quickstart-py.md b/website/src/get-started/quickstart-py.md
index 1960dd9..aa676c4 100644
--- a/website/src/get-started/quickstart-py.md
+++ b/website/src/get-started/quickstart-py.md
@@ -211,7 +211,8 @@ sequentially in the format `counts-0000-of-0001`.
 * Learn more about the [Beam SDK for Python]({{ site.baseurl }}/documentation/sdks/python/)
   and look through the [Python SDK API reference](https://beam.apache.org/releases/pydoc).
 * Walk through these WordCount examples in the [WordCount Example Walkthrough]({{ site.baseurl }}/get-started/wordcount-example).
-* Dive in to some of our favorite [articles and presentations]({{ site.baseurl }}/documentation/resources).
+* Take a self-paced tour through our [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources).
+* Dive in to some of our favorite [Videos and Podcasts]({{ site.baseurl }}/documentation/resources/videos-and-podcasts).
 * Join the Beam [users@]({{ site.baseurl }}/community/contact-us) mailing list.
 
 Please don't hesitate to [reach out]({{ site.baseurl }}/community/contact-us) if you encounter any issues!
diff --git a/website/src/get-started/wordcount-example.md b/website/src/get-started/wordcount-example.md
index f8e7341..d21a88c 100644
--- a/website/src/get-started/wordcount-example.md
+++ b/website/src/get-started/wordcount-example.md
@@ -1429,3 +1429,11 @@ using [`beam.io.WriteStringsToPubSub`](https://beam.apache.org/releases/pydoc/{{
   // This example is not currently available for the Beam SDK for Go.
 ```
 
+## Next Steps
+
+* Walk through the Mobile Gaming examples in the [Mobile Gaming Example Walkthrough]({{ site.baseurl }}/get-started/mobile-gaming-example).
+* Take a self-paced tour through our [Learning Resources]({{ site.baseurl }}/documentation/resources/learning-resources).
+* Dive in to some of our favorite [Videos and Podcasts]({{ site.baseurl }}/documentation/resources/videos-and-podcasts).
+* Join the Beam [users@]({{ site.baseurl }}/community/contact-us) mailing list.
+
+Please don't hesitate to [reach out]({{ site.baseurl }}/community/contact-us) if you encounter any issues!
\ No newline at end of file