<?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: Emma(minjoo)</title>
    <description>The latest articles on DEV Community by Emma(minjoo) (@emmakang123).</description>
    <link>https://dev.to/emmakang123</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%2F2902837%2Fc59c970a-9a23-4bd0-a311-a2468c131feb.jpeg</url>
      <title>DEV Community: Emma(minjoo)</title>
      <link>https://dev.to/emmakang123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emmakang123"/>
    <language>en</language>
    <item>
      <title>Testing interview</title>
      <dc:creator>Emma(minjoo)</dc:creator>
      <pubDate>Sat, 23 Aug 2025 21:47:05 +0000</pubDate>
      <link>https://dev.to/emmakang123/testing-interview-3j16</link>
      <guid>https://dev.to/emmakang123/testing-interview-3j16</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The following content is taken from Cracking the Coding Interview.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Testing problems usually fall under one of four categories&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test a real world object(like a pen)&lt;/li&gt;
&lt;li&gt;Test a piece of software&lt;/li&gt;
&lt;li&gt;write test code for a function&lt;/li&gt;
&lt;li&gt;troubleshoot an existing issue&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Remember that all four types require you to not make an assumption that the input or the user will play nice. Expect abuse and plan for it&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Testing a Real World Object
&lt;/h2&gt;

&lt;p&gt;example Question : How would you test a paperclip?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step1.&lt;/strong&gt; Who will use it? And Why?&lt;br&gt;
The answer could be "by teacher, to hold papers together", or it could be "by artists, to bend into the shape of animal". The answer to this question will shape how you handle the remaining questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step2.&lt;/strong&gt; What are the use cases?&lt;br&gt;
It will be useful for you to make a list of the use cases. In this case, the use case might be simple fastening paper together in a non-damaging(to the paper) way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step3.&lt;/strong&gt; What are the bounds of use?&lt;br&gt;
The bounds of use might mean holding up to thirty sheets of paper in a single usage without permanent damage(e.g, banding), and thirty to fifty sheets with minimal permanent bending. &lt;em&gt;The bounds also extend to environmental factors as well&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step4.&lt;/strong&gt; What are the stress/failure conditions?&lt;br&gt;
No product is fail-proof, so analyzing failure conditions needs to be part of your testing. A good discussion to have with your interviewer is about when it's acceptable(or even necessary) for the product to fail, and what failure should mean.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step5.&lt;/strong&gt; How would you perform the testing?&lt;br&gt;
For example, if you need to make sure a chair can withstand normal usage for five years, you probably can't actually place it in a home and wait five years.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Testing a piece of Software
&lt;/h2&gt;

&lt;p&gt;it is actually very similar to testing a real world object. The major difference is that software testing generally places a greater emphasis on the details of performing testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;two core aspect to it&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Manual vs Automated testing : In an ideal world, we might love to automate everything, but that's rarely feasible. Some things are simply much better with manual testing because some features are too qualitative for a computer to effectively examine. Additionally, whereas a computer can generally recognize only issues that it's been told to look for, human observation may reveal new issues that haven't been specifically examined. Both humans and computers form an essential part of the testing process.&lt;/li&gt;
&lt;li&gt;Black Box vs White Box Testing : This distinction refers to the degree of access we have into the software. In black box testing, we're just given the software as-is and need to test it. With white box testing, we have additional programmatic access to test individual functions. We can also automate some black box testing, although it's certainly much harder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;step1.&lt;/strong&gt; Are we doing Black Box Testing or White Box Testing?&lt;br&gt;
Though this question can often be delayed to a later step, I like to get it out of the way early on. Check with your interviewer as to whether you're doing black box testing or white box testing- or both.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step2.&lt;/strong&gt; Who will use it? And why?&lt;br&gt;
Software typically has one or more target users, and the features are designed with this in mind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step3.&lt;/strong&gt; What are the use cases?&lt;br&gt;
In the software blocking scenario, the use cases of the parents include installing the software, updating controls, removing controls and of course their own personal internet usage. For the children, the use cases including accessing legal content as well as "illegal" content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step4.&lt;/strong&gt; What are the bounds of use?&lt;br&gt;
Now that we have the vague use cases defined, we need to figure out what exactly this means. What does it mean for a website to be blocked? Should just the "illegal" page be blocked, or the entire website?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step5.&lt;/strong&gt; What are the stress conditions / failure conditions?&lt;br&gt;
When the software fails - which it inevitable will - what should the failure look like? Clearly, the software failure shouldn't crash the computer. Instead, it's likely that the software should just permit a blocked site, or ban an allowable site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step6.&lt;/strong&gt; What are the test cases? How would you perform the testing?&lt;br&gt;
Here is where the distinctions between manual and automated testing and between black box and white box testing, really come into play.&lt;br&gt;
Step 3 and 4 should have roughly defined the use cases. In step 6, we further define them and discuss how to perform the testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Testing a Function
&lt;/h2&gt;

