<?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: Edward Chia</title>
    <description>The latest articles on DEV Community by Edward Chia (@edwardcjianken).</description>
    <link>https://dev.to/edwardcjianken</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%2F3172455%2F390710b8-c245-4d0c-9206-016c8076deb7.jpg</url>
      <title>DEV Community: Edward Chia</title>
      <link>https://dev.to/edwardcjianken</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/edwardcjianken"/>
    <language>en</language>
    <item>
      <title>Day 33 - Day 34: First JavaScript Component</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Thu, 12 Jun 2025 02:19:34 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-33-day-34-first-javascript-component-e22</link>
      <guid>https://dev.to/edwardcjianken/day-33-day-34-first-javascript-component-e22</guid>
      <description>&lt;p&gt;&lt;strong&gt;✍🏻 Log Date: 11 June 2025&lt;/strong&gt;&lt;br&gt;
For the past two days, I applied the JavaScript fundamentals I've been learning to real-world mini challenges from &lt;a href="https://www.frontendmentor.io/" rel="noopener noreferrer"&gt;frontendmentor.io&lt;/a&gt;. I focused on building two commonly used UI components: a rating interface and an FAQ accordion &lt;/p&gt;

&lt;p&gt;Both are useful, reusable, and perfect for sharpening my JS basics while building visible, working features early on.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded (Highlights):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interactive Rating Component (Attempt 1 &amp;amp; 2)&lt;/strong&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%2F1dpvnb0f96x187smpchw.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%2F1dpvnb0f96x187smpchw.png" alt="Image description" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/interactive-rating-component/" rel="noopener noreferrer"&gt;https://edwardcjianken.github.io/interactive-rating-component//&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/interactive-rating-component/tree/main/docs" rel="noopener noreferrer"&gt;https://github.com/edwardcjianken/interactive-rating-component/tree/main/docs&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Combined :hover and ::before pseudo-elements on radio buttons for a dynamic highlight effect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Button with mouse hovered:&lt;br&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%2Ffucrn3vga3ocsmuu15ci.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%2Ffucrn3vga3ocsmuu15ci.png" alt="Image description" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Button when clicked:&lt;br&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%2Fq515fycahgyvh4f3n7re.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%2Fq515fycahgyvh4f3n7re.png" alt="Image description" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used JavaScript for basic form validation: when no rating is selected, the radio buttons blink twice with an orange border.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;Captured user input and reused it on the thank-you screen to print dynamically -  "You selected &amp;lt;user input&amp;gt; out of 5"&lt;/li&gt;
&lt;/ul&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%2Fin1erck6r3m61s9tdnml.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%2Fin1erck6r3m61s9tdnml.png" alt="Image description" width="800" height="467"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FAQ Accordion Component (Attempt 1 &amp;amp; 2)&lt;/strong&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%2Fr76wu55t96u2fayn2bb0.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%2Fr76wu55t96u2fayn2bb0.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/faq-accordian-component/" rel="noopener noreferrer"&gt;https://edwardcjianken.github.io/faq-accordian-component/&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/faq-accordian-component/tree/main/docs" rel="noopener noreferrer"&gt;https://github.com/edwardcjianken/faq-accordian-component/tree/main/docs&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accordion logic felt tricky at first, but I eventually understood how toggling content visibility can be done with max-height and overflow: hidden.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;Used .closest() to move up the DOM tree and .querySelector() to target nested elements — super handy for clean, modular scripting.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  const accItem = plusBtn.closest(".faq__acc-item");
  const accAnswer = accItem.querySelector(".faq__acc-answer");
  const minusBtn = accItem.querySelector(".faq__minus-icon");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;ul&gt;
&lt;li&gt;In my second attempt, I improved UX by toggling plus/minus icons based on whether the panel is expanded or collapsed.

&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflection:&lt;/strong&gt;&lt;br&gt;
It felt great seeing small pieces of JavaScript come to life in these UI components. These small wins are encouraging and make me excited to gradually increase project complexity. &lt;strong&gt;Onward! 🚀&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>devjournal</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Day 31 - Day 32: Landing Page with Different Layout</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Mon, 09 Jun 2025 15:04:28 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-31-day-32-landing-49gd</link>
      <guid>https://dev.to/edwardcjianken/day-31-day-32-landing-49gd</guid>
      <description>&lt;p&gt;&lt;strong&gt;✍🏻 Log Date: 9 June 2025&lt;/strong&gt;&lt;br&gt;
