<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" encoding="UTF-8" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:fireside="http://fireside.fm/modules/rss/fireside">
  <channel>
    <fireside:hostname>web02.fireside.fm</fireside:hostname>
    <fireside:genDate>Fri, 03 Apr 2026 21:46:57 -0500</fireside:genDate>
    <generator>Fireside (https://fireside.fm)</generator>
    <title>Coder Radio - Episodes Tagged with “Macros”</title>
    <link>https://coder.show/tags/macros</link>
    <pubDate>Mon, 02 Sep 2019 23:00:00 -0400</pubDate>
    <description>A weekly talk show taking a pragmatic look at the art and business of Software Development and the world of technology.
</description>
    <language>en-us</language>
    <itunes:type>episodic</itunes:type>
    <itunes:subtitle>A weekly talk show</itunes:subtitle>
    <itunes:author>The Mad Botter</itunes:author>
    <itunes:summary>A weekly talk show taking a pragmatic look at the art and business of Software Development and the world of technology.
</itunes:summary>
    <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/b/b44de5fa-47c1-4e94-bf9e-c72f8d1c8f5d/cover.jpg?v=7"/>
    <itunes:explicit>no</itunes:explicit>
    <itunes:owner>
      <itunes:name>The Mad Botter</itunes:name>
      <itunes:email>michael@themadbotter.com</itunes:email>
    </itunes:owner>
<itunes:category text="Technology"/>
<itunes:category text="Education">
  <itunes:category text="How To"/>
</itunes:category>
<itunes:category text="Business"/>
<item>
  <title>373: Interactive Investigations</title>
  <link>https://coder.show/373</link>
  <guid isPermaLink="false">fc417cc1-4b99-4d2b-9817-ffe1f3f624ae</guid>
  <pubDate>Mon, 02 Sep 2019 23:00:00 -0400</pubDate>
  <author>The Mad Botter</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/b44de5fa-47c1-4e94-bf9e-c72f8d1c8f5d/fc417cc1-4b99-4d2b-9817-ffe1f3f624ae.mp3" length="26640741" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>The Mad Botter</itunes:author>
  <itunes:subtitle>We debate the best way to package scripting language apps then explore interactive development and the importance of a good shell.</itunes:subtitle>
  <itunes:duration>37:00</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/b/b44de5fa-47c1-4e94-bf9e-c72f8d1c8f5d/cover.jpg?v=7"/>
  <description>We debate the best way to package scripting language apps then explore interactive development and the importance of a good shell.
Plus npm bans terminal ads, what comes after Rust, and why Mike hates macros. 
</description>
  <itunes:keywords>.NET, C#, F#,  Rust, memory safety, formal methods, macros, monkeypatching, ruby, python, npm, advertising, supporting open source, macOS, scripting languages, application packaging, homebrew, snapcraft, flatpak, appimage, containers, docker, REPL, clojure, interactive development, smalltalk, forth, bpython, pry, rebel-readline, exploratory programming, sql, sqlite, litecli, Jupiter Broadcasting, Developer podcast, Coder Radio</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>We debate the best way to package scripting language apps then explore interactive development and the importance of a good shell.</p>

<p>Plus npm bans terminal ads, what comes after Rust, and why Mike hates macros.</p><p>Links:</p><ul><li><a title="Feedback: Getting started on .NET?" rel="nofollow" href="https://slexy.org/view/s2bssmHTau">Feedback: Getting started on .NET?</a> &mdash; My question is what is the easiest route to get started in .net development? When I looked online there are several different languages that can be used from C# ,F#, ASP.NEt among others. In your personal experience what is the easiest way to get started on this path?</li><li><a title="Feedback: Questioning Rust" rel="nofollow" href="https://slexy.org/view/s21pB91Mje">Feedback: Questioning Rust</a> &mdash; [...] The primary issue here is that most of the work to prove that safety (beyond "trust me" blocks) is pushed onto the developer instead of having the compiler insert protections surmised from uses of the data structures outlined in the source code.  After all, it can only prove what it is shown, not what it assumes.</li><li><a title="Feedback on Mike and Macros" rel="nofollow" href="https://www.reddit.com/r/CoderRadio/comments/cw5pki/crystal_clear_coder_radio_show_372/eyprsx0/">Feedback on Mike and Macros</a> &mdash; I'd also love to hear more about what you dislike about macros. Personally, I view Rust's macro system as one of its biggest selling points. I've written more than a few macros myself and, every time, they've simplified my code in ways I couldn't have managed without them. Perhaps more importantly, I've also noticed that many of my favorite crates make heavy use of macros—and doing so lets them expose a much more ergonomic API.</li><li><a title="The Imposter&#39;s Handbook by Rob Conery" rel="nofollow" href="https://www.goodreads.com/book/show/31572054-the-imposter-s-handbook">The Imposter's Handbook by Rob Conery</a> &mdash; You've had to learn on the job. New languages, new frameworks, new ways of doing things - a constant struggle just to stay current in the industry. This left no time to learn the foundational concepts and skills that come with a degree in Computer Science.
</li><li><a title="npm Bans Terminal Ads" rel="nofollow" href="https://www.zdnet.com/article/npm-bans-terminal-ads/">npm Bans Terminal Ads</a> &mdash; After last week a popular JavaScript library started showing full-blown ads in the npm command-line interface, npm, Inc., the company that runs the npm tool and website, has taken a stance and plans to ban such behavior in the future.
</li><li><a title="Apple wants to remove scripting languages from macOS" rel="nofollow" href="https://dev.to/stereobooster/apple-wants-to-remove-scripting-languages-2l0i">Apple wants to remove scripting languages from macOS</a> &mdash; Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. In future versions of macOS, scripting language runtimes won’t be available by default, and may require you to install an additional package. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app</li><li><a title="Building Standalone Python Applications with PyOxidizer" rel="nofollow" href="https://gregoryszorc.com/blog/2019/06/24/building-standalone-python-applications-with-pyoxidizer/">Building Standalone Python Applications with PyOxidizer</a> &mdash; Python hasn't ever had a consistent story for how I give my code to someone else, especially if that someone else isn't a developer and just wants to use my application. </li><li><a title="Traveling Ruby: self-contained, portable Ruby binaries" rel="nofollow" href="https://phusion.github.io/traveling-ruby/">Traveling Ruby: self-contained, portable Ruby binaries</a> &mdash; Traveling Ruby lets you create self-contained Ruby app packages for Windows, Linux and OS X.</li><li><a title="ruby-packer" rel="nofollow" href="https://github.com/pmq20/ruby-packer">ruby-packer</a> &mdash; Packing your Ruby application into a single executable.

</li><li><a title="fogus: Notes on Interactive Computing Environments" rel="nofollow" href="http://blog.fogus.me/2019/04/03/notes-on-interactive-computing-environments/">fogus: Notes on Interactive Computing Environments</a> &mdash; Your programming environments should be an active partner in the act of creating systems.

</li><li><a title="Tim Ewald - Clojure: Programming with Hand Tools" rel="nofollow" href="https://www.youtube.com/watch?v=ShEez0JkOFw">Tim Ewald - Clojure: Programming with Hand Tools</a> &mdash; For most of human history, furniture was built by hand using a small set of simple tools. This approach connects you in a profoundly direct way to the work, your effort to the result. This changed with the rise of machine tools, which made production more efficient but also altered what's made and how we think about making it in in a profound way. This talk explores the effects of automation on our work, which is as relevant to software as it is to furniture, especially now that once again, with Clojure, we are building things using a small set of simple tools.</li><li><a title="Things You Didn&#39;t Know About GNU Readline" rel="nofollow" href="https://twobithistory.org/2019/08/22/readline.html">Things You Didn't Know About GNU Readline</a> &mdash; GNU Readline is an unassuming little software library that I relied on for years without realizing that it was there. Tens of thousands of people probably use it every day without thinking about it. If you use the Bash shell, every time you auto-complete a filename, or move the cursor around within a single line of input text, or search through the history of your previous commands, you are using GNU Readline. </li><li><a title="bpython" rel="nofollow" href="https://github.com/bpython/bpython">bpython</a> &mdash; A fancy curses interface to the Python interactive interpreter</li><li><a title="pry" rel="nofollow" href="https://github.com/pry/pry">pry</a> &mdash; Pry is a runtime developer console and IRB alternative with powerful introspection capabilities. Pry aims to be more than an IRB replacement. It is an attempt to bring REPL driven programming to the Ruby language.

</li><li><a title="Ammonite" rel="nofollow" href="https://ammonite.io/">Ammonite</a> &mdash; Ammonite lets you use the Scala language for scripting purposes: in the REPL, as scripts, as a library to use in existing projects, or as a standalone systems shell.

</li><li><a title="rebel-readline" rel="nofollow" href="https://github.com/bhauman/rebel-readline">rebel-readline</a> &mdash; A terminal readline library for Clojure Dialects

</li><li><a title="litecli" rel="nofollow" href="https://github.com/dbcli/litecli">litecli</a> &mdash; A command-line client for SQLite databases that has auto-completion and syntax highlighting.
</li></ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>We debate the best way to package scripting language apps then explore interactive development and the importance of a good shell.</p>

<p>Plus npm bans terminal ads, what comes after Rust, and why Mike hates macros.</p><p>Links:</p><ul><li><a title="Feedback: Getting started on .NET?" rel="nofollow" href="https://slexy.org/view/s2bssmHTau">Feedback: Getting started on .NET?</a> &mdash; My question is what is the easiest route to get started in .net development? When I looked online there are several different languages that can be used from C# ,F#, ASP.NEt among others. In your personal experience what is the easiest way to get started on this path?</li><li><a title="Feedback: Questioning Rust" rel="nofollow" href="https://slexy.org/view/s21pB91Mje">Feedback: Questioning Rust</a> &mdash; [...] The primary issue here is that most of the work to prove that safety (beyond "trust me" blocks) is pushed onto the developer instead of having the compiler insert protections surmised from uses of the data structures outlined in the source code.  After all, it can only prove what it is shown, not what it assumes.</li><li><a title="Feedback on Mike and Macros" rel="nofollow" href="https://www.reddit.com/r/CoderRadio/comments/cw5pki/crystal_clear_coder_radio_show_372/eyprsx0/">Feedback on Mike and Macros</a> &mdash; I'd also love to hear more about what you dislike about macros. Personally, I view Rust's macro system as one of its biggest selling points. I've written more than a few macros myself and, every time, they've simplified my code in ways I couldn't have managed without them. Perhaps more importantly, I've also noticed that many of my favorite crates make heavy use of macros—and doing so lets them expose a much more ergonomic API.</li><li><a title="The Imposter&#39;s Handbook by Rob Conery" rel="nofollow" href="https://www.goodreads.com/book/show/31572054-the-imposter-s-handbook">The Imposter's Handbook by Rob Conery</a> &mdash; You've had to learn on the job. New languages, new frameworks, new ways of doing things - a constant struggle just to stay current in the industry. This left no time to learn the foundational concepts and skills that come with a degree in Computer Science.
</li><li><a title="npm Bans Terminal Ads" rel="nofollow" href="https://www.zdnet.com/article/npm-bans-terminal-ads/">npm Bans Terminal Ads</a> &mdash; After last week a popular JavaScript library started showing full-blown ads in the npm command-line interface, npm, Inc., the company that runs the npm tool and website, has taken a stance and plans to ban such behavior in the future.
</li><li><a title="Apple wants to remove scripting languages from macOS" rel="nofollow" href="https://dev.to/stereobooster/apple-wants-to-remove-scripting-languages-2l0i">Apple wants to remove scripting languages from macOS</a> &mdash; Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. In future versions of macOS, scripting language runtimes won’t be available by default, and may require you to install an additional package. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app</li><li><a title="Building Standalone Python Applications with PyOxidizer" rel="nofollow" href="https://gregoryszorc.com/blog/2019/06/24/building-standalone-python-applications-with-pyoxidizer/">Building Standalone Python Applications with PyOxidizer</a> &mdash; Python hasn't ever had a consistent story for how I give my code to someone else, especially if that someone else isn't a developer and just wants to use my application. </li><li><a title="Traveling Ruby: self-contained, portable Ruby binaries" rel="nofollow" href="https://phusion.github.io/traveling-ruby/">Traveling Ruby: self-contained, portable Ruby binaries</a> &mdash; Traveling Ruby lets you create self-contained Ruby app packages for Windows, Linux and OS X.</li><li><a title="ruby-packer" rel="nofollow" href="https://github.com/pmq20/ruby-packer">ruby-packer</a> &mdash; Packing your Ruby application into a single executable.

</li><li><a title="fogus: Notes on Interactive Computing Environments" rel="nofollow" href="http://blog.fogus.me/2019/04/03/notes-on-interactive-computing-environments/">fogus: Notes on Interactive Computing Environments</a> &mdash; Your programming environments should be an active partner in the act of creating systems.

</li><li><a title="Tim Ewald - Clojure: Programming with Hand Tools" rel="nofollow" href="https://www.youtube.com/watch?v=ShEez0JkOFw">Tim Ewald - Clojure: Programming with Hand Tools</a> &mdash; For most of human history, furniture was built by hand using a small set of simple tools. This approach connects you in a profoundly direct way to the work, your effort to the result. This changed with the rise of machine tools, which made production more efficient but also altered what's made and how we think about making it in in a profound way. This talk explores the effects of automation on our work, which is as relevant to software as it is to furniture, especially now that once again, with Clojure, we are building things using a small set of simple tools.</li><li><a title="Things You Didn&#39;t Know About GNU Readline" rel="nofollow" href="https://twobithistory.org/2019/08/22/readline.html">Things You Didn't Know About GNU Readline</a> &mdash; GNU Readline is an unassuming little software library that I relied on for years without realizing that it was there. Tens of thousands of people probably use it every day without thinking about it. If you use the Bash shell, every time you auto-complete a filename, or move the cursor around within a single line of input text, or search through the history of your previous commands, you are using GNU Readline. </li><li><a title="bpython" rel="nofollow" href="https://github.com/bpython/bpython">bpython</a> &mdash; A fancy curses interface to the Python interactive interpreter</li><li><a title="pry" rel="nofollow" href="https://github.com/pry/pry">pry</a> &mdash; Pry is a runtime developer console and IRB alternative with powerful introspection capabilities. Pry aims to be more than an IRB replacement. It is an attempt to bring REPL driven programming to the Ruby language.

</li><li><a title="Ammonite" rel="nofollow" href="https://ammonite.io/">Ammonite</a> &mdash; Ammonite lets you use the Scala language for scripting purposes: in the REPL, as scripts, as a library to use in existing projects, or as a standalone systems shell.

</li><li><a title="rebel-readline" rel="nofollow" href="https://github.com/bhauman/rebel-readline">rebel-readline</a> &mdash; A terminal readline library for Clojure Dialects

</li><li><a title="litecli" rel="nofollow" href="https://github.com/dbcli/litecli">litecli</a> &mdash; A command-line client for SQLite databases that has auto-completion and syntax highlighting.
</li></ul>]]>
  </itunes:summary>