&lt;p&gt;In many ways, testing a function is the easiest type of testing. Suppose you were asked to write code to test 'sort(int[] array)' which sorts an array of integers. You might proceed as follows.&lt;br&gt;
&lt;strong&gt;step1.&lt;/strong&gt; Define the test cases&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The normal case: Does it generate the correct output for typical input? Remember to think about potential issues here.&lt;/li&gt;
&lt;li&gt;The extremes: What happens when you pass in an empty Array? Or a very small(one element) array? What if you pass in a very large one?&lt;/li&gt;
&lt;li&gt;Nulls and "illegal" input: It is worthwhile to think about how the code should behave when given illegal input.&lt;/li&gt;
&lt;li&gt;Strange input : A fourth kind of input sometimes comes up: strange input. What happens when you pass in an already sorted array? Or an array that's sorted in reverse order?
Generating these tests does require knowledge of the function you are writing. If you are unclear as to the constraints, you will need to ask your interviewer about this first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;step2.&lt;/strong&gt; Define the expected result&lt;br&gt;
Often, the expected result is obvious: the right output. However, in some cases, you might want to validate additional aspects. For instance, if the sort method returns a new sorted copy of the array, you should probably validate that the original array has not been touched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step3&lt;/strong&gt; Write test code&lt;br&gt;
Once you have the test cases and results defined, writing the code to implement the test cases should be fairly straightforward.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Troubleshooting Questions
&lt;/h2&gt;

