<?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>Forem: Jonathan Hammond</title>
    <description>The latest articles on Forem by Jonathan Hammond (@jonamichahammo).</description>
    <link>https://forem.com/jonamichahammo</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%2F194951%2F747a7b1d-6667-477a-ba2c-73fd87845344.jpg</url>
      <title>Forem: Jonathan Hammond</title>
      <link>https://forem.com/jonamichahammo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jonamichahammo"/>
    <language>en</language>
    <item>
      <title>Python Data Types</title>
      <dc:creator>Jonathan Hammond</dc:creator>
      <pubDate>Sun, 25 Jul 2021 01:19:07 +0000</pubDate>
      <link>https://forem.com/jonamichahammo/python-data-types-2a9n</link>
      <guid>https://forem.com/jonamichahammo/python-data-types-2a9n</guid>
      <description>&lt;p&gt;This article is going to explore Python data types.&lt;/p&gt;

&lt;p&gt;What is a Data Type?&lt;br&gt;
Data Types are attributes of data which tell compilers and interpreters how the data is intended to be used(1). In Python, there are over a dozen data types, which can be categorized in several ways.&lt;/p&gt;

&lt;p&gt;Built-in Data Types: Primitive&lt;/p&gt;

&lt;p&gt;String&lt;br&gt;
Python contains the Text Type 'str,' which is short for string. Strings are arrays of bytes representing Unicode characters (2). In Python, strings are surrounded by single or double quotations, and can be formatted in a number of ways. For example, formatted strings known as string literals or f-strings come with an attractive design pattern that can be enclosed in single, double, or even triple quotes. f-strings utilize curly {} braces so you can embed variables within a string. It even allows us to evaluate expressions like arithmetic, function calls, etc.! That's part of what makes f-strings so powerful and popular in Python. Technically speaking, it is totally within reason to perform calculations with numeric types within an f-string. However, f-strings, which are expressions evaluated at runtime, are not a constant value and ultimately return a string value, so even the numbers within your expression become strings in this regard.(3, 4, 5).&lt;/p&gt;

&lt;p&gt;Other primitive data types include numeric types such as 'int' (integer), 'float' (decimal points) and complex, as well as Boolean types ('bool'). A full list of Python Data Types can be found in the links ending this article(6).&lt;/p&gt;

&lt;p&gt;Floats &amp;amp; Integers&lt;br&gt;
Floats stand for "floating point number" and contain one or more decimals, which differentiate them from the integer primitive data type. In simple terms, think of why you would want this: 4 / 2 = 2, but 5 / 2 = 2.5. In some limited forms, a computer might even process this to 3 or 2. To perform the math correctly, we need decimal points. However, There are a couple things to note about Floats. One, that Python is like many other programming languages. However, by comparison to the JavaScript programming language, which does not define different types of numbers, because in JavaScript they are always stored as double precision floating point numbers (7). I just thought I would point that out, as I myself am coming from a JavaScript background, so this was a new, albeit basic data type for me. Second, floating point arithmetic is by definition not completely 100% accurate, because values are represented by fractions (8, 9). This might not affect your day to day programming life, but it is good to know. For example, at work, where I support a Salesforce application that is built with Apex, precise calculations can commonly be off by a penny, which doesn't seem like it would matter, until you are working with multiple multi-billion dollar businesses who frequently utilize reports and perform calculations requiring exact precision. Oh, major third one I just learned now: Floats can also be scientific numbers with an "e" to indicate the power of 10: &lt;code&gt;35e3&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;An integer is a whole number, positive or negative, without decimals, of unlimited length. I ripped this straight from w3 schools, which I have already linked below. Common integers include 0,1,2,3,4,5,6,7,8,9,10, and so on. There isn't a whole lot to cover for integers right now. The number 0 is kind of a unique case however, in that it is also a way to say False (as opposed to True, which could be described as 1 in programming). This is because in Python and other languages, individual values can evaluate to either True or False: values that evaluate to False are considered Falsy, and values that evaluate to True are considered Truthy(10). Before I get into any more examples, allow me to first discuss the Boolean primitive data type.&lt;/p&gt;

&lt;p&gt;Booleans&lt;br&gt;
In the 1800s, George Boole defined an algebraic system of logic(11). All that matters for now is that Boolean data types in Python represent one of two values: True or False. This simple Yes/No sort of value works perfectly for if-statements, as well as for loops. Wherever your code requires a condition or to meet a certain criteria, that criteria should be cleanly defined. Simply put, that condition is either met or not met. Boolean data types are critical pieces of data because of how powerful they are. Also, you won't exactly be seeing &lt;code&gt;True&lt;/code&gt; and &lt;code&gt;False&lt;/code&gt; written out all the time, but rather the evaluation of an expression that reduces to one of those values. Keep in mind I am a beginner, so part of this information is my observation and should not be taken as gospel. &lt;/p&gt;

&lt;p&gt;Here is an example of a string, integer, and Boolean data type:&lt;br&gt;
&lt;code&gt;print('Are you legal drinking age? ', 18 &amp;lt; 21)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Even in such a simple statement above, we are using a built-in Python function that returns human-readable output to the screen. We are passing arguments (not parameters) into this function(12). We are using the 'Less than' comparison operator to compare if 18 is less than 21. Since this expression evaluates to False, what the print function returns to us is actually the word &lt;code&gt;False&lt;/code&gt;, since the above expression evaluates to a falsy value.&lt;/p&gt;

&lt;p&gt;Expressions&lt;br&gt;
Expressions are representations of value - they need to be evaluated(13). In Python, an expression only contains identifiers, literals, and operators. Identifiers are names given to the fundamental building blocks in a program, are are user-defined to represent a variable, function, or any other object(14, 15). Literals are a succinct way to write a value. In Python and other languages, literals represent the possible choices in primitive types for that language. A full list is linked below, but some examples include Boolean (True, False), String ('lesser', 'greater') and Integer literals (0, 1, -2)(16). Operators are special symbols in Python that carry out arithmetic or logical computation. &lt;/p&gt;

