<?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: Cindy Hernandez</title>
    <description>The latest articles on DEV Community by Cindy Hernandez (@cindyhernandez).</description>
    <link>https://dev.to/cindyhernandez</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%2F1040031%2F4992d238-5621-4515-97bc-dfb5eae59066.png</url>
      <title>DEV Community: Cindy Hernandez</title>
      <link>https://dev.to/cindyhernandez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cindyhernandez"/>
    <language>en</language>
    <item>
      <title>Sales to Tech: Navigating My Career Change Journey</title>
      <dc:creator>Cindy Hernandez</dc:creator>
      <pubDate>Tue, 05 Sep 2023 22:34:39 +0000</pubDate>
      <link>https://dev.to/cindyhernandez/sales-to-tech-navigating-my-career-change-journey-44lo</link>
      <guid>https://dev.to/cindyhernandez/sales-to-tech-navigating-my-career-change-journey-44lo</guid>
      <description>&lt;p&gt;My journey towards becoming an engineer has been a testament to this belief, marked by unwavering perseverance and unyielding determination in the face of countless challenges and setbacks.&lt;/p&gt;

&lt;p&gt;My coding journey was far from a straightforward path. It began with a humble Python course on Udemy, a mere spark that ignited a long and profound learning experience. The realization that coding was my true calling came gradually but with absolute certainty. I knew I wanted to pursue this path for the long term.&lt;/p&gt;

&lt;p&gt;To make this dream a reality, I embarked on a rigorous schedule that demanded discipline and dedication. Balancing a full-time job, a side business, powerlifting training, and coding classes which were not easy. Yet, I understood that this was the future I envisioned for myself, and I was willing to put in the hard work required to get there.&lt;/p&gt;

&lt;p&gt;The pivotal moment in my journey came when I decided to take a leap of faith and enroll in a coding bootcamp. Leaving behind my long and stable career in sales was a risk that weighed heavily on my mind. However, I was prepared to bet on myself because I believed that coding was my true calling, the path to my future.&lt;/p&gt;

&lt;p&gt;The path to the bootcamp was not without its trials. Life threw unexpected obstacles my way, including the unexpected loss of my job months before starting my bootcamp and the threat of losing my apartment. Many would have faltered, but I was determined. I had committed to this journey, and I refused to let adversity deter me from my dream of becoming a software engineer.&lt;/p&gt;

&lt;p&gt;In my pursuit, I leveraged the resources at my disposal and sought sponsorship by networking with business owners and company presidents. Their support allowed me to continue my education and training, reinforcing my belief that determination and tenacity could surmount any obstacle.&lt;/p&gt;

&lt;p&gt;Completing the coding bootcamp was a significant achievement, but it didn't come without its own set of challenges. After graduation, I found myself in a precarious position. My sponsorship had ended, and I had exhausted my savings. Despite numerous job applications and networking efforts, rejection emails piled up.&lt;/p&gt;

&lt;p&gt;Faced with this harsh reality, it was a tough decision that required me to make some difficult choices. One of those choices involved ending my apartment lease, knowing that I could no longer afford it. This meant I needed to find temporary housing, relying on the generosity of friends and family who offered me a temporary place to stay. In this period of transition, I took a step back and drew upon the sales skills I had honed over the years. I secured a sales position that would provide for my immediate needs while I continued to pursue my dream. I turned to local coffee shops, not only as places to work on coding projects but also as environments that fostered my learning and provided me with the resources to continue applying for jobs in the tech industry.&lt;/p&gt;

&lt;p&gt;This phase of my journey has undoubtedly been one of the most challenging, testing my resilience and determination to the limits. Yet, through it all, one thing remains steadfast: my dream of becoming a software engineer. As I sit in a local coffee shop, writing this essay, I am determined in my commitment to this goal. I am about to start a new job in sales, registered for my first hackathon, and as I continue the hunt for a permanent place to live and diligently work on coding projects after work.&lt;/p&gt;