&lt;p&gt;A final type of question is explaining how you would debug or troubleshoot an existing issue. many candidates balk at a question like this, giving unrealistic answers like "reinstall the software". You can approach these questions in a structured manner, like anything else. Reinstalling the browser might solve this user's problem, but it wouldn't help the other users who might be experiencing the same issue. your goal is to understand what's really happening, so that the developers can fix it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step1.&lt;/strong&gt; Understand the Scenario&lt;br&gt;
The first thing you should do is ask questions to understand as much about the situation as possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step2.&lt;/strong&gt; Break Down the Problem&lt;br&gt;
Now that you understand the details of the scenario, you want to break down the problem into testable units. A strong tester would iterate through the elements of this scenario to diagnose the problem&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step3.&lt;/strong&gt; Create Specific, Manageable Tests&lt;br&gt;
Each of the above components should have realistic instructions - things that you can ask the user to do, or things that you can do yourself(such as replicating steps on your own machine). In the real world, you will be dealing with customers, and you can't give them instructions that they can't or won't do.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Sorting Algorithms</title>
      <dc:creator>Emma(minjoo)</dc:creator>
      <pubDate>Fri, 08 Aug 2025 01:43:51 +0000</pubDate>
      <link>https://dev.to/emmakang123/sorting-algorithms-314a</link>
      <guid>https://dev.to/emmakang123/sorting-algorithms-314a</guid>
      <description>&lt;h3&gt;
  
  
  Common Sorting Algorithms
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bubble Sort&lt;/strong&gt; | Runtime : O(n²) average and worst case. Memory : O(1).
In a bubble sort, we start at the beginning of the array and swap the first two elements if the first is greater than the second. Then we go to the next pair, and so on, continuously making sweeps of the array until it is sorted. In doing so, the smaller items slowly "bubble" up to the beginning of the list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Selection Sort&lt;/strong&gt; | Runtime : O(n²) average and worst case. Memory : O(1).
Find the smallest element using a linear scan and move it to the front (swapping it with the front element). Then, find the second smallest and move it, again doing a linear scan. Continue doing this until all the elements are in place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merge Sort&lt;/strong&gt; | Runtime : O(n log(n)) average and worst case. Memory : depends.
Merge sort divides the array in half, sorts each of those halves, and then merges them back together. Each of those halves has the same sorting algorithm applied to it. Eventually, you are merging just two simgle-element arrays. It is the "merge" part that does all the heavy lifting. The merge method operates by copying all the elements from the target array segment into a helper array, keeping track of where the start of the left and right halves should be (helperLeft and helperRight). We then iterate through helper, copying the smaller element from each half into the array. At then end, we copy and remaining elements into the target array.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick Sort&lt;/strong&gt; | Runtime : O(n log(n)) average, O(n²) worst case. Memory : O(log(n))
In quick sort, we pick a random element and partition the array, such that all numbers that are less than the partitioning element come before all elements that are greater than it. The partitioning can be performed efficiently through a series of swaps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Radix Sort&lt;/strong&gt; | Runtime : O(kn)
Radix sort is a sorting algorithm for integers (and some other data types) that takes advantage of the fact that integers have a finite number of bits. In radix sort, we iterate through each digit of the number, grouping numbers by each digit. For example, if we have an array of integers, we might first sort by the first digit, so that the 0s are grouped together. Then, we sort each of these groupings by the next gdigit. We repeat this process sorting by each subsequent digit, until finally the whole array is sorted. Unlike comparison sorting algorithms, which cannot perform better than O(n log(n)) in the average case, radix sort has a runtime of O(kn), where n is the number of elements and k is the number of passes of the sorting algorithm.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Class, Object, Instance</title>
      <dc:creator>Emma(minjoo)</dc:creator>
      <pubDate>Fri, 01 Aug 2025 18:01:35 +0000</pubDate>
      <link>https://dev.to/emmakang123/class-object-instance-3pel</link>
      <guid>https://dev.to/emmakang123/class-object-instance-3pel</guid>
      <description>&lt;h2&gt;
  
  
  Class
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A blueprint or template for creating objects&lt;/li&gt;
&lt;li&gt;A collection of related variables and methods&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Object
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An entity to be implemented in the software&lt;/li&gt;
&lt;li&gt;An instance created exactly as defined by the class&lt;/li&gt;
&lt;li&gt;It is also called an instance of a class.&lt;/li&gt;
&lt;li&gt;The term "object" has a broader meaning that represents all instances.&lt;/li&gt;
&lt;li&gt;From an OOP perspective, it is called an "object" when declared with a class type.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Instance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A concrete entity implemented in the software world based on a blueprint.&lt;/li&gt;
&lt;li&gt;In other words, when an object is materialized in software, it is called an "instance."&lt;/li&gt;
&lt;li&gt;The materialized instance is allocated in memory.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An instance can be considered a subset of an object.&lt;/li&gt;
&lt;li&gt;From an OOP perspective, when an object is allocated in memory and actually used, it is called an instance.&lt;/li&gt;
&lt;li&gt;The term is used when focusing on the relationship between an abstract concept (or specification) and a concrete object.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Data structure - Graph</title>
      <dc:creator>Emma(minjoo)</dc:creator>
      <pubDate>Sat, 31 May 2025 20:57:57 +0000</pubDate>
      <link>https://dev.to/emmakang123/data-structure-graph-3a7b</link>
      <guid>https://dev.to/emmakang123/data-structure-graph-3a7b</guid>
      <description>&lt;h2&gt;
  
  
  Graphs
&lt;/h2&gt;

&lt;p&gt;A tree is actually a type of graph, but not all graphs are trees. Simply put, a tree is a connected graphs without cycles.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;A graph is simply a collection of nodes with edges between (some of) them&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;graphs can be either directed (like the following graph) or undirected. While directed edges are like a one-way street, undirected edges are like a two-way street.&lt;/li&gt;
&lt;li&gt;The graph might consist of multiple isolated subgraphs. If there is a path between every pair of vertices, it is called a "connected graph"&lt;/li&gt;
&lt;li&gt;the graph can also have cycles. An "acyclic graph" is one without cycles
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Adjacency List
&lt;/h3&gt;

&lt;p&gt;This is the most common way to represent a graph. Every vertes(or node) stores a list of adjacent vertices. In an undirected graph, an edge like(a,b) would be stored twice : once in a's adjacent vertices and once in b's adjacent vertices.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In order to implement of simple graph, the graph class is used because, unlike in a tree, you can't necessarily reach all the nodes from a single node. You don't necessarily need any additional classes to represent a graph. An array(or a hash table) of lists(arrays, arraylists, linked lists, etc.) can store the adjacency list.
But it isn't quite as clean. We tend to use node classes unless there's a compelling reason not to.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Adjacency matrices
&lt;/h3&gt;