&lt;p&gt;If we were to analyze our above example, &lt;code&gt;18&lt;/code&gt; and &lt;code&gt;21&lt;/code&gt; would be examples of Integer Literals, and &lt;code&gt;&amp;lt;&lt;/code&gt; would be an example of an Operator. If we wanted to make our expression more flexible and inclusive, we could use a variable. For instance, if a user inputs their age (for me: 30, for you it may be different), we can store that number in a variable then use it in our example like this: &lt;code&gt;age &amp;lt; 21&lt;/code&gt;. If we were to do this, we would then also be using an Identifier.&lt;/p&gt;

&lt;p&gt;Logical and Identity Operators&lt;br&gt;
The reason for this detour on expressions is to highlight how complex an expression can become that simply evaluates to True or False. For example, we can utilize logical operators to combine conditional statements, or identity operators to compare objects. Here are some example that use all the Logical Operators:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;18 &amp;lt; 21 and 24 &amp;lt; 21&lt;/code&gt; evaluates to the Boolean data type False, because with an &lt;code&gt;and&lt;/code&gt; operator, both statements must be True.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;18 &amp;lt; 21 or 24 &amp;lt; 21&lt;/code&gt; evaluates to True, because with an &lt;code&gt;or&lt;/code&gt; operator, at least one statement must be True, and the above essentially states &lt;code&gt;False or True&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;not(1 &amp;lt; 0 and 2 &amp;lt; 0)&lt;/code&gt; evaluates to True, because the &lt;code&gt;not&lt;/code&gt; operator reverses a result. If you are familiar with PEMDAS, Python follows this and so contents within a parentheses are evaluated before exponents, subtraction, etc. In this case, the inner contents evaluate to False, so reversing False evaluates to True.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here are examples using the Identity Operators:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;sister, brother = 21, 21 # sister is brother&lt;/code&gt; - If we were to print(sister is brother) we would read True, because we are essentially asking Python to compare 21 to 21 to see if they are the same object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;print('sister' is not 'brother')&lt;/code&gt; evaluates to True. Here, we are comparing two strings to see if both sides are the same object. I am not certain, but I believe Python String characters are comprised of ASCII encoding, which uses numbers to present English characters(17, 18). As you may have inferred, the characters in each of the above strings would boil down to different number sequences, therefore it is &lt;code&gt;True&lt;/code&gt; that, in essence, &lt;code&gt;a is not b&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Truthy and Falsy Values&lt;br&gt;
One simple way to determine an item's Boolean value is by using the bool() function(19). Truthy values that will evaluate to True include Non-empty sequences or collections such as lists, tuples, strings, dictionaries, and sets, Numeric values that are not 0 (remember earlier?), and the word &lt;code&gt;True&lt;/code&gt;. Conversely, Falsy values include Constants such as &lt;code&gt;False&lt;/code&gt; or &lt;code&gt;None&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt; of any numeric type, and anything empty of the following: lists &lt;code&gt;[]&lt;/code&gt;, tuples &lt;code&gt;()&lt;/code&gt;, dictionaries &lt;code&gt;{}&lt;/code&gt;, sets &lt;code&gt;set()&lt;/code&gt;, strings &lt;code&gt;""&lt;/code&gt; or ranges &lt;code&gt;range(0)&lt;/code&gt;(10, 20). &lt;/p&gt;

&lt;p&gt;ASIDE&lt;br&gt;
To put things into perspective, consider how problematic binary thinking is in many societal discussions. We could be talking about political policy, pandemics and vaccines, personal topics and so forth. Most therapists would advise against absolutist thinking, which can be characterized by viewing things as all or nothing, black or white, etc. This "all or nothing" principle extends to polarized thinking. On top of that, many people often generalize things that are incredibly nuanced. They don't even extrapolate. They merely assume by effortlessly abstracting away relevant contextual concrete information, until all that remains is an opinion that is hardly rooted in any fact at all. As the old saying goes, "All generalizations are false, including this one."(21)&lt;/p&gt;

&lt;p&gt;By comparison, computers due not tend to fall to common psychological follies as humans are apt to do. If your if-statement does not run, it may have evaluated to False. Understanding something as simple as this should help you debug your program, as you investigate the Error of your code. This digression has been brought to you by writing this without a break.&lt;/p&gt;

&lt;p&gt;Built-in Data Types: Non-Primitive&lt;/p&gt;

&lt;p&gt;In case I didn't mention it earlier, primitive or basic structures contain pure and simple values of data. By comparison, non-primitive data structures store not just value(s), but a collection of values in various formats(22).&lt;/p&gt;

&lt;p&gt;Lists&lt;br&gt;
In Python, there are three basic sequence types: lists, tuples, and range objects(23). A sequence is any ordered collection of objects whose contents can be accessed via "indexing"(24). Lists are used to store multiple items in a single variable: &lt;code&gt;friends = ['suchan', 'ross', 'desirée']&lt;/code&gt;. List items are indexed and start at 0. If I wanted to access 'Suchan' above, I could do this: &lt;code&gt;print(friends[0])&lt;/code&gt;. List items have a defined order that will not change (25). I won't say it's a best practice, but I will say that it is very common that a list will all contain the same data type. With that being said, your code won't break simply by having a float, integer and string within a list(26). Bear in mind that lists and other sequence and mapping types are iterable, meaning it is capable of returning its members/elements one at a time, permitting it to be iterated over in a &lt;code&gt;for-loop&lt;/code&gt;(27). While there may be no issue looping over a list of &lt;code&gt;[1, 'two', False]&lt;/code&gt;, note that data types have specific built-in methods that are only applicable to that data structure. So for instance, if you were looping over my friends list with the &lt;code&gt;.capitalize()&lt;/code&gt;, that would be fine because the first letter of each element could be capitalized. However, as seen with my mixed data-type example, applying the same method would result in a Python error: &lt;code&gt;AttributeError: 'int' object has no attribute 'capitalize'&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Tuples&lt;br&gt;
Tuples are usually used when you have a known collection of mixed types. I am still learning about them, as I rarely used them in JavaScript except in React, and even then I am pretty sure they weren't technically Tuples(28). Tuples are used to store multiple items in a single variable. Personally I think they are really cool and fascinating, but as I am brand new to them, I really don't feel qualified teaching you anything about them. So, maybe join me in watching this video Socratica has on Python Tuples!(29)&lt;/p&gt;

