<?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: Louise Aldridge</title>
    <description>The latest articles on DEV Community by Louise Aldridge (@louiseka).</description>
    <link>https://dev.to/louiseka</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%2F2251562%2F280d19dc-829b-4f8a-875a-1edccf46de64.png</url>
      <title>DEV Community: Louise Aldridge</title>
      <link>https://dev.to/louiseka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/louiseka"/>
    <language>en</language>
    <item>
      <title>From Marketing to Frontend Development</title>
      <dc:creator>Louise Aldridge</dc:creator>
      <pubDate>Mon, 30 Jun 2025 08:52:49 +0000</pubDate>
      <link>https://dev.to/louiseka/from-marketing-to-frontend-development-77m</link>
      <guid>https://dev.to/louiseka/from-marketing-to-frontend-development-77m</guid>
      <description>&lt;p&gt;It’s been just over a year since leaving my marketing role and embarking on a career switch to frontend development, and I wanted to take some time to reflect on what this past year has taught me.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I realised tech was what I loved
&lt;/h2&gt;

&lt;p&gt;Before I made the leap, I worked in marketing and ecommerce roles where I often found myself tinkering with code in my spare time. In my ecommerce role, I frequently edited HTML email templates, adjusted landing pages, and troubleshooted user and website/app issues - which made me realise how much I enjoyed those technical moments. However, like many people juggling a full-time job, it was difficult to dedicate consistent, meaningful time to learning development when I was exhausted from work.&lt;/p&gt;

&lt;p&gt;It wasn’t until my role shifted to being 100% marketing-focused that I truly noticed what was missing. I found myself getting unusually excited when asked to help troubleshoot a Zoom issue or contribute to a technical problem. Those small moments reminded me how much I enjoyed working with technology and solving problems.&lt;/p&gt;

&lt;p&gt;I took part in a Code First Girls Kickstarter Web Development course to jog my memory on the coding I had already learned. I eventually presented my solo project, Dish Diaries, which was met with lovely feedback from other students and recognition as a Highly Commended Candidate. This was a big confidence boost and encouraged me to pursue learning more frontend development.&lt;/p&gt;

&lt;p&gt;After my marketing role was made redundant, I decided it was time to focus on my long-term goal of becoming a frontend developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some key things I've learned this year
&lt;/h2&gt;

&lt;p&gt;I’m fortunate to have been in a position where I could take a step back and dedicate focused time to learning frontend development. Over the past year, I’ve built projects, learned new tools, languages, and frameworks, and spent countless hours navigating the frustrations and wins that come with learning web development.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistency beats intensity.&lt;/strong&gt; Short, regular learning sessions have done more for my progress than occasional long marathons. I found Scrimba’s Frontend Career Path especially helpful because each lesson is brief, and the instructors often encourage breaks to help soak in new information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build your own solo projects.&lt;/strong&gt; Tutorials are a great starting point, but I’ve found working on solo projects forces you to problem-solve, apply what you’ve learned, and figure things out without step-by-step instructions. You can check out a few of my projects here or on my GitHub.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The frontend ecosystem moves quickly.&lt;/strong&gt; It can be overwhelming at times, but I focused on the core skills at first - HTML, CSS, JavaScript - before diving into frameworks such as React and more complicated topics like TypeScript. Having a solid foundation made it much easier to understand how frameworks work and why they’re so widely used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accessibility matters.&lt;/strong&gt; I used to work in marketing at charity AbilityNet, which is where I first learned about the importance of creating inclusive, usable digital experiences. Since then, it’s something I’ve cared about deeply. There’s always more to learn, but I’m committed to making sure the websites and applications I build are accessible to everyone, and to continue growing my skills in this area.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI is great, but it’s not a replacement for doing the work yourself.&lt;/strong&gt; I’ve always learned best by doing, and sometimes AI feels a bit like someone fixing a problem for you instead of showing you how to solve it. Simply copying and pasting an AI-generated solution into your project might get the job done, but it won’t help you build lasting skills. However, it’s incredibly helpful when used thoughtfully - like explaining a concept or providing tailored, interactive examples.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I’m proud of the progress I’ve made, even though at times it feels like I’m standing still. Looking back at my first few projects is a good reminder of how far I’ve actually come. Over the next year, I plan to continue honing my skills, build more solo projects, delve into backend, contribute to open source projects, and hopefully land my first professional frontend development role.&lt;/p&gt;