For the past two days, I focused on recreating a more advanced landing page layout — experimenting with overlapping elements and visual transitions.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded (Highlights):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Landing Page for Suite (a hypothetical product) (Attempt 1 &amp;amp; 2)&lt;/strong&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%2Fah7zy98wcbocm3eocf75.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%2Fah7zy98wcbocm3eocf75.png" alt="Image description" width="800" height="455"&gt;&lt;/a&gt;&lt;br&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%2Fn3i35cg22cg7yzsku5dg.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%2Fn3i35cg22cg7yzsku5dg.png" alt="Image description" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/suite-landing-page/" rel="noopener noreferrer"&gt;https://edwardcjianken.github.io/suite-landing-page/&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/suite-landing-page" rel="noopener noreferrer"&gt;https://github.com/edwardcjianken/suite-landing-page&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;I did two separate attempts for this layout to reinforce how to handle more complex designs. The layout features a 3-column hero section, with certain elements from the first column intentionally overflowing into the second — a style I haven’t tried before.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Things I Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Gradient Button with Smooth Transition&lt;/strong&gt;&lt;br&gt;
Learned how to simulate a smooth gradient transition using the ::before pseudo-element underneath the button. Since CSS can’t transition between background-image values (e.g., gradients), I had to apply a transparent background on the button itself and animate the pseudo-element underneath it.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
Button without mouse hover:&lt;br&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%2F1f1qz30mwqno6h3s8qgw.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%2F1f1qz30mwqno6h3s8qgw.png" alt="Image description" width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Button with mouse hovered:&lt;br&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%2Fza38hg70ten5qyzu8rcx.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%2Fza38hg70ten5qyzu8rcx.png" alt="Image description" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Overflowing Image Beyond Container&lt;/strong&gt;&lt;br&gt;
Positioned an image (of a person) so that the head appears above the container boundary. Surprisingly, this was simple — it just required a negative margin-top.&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%2F49imdlz7l1i5hgndegnh.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%2F49imdlz7l1i5hgndegnh.png" alt="Image description" width="800" height="916"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Understanding flex-basis and min-width&lt;/strong&gt;&lt;br&gt;
Got more comfortable with using flex-basis to control column widths in a flex container.&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%2Fj2imzyk78784ig2yyy7b.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%2Fj2imzyk78784ig2yyy7b.png" alt="Image description" width="563" height="530"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflection:&lt;/strong&gt;&lt;br&gt;
Practicing this layout helped solidify how layout mechanics like flex-basis, min-width, and pseudo-elements interact under the hood.&lt;br&gt;
Next, I will start to use incorporate some JavaScript to add more interactivity to the designs. &lt;strong&gt;Onward! 🚀&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>devjournal</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Day 29 - Day 30: Learning Cursor Prompting &amp; Recreating My First Landing Page</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Sun, 08 Jun 2025 05:10:47 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-29-day-30-learning-cursor-prompting-recreating-my-first-landing-page-5ee2</link>
      <guid>https://dev.to/edwardcjianken/day-29-day-30-learning-cursor-prompting-recreating-my-first-landing-page-5ee2</guid>
      <description>&lt;p&gt;&lt;strong&gt;✍🏻 Log Date: 7 June 2025&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the past 2 days, I focused on two things:&lt;br&gt;