</item>
<item>
  <title>372: Crystal Clear</title>
  <link>https://coder.show/372</link>
  <guid isPermaLink="false">36a4ee8c-a33b-4b1e-bfc4-174c8bb9bc09</guid>
  <pubDate>Tue, 27 Aug 2019 00:30:00 -0400</pubDate>
  <author>The Mad Botter</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/b44de5fa-47c1-4e94-bf9e-c72f8d1c8f5d/36a4ee8c-a33b-4b1e-bfc4-174c8bb9bc09.mp3" length="38901783" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>The Mad Botter</itunes:author>
  <itunes:subtitle>We're back and going crazy about Crystal, a statically typed language that's as fast as C and as slick as ruby.</itunes:subtitle>
  <itunes:duration>54:01</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/b/b44de5fa-47c1-4e94-bf9e-c72f8d1c8f5d/cover.jpg?v=7"/>
  <description>We're back and going crazy about Crystal, a statically typed language that's as fast as C and as slick as ruby.
Plus an update on Rails 6, Intel's growing adoption of Rust, and the challenge of making breaking changes. 
</description>
  <itunes:keywords> Academia, math, CS, python, ABC, abstraction, breaking changes, semver, software maintenance, rails, rails 6, intel, rust, FOSS, tragedy of the commons, systems programming, concurrency, crystal, green threads, fibers, macros, static types, safety, nil, null, null-safety, julia, 7 languages, 7 languages challenge, 7 languages in 7 weeks, Jupiter Broadcasting, Developer podcast, Coder Radio</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>We&#39;re back and going crazy about Crystal, a statically typed language that&#39;s as fast as C and as slick as ruby.</p>