&lt;p&gt;An adjacency matrix is an NxN boolean matrix (where N is the number of nodes), where a true value at matrix[i][j] indecates an edge from node i to node j( you can also use an integer matrix with 0s and 1s.)&lt;br&gt;&lt;br&gt;
In an undirected graph, an adjacency matrix will be symmetric. In a directed graph, it will not(necessarily)be.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Data Structure - Tree</title>
      <dc:creator>Emma(minjoo)</dc:creator>
      <pubDate>Sat, 31 May 2025 19:28:55 +0000</pubDate>
      <link>https://dev.to/emmakang123/data-structure-tree-4ki8</link>
      <guid>https://dev.to/emmakang123/data-structure-tree-4ki8</guid>
      <description>&lt;h2&gt;
  
  
  Tree
&lt;/h2&gt;

&lt;p&gt;A tree is a data structure composed of nodes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each tree has a root node -&amp;gt; Actually a root node isn't necessary in graph theory, but it's usually how we use trees in programming.&lt;/li&gt;
&lt;li&gt;Root node has zero or more child nodes. Each child node has zero or more child nodes, and so on&lt;/li&gt;
&lt;li&gt;The tree cannot contain cytcles. The nodes may or may not be in a particular order, they could ahve any data type as values, and they may or may not have links back to their parent nodes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Binary Tree vs. Binary search Tree&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A binary search tree is a binary tree in which every node fits a specific ordering property
-&amp;gt;&lt;em&gt;All left descendents &amp;lt;= n &amp;lt; all right descendents. This must be true for each node n&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;The definition of a binary search tree can vary slightly with respect to equality. Under some definitions, the tree cannot have duplicate values. In others, the duplicate values will be on the right or can be on either side. All are valid definitions.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Balanced vs. Unbalanced&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
a "balanced" tree really means something more like "not terribly imbalanced".&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Complete Binary Trees&lt;/strong&gt;&lt;br&gt;
A complete binary tree is a binary tree in which every level of the tree is fully filled, except for perhaps the last level(leaf node). To the extent that the last level is filled it is filled left to right&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Full binary Trees&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A full binary tree is a binary tree in which every node has either zero or two children. That is, no nodes have only one child.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Perfect Binary Trees&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A perfect binary tree is one that is both full and complete. All leaf nodes will be at the same level, and this level has the maximum number of nodes -&amp;gt; it is rare in real life, as a perfect tree must have exactly 2ᵏ-1 nodes(k is the number of levels)&lt;/p&gt;

&lt;h3&gt;
  
  
  Binary Tree Traversal
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In-Order Traversal&lt;/strong&gt;
this means to "visit"(often, print) the left branch, then the current node, and finally, the right branch. When performed on a binary search tree, it visits the nodes in ascending order&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-Order Traversal&lt;/strong&gt;
this visits the current node before its childnodes. In a pre-order traversal, the root is always the first node visited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Post-Order traversal&lt;/strong&gt;
Post-Order traversal visits the current node after its child nodes. The root is always the last node visited.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Binary Heaps
&lt;/h4&gt;