(1) downloading and &lt;strong&gt;setting up Cursor&lt;/strong&gt;, and learning best practices for prompting effectively, and &lt;br&gt;
(2) &lt;strong&gt;recreating the Tech Book Club landing page&lt;/strong&gt; from my &lt;a href="https://dev.to/edwardcjianken/day-26-28-building-my-first-landing-page-5a7p"&gt;last post&lt;/a&gt; to sharpen my layout-building skills and improve speed.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📚 What I Studied:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Prompting Best Practices in Cursor:&lt;/strong&gt;&lt;br&gt;
Credits to &lt;a href="https://www.youtube.com/watch?v=uwA3MMYBfAQ&amp;amp;t=10s&amp;amp;ab_channel=VoloBuilds" rel="noopener noreferrer"&gt;Volo Build's video&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Prompt Structure (3 parts)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear instructions (e.g., Add search feature that performs search based on the product title and description)&lt;/li&gt;
&lt;li&gt;Implementation tips (e.g., Create new component SearchBar and add it to the existing NavBar component. Also, create a new search endpoint in the &lt;a class="mentioned-user" href="https://dev.to/server"&gt;@server&lt;/a&gt;.ts file.)&lt;/li&gt;
&lt;li&gt;Edge case handling (e.g., When no results are found, display "No Results" instead of product list)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Specify Tech Stack&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt example: Create a weather tracking app using React (Vite), TypeScript, ShadCN, and Tailwind&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use Numbered Feature Lists &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To be more specific with my instructions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provide Working Examples&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sample working code to guide implementation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use @Docs and @Web Tags&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To fetch documentation or web references directly inside Cursor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Proactive Prompting&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this the most efficient approach?&lt;/li&gt;
&lt;li&gt;Are there any potential security issues?&lt;/li&gt;
&lt;li&gt;Are there edge cases we’re not handling yet?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate Documentation for the created software&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt example: Add explanation of this code to our README file&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refactor &amp;amp; Simplify&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt example: Please refactor the code in [file/function] to split it into [list of files/functions]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the word 'Radical' when stuck&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt example: This still isn't working. Let's try a radically different approach.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Learn to Code (most important for me)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt example: I am learning how to code. Can you explain how the frontend connects to the backend in simple terms?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Design Before Code&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Cursor to analyze and improve approach before jumping into code.&lt;/li&gt;
&lt;li&gt;I want to build [feature]. How would you approach this technically?&lt;/li&gt;
&lt;li&gt;How would you architect this? What considerations are important?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded (Highlights):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Book Club Landing Page (Attempt 2)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Screenshots:&lt;br&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%2F3po8uwb7mb9l31ckxd2o.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%2F3po8uwb7mb9l31ckxd2o.png" alt="Image description" width="800" height="364"&gt;&lt;/a&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%2F8r2k0lwvz09q3f61one9.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%2F8r2k0lwvz09q3f61one9.png" alt="Image description" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/tech-book-club-landing-page/" rel="noopener noreferrer"&gt;https://edwardcjianken.github.io/tech-book-club-landing-page/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/tech-book-club-landing-page/tree/main/attempt-2" rel="noopener noreferrer"&gt;https://github.com/edwardcjianken/tech-book-club-landing-page/tree/main/attempt-2&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;This time, I completed it in about 4 hours+, compared to over 12 hours in my first attempt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Improvements Made:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Better CSS Organization &amp;amp; Container System&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used  as full-width background wrapper&lt;/li&gt;
&lt;li&gt;Added a .container div inside to center content with max-width: 1200px&lt;/li&gt;
&lt;li&gt;Avoided hardcoding margins like padding: 10%
&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%2Fqa5xrmr3tw2s7vb6kbfz.png" alt="Image description" width="553" height="198"&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Created Utility Classes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grouped reusable styles into utility classes like .section, .container, .btn, etc.
&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%2F9lvmbtuhbwwowj7a598g.png" alt="Image description" width="546" height="424"&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set Base Styles&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applied global base styles to elements (e.g. all &lt;h1&gt;, &lt;/h1&gt;
&lt;p&gt;) to avoid repeating CSS&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved Class Naming&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simplified and made class names more consistent and readable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Used Positioning for Decorative Icons&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Practiced using position: absolute and relative to place icons outside the document flow
&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%2Frmgp02nu8dho8s4tws1x.png" alt="Image description" width="565" height="217"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflection:&lt;/strong&gt;&lt;br&gt;
I’ve decided to start using Cursor strictly as a question-asking tool to speed up my learning. Instead of copying and pasting code into ChatGPT manually, Cursor allows me to ask questions directly within my codebase. It reads my files and provides answers based on context. For now, I won’t let it make code changes on my behalf — just guide me with answers and explanations.&lt;/p&gt;

&lt;p&gt;Rebuilding an existing layout instead of starting from scratch helped reinforce key concepts and made the learning feel more hands-on. Repetition strengthens muscle memory when working with real-world layouts.&lt;/p&gt;

&lt;p&gt;Next, I’m planning to explore CSS preprocessors like SASS, SCSS, and LESS. I'm curious how they can improve efficiency in managing larger, more complex stylesheets. &lt;strong&gt;Onward! 🚀&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>devjournal</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Day 26 - 28: Building my first landing page</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Thu, 05 Jun 2025 18:09:41 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-26-28-building-my-first-landing-page-5a7p</link>
      <guid>https://dev.to/edwardcjianken/day-26-28-building-my-first-landing-page-5a7p</guid>
      <description>&lt;p&gt;&lt;strong&gt;✍🏻 Log Date: 5 June 2025&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the past 3 days, I focused entirely on real-world project simulations by building reusable UI component and a full landing page. I referenced design challenges from &lt;a href="https://www.frontendmentor.io/" rel="noopener noreferrer"&gt;Frontend Mentor&lt;/a&gt;, which helped sharpen my skills with hands-on layout building and responsiveness.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📚 What I Studied:&lt;/strong&gt;&lt;br&gt;
