<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ernest Yoyowah</title>
    <description>The latest articles on DEV Community by Ernest Yoyowah (@ernest_yoyowah).</description>
    <link>https://dev.to/ernest_yoyowah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2581316%2F4e003d13-fc2b-40c4-8857-239cebbf9a82.png</url>
      <title>DEV Community: Ernest Yoyowah</title>
      <link>https://dev.to/ernest_yoyowah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ernest_yoyowah"/>
    <language>en</language>
    <item>
      <title>Compiling 2025: Year of Growth 🌱</title>
      <dc:creator>Ernest Yoyowah</dc:creator>
      <pubDate>Tue, 07 Jan 2025 11:49:48 +0000</pubDate>
      <link>https://dev.to/ernest_yoyowah/compiling-2025-year-of-growth-17j9</link>
      <guid>https://dev.to/ernest_yoyowah/compiling-2025-year-of-growth-17j9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/newyear"&gt;2025 New Year Writing challenge&lt;/a&gt;: Compiling 2025.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3uk3e8xt5dmx0uutqw5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3uk3e8xt5dmx0uutqw5.jpg" alt="year of growth" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;2024 was the year I set my foundation, navigating internships, contracts, and learning opportunities while balancing challenges in college and life. Now, 2025 is here, and I’m stepping into &lt;strong&gt;The Year of Growth 🌱&lt;/strong&gt;. This is the year I take bold steps toward becoming the well-rounded software engineer, and musician I’ve envisioned. Here’s how I’m planning to make it happen!  &lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Main Goals for 2025
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖥️ Become a Better Software Engineer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Deep dive into &lt;strong&gt;Full-Stack Development&lt;/strong&gt;: JavaScript, TypeScript, ReactJS, and Node.js.
&lt;/li&gt;
&lt;li&gt;Build practical projects while mastering design patterns and runtime concepts.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎹 Excel as a Musician
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Strengthen &lt;strong&gt;keyboard skills&lt;/strong&gt;: ear training, soloing, and exploring music technology like VSTs and DAWs.
&lt;/li&gt;
&lt;li&gt;Expand both &lt;strong&gt;local (Ghanaian worship styles)&lt;/strong&gt; and &lt;strong&gt;foreign (advanced chord progressions)&lt;/strong&gt; repertoires.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💬 Enhance Communication Skills
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Refine articulation, presentation skills, and tone to improve speaking presence.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎓 Succeed Academically
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Achieve a &lt;strong&gt;minimum GPA of 3.4&lt;/strong&gt; with consistent performance.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💼 Secure Professional Experience
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Obtain a full-time role or freelance gigs to enhance industry exposure.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📅 Quarterly Quest (Jan – March 2025)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Morning Manifesto
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"I am a great and renowned software engineer, architect, and musician through Christ who strengthens me. 🙌"&lt;/em&gt;  &lt;/p&gt;




&lt;h3&gt;
  
  
  Focus Areas
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🖥️ &lt;strong&gt;Software Engineering: Full-Stack Development&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;JavaScript (JS)&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Study runtime concepts: execution context, event loop, and transpilers.
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Resource&lt;/strong&gt;: &lt;em&gt;You Don’t Know JS (YDKJS)&lt;/em&gt;.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Build a project using advanced runtime concepts.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;TypeScript (TS)&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand its use for type safety and transpilation.
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Resource&lt;/strong&gt;: TypeScript Handbook.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Refactor an existing JS project into TS.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ReactJS&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Master design patterns, state management, hooks, and reusable components.
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Resource&lt;/strong&gt;: &lt;em&gt;React Design Patterns&lt;/em&gt; by Michele Bertoli.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Build a feature-rich web app using reusable components.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Node.js&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn advanced patterns and middleware.
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Resource&lt;/strong&gt;: &lt;em&gt;Node.js Design Patterns&lt;/em&gt;.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Build a REST API with Node.js and Express.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h4&gt;
  
  
  🎹 &lt;strong&gt;Musician: Keyboardist and Music Technologist&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ear Training&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local focus: Ghanaian worship &amp;amp; praise (horns/trumpets, advanced voicings).
&lt;/li&gt;
&lt;li&gt;Foreign focus: 251 and 736 progressions.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Transcribe 5 songs (3 local, 2 foreign).
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Music Technology (MuTech)&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explore VSTs and DAWs for music production.
&lt;/li&gt;
&lt;li&gt;Tools: FL Studio or Ableton Live.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Produce one instrumental track using DAWs.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h4&gt;
  
  
  💬 &lt;strong&gt;Communication Skills&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Record and review presentations to refine articulation, tone, and voice projection.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Deliver a 3–5 minute presentation on a technical topic.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  🎓 &lt;strong&gt;College&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Allocate daily study hours for core courses.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Complete assignments on time and prep early for exams.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  💼 &lt;strong&gt;Job&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Polish resume and LinkedIn profile.
&lt;/li&gt;
&lt;li&gt;Start applying for full-time roles and freelance gigs.
&lt;/li&gt;
&lt;li&gt;👉 &lt;strong&gt;Key Deliverable&lt;/strong&gt;: Secure 3 interviews or freelance opportunities.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;2025 is a year of intentional growth—professionally, creatively, and personally. With faith, focus, and consistent effort, I believe I can achieve everything I’ve set out to do. 🚀  &lt;/p&gt;