<p>Plus an update on Rails 6, Intel&#39;s growing adoption of Rust, and the challenge of making breaking changes.</p><p>Links:</p><ul><li><a title="Feedback: Academia and Industry" rel="nofollow" href="https://slexy.org/view/s207igrpde">Feedback: Academia and Industry</a> &mdash; Do either of you have any insights as to how the software development community would view someone with a math PhD, but no industry coding experience as a job applicant? Any advice would be appreciated.
</li><li><a title="Feedback: Absurd Abstractions" rel="nofollow" href="https://www.reddit.com/r/CoderRadio/comments/ct01ux/absurd_abstractions_coder_radio_371/">Feedback: Absurd Abstractions</a> &mdash; FYI about wanting `interface` in Python: they are called abstract base classes. Check out the standard library module, abc for that and collections.abc some useful predefined container interfaces.

</li><li><a title="Feedback: Breaking Changes" rel="nofollow" href="https://slexy.org/view/s21lBcB8Op">Feedback: Breaking Changes</a> &mdash; I developed  a niche Python package that has some user following in the network security realm.  I’m at a crossroads though as a change I want to make will subtly break scripts that worked in previous/current versions.  The end result of my pending change  is good for the project but I fear I’ll ruin the workflow of my users.  Other than my github page I don’t know how to query/inform my users of this pending change.  What should I do?</li><li><a title="Ruby on Rails 6.0 Release Notes" rel="nofollow" href="https://edgeguides.rubyonrails.org/6_0_release_notes.html">Ruby on Rails 6.0 Release Notes</a> &mdash; Make Webpacker the default JavaScript compiler for Rails 6</li><li><a title="Intel and Rust: the Future of Systems Programming: Josh Triplett" rel="nofollow" href="https://www.youtube.com/watch?v=l9hM0h6IQDo">Intel and Rust: the Future of Systems Programming: Josh Triplett</a> &mdash; Hear about how Intel is working to bring Rust to full parity with C, building the future of systems programming.</li><li><a title="Altruism Still Fuels the Web. Businesses Love to Exploit It | WIRED" rel="nofollow" href="https://www.wired.com/story/altruism-open-source-fuels-web-businesses-love-to-exploit-it/">Altruism Still Fuels the Web. Businesses Love to Exploit It | WIRED</a> &mdash; The original well-meaning, geeky architects of the web believed that there was an abundance of altruism in human nature—and they were more correct on this count, it turns out, than many esteemed social philosophers were. But they were too optimistic in overlooking the possibility that corporations would exploit and colonize this new realm. If only we had all seen it coming.</li><li><a title="The Crystal Programming Language" rel="nofollow" href="https://crystal-lang.org/">The Crystal Programming Language</a> &mdash; Crystal is statically type checked, so any type errors will be caught early by the compiler rather than fail on runtime. Moreover, and to keep the language clean, Crystal has built-in type inference, so most type annotations are unneeded.
</li><li><a title="The Imposter&#39;s Handbook by Rob Conery" rel="nofollow" href="https://www.goodreads.com/book/show/31572054-the-imposter-s-handbook">The Imposter's Handbook by Rob Conery</a> &mdash; You've had to learn on the job. New languages, new frameworks, new ways of doing things - a constant struggle just to stay current in the industry. This left no time to learn the foundational concepts and skills that come with a degree in Computer Science.</li></ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>We&#39;re back and going crazy about Crystal, a statically typed language that&#39;s as fast as C and as slick as ruby.</p>