&lt;p&gt;In conclusion, my life has been a testament to unwavering perseverance and unyielding determination. My journey towards becoming an engineer has been a continuous battle against adversity, but I have learned that it is precisely during the most challenging times that our determination shines the brightest. My commitment to this dream is unwavering, and I am ready to bring this same determination and tenacity to my future as an engineer.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zi__UPT4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58im49ruw7o82uli1z66.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zi__UPT4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58im49ruw7o82uli1z66.PNG" alt="Coding" width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>coding</category>
    </item>
    <item>
      <title>React Hooks: useContext</title>
      <dc:creator>Cindy Hernandez</dc:creator>
      <pubDate>Wed, 26 Jul 2023 02:29:07 +0000</pubDate>
      <link>https://dev.to/cindyhernandez/react-hooks-usecontext-nma</link>
      <guid>https://dev.to/cindyhernandez/react-hooks-usecontext-nma</guid>
      <description>&lt;p&gt;If you are learning React, you have probably come across something called Hooks. One of the many useful hooks is &lt;br&gt;
&lt;code&gt;useContext&lt;/code&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What Is useContext?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a way to share values between components without having to pass a prop through every level of the tree. Instead, we define it on a global level and it can be accessed in any child component.&lt;/p&gt;




&lt;p&gt;We begin by creating an AppContext component where we will set all global states. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AmiLTJvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vrblsshmribpszcptzeg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AmiLTJvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vrblsshmribpszcptzeg.png" alt="AppContext" width="800" height="724"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;We need need to make sure that we wrap all the global state variables around a &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M1c7e29Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/60fkb8bgqr04celf7skn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M1c7e29Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/60fkb8bgqr04celf7skn.png" alt="AppContext" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Once the AppContext component is created we can then go into our index component, import AppProvider, and wrap our  with &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TGEDTqQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h6o1z5st3t83l1noba8m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TGEDTqQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h6o1z5st3t83l1noba8m.png" alt="index" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Once all of that is completed we can start using those global states in our components.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eMSeWUTx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dxlx6rby8bj1fhkb9nru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eMSeWUTx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dxlx6rby8bj1fhkb9nru.png" alt="LiftProgress Component" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;When Should I Use useContext?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useContext is great when you have some data that many different components need to access. It saves you from having to pass that data around through props, which can get confusing and messy.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Constructing a Restful API with Flask</title>
      <dc:creator>Cindy Hernandez</dc:creator>
      <pubDate>Wed, 21 Jun 2023 16:19:21 +0000</pubDate>
      <link>https://dev.to/cindyhernandez/constructing-a-restful-api-with-flask-4f2p</link>
      <guid>https://dev.to/cindyhernandez/constructing-a-restful-api-with-flask-4f2p</guid>
      <description>&lt;p&gt;Security is a vital aspect of web application development. With Flask, you have the power to build secure applications by following a few important practices. In this blog post, we'll explain the concept of RESTful APIs and show you how to create one using the Flask framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding RESTful APIs:&lt;/strong&gt;&lt;br&gt;
RESTful is a framework that emphasizes being lightweight and resource-focused. It has become widely adopted in modern web services due to its simplicity and scalability. By representing resources as URLs and utilizing the appropriate HTTP methods, you can create an API that follows REST principles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Establishing a Flask Application:&lt;/strong&gt;&lt;br&gt;
Before getting started with API development, we need to set up a Flask project. Begin by installing Flask and creating a virtual environment to keep dependencies separate. Once the project structure is ready, we can move on to building our RESTful API.&lt;/p&gt;



&lt;p&gt;&lt;em&gt;1. Install Flask:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install flask

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;2. Create a Virtual Environment:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python -m venv env

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;3. Activate the Virtual Environment:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;MacOS/Linux:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source env/bin/activate

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

&lt;/div&gt;



&lt;p&gt;Windows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.\env\Scripts\activate

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;4. Set Up the Project Structure:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a new directory for your Flask project, then create a new Python file, **app.py** 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;5. Build Your Flask Application:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open the app.py and start building your Flask application
-Import Flask Module, create an instance, define your routes and endpoints

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Welcome to my API!'