&lt;p&gt;Sets&lt;br&gt;
Sets are another data type I am not familiar with yet. All I know is that they are also used to store multiple items in a single variable. The only thing I will state for now, is that in comparison to Tuples, which are Ordered, Unchangeable and Allow for Duplicates, Sets are Unordered, also Unchangeable and do not Allow for Duplicate values(30, 31).&lt;/p&gt;

&lt;p&gt;Dictionaries&lt;br&gt;
I can finish off this article strong by talking about Dictionaries. In JavaScript, what I know there as Objects are considered in Python to be Dictionaries. In all honesty, I think it's a better name, since both languages are object-oriented.&lt;/p&gt;

&lt;p&gt;Dictionaries are Mapping data types that are used to store data values in key:value pairs. Things get pretty wild here, because a dictionary can hold dictionaries. For instance, two keys in a dictionary could be Quarterback names like 'Patrick Mahomes' and 'Tom Brady', but their value could be a dictionary that holds further keys such as passing stats, with each corresponding value being a list of say, yards, touchdowns and interceptions, over the course of each week of a season. In contrast to Tuples and Sets, Dictionaries are Changeable, meaning that we can change, add or remove items after the dictionary has been created(32). Compared to List syntax, dictionaries will roughly look like this: &lt;code&gt;parents = { "mom": "Marie" }&lt;/code&gt;, though a dictionary's values can be of any data type(33). By comparison, a dictionary's keys must be of an immutable data type such as strings, numbers or tuples (34). A list of Immutable and Mutable Data Types in Python can be found here(35).&lt;/p&gt;

&lt;p&gt;Wrapping Up&lt;br&gt;
As you can see, there is a lot to learn about Python data types. Mastering the fundamentals practically takes you into becoming hirable in many fields. I know I have a lot to learn when it comes to the non-primitive data types in particular. Understanding how to use each, or at least the most common data types in Python are exponentially extended once you begin forming programs with built in methods, user defined functions, classes, if-statements, for loops and so forth. At first, so much information will populate your short-term memory, that you may feel anxious because no brain is wired to absorb all that information at once. Even computers have finite memory.&lt;/p&gt;

&lt;p&gt;If you are interested in learning more about Python, I strongly recommend googling FreeCodeCamp and Socratica. If you are eager to learn more about the brain and how to learn, I strongly recommend the course below(36).&lt;/p&gt;

&lt;p&gt;In closing, I understand this was not a complete tutorial into the data types of Python, but for you and for me, this was a beginning and a direction as to what you can learn next. Feel free to reach out to me on Twitter (&lt;a class="mentioned-user" href="https://dev.to/jonamichahammo"&gt;@jonamichahammo&lt;/a&gt;
) or LinkedIn (linkedin.com/in/jonamichahammo). I keep it informal on the bird and formal on the business social media, so choose one or both, or neither! &lt;/p&gt;

&lt;p&gt;I hope you've enjoyed. Bye bye.&lt;/p&gt;