&lt;p&gt;If you’re reading this and also learning to code or considering a career switch, I hope this encourages you to keep going. It’s not easy, but it’s absolutely worth it.&lt;/p&gt;

&lt;p&gt;My Portfolio: &lt;a href="https://louise.codes/" rel="noopener noreferrer"&gt;https://louise.codes/&lt;/a&gt; &lt;br&gt;
My GitHub: &lt;a href="https://github.com/louiseka" rel="noopener noreferrer"&gt;https://github.com/louiseka&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>career</category>
    </item>
    <item>
      <title>Building a Goal Tracker with React</title>
      <dc:creator>Louise Aldridge</dc:creator>
      <pubDate>Wed, 18 Jun 2025 12:26:43 +0000</pubDate>
      <link>https://dev.to/louiseka/building-a-goal-tracker-with-react-1j68</link>
      <guid>https://dev.to/louiseka/building-a-goal-tracker-with-react-1j68</guid>
      <description>&lt;p&gt;After completing Scrimba’s Frontend Career Path, I was keen to put my new skills into practice by building a solo project. Around the same time, I picked up a new diary for the year and was inspired to create a simple web app to help track my goals digitally - and that’s how I thought of Pinpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Pinpoint
&lt;/h2&gt;

&lt;p&gt;Pinpoint is a goal-tracking web app designed to help users stay organised, focused, and motivated. The app lets users create goals, break them down into to-do lists, sort by priority, and track progress with a progress bar — all while choosing from four colour themes.&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%2F8jkuxj89lvgo9dsf21d5.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%2F8jkuxj89lvgo9dsf21d5.png" alt="3 screenshots displaying Pinpoint on mobile" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This project helped me deepen my understanding of React fundamentals like reusable components, state management, and callback functions. I also prioritised accessibility and responsive design to ensure a smooth, inclusive experience across devices (though, I would say there is room for improvement here).&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;One of the trickiest parts was managing state across multiple components while keeping the code clean and easy to scale. I also had fun figuring out how to implement custom theming options without things getting messy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building Pinpoint was a fun and rewarding way to put my React skills into practice and tackle some real UI and state management challenges.&lt;/p&gt;

&lt;p&gt;You can check out Pinpoint live here: &lt;a href="https://louiseka.github.io/pinpoint/" rel="noopener noreferrer"&gt;https://louiseka.github.io/pinpoint/&lt;/a&gt;&lt;br&gt;
And find the code on GitHub: &lt;a href="https://github.com/louiseka/pinpoint" rel="noopener noreferrer"&gt;https://github.com/louiseka/pinpoint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love to hear what you all think, let me know in the comments!&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>css</category>
      <category>frontend</category>
    </item>
    <item>
      <title>It's fine to prop drill</title>
      <dc:creator>Louise Aldridge</dc:creator>
      <pubDate>Fri, 14 Mar 2025 20:54:44 +0000</pubDate>
      <link>https://dev.to/louiseka/its-fine-to-prop-drill-433m</link>
      <guid>https://dev.to/louiseka/its-fine-to-prop-drill-433m</guid>
      <description>&lt;p&gt;&lt;em&gt;For context: At the start of the year I started planning and documenting a new solo project, called &lt;a href="https://github.com/louiseka/pinpoint" rel="noopener noreferrer"&gt;Pinpoint&lt;/a&gt;. Pinpoint is a goal tracker which allows users to create, sort and breakdown their goals so they are less overwhelming. This blog article is my latest documentation of building the project.&lt;/em&gt; &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;It’s fine to prop drill&lt;/strong&gt; - at least when building Pinpoint. Since it’s a small application with only one or two layers, passing props directly isn’t an issue. In fact, as I’ll explain in this blog, I’m only passing props to components that actually use them, rather than just forwarding them further down the tree.&lt;/p&gt;

&lt;p&gt;As I started building Pinpoint, I quickly realised how important it is to consider where state and functions are created. In this blog, I’ll share how I used parent state management and callback functions in child components to build Pinpoint’s core functionality. But before diving in, let me introduce the components I’ve created.&lt;/p&gt;