&lt;p&gt;there are min-heaps and max-heaps. Max-heaps are essentially equivalent, but the elements are in descending order rather than ascending order.&lt;br&gt;&lt;br&gt;
A min-heap is a complete binary tree(that is, totally filled other than the rightmost elements on the last level) where each node is smaller than its children. Therefore the foot is the minimum element in the tree.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;two key oerations on a min-heap -&amp;gt; insert and extract_min&lt;/strong&gt;  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;insert
when we insert into a min-heap, we always start by inserting the element at the bottom. We insert at the rightmost spot so as to maintain the complete tree property.
Then we "fix" the tree by swapping the new element with its parent, until we find an appropriate spot for the element. We essentially bubble up the minimum element. This takes O(log n) time, where n is the number of nodes in the heap.&lt;/li&gt;
&lt;li&gt;Extract Minimum Element
First we remove the minimum element and swap it with the last element in the heap(the last element -&amp;gt; the bottommost, rightmost element). 
-&amp;gt; &lt;em&gt;(Remove the root (minimum element), and move the last element to the root position.)&lt;/em&gt;
Then we bubble down this element, swapping it with one of its children until the min-heap property is restored.
Do we swap it with the left child or the right child -&amp;gt; that depends on their values. There's no inhent ordering between the left and right element, but you'll need to take the smaller one in order to maintain the min-heap ordering.
&lt;strong&gt;This algorithm will also take O(log n) time.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Tries (Prefix Trees)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A tries is a variant of an n-ary tree in which characters are stored at each node. Each path down the tree may represent a word. The *nodes(sometimes called "null nodes") are often used to indicate complete words.
-&amp;gt; For example, the fact that there is a *node under MANY indicates that MANY is a complete word. The existence of the MA path indicates there are words that start with MA.
The actual implementation of these * nodes might be a special type of child(such as a Terminating TrieNode, which inherits from TrieNode).
&lt;/li&gt;
&lt;li&gt;Very commonly, a trie is used to store the entire (English) language for quick prefix lookups. While a hash table can quickly look up whether a string is a valid word, it cannot tell us if a string is a prefix of any valid words. A trie can do this very quickly&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Literal</title>
      <dc:creator>Emma(minjoo)</dc:creator>
      <pubDate>Sat, 19 Apr 2025 20:46:28 +0000</pubDate>
      <link>https://dev.to/emmakang123/literal-3e22</link>
      <guid>https://dev.to/emmakang123/literal-3e22</guid>
      <description>&lt;p&gt;During class of Python, I heard about Dictionaries Literals. I wonder why it's called literals.&lt;/p&gt;

&lt;p&gt;Q. What is a Literal&lt;/p&gt;

&lt;p&gt;literal is a value you write directly in your code. It is not a variable or a name =&amp;gt; it's the actual data.(you can think of it as the raw data -&amp;gt; number, text, etc.)&lt;/p&gt;

&lt;h2&gt;
  
  
  What is different from a Constant?
&lt;/h2&gt;

&lt;p&gt;a constant is a named variable whose value doesn't change&lt;br&gt;
&lt;code&gt;final int MY_NUMBER = 42;&lt;/code&gt; -&amp;gt; like this(in here, the final keyword means constant),  but 42 is literal. &lt;/p&gt;
&lt;h2&gt;
  
  
  Why It's called a literal, not a value.
&lt;/h2&gt;

&lt;p&gt;A literal is the value as it appears literally in your code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int x = 10;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;10 is a literal because you typed it directly into the code.&lt;/li&gt;
&lt;li&gt;it's called a literal because &lt;strong&gt;it's the literal representation&lt;/strong&gt; of a value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But, value has a broader Concept. The word value means the result of anything -&amp;gt; it could be &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a literal&lt;/li&gt;
&lt;li&gt;a variable&lt;/li&gt;
&lt;li&gt;a result of a function call&lt;/li&gt;
&lt;li&gt;a complex expression
eg. &lt;code&gt;int x = a+b&lt;/code&gt; =&amp;gt; Here, the value of x is not a literal -&amp;gt; it's calculated(computed). So we don't call it a "literal", even though it has a value.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>java</category>
      <category>python</category>
    </item>
    <item>
      <title>My frist step</title>
      <dc:creator>Emma(minjoo)</dc:creator>
      <pubDate>Sat, 19 Apr 2025 20:31:36 +0000</pubDate>
      <link>https://dev.to/emmakang123/my-frist-step-8b9</link>
      <guid>https://dev.to/emmakang123/my-frist-step-8b9</guid>
      <description>&lt;p&gt;Taking my first step here.&lt;br&gt;
I’m from Korea, and until now I’ve been using other platforms to write. Just recently found out about dev.to—so yeah, this is all kinda new to me.&lt;/p&gt;

&lt;p&gt;From now until the end of September, I’m starting a bit of a personal journey. Gonna dive into Python (starting from the basics), revisit some algorithm stuff, and build out a small project or two. Thought it’d be cool to write things down along the way—stuff I learn, stuff I mess up, random thoughts, all of it.&lt;/p&gt;

&lt;p&gt;I’ve worked as a dev in Korea for about two years, but honestly? Still feel like a junior and really I am. There’s a mountain of stuff I don’t know yet. That’s why I wanna be more of a “write-it-down” kind of developer from now on, so I don’t forget things two days later like I usually do 😅&lt;/p&gt;

&lt;p&gt;No big goals here, just taking it one step at a time.&lt;/p&gt;

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