{"id":8972,"date":"2024-12-20T03:00:00","date_gmt":"2024-12-20T08:00:00","guid":{"rendered":"https:\/\/www.both.org\/?p=8972"},"modified":"2024-12-17T11:02:23","modified_gmt":"2024-12-17T16:02:23","slug":"what-i-learned-by-teaching-others","status":"publish","type":"post","link":"https:\/\/www.both.org\/?p=8972","title":{"rendered":"What I learned by teaching others"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-1\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"\" data-post-id=\"8972\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"fas fa-thumbs-up\"><\/i>\r\n                <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">1    <\/span>\r\n<\/div><\/div>\n<p>I have a small YouTube channel where I&#8217;ve posted content about the FreeDOS Project. I started the channel in August 2019 to share tips and other advice to give new users a &#8220;gentle touchdown&#8221; when using FreeDOS for the first time. The videos highlighted different things you could do in FreeDOS, such as <a href=\"https:\/\/www.youtube.com\/watch?v=_c-eCBJ-2NY\">how to use the command line<\/a>, or <a href=\"https:\/\/www.youtube.com\/watch?v=yrdJwnlbI7Y\">how to run classic DOS applications<\/a>, and sometimes <a href=\"https:\/\/www.youtube.com\/watch?v=xuDEdCFr6eE\">how to write your own programs<\/a> on FreeDOS.<\/p>\n\n\n\n<p>The pandemic hit the US a few months later, and we went into &#8220;lockdown&#8221; in March 2020. In those early days of the pandemic lockdown, I think a lot of us tried to fill the empty days by learning something new. When several subscribers asked if I could do more videos to teach programming, I decided to launch a new video series about C programming.<\/p>\n\n\n\n<p>I learned a lot from teaching C, and in the process, I came across some meaningful takeaways I think others will appreciate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Make a plan<\/h2>\n\n\n\n<p>For my day job, I lead training and workshops to help new and emerging IT leaders develop new skills. Outside of regular work, I also enjoy teaching as an adjunct professor. So I&#8217;m very comfortable constructing a course outline and designing a curriculum. That&#8217;s where I started.<\/p>\n\n\n\n<p>Start by writing an outline of what topics you want to cover and figure out how each new topic will build on the previous ones. The &#8220;building block&#8221; method of adding new knowledge is key to an effective training program.<\/p>\n\n\n\n<p>To teach C programming as a &#8220;follow along&#8221; video series, I created this initial outline:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Introduction to C programming (overview, data types, operators)<\/li>\n\n\n\n<li>Flow control and loops<\/li>\n\n\n\n<li>Functions (user-defined and C library functions)<\/li>\n\n\n\n<li>Arrays (fixed-size and variable-sized)<\/li>\n\n\n\n<li>Reading and writing files<\/li>\n\n\n\n<li>Advanced programming topics<\/li>\n\n\n\n<li>Console programming with <strong>conio<\/strong> on FreeDOS<\/li>\n\n\n\n<li>Putting it all together by writing a game<\/li>\n<\/ol>\n\n\n\n<p>Each topic builds upon previous topics, and by the end of the series, we have learned enough about C programming to write a full-screen game.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Show and tell<\/h2>\n\n\n\n<p>I originally planned to just record a video series about C programming, but I quickly realized that people would need some kind of written tutorial; there&#8217;s just too much information to include in a one-hour video. To accompany each week&#8217;s video, I decided to write a short programming guide to explain the week&#8217;s topics in more detail. The guide also included lists of new library functions or programming concepts that provided a &#8220;quick reference&#8221; to learning C.<\/p>\n\n\n\n<p>Fortunately, this worked in my favor. Recording an hour-long video requires planning, and I like to plan. A few days before recording the next video, I wrote out the topics I wanted to cover, and the sample code I wanted to demonstrate on screen. This gave me an outline to narrow the focus of the video. After recording the video, I expanded my notes into a programming guide that I posted online.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Make it applicable<\/h2>\n\n\n\n<p>Most people learn best by doing; that&#8217;s why each &#8220;chapter&#8221; or &#8220;unit&#8221; in the series includes several example programs that you can follow to learn about programming. I didn&#8217;t want the series to be just about the theory of writing programs, but also about actually doing it. For example, in the first chapter, Introduction to C programming, we learn by writing programs to calculate the area of a circle, and how to divide two numbers with a remainder.<\/p>\n\n\n\n<p>Every unit also ends with several &#8220;practice programming&#8221; tasks that help users to exercise their new knowledge. These exercises directly apply concepts that I introduced in that week&#8217;s video to reinforce what we learned.<\/p>\n\n\n\n<p>Most importantly, the videos demonstrated how to write your own versions of FreeDOS programs. For example, in a video about loops, I showed how to use a <strong>do-while<\/strong> loop to write a version of the FreeDOS PAUSE command, to wait for the user to press a key. In other videos, I also showed how to write your own versions of ECHO, TYPE, MORE, FIND, CLS, and COPY to demonstrate how to apply new concepts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Be willing to learn<\/h2>\n\n\n\n<p>Teaching very often goes both ways\u2014as you share knowledge, you pick up new facts and perspectives. No matter your skill or familiarity with a topic, never be afraid to pick up the &#8220;teacher&#8221; mantle and help someone else learn.<\/p>\n\n\n\n<p>If you want to learn C yourself, you can find the <a href=\"https:\/\/www.freedos.org\/books\/cprogramming\/\">Writing FreeDOS Programs in C<\/a> series on the <a href=\"https:\/\/www.freedos.org\/\">FreeDOS Project website<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>This article is adapted from <a href=\"https:\/\/opensource.com\/article\/20\/8\/teaching-c\">What I learned while teaching C programming on YouTube<\/a> by Jim Hall, and is republished with the author&#8217;s permission.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sharing knowledge with others is often a great way to refresh and update your own expertise.<\/p>\n","protected":false},"author":33,"featured_media":2949,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[340,150],"tags":[267,147,152],"class_list":["post-8972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-freedos","category-programming","tag-freedos","tag-fun","tag-programming"],"modified_by":"Jim Hall","_links":{"self":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/8972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8972"}],"version-history":[{"count":1,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/8972\/revisions"}],"predecessor-version":[{"id":8973,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/8972\/revisions\/8973"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/media\/2949"}],"wp:attachment":[{"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}