diff --git a/intro/beagle101/blinkLED.rst b/intro/beagle101/blinkLED.rst index 2e9a6307de36c401807f247a87f8db56a319d3ec..e50cf87ab2708e9511826a27cc70835c5605c575 100644 --- a/intro/beagle101/blinkLED.rst +++ b/intro/beagle101/blinkLED.rst @@ -114,6 +114,8 @@ load up Linux. This is because all Beagles to install an image on the Pocket) have built-in flash memory that has the Debian distribution of Linux preinstalled. +.. _intro-using-vs-code: + Using VS Code ************** diff --git a/intro/beagle101/c.rst b/intro/beagle101/c.rst index 2b4eb500a7dc71307bb0cebe2cf0688699f74c28..cac26db97ac2a6b4230af9bdacce206c471fc9d1 100644 --- a/intro/beagle101/c.rst +++ b/intro/beagle101/c.rst @@ -4,3 +4,71 @@ Introduction to C ################# .. todo:: Place-holder for tutorial on the C programming language + +The C programming language is powerful and flexible and sits at the heart of +many key open source software projects, including :ref:`Linux <intro-linux>` and +:ref:`Zephyr <intro-zephyr>`. While it is intimidating to many people, C holds a +strong relevance in today's technology landscape and can be approached and learned +by those without extensive previous computer knowledge. + +While there are many :ref:`resources <intro-c-resources>` for learning C, this article +will focus primarily on learning C using Linux and specifically a Beagle running +:ref:`Debian GNU/Linux <intro-debian>`. It is recommended to utilize on-line learning +resources like `learn-c.org`_ to get familiarity with the language, then apply what you +have learned on a Beagle to see it in real life. + +.. note:: + + Making the transition from on-line to in-person compilation and execution of your + code is critical to building and maintaining your understanding. You can never be + certain that an on-line service will always be available, so do yourself the favor + or transitioning your exercises and materials into your own possession as soon as + it makes sense for you. + +Why Learn C? +************ + +While C is an extremely popular programming language, popularity shouldn't necessarily be +your top guide in choosing a programming language to learn. What are some of the best +reasons to learn C? + +Provides Strong Foundation +========================== + +Many other programming languages are very similar to C, like `Java`_, `Wiring`_ or `Rust`_, +are direct extensions of C, namely `C++`_ and `C#`_, or are written in C themselves. +Learning C will set you up well to learn many programming languages and the rationales +behind them. + +Your First C Program +******************** + +:ref:`start-browse-to-beagle` + +:ref:`intro-using-vs-code` + +.. _intro-c-resources: + +Recommended Resources +********************* + +* `C Programming Language, 2nd Edition <https://a.co/d/51eEGca>`_ +* `learn-c.org`_ + +.. _C++: + https://en.wikipedia.org/wiki/C%2B%2B + +.. _Wiring: + https://en.wikipedia.org/wiki/Wiring_(software) + +.. _Java: + https://en.wikipedia.org/wiki/Java_(programming_language) + +.. _Rust: + https://en.wikipedia.org/wiki/Rust_(programming_language) + +.. _learn-c.org: + https://learn-c.org + +.. _C#: + https://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29 diff --git a/intro/support/getting-started.rst b/intro/support/getting-started.rst index 37bf7272da857c4c04aac098dbda9f2c5b535d99..1ec6258c418e499f152827750e7d83ccfa76404f 100644 --- a/intro/support/getting-started.rst +++ b/intro/support/getting-started.rst @@ -136,6 +136,8 @@ to your computer. If your computer supports mDNS, you should see your Beagle as Non-BeagleBone boards will utilize alternate names. Multiple BeagleBone boards on the same network will add a suffix such as beaglebone-2.local. +.. _start-browse-to-beagle: + Browse to your Beagle ============================