&lt;p&gt;A full list of Python Data Types can be found here:&lt;br&gt;
&lt;a href="https://www.w3schools.com/python/python_datatypes.asp"&gt;https://www.w3schools.com/python/python_datatypes.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Citations:&lt;br&gt;
(1)&lt;a href="https://en.wikipedia.org/wiki/Data_type"&gt;https://en.wikipedia.org/wiki/Data_type&lt;/a&gt;&lt;br&gt;
(2)&lt;a href="https://www.geeksforgeeks.org/python-data-types/#:%7E:text=Tuple-,String,is%20represented%20by%20str%20class"&gt;https://www.geeksforgeeks.org/python-data-types/#:~:text=Tuple-,String,is%20represented%20by%20str%20class&lt;/a&gt;.&lt;br&gt;
(3)&lt;a href="https://www.datacamp.com/community/tutorials/f-string-formatting-in-python?utm_source=adwords_ppc&amp;amp;utm_campaignid=1565261270&amp;amp;utm_adgroupid=67750485268&amp;amp;utm_device=c&amp;amp;utm_keyword=&amp;amp;utm_matchtype=b&amp;amp;utm_network=g&amp;amp;utm_adpostion=&amp;amp;utm_creative=332661264365&amp;amp;utm_targetid=aud-438999696719:dsa-429603003980&amp;amp;utm_loc_interest_ms=&amp;amp;utm_loc_physical_ms=9001941&amp;amp;gclid=Cj0KCQjw9O6HBhCrARIsADx5qCQwM75K4E4MKs5Zf90V5j3VSQZPMii1_Kaiv6zxNeTAgIpfy47gq-0aAthCEALw_wcB"&gt;https://www.datacamp.com/community/tutorials/f-string-formatting-in-python?utm_source=adwords_ppc&amp;amp;utm_campaignid=1565261270&amp;amp;utm_adgroupid=67750485268&amp;amp;utm_device=c&amp;amp;utm_keyword=&amp;amp;utm_matchtype=b&amp;amp;utm_network=g&amp;amp;utm_adpostion=&amp;amp;utm_creative=332661264365&amp;amp;utm_targetid=aud-438999696719:dsa-429603003980&amp;amp;utm_loc_interest_ms=&amp;amp;utm_loc_physical_ms=9001941&amp;amp;gclid=Cj0KCQjw9O6HBhCrARIsADx5qCQwM75K4E4MKs5Zf90V5j3VSQZPMii1_Kaiv6zxNeTAgIpfy47gq-0aAthCEALw_wcB&lt;/a&gt;&lt;br&gt;
(4)&lt;a href="https://www.python.org/dev/peps/pep-0498/#:%7E:text=F%2Dstrings%20provide%20a%20way,which%20contains%20expressions%20inside%20braces"&gt;https://www.python.org/dev/peps/pep-0498/#:~:text=F%2Dstrings%20provide%20a%20way,which%20contains%20expressions%20inside%20braces&lt;/a&gt;.&lt;br&gt;
(5)&lt;a href="https://www.geeksforgeeks.org/python-data-types/#:%7E:text=Tuple-,String,is%20represented%20by%20str%20class"&gt;https://www.geeksforgeeks.org/python-data-types/#:~:text=Tuple-,String,is%20represented%20by%20str%20class&lt;/a&gt;.&lt;br&gt;
(6)&lt;a href="https://www.w3schools.com/python/python_datatypes.asp"&gt;https://www.w3schools.com/python/python_datatypes.asp&lt;/a&gt;&lt;br&gt;
(7)&lt;a href="https://www.w3schools.com/js/js_numbers.asp#:%7E:text=Unlike%20many%20other%20programming%20languages,the%20international%20IEEE%20754%20standard"&gt;https://www.w3schools.com/js/js_numbers.asp#:~:text=Unlike%20many%20other%20programming%20languages,the%20international%20IEEE%20754%20standard&lt;/a&gt;.&lt;br&gt;
(8)&lt;a href="https://stackoverflow.com/questions/6563058/how-do-i-use-accurate-float-arithmetic-in-python#:%7E:text=Floating%20point%20arithmetic%20is%20by,as%20another%2C%20more%20general%20article"&gt;https://stackoverflow.com/questions/6563058/how-do-i-use-accurate-float-arithmetic-in-python#:~:text=Floating%20point%20arithmetic%20is%20by,as%20another%2C%20more%20general%20article&lt;/a&gt;.&lt;br&gt;
(9)&lt;a href="https://stackoverflow.com/questions/11522933/is-floating-point-arbitrary-precision-available"&gt;https://stackoverflow.com/questions/11522933/is-floating-point-arbitrary-precision-available&lt;/a&gt;&lt;br&gt;
(10)&lt;a href="https://www.freecodecamp.org/news/truthy-and-falsy-values-in-python/#:%7E:text=Truthy%20values%20are%20values%20that,type%2C%20None%20%2C%20and%20False%20"&gt;https://www.freecodecamp.org/news/truthy-and-falsy-values-in-python/#:~:text=Truthy%20values%20are%20values%20that,type%2C%20None%20%2C%20and%20False%20&lt;/a&gt;.&lt;br&gt;
(11)&lt;a href="https://en.wikipedia.org/wiki/George_Boole#Symbolic_logic"&gt;https://en.wikipedia.org/wiki/George_Boole#Symbolic_logic&lt;/a&gt;&lt;br&gt;
(12)&lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Parameter"&gt;https://developer.mozilla.org/en-US/docs/Glossary/Parameter&lt;/a&gt;&lt;br&gt;
(13)&lt;a href="https://www.hackerearth.com/practice/python/working-with-data/expressions/tutorial/#:%7E:text=Python%20Expressions%3A,of%20the%20string%20as%20well"&gt;https://www.hackerearth.com/practice/python/working-with-data/expressions/tutorial/#:~:text=Python%20Expressions%3A,of%20the%20string%20as%20well&lt;/a&gt;.&lt;br&gt;
(14)&lt;a href="https://data-flair.training/blogs/identifiers-in-python/"&gt;https://data-flair.training/blogs/identifiers-in-python/&lt;/a&gt;&lt;br&gt;
(15)&lt;a href="https://www.programiz.com/python-programming/keywords-identifier"&gt;https://www.programiz.com/python-programming/keywords-identifier&lt;/a&gt;&lt;br&gt;
(16)&lt;a href="http://net-informations.com/python/iq/literals.htm"&gt;http://net-informations.com/python/iq/literals.htm&lt;/a&gt;&lt;br&gt;
(17)&lt;a href="https://www.tutorialsteacher.com/python/string-isascii"&gt;https://www.tutorialsteacher.com/python/string-isascii&lt;/a&gt;&lt;br&gt;
(18)&lt;a href="https://www.ascii-code.com/"&gt;https://www.ascii-code.com/&lt;/a&gt;&lt;br&gt;
(19)&lt;a href="https://www.programiz.com/python-programming/methods/built-in/bool"&gt;https://www.programiz.com/python-programming/methods/built-in/bool&lt;/a&gt;&lt;br&gt;
(20)&lt;a href="https://www.freecodecamp.org/news/truthy-and-falsy-values-in-python/#:%7E:text=Truthy%20values%20are%20values%20that,type%2C%20None%20%2C%20and%20False%20"&gt;https://www.freecodecamp.org/news/truthy-and-falsy-values-in-python/#:~:text=Truthy%20values%20are%20values%20that,type%2C%20None%20%2C%20and%20False%20&lt;/a&gt;.&lt;br&gt;
(21)&lt;a href="https://www.brainyquote.com/quotes/mark_twain_137872"&gt;https://www.brainyquote.com/quotes/mark_twain_137872&lt;/a&gt;&lt;br&gt;
(22)&lt;a href="https://datalya.com/blog/python-data-science/difference-between-primitive-and-non-primitive-data-types"&gt;https://datalya.com/blog/python-data-science/difference-between-primitive-and-non-primitive-data-types&lt;/a&gt;&lt;br&gt;
(23)&lt;a href="https://docs.python.org/3/library/stdtypes.html#:%7E:text=There%20are%20three%20basic%20sequence,%2C%20tuples%2C%20and%20range%20objects"&gt;https://docs.python.org/3/library/stdtypes.html#:~:text=There%20are%20three%20basic%20sequence,%2C%20tuples%2C%20and%20range%20objects&lt;/a&gt;.&lt;br&gt;
(24)&lt;a href="https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/SequenceTypes.html"&gt;https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/SequenceTypes.html&lt;/a&gt;&lt;br&gt;
(25)&lt;a href="https://www.w3schools.com/python/python_lists.asp"&gt;https://www.w3schools.com/python/python_lists.asp&lt;/a&gt;&lt;br&gt;
(26)&lt;a href="https://stackoverflow.com/questions/11387752/am-i-safe-mixing-types-in-a-python-list"&gt;https://stackoverflow.com/questions/11387752/am-i-safe-mixing-types-in-a-python-list&lt;/a&gt;&lt;br&gt;
(27)&lt;a href="https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/Iterables.html#:%7E:text=An%20iterable%20is%20any%20Python,over%20in%20a%20for%2Dloop"&gt;https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/Iterables.html#:~:text=An%20iterable%20is%20any%20Python,over%20in%20a%20for%2Dloop&lt;/a&gt;.&lt;br&gt;
(28)&lt;a href="https://ntgard.medium.com/tuples-in-javascript-cd33321e5277"&gt;https://ntgard.medium.com/tuples-in-javascript-cd33321e5277&lt;/a&gt;&lt;br&gt;
(29)&lt;a href="https://www.youtube.com/watch?v=NI26dqhs2Rk"&gt;https://www.youtube.com/watch?v=NI26dqhs2Rk&lt;/a&gt;&lt;br&gt;
(30)&lt;a href="https://www.w3schools.com/python/python_sets.asp"&gt;https://www.w3schools.com/python/python_sets.asp&lt;/a&gt;&lt;br&gt;
(31)&lt;a href="https://www.w3schools.com/python/python_tuples.asp"&gt;https://www.w3schools.com/python/python_tuples.asp&lt;/a&gt;&lt;br&gt;
(32)&lt;a href="https://www.w3schools.com/python/python_dictionaries.asp"&gt;https://www.w3schools.com/python/python_dictionaries.asp&lt;/a&gt;&lt;br&gt;
(33)&lt;a href="https://www.google.com/search?q=can+a+dictionary+value+be+any+data+type&amp;amp;rlz=1C1CHBF_enUS922US922&amp;amp;oq=can+a+dictionary+value+be+any+data+type&amp;amp;aqs=chrome..69i57j33i160.7258j0j9&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8"&gt;https://www.google.com/search?q=can+a+dictionary+value+be+any+data+type&amp;amp;rlz=1C1CHBF_enUS922US922&amp;amp;oq=can+a+dictionary+value+be+any+data+type&amp;amp;aqs=chrome..69i57j33i160.7258j0j9&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&lt;/a&gt;&lt;br&gt;
(34)&lt;a href="https://realpython.com/lessons/restrictions-dictionary-keys-and-values/#:%7E:text=Almost%20any%20type%20of%20value,objects%20like%20types%20and%20functions.&amp;amp;text=Second%2C%20a%20dictionary%20key%20must,Boolean%20as%20a%20dictionary%20key"&gt;https://realpython.com/lessons/restrictions-dictionary-keys-and-values/#:~:text=Almost%20any%20type%20of%20value,objects%20like%20types%20and%20functions.&amp;amp;text=Second%2C%20a%20dictionary%20key%20must,Boolean%20as%20a%20dictionary%20key&lt;/a&gt;.&lt;br&gt;
(35)&lt;a href="https://towardsdatascience.com/https-towardsdatascience-com-python-basics-mutable-vs-immutable-objects-829a0cb1530a"&gt;https://towardsdatascience.com/https-towardsdatascience-com-python-basics-mutable-vs-immutable-objects-829a0cb1530a&lt;/a&gt;&lt;br&gt;
(36)&lt;a href="https://www.coursera.org/learn/learning-how-to-learn"&gt;https://www.coursera.org/learn/learning-how-to-learn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Review: a React Todo App Tutorial                                 </title>
      <dc:creator>Jonathan Hammond</dc:creator>
      <pubDate>Sun, 13 Jun 2021 20:11:38 +0000</pubDate>
      <link>https://forem.com/jonamichahammo/review-a-react-todo-app-tutorial-i52</link>
      <guid>https://forem.com/jonamichahammo/review-a-react-todo-app-tutorial-i52</guid>
      <description>&lt;p&gt;Recently I followed along a &lt;a href="https://www.youtube.com/watch?v=pCA4qpQDZD8"&gt;'Build A Todo App With REACT'&lt;/a&gt; tutorial by Dev Ed on YouTube. I wanted to review and write about what I learned, as this is a new technique I would like to add into my habits.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Note: This review reaches only to the half hour mark. One thing this review process has taught me, is that it is better to start with 15-30 minute videos, rather than a 90-minute video. Highly recommend watching DevEd's tutorial!&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Obligatory Spoiler Alert&lt;/strong&gt; The tutorial was amazing. You create a Todo list. It's not perfectly mobile responsive. Some of the concepts you will learn about by following this tutorial include Component building, Properties (prop) drilling, State managing and storing through the &lt;code&gt;localStorage&lt;/code&gt; object.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you begin?