(Skipped — no new studying this cycle as i focused on building.)&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded (Highlights):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Order Summary Component&lt;/strong&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%2Fk7380qcfgabp0x1dr0a1.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%2Fk7380qcfgabp0x1dr0a1.png" alt="Image description" width="800" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/order-summary-component/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/order-summary-component/tree/main/docs" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Chose this component because it’s highly practical — useful for nearly any future eCommerce-related project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practiced modular structuring and styling, following BEM naming convention.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Landing Page for Tech Book Club&lt;/strong&gt;&lt;br&gt;
This was my first full landing page build, complete with a Hero section, 2 Feature sections, Testimonial section, etc.&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%2F7nm3nnfi2np9py7sus3y.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%2F7nm3nnfi2np9py7sus3y.png" alt="Image description" width="800" height="365"&gt;&lt;/a&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%2F4lz3pcmqd07tvr532krm.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%2F4lz3pcmqd07tvr532krm.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/tech-book-club-landing-page/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/tech-book-club-landing-page/tree/main/docs" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Took over 12 hours to complete. Laying out every element and handling media queries (desktop, tablet, mobile) felt tedious — but it gave me deep, practical exposure to responsive design.&lt;/p&gt;

&lt;p&gt;I realized that using tools like React or Tailwind CSS later on could streamline this process significantly. Despite the time investment, it laid a strong foundation for future landing page projects.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Things I Learned from the Landing Page Build:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Gradient Text Effects&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used background-clip, -webkit-background-clip, and -webkit-text-fill-color to create text with a gradient fill.
&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%2Fkuivrvfl41volnspkx7f.png" alt="Image description" width="800" height="220"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Grid Background with Gradient Overlay&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built a custom 3-layer background:&lt;/li&gt;
&lt;li&gt;Horizontal lines&lt;/li&gt;
&lt;li&gt;Vertical lines&lt;/li&gt;
&lt;li&gt;A gradient overlay for depth and style
&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%2Fb788dlofxbj7a7djajza.png" alt="Image description" width="800" height="235"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Emphasis with Pseudo-elements&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applied a circle pattern image using ::before pseudo-element to highlight key words visually.
&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%2F6l56jrdfwt16c9x0ixmm.png" alt="Image description" width="800" height="358"&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%2Fcotnienu5rqsgjnb5e99.png" alt="Image description" width="800" height="304"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflection:&lt;/strong&gt;&lt;br&gt;
I still feel slow when positioning elements and writing responsive CSS, but I remind myself that this is part of the learning curve. I'm sure it will become easier the more I build. Next!&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>devjournal</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Day 24 - 25: Learning Python Libraries (NumPy, Pandas, Matplotlib)</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Mon, 02 Jun 2025 19:23:17 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-23-24-learning-python-libraries-numpy-pandas-matplotlib-32fp</link>
      <guid>https://dev.to/edwardcjianken/day-23-24-learning-python-libraries-numpy-pandas-matplotlib-32fp</guid>
      <description>&lt;p&gt;&lt;strong&gt;✍🏻Log Date: 2 June 2025&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the past 2 days, I've been continuing with my Full Stack Development with AI course at NUS. The current module shifts into Python libraries — foundational tools that will support the AI-focused parts of the curriculum coming later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📚 What I Studied:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Got familiar with Jupyter Notebook as an interactive coding environment.&lt;/li&gt;
&lt;li&gt;Explored NumPy for working with n-dimensional arrays and basic data analysis techniques:

&lt;ul&gt;
&lt;li&gt;np.array(), np.mean(), np.std(), np.percentile()&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Learned Pandas basics:

&lt;ul&gt;
&lt;li&gt;Data structures like Series and DataFrames&lt;/li&gt;
&lt;li&gt;Read, cleaned, modified, and wrote CSV files&lt;/li&gt;
&lt;li&gt;Used accessors like df.iloc[-10:], df.index.size, df.shape[0], and methods like df.fillna()&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Got a first look at Matplotlib for visualizing data:

&lt;ul&gt;
&lt;li&gt;Created line plots and scatter plots&lt;/li&gt;
&lt;li&gt;Customized basic chart characteristics (labels, titles, colors)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded (Highlights):&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Practiced data analysis using NumPy&lt;/strong&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%2Fcu8zvduxv7umgui7qeb4.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%2Fcu8zvduxv7umgui7qeb4.png" alt="Image description" width="800" height="782"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/nus-lab-work/blob/main/week-7-lab/lab-7.1/lab-7.1.ipynb" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simulated analysis of a customer dataset (~1000 data points) to extract business insights.&lt;/li&gt;
&lt;li&gt;Identified and flagged statistical outliers based on spending thresholds using NumPy.&lt;/li&gt;
&lt;li&gt;Grouped data into defined spending tiers (e.g. low, mid, high) using binning techniques.&lt;/li&gt;
&lt;li&gt;Projected potential revenue uplift from a simulated marketing campaign using filtered data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Applied Pandas to manipulate and explore datasets&lt;/strong&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%2Fzngc2633zkiw9lhtlp1p.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%2Fzngc2633zkiw9lhtlp1p.png" alt="Image description" width="671" height="788"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/nus-lab-work/blob/main/week-7-lab/lab-7.2/ex01.ipynb" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explored the structure of a user dataset (rows, columns, column names, and data types) using pandas.&lt;/li&gt;
&lt;li&gt;Analyzed the distribution of user occupations and counted unique job titles.&lt;/li&gt;
&lt;li&gt;Reviewed descriptive statistics of the dataset, including mean and least common ages.&lt;/li&gt;
&lt;li&gt;Added a new salary column to the DataFrame.&lt;/li&gt;
&lt;li&gt;Computed salary for each user by multiplying their age by 100.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basic Data Visualization using Matplotlib&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%2Fvm2nu0fesyg9lzdxbvxu.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%2Fvm2nu0fesyg9lzdxbvxu.png" alt="Image description" width="657" height="612"&gt;&lt;/a&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%2Fw5bsk2lbmrvxleoos3a6.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%2Fw5bsk2lbmrvxleoos3a6.png" alt="Image description" width="636" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/nus-assignments/blob/main/week-7-assignment/Module%206_Week%207_Required%20Assignment_Chia.ipynb" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflection:&lt;/strong&gt;&lt;br&gt;
Learning how to derive insights from data has been quite satisfying. Even with a simple dataset, visualizing spending trends and segmenting users helped me better understand how data analysts think. It's still early, but this gave me a small taste of what it’s like to apply Python in real business contexts.&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>careerdevelopment</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Day 19 - 23 of Coding: Basics of Python</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Mon, 02 Jun 2025 18:43:56 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-19-22-of-coding-basics-of-python-3cfi</link>
      <guid>https://dev.to/edwardcjianken/day-19-22-of-coding-basics-of-python-3cfi</guid>
      <description>&lt;p&gt;&lt;strong&gt;✍🏻 Log date: 31 May 2025&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over the past few days, I caught up on some modules from my National University of Singapore course (Full Stack Development with AI). I'm excited to dive into full-stack development end-to-end, but I know there’s still a long journey ahead—the course wraps up in mid-September this year.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📚 What I Studied:&lt;/strong&gt;&lt;br&gt;
The recent module covered the basics of Python programming. Topics included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installing Python and running .py files using Bash&lt;/li&gt;
&lt;li&gt;Naming conventions with snake_case&lt;/li&gt;
&lt;li&gt;Control flow with for and while loops&lt;/li&gt;
&lt;li&gt;Data structures like lists, tuples, dictionaries, and sets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded (Highlights):&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Compound Interest and Future Value Calculator&lt;/strong&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%2Fz9rt7i3mpjap5nlf9ts5.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%2Fz9rt7i3mpjap5nlf9ts5.png" alt="Image description" width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/nus-lab-work/blob/main/week-6-lab/lab-6.2/ex06.py" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nth Digit Finder (Using While Loop):&lt;/strong&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%2Fqerctegiofztoj7485kg.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%2Fqerctegiofztoj7485kg.png" alt="Image description" width="572" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/nus-lab-work/blob/main/week-6-lab/lab-6.4/ex02.py" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Triangle Generator (Using For Loop):&lt;/strong&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%2Fobsf92j7wy5yq2mt87cj.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%2Fobsf92j7wy5yq2mt87cj.png" alt="Image description" width="737" height="859"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/nus-lab-work/blob/main/week-6-lab/lab-6.4/ex03.py" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflection:&lt;/strong&gt;&lt;br&gt;
The exercises helped me better understand how to break down problems and translate logic into code. Looking forward to applying these concepts in bigger projects as the course progresses!&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>careerdevelopment</category>
    </item>
    <item>
      <title>Day 18 of Coding: Practicing BEM and scalable CSS design</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Tue, 27 May 2025 12:17:09 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-18-of-coding-practicing-bem-and-scalable-css-design-26b4</link>
      <guid>https://dev.to/edwardcjianken/day-18-of-coding-practicing-bem-and-scalable-css-design-26b4</guid>
      <description>&lt;p&gt;Over the last couple of days, I revisited two of my earlier HTML &amp;amp; CSS practice projects — this time with a focus on scalability, semantic structure, and maintainable CSS using the BEM (Block Element Modifier) naming convention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Stats Preview Card Component -- Attempt 2:&lt;/strong&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%2F6gqm3ole2vxl7m4zcmo1.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%2F6gqm3ole2vxl7m4zcmo1.png" alt="Image description" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/stats-preview-card-component/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/stats-preview-card-component/tree/main/attempt-2" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactored layout and media queries for better responsiveness.&lt;/li&gt;