if __name__ == '__main__':
    app.run()

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Request Management and Routing:&lt;/strong&gt;&lt;br&gt;
Flask provides a flexible routing mechanism that allows us to map URLs to specific functions. We can take advantage of this feature to define routes for different endpoints in our API. Each route will handle requests using the appropriate HTTP method, such as GET, POST, PUT, or DELETE. By organizing our routes effectively, we can ensure proper handling of requests and manipulation of resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Foi7bFfm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e1u6ykqbnnzsflsb08tp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Foi7bFfm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e1u6ykqbnnzsflsb08tp.png" alt="Routes" width="614" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Serialization:&lt;/strong&gt;&lt;br&gt;
To send data between the client and server, we need a standardized format. JSON is a widely used choice for serialization because its simple and compatible. Flask has built-in support for JSON serialization, and there are additional libraries like Flask-RESTful or Marshmallow that provide extra features for complex situations. In this guide, we'll show you how to convert Python objects to JSON and vice versa, making it easy to work with data in your Flask API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verification and Authorization:&lt;/strong&gt;&lt;br&gt;
Securing our API is crucial, and authentication plays a vital role in controlling access to resources.  Flask extensions like Flask-HTTPAuth make it easier to implement these mechanisms. By incorporating authentication and authorization, we ensure that only authorized users can access protected resources in our API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forging Endpoints:&lt;/strong&gt;&lt;br&gt;
Endpoints are the building blocks of our API, defining the available resources and the actions we can perform on them. In this guide, we'll walk you through the process of creating endpoints for different resources using Flask's routing mechanism. You'll learn how to handle essential CRUD operations (Create, Read, Update, Delete) and interact with a database using Flask's ORM integration, like Flask-SQLAlchemy. By the end, you'll have the knowledge to build powerful and dynamic APIs with Flask.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bVSNP_kE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vw5ybske9wcrp28u9e3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bVSNP_kE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vw5ybske9wcrp28u9e3.png" alt="Endpoints" width="800" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assessing the API:&lt;/strong&gt;&lt;br&gt;
Thorough testing is crucial to ensure that our API works correctly and reliably. In this step, we'll introduce handy tools like Postman that allow us to make requests to our API and examine the responses. We'll provide sample test cases for different endpoints and show you how to check if the API behaves as expected. Robust testing helps us catch any bugs and ensures that our API functions as intended.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lUoWCupV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l8n8gm5ia83u5dl4to6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lUoWCupV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l8n8gm5ia83u5dl4to6l.png" alt="Postman GET Request" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Creating a Rock, Paper, Scissors Game using Python</title>
      <dc:creator>Cindy Hernandez</dc:creator>
      <pubDate>Wed, 24 May 2023 20:36:40 +0000</pubDate>
      <link>https://dev.to/cindyhernandez/rock-paper-scissors-game-using-python-4l9l</link>
      <guid>https://dev.to/cindyhernandez/rock-paper-scissors-game-using-python-4l9l</guid>
      <description>&lt;p&gt;The goal was to create a rock, paper, scissors game that the user can play against the computer.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Press the RUN button to play!&lt;/em&gt;&lt;/p&gt;





&lt;div class="ltag__replit"&gt;
  &lt;iframe height="550px" src="https://repl.it/@cinhernandez/rock-paper-scissors-game?lite=true"&gt;&lt;/iframe&gt;
&lt;/div&gt;





&lt;p&gt;If we take a look at the main.py file we will be able to see the breakdown of the code. We begin by making the text art images and set them as variables.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7ULezaPI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxfoevey3y1zayuocgeh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7ULezaPI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxfoevey3y1zayuocgeh.png" alt="Art Images" width="639" height="699"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;We can then set the text art image variables in a list, that way we are able to print the image along with the player and computer choice. &lt;/p&gt;

&lt;p&gt;In order to receive the number we need to create an input that will be saved as a variable when the player types their choice.&lt;/p&gt;

&lt;p&gt;After this section it is important to create an if/else in case the player types an invalid number that is not (0-2).&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dw_s4CbV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wt3j9yna2qxfydas75u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dw_s4CbV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wt3j9yna2qxfydas75u.png" alt="Second part" width="691" height="368"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Now we can work on creating the computer choice. The computer choice variable will equal a random integer from 0-2.&lt;br&gt;
In order to use &lt;code&gt;random.randint()&lt;/code&gt; we must import the random module. &lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Uu4tkfkk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkuhk8p7tml0uje6w13s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Uu4tkfkk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkuhk8p7tml0uje6w13s.png" alt="Third part" width="688" height="378"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;In order for the game to execute the correct win or lose we need to create if/elif/else statements. &lt;/p&gt;