&lt;/h2&gt;

&lt;p&gt;Ed begins with a simple introduction to the project, explaining that this is  straightforward Todo app in React, which gives you a good grasp on how to make future projects in React as well. He also adds a quick aside about his health, which overall I enjoyed for one particular reason (other than that he is focusing on his health!). You will notice early on that Ed is a very friendly and humorous content creator. If this style is your cup of tea, then I think you will have a lot of fun learning through his content.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One plus about this video is that he installs react in the beginning, so if you are new to coding in some way, don't be afraid.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After your &lt;code&gt;react app&lt;/code&gt; is created, you will delete several unnecessary files, and run the app with &lt;code&gt;npm start&lt;/code&gt; as your first test.&lt;/p&gt;

&lt;p&gt;One of the first items that are covered is the usage of &lt;code&gt;className&lt;/code&gt; while writing JSX code. The reason for this is that, while you are basically writing what looks like HTML, you are still writing this in JavaScript, and as you may already know, the &lt;code&gt;class&lt;/code&gt; keyword is a reserved keyword, but worry not. If you forget and you define an HTML attribute with class on accident, the app will let you know shortly afterwards.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Quick Aside - Past Code Required
&lt;/h3&gt;

&lt;p&gt;Ed references a previously made project of the same app except in vanilla JavaScript, which you can find &lt;a href="https://github.com/developedbyed/vanilla-todo"&gt;here&lt;/a&gt;. You won't be covering custom CSS much at all in this project, so this is where you will be getting a lot of the content to copy over.&lt;/p&gt;

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