&lt;li&gt;Set new breakpoint at max-width: 1000px and added another at max-width: 515px for tighter control on smaller screens.&lt;/li&gt;
&lt;li&gt;Focused on centralized global styles using :root for consistent spacing, typography, and colors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Social Links Profile -- Attempt 2:&lt;/strong&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%2Fatre3hr1ql35s3fzu6yl.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%2Fatre3hr1ql35s3fzu6yl.png" alt="Image description" width="474" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/social-links-profile/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/social-links-profile/tree/main/attempt-2" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Practiced custom transition effects for hover states.&lt;/li&gt;
&lt;li&gt;Switched entirely to BEM (Block Element Modifier) naming convention for scalability and structure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🎓 What I Learned:&lt;/strong&gt;&lt;br&gt;
Based on my research online, I learned that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BEM improves clarity in larger projects by providing predictable structure and naming.&lt;/li&gt;
&lt;li&gt;CSS becomes easier to debug and refactor when layout and styling are modularized.&lt;/li&gt;
&lt;li&gt;BEM can get tricky when components have deep nesting or multiple structural layers. I reminded myself that BEM doesn’t need to replicate every level of HTML nesting. Instead, think of BEM as a way to create reusable, modular blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&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%2Fpwtck7qkzfyvzpip3ua3.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%2Fpwtck7qkzfyvzpip3ua3.png" alt="Image description" width="708" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For instance, in this example, the "card" block contains elements like "card_&lt;em&gt;title" and "card&lt;/em&gt;&lt;em&gt;description". However, when a section is more complex or meaningful on its own—like the statistics section—I separated it into its own block called "stats-container" with its own elements such as "stat", "stat&lt;/em&gt;&lt;em&gt;value", and "stat&lt;/em&gt;_label". This keeps the code organized, modular, and easier to maintain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflections:&lt;/strong&gt;&lt;br&gt;
Going through the same components for a second time made me realize how much structure matters.&lt;/p&gt;

&lt;p&gt;My earlier attempts were functional, but not scalable. Applying BEM and global tokens forced me to think like a system designer — not just someone writing CSS line by line.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 16 - 17 of Coding: Designing stats preview card</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Tue, 20 May 2025 14:04:06 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-16-17-of-coding-mof</link>
      <guid>https://dev.to/edwardcjianken/day-16-17-of-coding-mof</guid>
      <description>&lt;p&gt;For the past 2 days, I dove deeper into CSS fundamentals while working on another HTML &amp;amp; CSS practice project.&lt;/p&gt;

&lt;p&gt;It wasn’t just about writing code — I focused on applying best practices from design systems and debugging mistakes that forced me to rethink my approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded:&lt;/strong&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%2Fszltkynhk952pzwbrlfd.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%2Fszltkynhk952pzwbrlfd.png" alt="Image description" width="800" height="370"&gt;&lt;/a&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%2F1hp3hiai8wflpiaacg7x.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%2F1hp3hiai8wflpiaacg7x.png" alt="Image description" width="541" height="903"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/stats-preview-card-component/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
GitHub Repo: &lt;a href="https://github.com/edwardcjianken/stats-preview-card-component/tree/main/docs" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*Design file from &lt;a href="https://www.frontendmentor.io/" rel="noopener noreferrer"&gt;FrontendMentor&lt;/a&gt;. Design only, no sample code provided.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Initially tried applying a background image on an &amp;lt;img&amp;gt; element — which doesn’t work! Realized that background images should target &amp;lt;div&amp;gt;s or elements capable of rendering background layers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practiced defining global CSS variables inside :root for things like font sizes, spacing, and color tokens. It may be overkill for a small project like this one, but it’s solid prep for larger, component-driven layouts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used media queries and modular spacing to ensure the layout was responsive and adaptable.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🎓 What I Studied:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To improve my CSS design foundation, I watched &lt;a href="https://www.youtube.com/watch?v=qyomWr_C_jA&amp;amp;ab_channel=Sajid" rel="noopener noreferrer"&gt;The Easy Way to Design Top Tier Websites by Sajid&lt;/a&gt; and summarized key takeaways:&lt;/p&gt;