&lt;p&gt;✨ &lt;em&gt;Let’s make this year amazing!&lt;/em&gt; 🎉 &lt;/p&gt;

&lt;h2&gt;
  
  
  Connect With Me
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;a href="https://ernestyoyowah.vercel.app" rel="noopener noreferrer"&gt;Portfolio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💼 &lt;a href="https://www.linkedin.com/in/ernestyoyowah" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🖥️ &lt;a href="https://github.com/ernest-Yoyowah" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>newyearchallenge</category>
      <category>career</category>
    </item>
    <item>
      <title>🚀 From Code to Execution: How JavaScript Code Runs in Your Browser</title>
      <dc:creator>Ernest Yoyowah</dc:creator>
      <pubDate>Fri, 03 Jan 2025 17:53:12 +0000</pubDate>
      <link>https://dev.to/ernest_yoyowah/from-code-to-execution-how-javascript-code-runs-in-your-browser-lg</link>
      <guid>https://dev.to/ernest_yoyowah/from-code-to-execution-how-javascript-code-runs-in-your-browser-lg</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2apcqd3lbcuapcv8go30.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2apcqd3lbcuapcv8go30.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;## From Developer's Editor to JS Engine&lt;/p&gt;

&lt;p&gt;After a program leaves a developer's editor, it undergoes several transformations before being executed by a JavaScript (JS) engine:&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary of the Process
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transpilation by Babel:&lt;/strong&gt; Converts modern JavaScript into older versions for compatibility.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Packaging by Webpack:&lt;/strong&gt; Bundles transpiled code and project assets into deployable files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parsing by JS Engine:&lt;/strong&gt; Breaks code into tokens and generates an Abstract Syntax Tree (AST).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bytecode Generation by Ignition:&lt;/strong&gt; Converts AST into bytecode for efficient interpretation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interpretation by Ignition:&lt;/strong&gt; Executes bytecode for fast program startup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Just-In-Time Compilation by TurboFan:&lt;/strong&gt; Optimizes hot code into machine code for peak performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution:&lt;/strong&gt; The optimized machine code is executed directly by the CPU.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1. Transpilation by Babel
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Babel is a popular tool used to convert modern JavaScript code (written using the latest language features) into backward-compatible versions that can run on older browsers or environments. This process is known as &lt;strong&gt;transpilation&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Transpiled JavaScript code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Packaging by Webpack (and Other Build Processes)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Webpack is a module bundler commonly used in modern JavaScript development. It takes the transpiled code from Babel, along with other project files (stylesheets, images, etc.), and bundles them into a single output file or multiple files, ready for deployment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Bundled JavaScript files along with other assets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Processing by JS Engine
&lt;/h2&gt;

&lt;p&gt;Once the bundled JavaScript code is delivered to a JS engine, the following steps occur:&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Parsing (Tokenization and AST Generation)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tokenization (Lexical Analysis):&lt;/strong&gt; The code is broken down into smaller units called &lt;strong&gt;tokens&lt;/strong&gt;. Each token represents a specific syntactical element (e.g., variables, operators, or keywords).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Syntax Analysis (AST Generation):&lt;/strong&gt; The tokens are used to create an &lt;strong&gt;Abstract Syntax Tree (AST)&lt;/strong&gt;, which represents the syntactic structure of the code. This step also checks for &lt;strong&gt;syntax errors&lt;/strong&gt; in the program.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; AST representation of the code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Bytecode Generation by Ignition (Intermediate Representation)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; The AST is processed by the &lt;strong&gt;Ignition interpreter&lt;/strong&gt;, which converts it into &lt;strong&gt;bytecode&lt;/strong&gt;, a compact, intermediate representation of the code. This bytecode is designed to be executed efficiently by the engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Bytecode ready for execution by Ignition.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Interpretation by Ignition
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; The bytecode generated in the previous step is executed by the &lt;strong&gt;Ignition interpreter&lt;/strong&gt;. This allows for rapid program startup by directly interpreting the bytecode instructions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Results from executing the bytecode.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Just-In-Time Compilation by TurboFan
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; During execution, frequently used code paths (hot code) are identified. These hot paths are optimized by the &lt;strong&gt;TurboFan JIT compiler&lt;/strong&gt;, which compiles the bytecode into &lt;strong&gt;machine code&lt;/strong&gt; for the target platform. This step significantly improves performance for hot code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Optimized machine code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. Execution of Machine Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; The optimized machine code is executed directly by the CPU, providing the best possible performance for the program.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Final program results.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Concepts in the Execution Pipeline
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tokenization:&lt;/strong&gt; Breaking code into recognizable units (tokens) as part of the parsing phase.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AST Generation:&lt;/strong&gt; Creating a structured representation of the code for further processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bytecode:&lt;/strong&gt; An intermediate representation used for quick interpretation by Ignition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JIT Compilation:&lt;/strong&gt; TurboFan compiles hot code into optimized machine code for faster execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution:&lt;/strong&gt; The final stage where JavaScript code produces its desired outcomes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The V8 engine combines interpretation and compilation to balance startup speed and execution performance. The pipeline starts with parsing and bytecode generation by Ignition, followed by interpretation, and transitions to optimized machine code execution through TurboFan for hot code paths. This dynamic approach ensures efficient JavaScript execution in modern applications.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>react</category>
    </item>
  </channel>
</rss>