<p>Plus an update on Rails 6, Intel&#39;s growing adoption of Rust, and the challenge of making breaking changes.</p><p>Links:</p><ul><li><a title="Feedback: Academia and Industry" rel="nofollow" href="https://slexy.org/view/s207igrpde">Feedback: Academia and Industry</a> &mdash; Do either of you have any insights as to how the software development community would view someone with a math PhD, but no industry coding experience as a job applicant? Any advice would be appreciated.
</li><li><a title="Feedback: Absurd Abstractions" rel="nofollow" href="https://www.reddit.com/r/CoderRadio/comments/ct01ux/absurd_abstractions_coder_radio_371/">Feedback: Absurd Abstractions</a> &mdash; FYI about wanting `interface` in Python: they are called abstract base classes. Check out the standard library module, abc for that and collections.abc some useful predefined container interfaces.

</li><li><a title="Feedback: Breaking Changes" rel="nofollow" href="https://slexy.org/view/s21lBcB8Op">Feedback: Breaking Changes</a> &mdash; I developed  a niche Python package that has some user following in the network security realm.  I’m at a crossroads though as a change I want to make will subtly break scripts that worked in previous/current versions.  The end result of my pending change  is good for the project but I fear I’ll ruin the workflow of my users.  Other than my github page I don’t know how to query/inform my users of this pending change.  What should I do?</li><li><a title="Ruby on Rails 6.0 Release Notes" rel="nofollow" href="https://edgeguides.rubyonrails.org/6_0_release_notes.html">Ruby on Rails 6.0 Release Notes</a> &mdash; Make Webpacker the default JavaScript compiler for Rails 6</li><li><a title="Intel and Rust: the Future of Systems Programming: Josh Triplett" rel="nofollow" href="https://www.youtube.com/watch?v=l9hM0h6IQDo">Intel and Rust: the Future of Systems Programming: Josh Triplett</a> &mdash; Hear about how Intel is working to bring Rust to full parity with C, building the future of systems programming.</li><li><a title="Altruism Still Fuels the Web. Businesses Love to Exploit It | WIRED" rel="nofollow" href="https://www.wired.com/story/altruism-open-source-fuels-web-businesses-love-to-exploit-it/">Altruism Still Fuels the Web. Businesses Love to Exploit It | WIRED</a> &mdash; The original well-meaning, geeky architects of the web believed that there was an abundance of altruism in human nature—and they were more correct on this count, it turns out, than many esteemed social philosophers were. But they were too optimistic in overlooking the possibility that corporations would exploit and colonize this new realm. If only we had all seen it coming.</li><li><a title="The Crystal Programming Language" rel="nofollow" href="https://crystal-lang.org/">The Crystal Programming Language</a> &mdash; Crystal is statically type checked, so any type errors will be caught early by the compiler rather than fail on runtime. Moreover, and to keep the language clean, Crystal has built-in type inference, so most type annotations are unneeded.
</li><li><a title="The Imposter&#39;s Handbook by Rob Conery" rel="nofollow" href="https://www.goodreads.com/book/show/31572054-the-imposter-s-handbook">The Imposter's Handbook by Rob Conery</a> &mdash; You've had to learn on the job. New languages, new frameworks, new ways of doing things - a constant struggle just to stay current in the industry. This left no time to learn the foundational concepts and skills that come with a degree in Computer Science.</li></ul>]]>
  </itunes:summary>
</item>
  </channel>
</rss>