&lt;p&gt;Text art sources: &lt;a href="https://gist.github.com/wynand1004/b5c521ea8392e9c6bfe101b025c39abe#file-rps_ascii_art-py"&gt;https://gist.github.com/wynand1004/b5c521ea8392e9c6bfe101b025c39abe#file-rps_ascii_art-py&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>programming</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Preparing for Code Challenges</title>
      <dc:creator>Cindy Hernandez</dc:creator>
      <pubDate>Mon, 01 May 2023 15:24:45 +0000</pubDate>
      <link>https://dev.to/cindyhernandez/preparing-for-code-challenges-26p5</link>
      <guid>https://dev.to/cindyhernandez/preparing-for-code-challenges-26p5</guid>
      <description>&lt;p&gt;We all know learning how to code is not easy, it requires focus, patience, and consistency. Attending a 15 week coding bootcamp has helped me adapt new learning methods. In phase 2 of my bootcamp I figured out the best method that helped me prepare for my code challenge.&lt;/p&gt;

&lt;p&gt;Let me begin by saying that preparing for a code challenge is &lt;strong&gt;stressful!&lt;/strong&gt; I remember forking and cloning a practice code challenge and sitting there for 15 minutes staring at the screen unsure of where to begin.&lt;/p&gt;




&lt;p&gt;I had to take a step back and figure out a method that works for me, hopefully this can help others that may be feeling the same way.&lt;/p&gt;




&lt;p&gt;&lt;u&gt;&lt;strong&gt;Here are a few tips that helped me get through phase 2 of learning React:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Watch the entire practice coding challenge video lecture without taking any notes &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Take a moment to watch the video lecture a second time and this time code along &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As you code along take screen shots of your code and write a short summary or bullet points of what you just learned&lt;br&gt;
&lt;em&gt;(This helped me see what were some of the concepts I was struggling with)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After you grasp the concepts attempt a different practice coding challenge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time yourself when you are completing a practice code challenge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If possible complete a coding challenge with a team of 2-3 people (one person shares screen and collectively complete it)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you are still struggling, narrow down what are some of the concepts you are struggling with&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Having a solid foundation in Javascript basics will make it easier to understand React's syntax and programming concepts&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;u&gt;&lt;em&gt;Examples below:&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dTzuWiH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1a40r7p9x5s13oxuhq5p.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dTzuWiH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1a40r7p9x5s13oxuhq5p.PNG" alt="CC 1" width="800" height="1045"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fmcYANwB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fvxwpozc17kanek1matv.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fmcYANwB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fvxwpozc17kanek1matv.PNG" alt="CC 2" width="800" height="1040"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;u&gt;&lt;strong&gt;Start small and build up:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;When faced with a coding challenge, it can be tempting to dive straight in and try to solve the problem in one go. However, this can often lead to frustration and a lack of progress. Instead, start by breaking the challenge down into smaller parts and tackling each one individually. Build up your solution step by step. This approach will help you stay focused and motivated, and will also make it easier to identify and fix errors.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Break down the problem into components:&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
React is all about building reusable components and &lt;a href="https://dev.to/cindyhernandez/information-flow-in-react-14c5"&gt;understanding the flow of information&lt;/a&gt;. When faced with a coding challenge, try to think about the problem in terms of components. Break down the problem into smaller parts and build components for each one.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>react</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Information Flow in React</title>
      <dc:creator>Cindy Hernandez</dc:creator>
      <pubDate>Mon, 01 May 2023 15:11:26 +0000</pubDate>
      <link>https://dev.to/cindyhernandez/information-flow-in-react-14c5</link>
      <guid>https://dev.to/cindyhernandez/information-flow-in-react-14c5</guid>
      <description>&lt;h2&gt;
  
  
  What is information flow in React?
&lt;/h2&gt;

&lt;p&gt;Information flow refers to the way data is passed around between components in a React application. In React data flows in one direction - &lt;em&gt;from the parent component to its child components&lt;/em&gt;. This is known as &lt;u&gt;unidirectional data flow&lt;/u&gt;.&lt;/p&gt;




&lt;p&gt;Since data only flows in one direction, it's easier to track where it comes from and where it's going. This makes the application more predictable and easier to maintain over time.&lt;/p&gt;




&lt;h2&gt;
  
  
  How does information flow work in React?
&lt;/h2&gt;

&lt;p&gt;In React, data is passed from the parent component to its child components through props. Props are read-only and cannot be modified by the child component. This means that if a child component needs to modify the data, it needs to notify its parent component by passing a callback function&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here we have a parent component called &lt;em&gt;App&lt;/em&gt; and the child component below called &lt;em&gt;Header&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;App has a state variable called isDarkMode, which functions as a boolean (true or false).&lt;/p&gt;