&lt;p&gt;The components covered in this tutorial are named &lt;code&gt;&amp;lt;Form&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;TodoList&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;Todo&amp;gt;&lt;/code&gt;. The Form component is essentially an input element, a dropdown option menu, and a submit button.&lt;/p&gt;

&lt;h3&gt;
  
  
  Form
&lt;/h3&gt;

&lt;p&gt;You begin by importing React. You have the option of creating components through the function keyword, but the author chooses to go with arrow function syntax. This makes sense, because it is 2021, React came out in 2013, and ES6 syntax (such as arrow functions) came out in 2015. But if you prefer to go with the function keyword, both should work.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Quick Aside - Using &lt;code&gt;return&lt;/code&gt; in JSX
&lt;/h3&gt;

&lt;p&gt;It took me a few projects to remember that parentheses are used in JSX to return multi-line JSX code. I believe this is because JavaScript doesn't support functions that return multiple values, though you can wrap multiple values into an array or an object and return that. I think that is what is going on with return ( ), but I am not 100% sure. You can read more about this &lt;a href="https://scotch.io/starters/react/returning-jsx"&gt;here&lt;/a&gt; and &lt;a href="https://www.javascripttutorial.net/javascript-return-multiple-values/"&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating your component, you will follow up the function with &lt;code&gt;export default [component name]&lt;/code&gt; and import the item within your App.js file.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;best practice&lt;/em&gt; that seems apparent is to name your component after your file name. Here is when TodoList is first created, but there was not enough time spent on it for me to write about it yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  React
&lt;/h2&gt;

&lt;p&gt;Ed describes how the React library works with data, and how you will be telling your App "what to do."&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Based on that data, the application is going to react. The whole goal is to get our Todos, is to get any inputs or whatever that we're using on our web app, and get them into state ... Once it's in state, your UI is going to automatically react to all the changes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  A Quick Aside - State
&lt;/h3&gt;

