<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[JackVsCode]]></title><description><![CDATA[I want reduce the suffering of research for others, as I often find myself without resource, going on a wild goose chase for the best answers and solutions. Enj]]></description><link>https://blog.jackson-alvarez.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 11 May 2026 10:24:05 GMT</lastBuildDate><atom:link href="https://blog.jackson-alvarez.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Data Structures and Their Applications]]></title><description><![CDATA[In the world of programming, understanding and applying the right data structures is crucial for efficient algorithms and problem-solving. This guide will walk you through the built-in data structures available in various programming languages, focus...]]></description><link>https://blog.jackson-alvarez.dev/data-structures-and-their-applications</link><guid isPermaLink="true">https://blog.jackson-alvarez.dev/data-structures-and-their-applications</guid><category><![CDATA[data structures]]></category><category><![CDATA[Competitive programming]]></category><category><![CDATA[interview]]></category><category><![CDATA[interview questions]]></category><dc:creator><![CDATA[Jackson Alvarez]]></dc:creator><pubDate>Thu, 30 Jan 2025 21:11:18 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Wpnoqo2plFA/upload/24e6beed44bfc017050326b851e53b7d.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the world of programming, understanding and applying the right data structures is crucial for efficient algorithms and problem-solving. This guide will walk you through the built-in data structures available in various programming languages, focusing on their applications and when to use them effectively.</p>
<h2 id="heading-linear-data-structures">Linear Data Structures</h2>
<p>Linear data structures are those where elements are arranged in a linear sequence. These include arrays, lists, and queues. Their main strength lies in their simplicity and sequential access.</p>
<h3 id="heading-1-fixed-size-arrays">1. Fixed-Size Arrays</h3>
<p>Fixed-size arrays are one of the most commonly used data structures. They are used to store homogenous data that needs to be indexed and processed sequentially. Arrays are efficient for accessing elements by their index.</p>
<ul>
<li><p><strong>When to Use</strong>: When you know the number of elements beforehand or when the size of the array is fixed.</p>
</li>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: Native arrays.</p>
</li>
<li><p><strong>Python</strong>: <code>list</code> (dynamic, but works like a fixed-size array in some cases).</p>
</li>
<li><p><strong>Java</strong>: <code>int[]</code> or other fixed-type arrays.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738270623743/73704b17-0d37-4a15-9490-2d237ca3647b.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-2-resizeable-arrays">2. Resizeable Arrays</h3>
<p>Resizeable arrays allow dynamic resizing at runtime and are useful when the size of the array is unknown at compile time. They are implemented as part of the standard libraries of most languages.</p>
<ul>
<li><p><strong>When to Use</strong>: When you need an array that can grow or shrink dynamically.</p>
</li>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: <code>std::vector</code></p>
</li>
<li><p><strong>Python</strong>: <code>list</code></p>
</li>
<li><p><strong>Java</strong>: <code>java.util.ArrayList</code></p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-sorting-algorithms">Sorting Algorithms</h3>
<p>Sorting is a critical operation in many algorithms. In general, sorting can be done efficiently with algorithms that work in <strong>O(n log n)</strong> time, such as merge sort and quicksort. However, there are cases where sorting can be faster, using algorithms like counting sort, bucket sort, or radix sort in <strong>O(n)</strong> time, depending on the input characteristics.</p>
<ul>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: <code>std::sort()</code></p>
</li>
<li><p><strong>Java</strong>: <code>Arrays.sort()</code></p>
</li>
<li><p><strong>Python</strong>: <code>list.sort()</code></p>
</li>
</ul>
</li>
</ul>
<h4 id="heading-key-points">Key Points:</h4>
<ul>
<li><p><strong>Comparison Model</strong>: In this model, sorting algorithms cannot perform better than <strong>O(n log n)</strong> for a general comparison-based sort.</p>
</li>
<li><p><strong>Non-Comparison-based Sorts</strong>: If we know more about the data, algorithms like counting sort, bucket sort, and radix sort can achieve <strong>O(n)</strong> time.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738270844459/21faf065-769d-4d9f-ab50-97ad635dcd5c.jpeg" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h3 id="heading-searching-algorithms">Searching Algorithms</h3>
<p>Searching algorithms help locate specific elements within data structures.</p>
<ul>
<li><p><strong>Unsorted Arrays</strong>: For unsorted arrays, use <strong>sequential search</strong> which works in <strong>O(n)</strong> time.</p>
</li>
<li><p><strong>Sorted Arrays</strong>: Use <strong>binary search</strong> for <strong>O(log n)</strong> time complexity.</p>
</li>
<li><p><strong>Hash Tables</strong>: For exact lookup, hash tables provide <strong>O(1)</strong> expected lookup time.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738270881391/21c33d46-5bc6-4b8f-8295-231b3704efc7.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h3 id="heading-big-integers">Big Integers</h3>
<p>In cases where very large integers are required, such as with cryptography or large number computations, Big Integers provide support, albeit with slower operations than native integer types.</p>
<ul>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: No native support for integers larger than <code>uint64_t</code>.</p>
</li>
<li><p><strong>Java</strong>: <code>java.math.BigInteger</code></p>
</li>
<li><p><strong>Python</strong>: <code>int</code> (native support for arbitrarily large integers).</p>
</li>
</ul>
</li>
</ul>
<p>    <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738270904223/5d8ea3c4-7dcc-48c8-a9f7-ee8173089338.jpeg" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-non-linear-data-structures">Non-Linear Data Structures</h2>
<p>Non-linear data structures organize elements in a hierarchical or more complex manner than linear sequences. These structures provide more efficient ways to handle queries and updates in specific applications.</p>
<h3 id="heading-1-priority-queue">1. Priority Queue</h3>
<p>A priority queue is a data structure where each element is associated with a priority. The element with the highest priority is dequeued first.</p>
<ul>
<li><p><strong>When to Use</strong>: When you need to repeatedly access elements based on priority, like scheduling tasks.</p>
</li>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: <code>std::priority_queue</code></p>
</li>
<li><p><strong>Java</strong>: <code>java.util.PriorityQueue</code></p>
</li>
<li><p><strong>Python</strong>: <code>heapq</code></p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738271001008/91ee828d-c4b2-41f0-836f-4e10cb734c15.jpeg" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-2-hash-table">2. Hash Table</h3>
<p>A hash table provides fast <strong>O(1)</strong> expected time complexity for insertions, deletions, and lookups. Hash tables are highly efficient for exact search scenarios, but they do not support inexact search or sorting.</p>
<ul>
<li><p><strong>When to Use</strong>: When you need fast access or insertion based on a key.</p>
</li>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: <code>std::unordered_map</code>, <code>std::unordered_set</code></p>
</li>
<li><p><strong>Java</strong>: <code>java.util.HashMap</code>, <code>java.util.HashSet</code></p>
</li>
<li><p><strong>Python</strong>: <code>dict</code>, <code>set</code></p>
</li>
</ul>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738271082582/b7326705-20ec-4164-a60c-9204a3f315ee.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-3-balanced-binary-search-tree-bst">3. Balanced Binary Search Tree (BST)</h3>
<p>Balanced BSTs maintain a sorted order of elements, allowing for efficient searches, insertions, and deletions in <strong>O(log n)</strong> time.</p>
<ul>
<li><p><strong>When to Use</strong>: When you need to keep elements sorted dynamically and require efficient search and insertion.</p>
</li>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: <code>std::map</code>, <code>std::set</code></p>
</li>
<li><p><strong>Java</strong>: <code>java.util.TreeMap</code>, <code>java.util.TreeSet</code></p>
</li>
<li><p><strong>Python</strong>: No native support, but can be built with data structures or libraries.</p>
</li>
</ul>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738271177474/26a3bda5-6164-4820-846b-e518715cbeef.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-4-graphs">4. Graphs</h3>
<p>A graph consists of a set of vertices connected by edges. Graphs are used to represent relationships and networks such as social networks, routing problems, etc.</p>
<ul>
<li><p><strong>Graph Representation</strong>:</p>
<ul>
<li><p><strong>Adjacency Matrix</strong>: Ideal for dense graphs, but takes more storage (n x n array).</p>
</li>
<li><p><strong>Adjacency List</strong>: Ideal for sparse graphs, using a dynamic array of arrays.</p>
</li>
</ul>
</li>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p>No native support in most languages, but they can be implemented using lists or arrays.</p>
</li>
<li><p><strong>Python</strong>: Can be easily built using lists of lists (for adjacency lists).</p>
</li>
<li><p><strong>C++ and Java</strong>: Can use arrays or <code>std::vector</code>/<code>ArrayList</code> to store adjacency lists.</p>
</li>
</ul>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738271240946/a6f674ad-9f97-45e2-9c3d-24cdeebc7ae4.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-specialized-data-structures">Specialized Data Structures</h2>
<h3 id="heading-stacks">Stacks</h3>
<p>A stack is a last-in, first-out (LIFO) data structure used primarily for handling operations where the most recent item is processed first (e.g., undo operations, expression evaluation).</p>
<ul>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: <code>std::stack</code></p>
</li>
<li><p><strong>Java</strong>: <code>java.util.Stack</code></p>
</li>
<li><p><strong>Python</strong>: <code>list</code> (can use <code>append()</code> and <code>pop()</code> for stack operations)</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738271264844/670eca12-f781-4cd7-ab28-2e55f4eaa13b.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-queues">Queues</h3>
<p>A queue is a first-in, first-out (FIFO) data structure used for scheduling tasks, processing events, and in algorithms like breadth-first search (BFS).</p>
<ul>
<li><p><strong>Languages</strong>:</p>
<ul>
<li><p><strong>C++</strong>: <code>std::queue</code></p>
</li>
<li><p><strong>Java</strong>: <code>java.util.Queue</code></p>
</li>
<li><p><strong>Python</strong>: <code>collections.deque</code></p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738271295375/5f5fd2e7-fed4-480e-885b-59a8d672db72.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ul>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Mastering data structures is key to efficient problem-solving in programming. Whether you are working with simple linear structures like arrays and lists, or more complex structures like hash tables, priority queues, or graphs, understanding when and how to apply them is critical. Keep experimenting with different data structures and algorithms in various programming languages to choose the most efficient solution for your problem.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Fast Track to 3D Modeling in Blender: A Beginner's Guide to Creating Original Models]]></title><description><![CDATA[Welcome! If you're new to Blender and eager to make your own 3D models, you’re in the right place. This tutorial is designed to help you go from zero to creating unique models in Blender in the shortest time possible.
We'll cover the basics of naviga...]]></description><link>https://blog.jackson-alvarez.dev/fast-track-to-3d-modeling-in-blender-a-beginners-guide-to-creating-original-models</link><guid isPermaLink="true">https://blog.jackson-alvarez.dev/fast-track-to-3d-modeling-in-blender-a-beginners-guide-to-creating-original-models</guid><category><![CDATA[Tutorial]]></category><category><![CDATA[Blender]]></category><category><![CDATA[#newbieintech]]></category><category><![CDATA[newbie]]></category><category><![CDATA[skills]]></category><dc:creator><![CDATA[Jackson Alvarez]]></dc:creator><pubDate>Thu, 07 Nov 2024 16:00:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1730972411910/9b3a1b73-3120-4611-9467-28491d014672.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome! If you're new to Blender and eager to make your own 3D models, you’re in the right place. This tutorial is designed to help you go from zero to creating unique models in Blender in the shortest time possible.</p>
<p>We'll cover the basics of navigation, shaping, and essential tools, so you’ll have a strong foundation for your 3D creations.</p>
<h2 id="heading-step-1-blender-basics-getting-comfortable-waith-the-interface">Step 1: Blender Basics – Getting Comfortable waith the Interface</h2>
<p>Before diving into modeling, it's essential to understand the basics of Blender’s interface.</p>
<ol>
<li><p>Make a New Scene. Name it something descriptive; trust me build good habits now…</p>
</li>
<li><p>Take a moment to look at the interface layout. This is your workspace for creating in 3D</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730818890570/2db5e443-2291-46b8-998e-700e63536988.png" alt="credit: https://www.blendersecrets.org/secrets/how-to-use-blender" class="image--center mx-auto" /></p>
<p> <a target="_blank" href="https://www.blendersecrets.org/secrets/how-to-use-blender">credit</a> for image</p>
</li>
<li><p><strong>Navigating the 3D Viewport:</strong></p>
<ul>
<li><p><strong>Orbiting:</strong> Use the <code>middle mouse down</code> to orbit around in the veiwport.</p>
</li>
<li><p><strong>Panning:</strong> Hold <code>Shift + middle mouse button</code> to drag move.</p>
</li>
<li><p><strong>Zooming</strong>: Scroll with the middle mouse button to zoom in and out.</p>
</li>
</ul>
</li>
<li><p><strong>Switching Views:</strong></p>
<ul>
<li><p>For quick access to top, front, and side views, you can press the numpad keys:</p>
<ul>
<li><p><strong>Top View</strong>: Press <code>7</code> on the numpad.</p>
</li>
<li><p><strong>Front View</strong>: Press <code>1</code> on the numpad.</p>
</li>
<li><p><strong>Side View</strong>: Press <code>3</code> on the numpad.</p>
</li>
</ul>
</li>
</ul>
</li>
</ol>
<h2 id="heading-step-2-key-blender-workflows">Step 2: Key Blender Workflows</h2>
<p>Blender enables different workflows depending on what you’re creating. Here are the modes and editors you’ll use frequently in modeling(we will not be going over all these modes in this tutorial, just edit mode and object mode):</p>
<ul>
<li><p><strong>Object Mode</strong>: For translating and transforming entire objects. You’ll move, scale, place shapes, apply modifiers, and more. This is the starting point for your model.</p>
</li>
<li><p><strong>Edit Mode</strong>: Where you’ll shape objects on a smaller scale by editing vertices, edges, and faces. Techniques like extruding, beveling, and managing topology happen here.</p>
</li>
<li><p><strong>Sculpt Mode</strong>: Uses brushes to shape organic objects like characters. This mode is especially useful for adding fine details.</p>
</li>
<li><p><strong>UV Editor</strong>: Not a mode, but a critical editor for mapping a 2D image onto a 3D object. Here, you can apply textures to your model.</p>
</li>
<li><p><strong>Shader Editor</strong>: Another editor, where you create materials using visual scripting. The Shader Editor allows you to assign materials to your models, giving them realistic textures.</p>
</li>
</ul>
<h2 id="heading-step-3-shaping-your-first-model-a-simple-object"><strong>Step 3: Shaping Your First Model – A Simple Object</strong></h2>
<p>Now, let’s create a simple sci-fi crate! This is a great starting model because of the basic shapes we are working with will reduce the complexity and difficulty.</p>
<ol>
<li><p><strong>Start with a Cube:</strong></p>
<ul>
<li><p>Press S to scale. You can lock the scaling to a specific axis by pressing X, Y, or Z after pressing S.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730909457493/39d0d1a5-9d88-416f-9d2f-aa524a6e533d.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Switch to <strong>Edit Mode</strong> by pressing <strong>Tab</strong>.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730909520478/2bdc97fd-3930-4527-9eb2-d025b61b33d0.png" alt class="image--center mx-auto" /></p>
<p>  Proportional Editing: Affects surrounding vertices, edges, or faces based on a radius you can adjust with the scroll wheel.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730909980160/65ac3b54-ae2a-41a0-8805-741d58238d59.gif" alt class="image--center mx-auto" /></p>
<p>  Loop Cuts: Press Ctrl + R to create a loop cut around your model. This allows you to add more faces to your model, providing more opportunities for adding detail. Scroll with mouse wheel to add more after <code>Crtl + R</code>.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730910376950/86b7c264-108d-49ec-a8bb-9085174b2829.gif" alt class="image--center mx-auto" /></p>
<p>  Beveling: Smooths out sharp edges by adding a rounded or angled transition between faces. Activate with <code>Ctrl + B</code> in Edit Mode and use your mouse to adjust the bevel width. Scrolling adds more segments, creating a smoother effect.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730911120226/b390b212-8c9e-4156-95e9-ddb4a7c6d280.gif" alt class="image--center mx-auto" /></p>
<p>  Extruding: Creates new geometry by extending selected faces, edges, or vertices outward. Press <code>E</code> in Edit Mode, then move the selection or lock it to an axis (<code>X</code>, <code>Y</code>, or <code>Z</code>) to shape it as desired.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730911421737/3eed3f44-6e94-4f9b-a1e2-be9375d8ed83.gif" alt class="image--center mx-auto" /></p>
<p>  Knife Tool: For custom cuts, the Knife Tool (activated with K) allows you to slice into faces at angles you choose.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730911996694/4d0ab8b7-6082-40e7-ad99-8a9cfda58aed.gif" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ol>
<h2 id="heading-mirroring-the-sci-fi-box">Mirroring the Sci-Fi Box</h2>
<p>    Using a mirror modifier is an efficient way to make your model symmetrical, allowing you to edit one side while the other side mirrors your changes automatically. Let’s set it up for both the X and Y axes.</p>
<ol>
<li><p><strong>Place a Loop Cut</strong>:</p>
<ul>
<li>In <strong>Edit Mode</strong>, press <strong>Ctrl + R</strong> to add a loop cut across the cube. Click or press <strong>Enter</strong> to confirm the cut, splitting the cube in half.</li>
</ul>
</li>
<li><p><strong>Delete Half the Cube</strong>:</p>
<ul>
<li>With one side of the cube selected, delete it by pressing <strong>X</strong> and choosing <strong>Faces</strong>. This leaves you with half of the cube.</li>
</ul>
</li>
</ol>
<p>    <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730912989973/5b503ccf-f992-46e3-a31c-1d64ac67fe48.png" alt class="image--center mx-auto" /></p>
<p>Add the Mirror Modifier: Switch to Object Mode and open the Modifiers panel (wrench icon in the properties sidebar). Select Add Modifier &gt; Mirror. Choose correct axes to mirror across, depending on which half you deleted. You should now have a perfectly mirrored cube, allowing you to work on one side while the other side updates in real-time. Play with the merge value and the clipping value.</p>
<h2 id="heading-adding-details-using-extrusion-loop-cuts-and-the-knife-tool">Adding Details Using Extrusion, Loop Cuts, and the Knife Tool</h2>
<p>Now, let’s use some modeling tools to add detail to your crate.  </p>
<p>Extrude the Top Face:</p>
<ul>
<li><p>In <strong>Edit Mode</strong>, select the top face of the cube.</p>
</li>
<li><p>Press <strong>E</strong> to extrude the face upwards, creating a raised section.</p>
</li>
<li><p>Use <strong>S</strong> to scale it inward, creating a recessed border around the top. Press <strong>E</strong> again to adjust the depth by moving the face up or down.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730913914797/564cac77-d726-41a9-9a05-18b27fefc508.gif" alt class="image--center mx-auto" /></p>
<h3 id="heading-adding-loop-cuts">Adding Loop Cuts:</h3>
<ul>
<li><p>Use <strong>Ctrl + R</strong> to add additional loop cuts around the cube, giving you more geometry for detailed work.</p>
</li>
<li><p>Scroll your mouse wheel to add multiple cuts if needed, then press <strong>Enter</strong> to confirm.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730971888801/9c7b5927-e434-4cbf-9467-55b3d2297fc6.gif" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h3 id="heading-adding-smaller-details-with-inset-and-extrude"><strong>Adding Smaller Details with Inset and Extrude</strong>:</h3>
<ul>
<li><p>To create handles or vents, select a side face and press <strong>I</strong> to <strong>Inset</strong> the face slightly.</p>
</li>
<li><p>Press <strong>E</strong> to extrude this inset section, either pushing it inward or pulling it outward to create raised or recessed details.</p>
</li>
</ul>
<h3 id="heading-using-the-knife-tool-for-custom-cuts"><strong>Using the Knife Tool for Custom Cuts</strong>:</h3>
<ul>
<li><p>Press <strong>K</strong> to activate the <strong>Knife Tool</strong> and make custom cuts along any face.</p>
</li>
<li><p>This tool is great for adding unique shapes or cutting specific sections for further detailing.</p>
</li>
</ul>
<h2 id="heading-step-4-applying-basic-materials-and-colors"><strong>Step 4: Applying Basic Materials and Colors</strong></h2>
<p>Even simple colors make your model stand out and look more professional.<strong>Switch to the Material Preview Mode:</strong> In the top-right corner, select the sphere icon to see materials in real-time.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730971408824/002a31d6-0999-4b99-bafc-43965552b566.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-adding-materials"><strong>Adding Materials:</strong></h3>
<ul>
<li><p>Go to the Material Properties panel (check the right sidebar) and click <strong>New</strong> to create a material</p>
</li>
<li><p>Change the <strong>Base Color</strong> to a color you like for the crate.</p>
</li>
</ul>
<h3 id="heading-assigning-different-colors-to-faces"><strong>Assigning Different Colors to Faces:</strong></h3>
<ul>
<li><p>While in Edit Mode, select specific faces, add a new material slot, and assign different colors to parts of the crate (e.g., metallic handles and colored sides).</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730971380676/50d17a98-6d1f-4c1e-8c97-2dda25fa8f21.gif" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h2 id="heading-step-5-lighting-and-rendering-your-model"><strong>Step 5: Lighting and Rendering Your Model</strong></h2>
<p>Let’s add some basic lighting to make your model look its best.</p>
<ol>
<li><p><strong>Adding a Light Source:</strong></p>
<ul>
<li><p>Press <code>Shift + A</code>, go to <code>Light</code>, and select <code>Point Light</code> or <code>Area Light</code>.</p>
</li>
<li><p>Position it near your model, adjusting its strength and position to highlight the details.</p>
</li>
</ul>
</li>
<li><p><strong>Switch to Rendered View:</strong></p>
<ul>
<li><p>In the top-right, select Rendered View (shaded sphere icon) to see how your model looks under the light.  </p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730971668876/1fb68a24-d093-44cb-8abd-923da2f1b606.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
<li><p><strong>Render Settings:</strong></p>
<ul>
<li><p>Go to the <strong>Render Properties</strong> (right sidebar, camera icon), and set <strong>Render Engine</strong> to <code>Cycles</code> for more realistic lighting (if your computer can handle it).</p>
</li>
<li><p>Press <code>F12</code> to render your scene and see the final result.</p>
</li>
</ul>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730971683648/2c9cde53-ec63-4ca9-b0a9-cb3a5ee8c284.png" alt class="image--center mx-auto" /></p>
<hr />
<p>Following/ Reacting and liking is free, and It shows me that Im doing something right! Thanks for reading. Join my newsletter if you would like more blender content, or in depth guides!  </p>
<p>Thanks for reading all this way! — Jackson</p>
]]></content:encoded></item><item><title><![CDATA[Is Computer Science Right for Me? How to Decide + Career Insights]]></title><description><![CDATA[You’ve spent several years in the working world, and for some reason, you’ve been interested in a computer science degree for a while. The question on your mind is: How do you know it’s the right fit?
Here are ten clear signs that you might enjoy a c...]]></description><link>https://blog.jackson-alvarez.dev/is-computer-science-right-for-me</link><guid isPermaLink="true">https://blog.jackson-alvarez.dev/is-computer-science-right-for-me</guid><category><![CDATA[Programming Blogs]]></category><category><![CDATA[College]]></category><category><![CDATA[Students]]></category><category><![CDATA[newbie]]></category><dc:creator><![CDATA[Jackson Alvarez]]></dc:creator><pubDate>Tue, 05 Nov 2024 12:47:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1730782236020/d0def485-1eb1-4583-a7ba-3d0f526ec025.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You’ve spent several years in the working world, and for some reason, you’ve been interested in a computer science degree for a while. The question on your mind is: <strong>How do you know it’s the right fit?</strong></p>
<p>Here are ten clear signs that you might enjoy a computer science degree:</p>
<h2 id="heading-you-are-not-easily-frustrated-by-how-hard-a-task-is-but-by-how-long-it-takes-you-to-complete"><strong>You are not easily frustrated by how hard a task is, but by how long it takes you to complete.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730787381790/eeb84ffd-5a1b-4dc8-8b91-11063acdb124.webp" alt class="image--center mx-auto" /></p>
<p>Lazy people make the best programmers. Using functions and finding shortcuts is a core idea in programming and a core idea in many of our lives. If you constantly find yourself looking for useful shortcuts in everyday life, its a tell tail sign that you are going to do well in a computer science setting.</p>
<h2 id="heading-you-take-pride-in-what-you-know-well"><strong>You take pride in what you know well.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730788680110/244fa8d3-1121-4689-9e08-d69799c1dd84.webp" alt class="image--center mx-auto" /></p>
<p>Computer science rewards those who can dive deeply into a topic. Mastery isn’t always immediate, but once you’ve built a strong knowledge base, you love to own it. Pride in your skills means you’re committed to understanding things thoroughly, a key asset in a field that demands specialized expertise.</p>
<h2 id="heading-curiosity-and-creativity-drive-your-learning-process"><strong>Curiosity and creativity drive your learning process.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730788723285/edb44c1b-276d-46c5-bcde-72f1b1422b7b.jpeg" alt class="image--center mx-auto" /></p>
<p>This one is a big one! If you’re naturally curious and can’t help but tinker with new ideas, you’ll likely thrive in computer science. This is especially true if you have already started to program and enjoyed it.</p>
<p>Coding is as much about inventing solutions as it is about logic. Your creativity will help you solve problems in new ways, making the technical aspects more engaging.</p>
<h2 id="heading-you-have-a-passion-for-technology"><strong>You have a passion for technology.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730788984425/2eaefd61-f920-491a-bda0-a6fa735a3367.webp" alt class="image--center mx-auto" /></p>
<p>Simply put, if you’re the friend people go to for tech advice, or you always keep up with the latest tools and devices, this field could be for you. A love and understanding for technology keeps you motivated through the most challenging courses and projects, turning hard work into passion projects.</p>
<h2 id="heading-problem-solving-excites-you-especially-when-it-involves-complex-challenges"><strong>Problem-solving excites you, especially when it involves complex challenges.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730788998199/07197eff-488f-4ec5-a0cd-e2e6954d4707.png" alt class="image--center mx-auto" /></p>
<p>From logic puzzles to real-world applications, you find satisfaction in piecing solutions together. In computer science, challenges are endless—whether it’s improving an algorithm or finding a fix for a software bug. If you get a thrill from complex problems, this field has plenty to offer.</p>
<h2 id="heading-you-find-satisfaction-in-building-things-from-scratch-whether-its-code-or-ideas"><strong>You find satisfaction in building things from scratch, whether it’s code or ideas.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730789012938/cde18b6c-8b83-4c6f-9d39-7c22eaaca123.png" alt class="image--center mx-auto" /></p>
<p>There’s nothing like watching your own code come to life. If you enjoy seeing something built from the ground up and appreciate the journey from concept to completion, computer science could be the perfect space for your creativity and patience.</p>
<h2 id="heading-analyzing-patterns-and-spotting-trends-feels-natural-to-you"><strong>Analyzing patterns and spotting trends feels natural to you.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730789083713/542705b0-f388-4bb4-adba-94eef16af350.jpeg" alt class="image--center mx-auto" /></p>
<p>Computer science is about seeing the big picture in data and recognizing patterns that help solve problems. If you enjoy piecing together clues or analyzing data trends, you’re likely wired to find success in coding, algorithms, and data science.</p>
<h2 id="heading-youre-comfortable-working-independently-and-are-self-motivated-to-tackle-challenges"><strong>You’re comfortable working independently and are self-motivated to tackle challenges.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730789155839/631088fc-dfd5-4395-b09f-3205d93e8013.jpeg" alt class="image--center mx-auto" /></p>
<p>Many coding projects require long hours of focused work. If you’re fine diving into a problem without someone hovering over you, your independent drive will serve you well in programming, where persistence and self-direction are key.</p>
<h2 id="heading-the-idea-of-lifelong-learning-excites-you-because-tech-constantly-evolves"><strong>The idea of lifelong learning excites you because tech constantly evolves.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730789190552/fba8f94f-12ba-40b0-848f-fdaa243838c4.jpeg" alt class="image--center mx-auto" /></p>
<p>The tech field changes rapidly, with new languages, tools, and approaches emerging constantly. If you’re excited by the idea of continuously learning and adapting, a computer science degree will prepare you to keep up with a field that never stands still.</p>
<h2 id="heading-you-enjoy-collaborating-with-others-but-also-appreciate-the-solitary-nature-of-coding"><strong>You enjoy collaborating with others but also appreciate the solitary nature of coding.</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730789216806/d779e7e2-468c-4df9-9607-aea25fb0f6c2.webp" alt class="image--center mx-auto" /></p>
<p>While programming often requires solo focus, many projects are collaborative. If you can work well in a team yet appreciate moments alone to work through code, you’ll likely thrive in this balance between individual and team effort.</p>
<hr />
<p>If you made it this far, you probably would <em>enjoy</em> what a computer science degree has to offer. I wish you the best of luck!</p>
<p><strong>About the Author</strong></p>
<p>If you're curious, here's a little about me. I'm a 21-year-old system administrator. I work part-time for a university in North Carolina and attend school full-time. I live in a small apartment with my roommate, and I often explore side projects like blogging, YouTube, and coding-related posts. I'm still investing in courses to further my education. I love sharing what I discover in my research and programming journey. Eventually, I hope to become a professor, after earning good money from the right opportunities. If not, I'll start my own online programming school.</p>
]]></content:encoded></item></channel></rss>