&lt;p&gt;The onToggleDarkMode function and isDarkMode state variable is then passed to the Header component as a prop.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RHYzKdaN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sfebugx7pu6igfsms1g7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RHYzKdaN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sfebugx7pu6igfsms1g7.png" alt="App" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the button is clicked it calls the onClick function that we see in the header component that allows the user to toggle from light to dark mode.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j94Rylhe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/is7mhc3e7scalyscfdzl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j94Rylhe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/is7mhc3e7scalyscfdzl.png" alt="Header" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of unidirectional data flow:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;With data flow in one direction it makes it easier to debug and maintain overtime&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Components can be reused in different parts of the application&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unidirectional data flow makes it easier helps make it easier to break the application into smaller and manageable components.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;React Information Flow, Flatiron Learning Module&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>react</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>JavaScript functions</title>
      <dc:creator>Cindy Hernandez</dc:creator>
      <pubDate>Tue, 07 Mar 2023 16:24:00 +0000</pubDate>
      <link>https://dev.to/cindyhernandez/what-are-functions-29pn</link>
      <guid>https://dev.to/cindyhernandez/what-are-functions-29pn</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What are functions?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Functions are like recipes. &lt;br&gt;
They execute a set of instructions on data or variables and return the result.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Functions can be recycled&lt;/li&gt;
&lt;li&gt;Helps keep your code &lt;strong&gt;DRY&lt;/strong&gt; 
&lt;em&gt;("Don't repeat yourself")&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you are like me and need an example to visualize what functions do here is one.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
&lt;em&gt;Let's just say we have an espresso machine that can be programmed to make customized drinks.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It allows you to enter a command that will instruct the machine to brew espresso, add hot cocoa mix, and froth milk. Can you imagine how tedious it can be to type all steps every morning? What if we have more than one type of drink, when some drinks require more steps.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Instead of typing each step everyday, what if we could create functions with all the steps in the code block?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For the sake of this example, I used keywords that relate to the explanation above.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a3bz65PE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t3jz6og9ul7iekgehmge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a3bz65PE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t3jz6og9ul7iekgehmge.png" alt="Function example" width="548" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create a function:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Use the &lt;strong&gt;function&lt;/strong&gt; keyword&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the function &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;In this case we named it &lt;strong&gt;makeMochaLatte&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;We add a set of parenthesis and curly brackets&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;makeMochaLatte(){}&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The first curly bracket is the beginning point and the second bracket is the end point of the function&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Everything inside of the curly brackets is called the block of code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lastly, we call the function &lt;strong&gt;makeMochaLatte();&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Now that we learned the simplest form of a function. What if instead of just saying &lt;code&gt;makeMochaLatte();&lt;/code&gt; we do something like this.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2xPzIdAU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4jlpwupi6ggzggtcjjd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2xPzIdAU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4jlpwupi6ggzggtcjjd7.png" alt="parameters and arguments" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the example above we see the word "cups" in &lt;code&gt;makeMochaLatte(cups){}&lt;/code&gt;, we call this a &lt;strong&gt;parameter&lt;/strong&gt;, the word cups is used like a variable that is bound to the input.&lt;br&gt;
Now when we call the function &lt;code&gt;makeMochaLatte(3);&lt;/code&gt; we are giving it an input of 3, this is called an &lt;strong&gt;argument&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By giving it an input of 3 we are essentially specifying that now we have a variable named cups that is equal to 3.&lt;/p&gt;

&lt;p&gt;This is not the only way to write functions, but that is another topic we can dive in the next blog.&lt;br&gt;
I will go over various ways you can write functions, such as arrow functions, expression functions, and functions with multiple parameters, and arguments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;"Methods and Functions"&lt;/em&gt;, CodeCademy  &lt;a href="https://www.codecademy.com/article/fwd-js-methods-functions"&gt;https://www.codecademy.com/article/fwd-js-methods-functions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yu, Dr. A. &lt;em&gt;"Functions Part 1"&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12371950#questions"&gt;https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12371950#questions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yu, Dr. A. &lt;em&gt;"Functions Part 2"&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12373850?start=0#overview"&gt;https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12373850?start=0#overview&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