&lt;p&gt;Simplilearn has a great short video on what State is in ReactJS and can be viewed &lt;a href="https://www.youtube.com/watch?v=DPdc5Z-Tf4U"&gt;here&lt;/a&gt;. In a nutshell, State "is an object that stores the values of properties belonging to a component that could change over a period of time." These changes are generally updated by event handlers. They can change the data they hold over time, and store the data that has to be rendered to view. Dev Ed also has an entire hour-long video (in a playlist!) on React State and Props that can be found &lt;a href="https://www.youtube.com/watch?v=dMH1_YtUTSQ"&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  useState
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;useState&lt;/code&gt; is a React hook that lets you &lt;a href="https://daveceddia.com/usestate-hook-examples/"&gt;add state to function components.&lt;/a&gt;. What is a hook? According to &lt;a href="https://reactjs.org/docs/hooks-state.html"&gt;React documentation:&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Hook is a special function that lets you "hook into" React features.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The &lt;code&gt;useState&lt;/code&gt; hook is called directly inside a component. Calling it declares a state variable, which can be named basically anything. This variable preserves some values between function calls. It is basically a newer version of &lt;code&gt;this.state&lt;/code&gt;, if you have ever initialized state in React by using class components. The only argument passed to this hook is the initial state, such as an empty string or array, or even a default dropdown option value (as we see in this tutorial with &lt;code&gt;value="all"&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  App.js - Coding a text &lt;em&gt;state&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;[a, b]&lt;/code&gt; pattern consists of an actual value, followed by a function that allows you to change this value. For example, this is how Ed declares a constant &lt;code&gt;useState&lt;/code&gt; hook of an empty string:&lt;br&gt;
&lt;code&gt;const [inputText, setInputText] = useState("");&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Within our App.js file component (&lt;code&gt;App()&lt;/code&gt;), we return multi-line JSX including some basic HTML, as well as our components &lt;code&gt;&amp;lt;Form&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;TodoList&amp;gt;&lt;/code&gt;. Within our Form component, we pass our &lt;code&gt;inputText&lt;/code&gt; and &lt;code&gt;setInputText&lt;/code&gt; state as properties. I was able to better understand this by reading this great article (~10-minute read) &lt;a href="https://www.pluralsight.com/guides/how-to-send-state-of-current-component-as-a-parameter-to-another-external-method-using-react"&gt;on PluralSight.&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Form.js - Creating &lt;code&gt;inputTextHandler&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Ed next shows us how to "arrive to this position" (in reference to our text state in the App.js file). So, we write a function that updates a piece of state within our Form component. He creates functions with the suffix &lt;code&gt;Handler&lt;/code&gt; so we know what they do. This one, &lt;code&gt;inputTextHandler&lt;/code&gt;, takes one argument as a parameter - the event. To &lt;code&gt;console.log&lt;/code&gt; our event as a test, Ed adds an &lt;code&gt;onChange&lt;/code&gt; event listener to our &lt;code&gt;&amp;lt;input/&amp;gt;&lt;/code&gt; element like so:&lt;br&gt;
&lt;code&gt;&amp;lt;input onChange={inputTextHandler}&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Each time our input changes, this function is being ran. The event tells [us] information about what just happened on this input.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Console logging &lt;code&gt;e.target&lt;/code&gt; gives us the input element itself, and logging &lt;code&gt;e.target.value&lt;/code&gt; prints out exactly what we we enter into the input box, nothing more and nothing less. Great success!&lt;/p&gt;

&lt;p&gt;Next, what we do is change the aforementioned state's &lt;code&gt;value&lt;/code&gt;. &lt;/p&gt;
&lt;h2&gt;
  
  
  App.js - Passing down &lt;code&gt;setInputText()&lt;/code&gt; as a prop
&lt;/h2&gt;

&lt;p&gt;This will be the function that updates the input text. As Ed says, the &lt;code&gt;inputText&lt;/code&gt; value will be like "our data/variable that we want to inject". We are then able to access these items by heading back into the Form.js file and passing props as a parameter into our Form component like as you see below:&lt;br&gt;
&lt;code&gt;const Form = (props) =&amp;gt; { ... }&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  A Quick Aside - Destructuring props
&lt;/h3&gt;

&lt;p&gt;Destructuring Props is a simple concept, but it takes some time getting used to. Overall this makes our code more readable and clear, especially when passing down props in React. More on this can be read &lt;a href="https://medium.com/@lcriswell/destructuring-props-in-react-b1c295005ce0"&gt;here in a very straightforward Medium article!&lt;/a&gt;. Doing this in our Form component allows us to write code that looks more like this:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const Form = ({ setInputText }) =&amp;gt; {&lt;br&gt;
  setInputText(e.target.value); &lt;br&gt;
}&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Having state in App.js allows us to use it anywhere in our application. Per Ed,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every piece of state that you have, data and React automatically updates to everything (as long as you use it in different places), ... and renders it out for us.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  A Quick Aside - React Developer Tools
&lt;/h3&gt;

&lt;p&gt;This is a great Chrome extension for the ReactJS library, which allows you to inspect the React component hierarchies in the Chrome Developer Tools. &lt;a href="https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en"&gt;More information on this can be found here!&lt;/a&gt; This is great for seeing our state and props, just by hovering of them in DevTools. This includes other data such as hooks!&lt;/p&gt;

&lt;h2&gt;
  
  
  App.js - Coding a todos &lt;em&gt;state&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;As implied, this state will be for coding our Todos. Since we will be storing an array of objects (a collection/list of items), Ed instructs us to use an empty array in our hook:&lt;br&gt;
&lt;code&gt;const [todos, setTodos] = useState([]);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The next goal is to submit data and create an object when we do so. &lt;/p&gt;

&lt;h2&gt;
  
  
  Form.js - Creating &lt;code&gt;submitTodoHandler&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This function also takes an event argument as a parameter. We begin this function by tackling the issue of the browser window refreshing each time the submit-type &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; is clicked, which is a natural out-of-the-box behavior. Fixing this is super easy:&lt;br&gt;
&lt;code&gt;e.preventDefault();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;However, the page refreshing will not be prevented until we add the event handler function via JSX into our &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; attributes:&lt;br&gt;
&lt;code&gt;&amp;lt;button onClick={submitTodoHandler}&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A Quick Aside - JSX
&lt;/h3&gt;

&lt;p&gt;JavaScript XML (JSX) syntax is an extension to the JavaScript language syntax. Their tags have a name, attributes, and children. It transpiles to pure JS. It uses camelCase as a property naming convention, hence such attributes as &lt;code&gt;onClick&lt;/code&gt; and &lt;code&gt;className&lt;/code&gt;. An example of this information can be viewed &lt;a href="https://www.youtube.com/watch?v=7fPXI_MnBOY&amp;amp;t=5s"&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Understanding this syntax will help out a lot, in case you run into any confusion during this tutorial. What we are doing above is passing our event handler function &lt;code&gt;submitTodoHandler&lt;/code&gt; without the parentheses into our component. I could be mistaken, but based off Googling I believe we are binding our function to the component, so that our context remains the same even though we are passing our function from one object to another, and are doing so from JavaScript syntax to JSX syntax. Our event handlers are passed as properties.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By default you can't access properties, state and component methods like setState from event handlers. To do so, you need to bind them explicitly. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I could be wrong about my interpretation of this. However, the reason why I brought this up is so you, the reader, spent some time understanding that if your event handler is not passed into wherever you use it, it won't work simply by declaring the function above the return value. More information on what I've read can be found &lt;a href="https://reactkungfu.com/2015/07/why-and-how-to-bind-methods-in-your-react-component-classes/"&gt;here, albeit a little outdated&lt;/a&gt;, and here in the &lt;a href="https://reactjs.org/docs/faq-functions.html"&gt;React documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Abrupt Conclusion
&lt;/h2&gt;

&lt;p&gt;Sorry&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Coding into Nihilism</title>
      <dc:creator>Jonathan Hammond</dc:creator>
      <pubDate>Sun, 14 Jul 2019 19:52:21 +0000</pubDate>
      <link>https://forem.com/jonamichahammo/coding-into-nihilism-2im3</link>
      <guid>https://forem.com/jonamichahammo/coding-into-nihilism-2im3</guid>
      <description>&lt;p&gt;This is my first post... and go figure, it's a rant!&lt;/p&gt;

&lt;p&gt;I first took interest with "coding" in 2017. I decided that Data Science looked cool, and so I wanted to learn it. Turns out, I didn't learn it easily, especially when I had to teach myself.&lt;/p&gt;

&lt;p&gt;Not long after did I stumble upon Python, confusing references to Statistics, sexy words like Machine Learning, Artificial Intelligence, etc. I went from wanting to become a data scientist to being intimidated by how to make a loop.&lt;/p&gt;

&lt;p&gt;Nonetheless, I did at least &lt;em&gt;try&lt;/em&gt;. I created a program with Python that received input and did a calculation in the background (Just imagine a Daily Caloric Intake Calculator). When 2017 ended, I was a little in the hole due to money I spent on computer devices, books, tutorials, and a lot of cafe hours. I had close to nothing to show for all my efforts.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;In 2018, I started off with the low-hanging fruit of programming languages: HTML. &lt;/p&gt;

&lt;p&gt;I know it's not a programming language, I just wanted to troll you!&lt;/p&gt;

&lt;p&gt;Learning Markup was relatively easy (save for what goes on within the head, which partially lead me to SEO and some irrelevant tags), but one thing I noticed was that online resources for HTML 5 and CSS 3 aren't so clear cut, even when they're on a beautiful and perfect website.&lt;/p&gt;

&lt;p&gt;HTML 5 has new elements that not everybody uses, which makes it hard to learn what I would compare to the restaurant industry as "mis-en-place" best practices. You begin to do it one way, and the next tutorial dismantles everything you thought was important about header/nav/main/section etc.&lt;/p&gt;

&lt;p&gt;CSS has taken me down the most annoying of rabbit holes. First it led me to question whether I wanted to be a developer or a designer. Then it forced me to learn some design despite having decided to become a developer (SVG! Make a logo! Make that photo look exactly how you want it to! Don't give that margin, give THAT margin!).&lt;/p&gt;

&lt;p&gt;I am beginning to feel like online tutorials are almost similar to the scammy bootcamps we sometimes hear about. But I am just not one of many who have become competent at coding through these tutorials.&lt;/p&gt;

&lt;p&gt;Once CSS led me to Sass and Less and variables that almost made it seem like a programming language, I lost my $h!t. It's like wanting to take up kickboxing to lose weight and tone up the belly, only to spend months watching famous kickboxers and learning the history of a kick before ever really putting a combination together. Well, that isn't a good analogy, because it just wouldn't take that long. I've just gotten lost in the actions of searching, finding, wondering, asking, seeing, repeating, doing, and repeat. I have been more confused than anything, and don't feel  the more intelligent because of it all.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;I've only learned JavaScript in small portions: Codecademy, mmtuts on YouTube, and I'm going to get into it more now on Scrimba and some more YouTube videos.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;I still don't understand basic things like the DOM,or how to position every element I want as easily as you might on, say, Square Space. It seems like, as soon as I begin to understand a media query, there's just another 100 properties and values and mystery selectors that are required for perfectly responsive web design.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;It stresses me out, because up until losing my job a few weeks ago (internship for an IT place ended), I had been coding after work hours and on the weekends. It appears that my patience and tendency to get upset and frustrated don't correlate well with the length of tutorials (such as Free Code Camp) or my ability to retain information. I've learned so much, yet when I see the entry level job description, I just get depressed and intimidated. How long until I learn Web pack? AJAX? JSON? Vue.js? Angular.js?&lt;/p&gt;

&lt;p&gt;I've heard time and time again the running joke that HR writes the job board description and expects everything plus the kitchen sink out of an intern.&lt;/p&gt;

&lt;p&gt;Seriously, who writes these things? Am I the only one who feels so hopeless?&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;Anyway, I know it's just me. I know that the documentation found on websites like MDN is there for anybody to find, but personally I get lost in the lines and confused often. Outside of knowing more about what I don't know, I don't know that much. When I find a template it looks pretty, but it's somebody else's template, not mine. When I build my own website, it looks like 1998 called and wants its style back. When a tutorial subtly slips into asyncronous functions, my ability to reason suggests we apply to work at McDonalds.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;Why did I get into this in the first place? Well, I wanted to be able to explain complex things to people in a simple fashion. But it turns out I don't understand complex things. Programming makes me feel stupid. Coding anything makes me feel anxious and uncomfortable, save for the few times I've had fun on HTML. I really wish I could go to school for this, because I am starting to consistently doubt my ability to make it on my own as a SWE.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;In closing, I know why I am failing. How I imagine programming to be, doesn't relate to what it takes to be a programmer. I like the idea of what a programmer does, what it can build, etc. However I don't like reading complex documentation. Furthermore, I hate that other people say it's easy to read, because for them it is. Venturing down this field has led to zero income for me, but more debt and less confidence that I am smart. More worse is that I find it hard to relate to people, because I've mostly only met people who figure it out or fell into the field naturally, or people who want nothing to do with the syntax and concepts altogether.&lt;/p&gt;

&lt;p&gt;A lot of me wants to quit, but a lot of me feels too invested. It's not that I don't want to understand programming, it's just that I don't understand programming. I am not going to quit, but I am going to reach into my vindictive energy and learn to spite others. Every bad tutorial, every bad practice, every over-complicated article, each alien piece of documentation, each developer with a brilliant mind but terrible interpersonal skills, to all the g0d d@mn job board descriptions with their expectations so high that it muddies the water of reality, and to all the employers who don't offer any way to train for your position without already having some high-level knack for software development, get bent.&lt;/p&gt;

&lt;p&gt;After I get my foot in the door, past an internship, once I'm able to work day to day and accomplish projects demanded by my employer, I am going to help the underprivileged people. I am going to make videos of my own, articles of my own, an SWEAR A LOT. I am going to volunteer at bootcamps, the free ones and not the ones that only cater to the audience of middle-class graduates with BS/MS who have the luxury of taking a year or more off.&lt;/p&gt;

&lt;p&gt;I come from an underprivileged background. I grew up through trauma and have had mental health issues. I have participated in sports and competitions such as football and MMA, and have abused alcohol and marijuana and most likely have some degree of brain damage.&lt;/p&gt;

&lt;p&gt;I have my limitations, and many shortcomings, but I refuse failure as my final destination. I believe I can learn under the right settings. I will continue to work under whatever settings I can get until I've practiced enough to know enough languages and softwares, concepts and practices to make it to an interview and pass. I will make it. I will MAKE IT. I will do this on my own until I have a community to truly grow in, and then I will excel exponentially and help so many people who are like me and want to quit on their dreams.&lt;/p&gt;

&lt;p&gt;To those future people I say, hold on. I will be there soon!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>css</category>
      <category>career</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
