<?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: Sina Nikmaram</title>
    <description>The latest articles on DEV Community by Sina Nikmaram (@sinaprograms).</description>
    <link>https://dev.to/sinaprograms</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F763424%2Fdd0508ba-246a-449f-b5e2-e2d4fce3dd57.jpeg</url>
      <title>DEV Community: Sina Nikmaram</title>
      <link>https://dev.to/sinaprograms</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sinaprograms"/>
    <language>en</language>
    <item>
      <title>OverSimplified: Variables</title>
      <dc:creator>Sina Nikmaram</dc:creator>
      <pubDate>Sun, 28 Nov 2021 21:36:47 +0000</pubDate>
      <link>https://dev.to/sinaprograms/oversimplified-variables-1b5f</link>
      <guid>https://dev.to/sinaprograms/oversimplified-variables-1b5f</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Welcome! In this series, I try to oversimplify CS concepts in an attempt to help us all better understand them. Thanks for your time, enjoy!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What are variables?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Variables are names we assign to storage slots&lt;/strong&gt;&lt;/em&gt; in our computers memory.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KW2egrHF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.unsplash.com/photo-1617510711388-6f88e078d698%3Fixlib%3Drb-1.2.1%26ixid%3DMnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8%26auto%3Dformat%26fit%3Dcrop%26w%3D1740%26q%3D80" alt="Alt Text" width="800" height="533"&gt;
&lt;/li&gt;
&lt;li&gt;In the picture above, imagine each container is a slot of memory in our computer.

&lt;ul&gt;
&lt;li&gt;The food itself is data sitting in a slot of memory.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The labels are variable names we give to that slot of memory.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How do we use variables?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;We use variables to retrieve data sitting in named storage slots
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;num1 = 1900   // Save 1900 in storage and name the slot num1
num2 = 121    // Save 121 in storage and name the slot num2
sum(num1 + num2)   // Add data in storage slots num1 &amp;amp; num2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What are the benefits of using variables?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use simple names to evaluate complex expressions&lt;/li&gt;
&lt;li&gt;Rename any storage slot that's holding data&lt;/li&gt;
&lt;li&gt;Replace the data in any storage slot&lt;/li&gt;
&lt;li&gt;Use a single name for similar values in a list of data&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Descriptive Variable Naming (... and why it's important!)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6rzaGMw4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.pixabay.com/photo/2020/07/22/04/44/salt-5428029_1280.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6rzaGMw4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.pixabay.com/photo/2020/07/22/04/44/salt-5428029_1280.png" alt="Alt Text" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In my second attempt to oversimplify using a food analogy:

&lt;ul&gt;
&lt;li&gt;Sugar and Salt look the same but they taste completely different&lt;/li&gt;
&lt;li&gt;It is important that we put them in properly labeled containers or we might get weird tasting food.&lt;/li&gt;
&lt;li&gt;It is also important that we put data in properly named storage slots or we will get weird expression results / errors.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Inaccurate variable names will confuse other developers and your future self, which could lead to unexpected results &amp;amp; bugs&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;As mundane as variables seem, using them properly is crucial to being a good developer.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  BONUS: Variable Typing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Some &lt;a href="https://dev.to/sinaprograms/oversimplified-programming-languages-3370"&gt;programming languages&lt;/a&gt; require us to explicitly define what data type the variables storage slot will hold.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int num1 = 1900   // Variable that only stores integers
str str1 = "A string"   // Variable that only stores strings
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Typing helps productivity by showing us errors when we use a variable incorrectly (Ex: Adding a boolean variable and an integer variable).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>computerscience</category>
      <category>programming</category>
      <category>variables</category>
    </item>
    <item>
      <title>OverSimplified: Programming Languages</title>
      <dc:creator>Sina Nikmaram</dc:creator>
      <pubDate>Sun, 28 Nov 2021 06:20:44 +0000</pubDate>
      <link>https://dev.to/sinaprograms/oversimplified-programming-languages-3370</link>
      <guid>https://dev.to/sinaprograms/oversimplified-programming-languages-3370</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Welcome! In this series, I try to oversimplify CS concepts in an attempt to help us all better understand them. Thanks for your time, enjoy!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What is a Programming Language?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Programming Languages are tools that provide us with a set of rules and keywords which we can use to communicate with computers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Okay so... how does this help us communicate?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Computers only understand &lt;em&gt;&lt;strong&gt;Binary (1's and 0's)&lt;/strong&gt;&lt;/em&gt; or &lt;em&gt;&lt;strong&gt;Machine Code&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Programming Languages allow us to write code that is legible to us, but can also be &lt;em&gt;&lt;strong&gt;compiled&lt;/strong&gt;&lt;/em&gt; into machine code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/7FrOU9tPbgAZtxV5mb/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/7FrOU9tPbgAZtxV5mb/giphy.gif" alt="Alt Text" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(If you want to take a deep dive into how computers read and execute code I recommend watching &lt;a href="https://www.youtube.com/watch?v=QXjU9qTsYCc"&gt;this video&lt;/a&gt;.)&lt;/p&gt;




&lt;h2&gt;
  
  
  Low-Level vs High-Level Languages
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Lower Level Languages (Assembly, Machine Code, etc...)&lt;/strong&gt;&lt;/em&gt;:

&lt;ul&gt;
&lt;li&gt;Require management of hardware processes&lt;/li&gt;
&lt;li&gt;Harder to read/write&lt;/li&gt;
&lt;li&gt;Quicker to compile/execute&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Higher Level Languages (Python, JS, etc...)&lt;/strong&gt;&lt;/em&gt;:

&lt;ul&gt;
&lt;li&gt;Hide hardware processes from us / abstract them away&lt;/li&gt;
&lt;li&gt;Easier to read/write&lt;/li&gt;
&lt;li&gt;Slower to compile/execute&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Abstraction&lt;/strong&gt;&lt;/em&gt; is a buzzword that refers to the level of control a language requires us to have over hardware processes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Statically Typed vs Dynamically Typed Languages
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Types refer to how a language treats &lt;a href="https://dev.to/sinaprograms/oversimplified-variables-1b5f"&gt;&lt;em&gt;&lt;strong&gt;variables&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Statically typed languages&lt;/strong&gt;&lt;/em&gt;:

&lt;ul&gt;
&lt;li&gt;Define the data types of variables&lt;/li&gt;
&lt;li&gt;Variables can not have a value with a different data type
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int numTen = 10
str greeting = "Hello World"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Dynamically typed languages&lt;/strong&gt;&lt;/em&gt;:

&lt;ul&gt;
&lt;li&gt;Data type of variable = data type of the value&lt;/li&gt;
&lt;li&gt;Allow us to assign and reassign any value to any variable
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;numTen = 10
numTen = "Hello World"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Best Programming Languages to get you employed in 2023
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Entry level&lt;/strong&gt;&lt;/em&gt;:

&lt;ul&gt;
&lt;li&gt;JavaScript (&lt;em&gt;Web Development&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Python (&lt;em&gt;Data Science &amp;amp; A.I.&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Swift (&lt;em&gt;Mobile&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Robotics and Gaming&lt;/strong&gt;&lt;/em&gt;:

&lt;ul&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Blockchain&lt;/strong&gt;&lt;/em&gt;:

&lt;ol&gt;
&lt;li&gt;Solidity&lt;/li&gt;
&lt;li&gt;Rust&lt;/li&gt;
&lt;li&gt;Go&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Enterprise&lt;/strong&gt;&lt;/em&gt;:

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>computerscience</category>
      <category>programming</category>
      <category>concepts</category>
    </item>
  </channel>
</rss>