&lt;h2&gt;
  
  
  Components Overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;App&lt;/strong&gt; - The parent component that manages the application state and renders child components.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AddGoal&lt;/strong&gt; - A button component for adding new goals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GoalForm&lt;/strong&gt; - A form where users input goal details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SavedGoal&lt;/strong&gt; - Displays user-created goals.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Managing state in the Parent Component
&lt;/h2&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%2Fix3zhrsel16fry7e4abu.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%2Fix3zhrsel16fry7e4abu.png" alt="A flow diagram displaying the passing of state from the parent to child components. " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Parent state management allows me to create and maintain the goals state in App.jsx (the parent component) and pass it down to AddGoal.jsx and SavedGoal.jsx via props:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;goalData={goals}
goalData={goals[0]}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goals state is initialised as an empty array, with new goals added to it over time. In AddGoal.jsx, I use a ternary operator to determine the button text based on whether any goals exist:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const buttonText = goalData.length &amp;gt; 0  ? "Add another goal": "Get started and create your first goal"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Meanwhile, in SavedGoal.jsx, the goals state is used to render the saved goal to the DOM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;h2&amp;gt;{goalData.goalName}&amp;lt;/h2&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Callback Functions for Child Components
&lt;/h2&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%2Fs90afawxosjeulxe6c1u.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%2Fs90afawxosjeulxe6c1u.png" alt="A flow diagram displaying the passing of functions from children components to the parent." width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve used callback functions in child components to modify the goals state in the parent component. By passing functions from the parent as props, the child components can call them to update the goals state in App.jsx.&lt;/p&gt;

&lt;p&gt;In GoalForm.jsx, the formData state stores the user’s goal details. When the user submits the form by clicking the save button, the saveGoal function is called, passing formData back to App.jsx. There, saveGoal updates the goals state using setGoals.&lt;/p&gt;

&lt;p&gt;Similarly, in SavedGoal.jsx, the toDoData state stores the user's to-do list items for a saved goal. When the user adds an item, the saveToDoItem function is called, passing toDoData to App.jsx. In App.jsx, setGoals updates the goals state by mapping over the existing goals and adding the to-do list to the relevant one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reflecting back on this week
&lt;/h2&gt;

&lt;p&gt;Overall, this week was a great learning experience! Focusing on parent state management and callback functions in Pinpoint further solidified my understanding of building applications with React. It also clarified why avoiding prop drilling is crucial in larger applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/louiseka/pinpoint" rel="noopener noreferrer"&gt;Visit the GitHub Repo&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
&lt;a href="https://louise.codes/blogs/kickstarting-new-project" rel="noopener noreferrer"&gt;Read more about Pinpoint&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>My first portfolio</title>
      <dc:creator>Louise Aldridge</dc:creator>
      <pubDate>Mon, 17 Feb 2025 14:21:48 +0000</pubDate>
      <link>https://dev.to/louiseka/my-first-portfolio-3n8k</link>
      <guid>https://dev.to/louiseka/my-first-portfolio-3n8k</guid>
      <description>&lt;p&gt;I kicked off this year by creating my portfolio, which showcases my coding journey so far. It highlights my skills and projects in HTML, CSS, JavaScript, React.js, and more. As I start searching for my first developer job, I’d love to hear from fellow developers who have been in this position before.&lt;/p&gt;

&lt;p&gt;Live site: &lt;a href="https://louise.codes/" rel="noopener noreferrer"&gt;https://louise.codes/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;GitHub repository: &lt;a href="https://github.com/louiseka/portfolio" rel="noopener noreferrer"&gt;https://github.com/louiseka/portfolio&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions for you reading this post:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Is there anything important missing from my portfolio?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is it easy to navigate?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are your overall thoughts on the site?&lt;/p&gt;&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%2Fv0z8f2yt9926rtobjjm4.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%2Fv0z8f2yt9926rtobjjm4.png" alt="A screenshot of my portfolio's home page." width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you :)&lt;/p&gt;

&lt;p&gt;Looking forward to posting more on here!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>react</category>
      <category>portfolio</category>
    </item>
  </channel>
</rss>