&lt;p&gt;✅ Key Concepts: (I wasn't able to apply all of them, but I will try to keep these in mind with future designs for improvement.):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Functionality &amp;gt; Layout:&lt;br&gt;
Start with the purpose of the page, not the number of sections or buttons. Focus on core functionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Design Minimalism:&lt;br&gt;
Less is more. Fewer elements make a website more scannable — favor Z-pattern layouts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spacing Strategy:&lt;br&gt;
Start with generous spacing and adjust down. Most beginners (like me) underestimate how much space UI needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Design System Building Blocks:&lt;br&gt;
Set up consistent type scales, color schemes, spacing units, and basic components:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:root {
  /* Spacing */
  --margin-xs: 0.5rem;
  --margin-m: 1rem;
  --margin-l: 1.5rem;

  /* Colors */
  --gray10: hsl(0, 0%, 10%);
  --gray90: hsl(0, 0%, 90%);

  /* Typography */
  --ff: 'Inter', sans-serif;
  --h1: bold 4rem var(--ff);
  --p: 1rem var(--ff);
  --small: 0.75rem var(--ff);
}

:root {
  /* Spacing */
  --margin-xs: 0.5rem;
  --margin-m: 1rem;
  --margin-l: 1.5rem;

  /* Colors */
  --gray10: hsl(0, 0%, 10%);
  --gray90: hsl(0, 0%, 90%);

  /* Typography */
  --ff: 'Inter', sans-serif;
  --h1: bold 4rem var(--ff);
  --p: 1rem var(--ff);
  --small: 0.75rem var(--ff);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Hierarchy Through Contrast:&lt;br&gt;
Use color, size, and shadow intentionally to guide attention. Not everything needs to "pop" — instead, de-emphasize the less important.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid Centered Text:&lt;br&gt;
Left-justified text improves readability. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Cards for Depth:&lt;br&gt;
Soft box-shadows and spacing can give visual lift to otherwise bland sections like form elements or lists.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💡 Reflections:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CSS is definitely a rabbit hole, but each little iteration helps. The real win was learning how to design smarter, not harder — and code with scalability in mind.&lt;/p&gt;

&lt;p&gt;On to the next design!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 15 of Coding: Designing recipe page &amp; social links profile using HTML and CSS</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Sun, 18 May 2025 11:28:25 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/day-15-of-coding-5acb</link>
      <guid>https://dev.to/edwardcjianken/day-15-of-coding-5acb</guid>
      <description>&lt;p&gt;Today, I created a recipe webpage and social links profile from a Figma design file from &lt;a href="https://www.frontendmentor.io/" rel="noopener noreferrer"&gt;Frontend Mentor&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;It was my first time translating a design into code without referring to any source code. I also made sure to pay attention to semantic structure and responsive layout.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ What I Coded:&lt;/strong&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%2F4sdg1ewc2m94cjv2oxau.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%2F4sdg1ewc2m94cjv2oxau.png" alt="Image description" width="800" height="772"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/recipe-page/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/recipe-page/tree/main/docs" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built a responsive recipe webpage with clean layout and spacing.&lt;/li&gt;
&lt;li&gt;Practiced margin and padding to visually separate sections properly.&lt;/li&gt;
&lt;li&gt;Iterated from scratch for my second attempt (without referring back) to reinforce layout planning and semantic HTML skills.&lt;/li&gt;
&lt;/ul&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%2Fjdnkbus4z2x3r15a34cf.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%2Fjdnkbus4z2x3r15a34cf.png" alt="Image description" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://edwardcjianken.github.io/social-links-profile/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/edwardcjianken/social-links-profile/tree/main/docs" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Created a responsive social links profile with a clean layout and styled interactive buttons.&lt;/li&gt;
&lt;li&gt;Practiced applying CSS transitions with different speeds for hover-in and hover-out effects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📚 What I Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Building from Figma to Code:&lt;/strong&gt;&lt;br&gt;
I challenged myself to translate a Figma design into a real webpage using only HTML and CSS. This was my first real attempt at turning static design assets into code, and it taught me a lot about structure, spacing, and visual consistency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Semantic HTML:&lt;/strong&gt;&lt;br&gt;
I made sure to prioritize semantic markup — using tags like , , , and  appropriately — because I want a strong foundation in writing accessible, meaningful HTML.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Responsive Design:&lt;/strong&gt;&lt;br&gt;
I applied media queries to make sure the page works well on smaller screens (under 576px). This helped me understand how to adapt layouts for different devices using simple but effective responsive techniques.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CSS Layout First, Styling Second:&lt;/strong&gt;&lt;br&gt;
I learned that it’s better (and less overwhelming) to focus on laying out the page structure first before worrying about fonts, colors, and inline spacing. This helped me group related styles and avoid repetitive CSS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub Pages Deployment:&lt;/strong&gt;&lt;br&gt;
I reused the process I learned from deploying React projects — this time for a static HTML page. I used the /docs folder for deployment so I could keep multiple attempts organized.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A key lesson: assets must be inside the /docs folder — relative paths to folders outside of it won’t work. Took some time and debugging to realize that!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💭 Reflections:&lt;/strong&gt;&lt;br&gt;
I was initially anxious — it took me a whole day for what seemed like a simple page. But I reminded myself:&lt;/p&gt;

&lt;p&gt;This is just the start of my journey — each attempt is growth. If i want to improve fast, the only way is to iterate fast.&lt;/p&gt;

&lt;p&gt;On my second try, I completed everything (including responsiveness) in about 2 hours, which I think is a good start for my learning journey. More practice is definitely needed. On to the next design!&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Day 1 - 14 of Coding: Basics of HTML, CSS, JS &amp; Git</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Sat, 17 May 2025 05:49:52 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/coding-journey-day-1-day-14-1lh1</link>
      <guid>https://dev.to/edwardcjianken/coding-journey-day-1-day-14-1lh1</guid>
      <description>&lt;p&gt;&lt;strong&gt;📚 What I Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Refreshed Core Web Fundamentals:&lt;/strong&gt; Revisited the basics of HTML, CSS, and JavaScript that I learned through FreeCodeCamp last year, focusing on clean markup, styling fundamentals, and scripting logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Version Control with Git:&lt;/strong&gt; Learned essential Git commands such as git init, git add, git commit, git branch, and how to manage repositories with better workflow practices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Introduction to React:&lt;/strong&gt; Got started with React fundamentals — understanding JSX syntax, creating functional components, and getting familiar with common project file structures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deploying with GitHub Pages:&lt;/strong&gt; Learned how to deploy React projects from a multi-project repository by running npm run build, placing the output into a docs folder, and configuring GitHub Pages to serve the site — gaining hands-on experience with static site hosting and deployment workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;🛠️ What I Coded (Highlights):&lt;/strong&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%2Fx5oj2y6pcn4ajo2bay6g.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%2Fx5oj2y6pcn4ajo2bay6g.png" alt="Image description" width="800" height="313"&gt;&lt;/a&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%2Fkdpvjfcmnn79gtlzolcb.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%2Fkdpvjfcmnn79gtlzolcb.png" alt="Image description" width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Practiced dynamically rendering arrays of objects in React components.&lt;/li&gt;
&lt;li&gt;Built components that display different content based on the property values (props) passed in — gaining hands-on experience with conditional rendering and data-driven UI.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Why I’m Transitioning from Project Manager to Software Developer</title>
      <dc:creator>Edward Chia</dc:creator>
      <pubDate>Sat, 17 May 2025 04:37:46 +0000</pubDate>
      <link>https://dev.to/edwardcjianken/why-im-transitioning-from-project-manager-to-software-developer-261f</link>
      <guid>https://dev.to/edwardcjianken/why-im-transitioning-from-project-manager-to-software-developer-261f</guid>
      <description>&lt;p&gt;Hi everyone, Edward here 👋&lt;/p&gt;

&lt;p&gt;Until recently, I was working as a software project manager. I have 8 years of total work experience, including 5 years in project management — leading teams, managing timelines, and delivering projects end-to-end. I enjoyed the challenge, but then something unexpected happened: the UK company I worked for shut down. Just like that, I was out of a job.&lt;/p&gt;

&lt;p&gt;At first, I did what anyone might do — I started looking for another PM role. But the more I thought about it, the more something didn’t sit right.&lt;/p&gt;

&lt;p&gt;I realized that while I had experience managing software projects, I didn’t actually know how to build software myself. I always relied on a team of developers to get things done. That might sound fine, but it made me feel stuck — like I couldn't create anything on my own. I had the ideas, I understood the process, but I lacked the technical ability to execute.&lt;/p&gt;

&lt;p&gt;It hit me especially hard when I thought about business opportunities. People around me had specialized skills — design, social media, e-commerce, operations. My skill was “project management,” which is important, yes — but it often requires a team to apply. I wanted more self-sufficiency. I wanted to be able to build.&lt;/p&gt;

&lt;p&gt;So I made a decision: I’m going to become a software developer.&lt;/p&gt;

&lt;p&gt;Right now, I’m learning the basics — HTML, CSS, JavaScript — and I’ve just started with React. I was really inspired by a video on Youtube by Phillip Choi, where he talked about the importance of building real things that solve real problems, instead of just learning syntax.&lt;/p&gt;

&lt;p&gt;I have a direction for my first project and a lot of motivation to keep going. But I’ll be honest — I’m scared too.&lt;/p&gt;

&lt;p&gt;I have roughly 6 months of savings to give this career change everything I’ve got. I’m coding day and night, documenting everything I learn, and hoping to make something that shows both skill and potential. I will be documenting as much as I can here.&lt;/p&gt;

&lt;p&gt;If you’ve made a similar transition — or you’re just ahead of me in this journey — I’d love to connect, learn, and maybe even be mentored. Any advice, encouragement, or feedback is more than welcome.&lt;/p&gt;

&lt;p&gt;Thanks for reading — and here’s to the builders.&lt;/p&gt;

&lt;p&gt;— Edward Chia&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>careerdevelopment</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
