<?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: John Rommel P. Octaviano</title>
    <description>The latest articles on DEV Community by John Rommel P. Octaviano (@ctvnjhnrmmlp).</description>
    <link>https://dev.to/ctvnjhnrmmlp</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%2F775281%2F08c40d6b-0d31-4bc5-ab44-2e907f9adf5d.png</url>
      <title>DEV Community: John Rommel P. Octaviano</title>
      <link>https://dev.to/ctvnjhnrmmlp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ctvnjhnrmmlp"/>
    <language>en</language>
    <item>
      <title>Welcoming Everyone to the World of Computer Science</title>
      <dc:creator>John Rommel P. Octaviano</dc:creator>
      <pubDate>Wed, 07 Feb 2024 02:33:14 +0000</pubDate>
      <link>https://dev.to/ctvnjhnrmmlp/welcoming-everyone-to-the-world-of-computer-science-2acp</link>
      <guid>https://dev.to/ctvnjhnrmmlp/welcoming-everyone-to-the-world-of-computer-science-2acp</guid>
      <description>&lt;p&gt;In the vast and ever-evolving realm of computer science, diversity is not just a buzzword; it's a world of innovation, creativity, and progress. Yet, for many, the image of a stereotypical "computer scientist" remains fixed: a solitary person hunched over a keyboard, lost in lines of code, disconnected from the world around them (not having a social life)&lt;/p&gt;

&lt;p&gt;But the reality is far richer and more different than this common portrayal suggests. Computer science is a vibrant tapestry woven from the diverse threads of people from all walks of life regardless of their backgrounds and cultures. From developers to designers, analysts to entrepreneurs, the field thrives on the unique perspectives and experiences each individual brings to the table.&lt;/p&gt;

&lt;p&gt;At its core, computer science is about problem-solving, creativity, and collaboration. It's basically about using the power of technology to address real-world challenges, from healthcare and education to sustainability and social justice. And to truly unlock the full potential of technology, we must ensure that everyone, regardless of race, gender, ethnicity, or socioeconomic status, is belong in this wide universe.&lt;/p&gt;

&lt;p&gt;Creating a more inclusive and welcoming environment in the world of computer science is crucial for making it all possible in a long shot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Educating Everyone&lt;/strong&gt;&lt;br&gt;
Access to quality education is the first step towards this process. We must work to eliminate barriers to entry and provide equal opportunities for learning computer science for everyone, starting from an early age. This means investing and exposing in diverse educational programs, offering scholarships and mentorship opportunities, and fostering a learning culture for the long term.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initiatives and Representation&lt;/strong&gt;&lt;br&gt;
It's essential for individuals from underrepresented group of people to see themselves reflected in the field. By highlighting diverse role models and celebrating their achievements, we can inspire the next generation of beginners and break down stereotypes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safe and Learning Spaces&lt;/strong&gt;&lt;br&gt;
Building inclusive communities where everyone feels valued and respected is essential. This requires actively combating discrimination, harassment, and bias in all its forms as being a hindrance. By fostering a culture of empathy and understanding, we can create environments where everyone feels welcome to contribute their unique ideas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collaboration and Mentorship&lt;/strong&gt;&lt;br&gt;
Mentorship can play a significant role in supporting beginners from different groups and helping them navigate the complexities of this vast field. By catering mentorship programs and creating opportunities for collaboration, we can empower aspiring computer scientists to succeed and thrive in a pace where they are safe and valued.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continued Advocacy and Action&lt;/strong&gt;&lt;br&gt;
Building a more inclusive and equitable computer science community is an ongoing process that requires sustained effort and commitment for the sake of volunteerism. We must continue to advocate for diversity, equity, and inclusion at all levels.&lt;/p&gt;

&lt;p&gt;By welcoming everyone to the world of computer science, we can tap into a wealth of talent, creativity, and innovation. Together, let's build a future where technology truly serves the needs of all people, regardless of who they are or where they come from. Being free for everyone.&lt;/p&gt;

&lt;p&gt;Join us on this journey of discovery, collaboration, and empowerment. Together, we can shape a more inclusive and equitable future for computer science and beyond.&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>beginners</category>
      <category>community</category>
    </item>
    <item>
      <title>Demystifying Programming Fundamentals: Variables, Operators, Control Structures</title>
      <dc:creator>John Rommel P. Octaviano</dc:creator>
      <pubDate>Fri, 04 Nov 2022 12:15:00 +0000</pubDate>
      <link>https://dev.to/ctvnjhnrmmlp/demystifying-programming-fundamentals-variables-operators-control-structures-127h</link>
      <guid>https://dev.to/ctvnjhnrmmlp/demystifying-programming-fundamentals-variables-operators-control-structures-127h</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prologue&lt;/strong&gt;&lt;br&gt;
Foreword&lt;br&gt;
&lt;strong&gt;Variables&lt;/strong&gt;&lt;br&gt;
Constants&lt;br&gt;
Identifiers&lt;br&gt;
Data Types&lt;br&gt;
Simple (Primitive) and Composite (Reference)&lt;br&gt;
&lt;strong&gt;Operators&lt;/strong&gt;&lt;br&gt;
Arithmetic&lt;br&gt;
Logical&lt;br&gt;
Relational&lt;br&gt;
Assignment&lt;br&gt;
Increment/Decrement&lt;br&gt;
&lt;strong&gt;Control Structures&lt;/strong&gt;&lt;br&gt;
Selection&lt;br&gt;
Repetition&lt;br&gt;
&lt;strong&gt;Epilogue&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Prologue
&lt;/h2&gt;

&lt;p&gt;In my experience, I learned that skipping the basics and proceeding all along to the application of certain technologies (such as programming language) to create something that could make sense is hard.&lt;/p&gt;

&lt;p&gt;Missing the basics also could lead to a lack of foundation which is a building block of intermediate to advanced concepts. Sure, learning by doing is great for some people but skipping the starting notions in order to start something out is also an important thing worth looking at.&lt;/p&gt;

&lt;p&gt;In this part, I will talk about the core concepts of programming. That is what are variables alongside their data types, different types of operators in programming, kinds of structures crucial for grouping our source code, and other basics.&lt;/p&gt;

&lt;p&gt;I will share fundamental concepts of programming by making them simple and concise over the hood just to make things more brain-friendly.&lt;/p&gt;

&lt;p&gt;These are the fundamental building blocks that must give emphasized first to everyone who is just getting started on learning how to code. And without further ado, let's get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  Foreword
&lt;/h3&gt;

&lt;p&gt;This material is not a stand-alone reading to learn about the fundamentals of programming as a whole. It is a simplified blog that tackles the basics. It could be used as a primary or secondary reference for learning them but it's not a stand-alone one.&lt;/p&gt;

&lt;p&gt;You could use this with other means of learning such as watching a video, reading other articles, etc. It's good to be supplemented with third-party references. You can also use this to have a quick read about concepts in relatively simplified content.&lt;/p&gt;

&lt;p&gt;If you are just starting out, it really doesn't matter to learn all the internal happenings about specific concepts. What really matters is that we know their use cases and we know at least how their work. It's not necessary to immediately learn their total workings in the background.&lt;/p&gt;

&lt;p&gt;But if you want, you can explore them on your own as there are tons of references on the web to make your hands dirty with it if you want to play with it. After all, we are different types of learners and nothing's wrong with that.&lt;/p&gt;

&lt;p&gt;Studying the fundamentals of programming is also not language-specific. In fact, it is a general concept which means that we can use other programming languages out there when learning it. I suggest you pick those languages that are very popular in the tech industry such as Java, Python, JavaScipt, Rust, Go, etc.&lt;/p&gt;

&lt;p&gt;These languages are well-established ones that also have a bright future on top of them. In regards to their setup and installation to get started on your computer, the web is full of tutorials on these. Feel free to search them out to get your hands dirty in no time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variables
&lt;/h2&gt;

&lt;p&gt;What the heck are these variables and why they are important in programming? Variables in programming and in mathematics are similar. They basically just store a value that could be used for different crucial operations.&lt;/p&gt;

&lt;p&gt;But unlike in mathematics, variables could store not just numbers. They could be characters, series of characters (or called strings in programming), booleans (just only true or false), and any other &lt;em&gt;thing&lt;/em&gt; that could be stored for further operations.&lt;/p&gt;

&lt;p&gt;Variables could also store references to a specific &lt;em&gt;thing&lt;/em&gt; or &lt;em&gt;entity&lt;/em&gt; in programming. Such references mean that variables hold the &lt;em&gt;entity's&lt;/em&gt; information crucial for accessing them. Values are also called &lt;em&gt;literal&lt;/em&gt; or just simply data in some contexts.&lt;/p&gt;

&lt;p&gt;Under the hood, it's also important to note that variable values are stored in the memory of a computer they are running from just like other things in programming.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple variable declarations in Python&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myFullName = "John Rommel Octaviano"  
myMiddleInitial = 'P';  
myAge = 20;  
isHuman = true;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Accessing or reading the values that a variable stored could be used for different operations such as multiplication and division if the said value is a number. The same goes for strings.&lt;/p&gt;

&lt;p&gt;We can do string manipulation (or just basically modification) like converting them to uppercase. Storing values in a variable is one of the often practices that we must fully and properly be utilizing of. Storing and retrieving values should also use moderately.&lt;/p&gt;

&lt;p&gt;In some instances, the usage of variables is not necessary at all. In fact, we can still do some operations to do our aimed task. But variables make these operations much easier by reducing repetitions like duplicating code.&lt;/p&gt;

&lt;p&gt;Variables are also crucial in operations where values need to be stored in order to achieve a specific operation to keep track of something which then the result of it that is stored in that variable and is also to be used for further operations, and so on.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A source code for solving the roots of a quadratic equation that shows the importance of variables in storing values in such small use cases&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double a;  
double b;  
double c;  
double determinant;  
double root1;  
double root2;  

a = 2.3;  
b = 4;  
c = 5.6;  
determinant = b * b - 4 * a * c;  

if (determinant &amp;gt; 0) {  
  root1 = (-b + Math.sqrt(determinant)) / (2 * a);  
  root2 = (-b - Math.sqrt(determinant)) / (2 * a);  
} else if (determinant == 0) {  
  root1 = root2 = -b / (2 * a);  
} else {  
  double real = -b / (2 * a);  
  double imaginary = Math.sqrt(-determinant) / (2 * a);  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Constants
&lt;/h3&gt;

&lt;p&gt;Constants are just special types of variables that cannot be updated or prohibited from changing once we declared them. Since these variables cannot be changed, operators like Assignments and Increment/Decrement will not work, and using them with constants could lead to errors.&lt;/p&gt;

&lt;p&gt;They are only available for reading or accessing their value for specific purposes. It's also just a programming representation of absolute variables in Math like the Pi, Golden ratio, Euler's number, and many more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identifiers
&lt;/h3&gt;

&lt;p&gt;Identifiers are just another term for &lt;em&gt;the name&lt;/em&gt; of something in our code. In programming, most concepts like variables, functions, objects, arrays, and others are needed to become known by putting names.&lt;/p&gt;

&lt;p&gt;Such names that we created are used for their references and specific purposes when we need to interact with them like creating, reading, and updating their values.&lt;/p&gt;

&lt;p&gt;Conventionally, identifiers must become readable like putting a concise name in relation to their value. They must also a valid by following a specific language's official syntax just like not using a reserved keyword.&lt;/p&gt;

&lt;p&gt;I highly suggest that we must check the language syntax for creating identifiers when creating one to avoid errors. Conventions like PascalCase, camelCase, and kebab-case are the most commons to use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Types
&lt;/h3&gt;

&lt;p&gt;Since variables could store values like strings, numbers, and booleans, these variables could also be regulated on what type of data or literal they could store. In static languages like Java &amp;amp; C#, stating data types in variables is highly enforced upon declaration. Not doing so could cause exceptions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using C# that declare variables with data types&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string myFullName = "John Rommel Octaviano";  
char myMiddleInitial = 'P';  
int myAge = 20;  
bool isHuman = true;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On the side of dynamic languages like JavaScript and Python, stating data types are not necessary. The compiler (or basically just an application that converts our code into a series of 0s and 1s that only our CPU understands to execute our desired operations) is not enforcing these kinds of declarations (or basically just creating but not storing anything).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using Python that declare variables without data types&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myFullName = "John Rommel Octaviano"  
myMiddleInitial = 'P'  
myAge = 28  
isHuman = true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Just think of data types like just a marking that states that a particular variable could only accept a value depending on the data type that is stated. Not following these markings by means of not storing a number in a String could cause errors. A protocol must be followed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;int&lt;/strong&gt; - for integers of the whole number&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;float&lt;/strong&gt; - for numbers that have a floating point value&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;double&lt;/strong&gt; - for numbers that have floating point value in which the range or limit of this data type that a variable can accept is much higher than the float&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;long&lt;/strong&gt; - for integers of the whole number in which the range or limit of this data type that a variable can accept is much higher than int&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;char&lt;/strong&gt; - for a single character&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;String&lt;/strong&gt; - for the sequence of characters&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;boolean&lt;/strong&gt; - for values true or false&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using Java that declare variables with data types&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String myFullName = "John Rommel Octaviano";
char myMiddleInitial = 'P';
int myAge = 20;
float myBatteryLevel = 90;
double myTemperature = 35.7;
long myCellCount = 30,000,000,000,000;
boolean isHuman = true;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and many more. These are the common and general types that most programming languages present particularly the strongly-ones. There are also data types for specific entities like arrays (basic storage for values), and many more.&lt;/p&gt;

&lt;p&gt;In fact, we could also create our own types (this is called &lt;em&gt;Generics&lt;/em&gt; in programming, an advanced concept).&lt;/p&gt;

&lt;h4&gt;
  
  
  Simple (Primitive) and Composite (Reference)
&lt;/h4&gt;

&lt;p&gt;Variables have also kinds of their own. It could be simple or composite. A variable could be considered as simple if the data type that is used to create or declare it is using built-in data types. Those are types that are naturally provided by the language itself.&lt;/p&gt;

&lt;p&gt;Simple types are also called &lt;em&gt;primitives&lt;/em&gt; which used primitive data types of a specific language. Basically, they directly stored the actual value. In which, a simple or primitive variable literally represents the actual literal itself.&lt;/p&gt;

&lt;p&gt;Meanwhile, composite ones are basically just the complete opposite. Those are the variables that used created types by the programmer itself. In most languages, we can create our own types. They are also called &lt;em&gt;reference&lt;/em&gt; types.&lt;/p&gt;

&lt;p&gt;Reference variables commonly do not directly store the actual value itself but the &lt;em&gt;reference&lt;/em&gt; or just basically a piece of information of the actual value's location in the memory.&lt;/p&gt;

&lt;p&gt;It's a kind of intermediate topic but as your progress succeeds, you will know more about them and their importance in writing code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Operators
&lt;/h2&gt;

&lt;p&gt;Storing different values and literal is good. But we need to do something about them in order to consume or use them depending on the specific use case that we aim for. Good thing is, just like in Mathematics, there are operators.&lt;/p&gt;

&lt;p&gt;Fundamental operators in mathematics and some programming operators shared concepts between them.&lt;/p&gt;

&lt;p&gt;These are the general operators which are generally common across different PLs (programming languages) out there. Some operators could also mean different in other language syntaxes for unique operations. They are also part of their own unique features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arithmetic
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Addition operator (+)&lt;/strong&gt;&lt;br&gt;
add number types. It could also be used to concatenate (or just basically just combine) non-string types to string types in most languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subtraction operator (Subtract) (-)&lt;/strong&gt;&lt;br&gt;
subtract number types. It could also use to indicate negative numerical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiplication operator (*)&lt;/strong&gt;&lt;br&gt;
multiply number types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Division operator (/)&lt;/strong&gt;&lt;br&gt;
divide number types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modulo operator (%)&lt;/strong&gt;&lt;br&gt;
it computes the remainder of the number types.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using JavaScript that perform different basic computations and store their values on different variables&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numOne = 23;  
let numTwo = 24;  
let sum;  
let difference;  
let product;  
let quotient;  
let remainder;  

sum = numOne + numTwo; // 47
difference = numOne - numTwo; // -1
product = numOne * numTwo; // 552
quotient = numOne / numTwo; // 0.95833333333
remainder = numOne % numTwo; // 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Logical
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AND (&amp;amp;&amp;amp;)&lt;/strong&gt;&lt;br&gt;
returns true if both the &lt;em&gt;conditions&lt;/em&gt; on the left and right are true&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OR (||)&lt;/strong&gt;&lt;br&gt;
returns true if at least one &lt;em&gt;condition&lt;/em&gt; on either left or right is true&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOT (!)&lt;/strong&gt;&lt;br&gt;
flips the boolean value of a &lt;em&gt;condition&lt;/em&gt; or a value&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using Java that perform different basic operations by using logical operators between 2 boolean values and printing their results&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;boolean booleanOne = true;  
boolean booleanTwo = false;  

System.out.println(booleanOne &amp;amp;&amp;amp; booleanTwo); // false  
System.out.println(booleanOne || booleanTwo); // true  
System.out.println(!booleanOne); // false  
System.out.println(!booleanTwo); // true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Relational
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Equals to (==)&lt;/strong&gt;&lt;br&gt;
returns true if both &lt;em&gt;condition&lt;/em&gt; or value are equal&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not equals to (!=)&lt;/strong&gt;&lt;br&gt;
returns true if both &lt;em&gt;condition&lt;/em&gt; or value are not equal&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greater than (&amp;gt;)&lt;/strong&gt;&lt;br&gt;
returns true if the value on the left is bigger than the right&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less than (&amp;lt;)&lt;/strong&gt;&lt;br&gt;
returns true if the value on the left is smaller than the right&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greater than or equal to (&amp;gt;=)&lt;/strong&gt;&lt;br&gt;
returns true if the value on the left is bigger than or equal to the right&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less than or equal to (&amp;lt;=)&lt;/strong&gt;&lt;br&gt;
returns true if the value on the left is smaller than or equal to the right&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using Python that perform different basic comparisons of numbers by using relational operators between integer numbers and printing their results&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;numOne = 56
numTwo = 33

print(numOne &amp;gt; numTwo) # True
print(numOne != numTwo) # True
print(numOne &amp;gt; numTwo) # True
print(numOne &amp;lt; numTwo) # False
print(numOne &amp;gt;= numTwo) # True
print(numOne &amp;lt;= numTwo) # False
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Assignment
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Assignment (=)&lt;/strong&gt;&lt;br&gt;
assigns the value of the right variable to the left variable&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add and assign (+=)&lt;/strong&gt;&lt;br&gt;
increase by adding the value of the left variable from the right variable&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subtract and assign (-=)&lt;/strong&gt;&lt;br&gt;
decrease by adding the value of the left variable from the right variable&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiply and assign (*=)&lt;/strong&gt;&lt;br&gt;
increase by multiplying the value of the left variable by the right variable&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Divide and assign (/=)&lt;/strong&gt;&lt;br&gt;
decrease by dividing the value of the left variable from the right variable&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using C++ that perform different basic comparisons of a number by using assignment operators and printing its final result&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int numOne = 28;

numOne += 5; // 33
numOne -= 4; // 29
numOne *= 7; // 203
numOne /= 2; // 101

cout &amp;lt;&amp;lt; numOne; // 101
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Increment/Decrement
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Post-increment (x++)&lt;/strong&gt;&lt;br&gt;
increase the value of the variable by 1 after using the value&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-increment (++x)&lt;/strong&gt;&lt;br&gt;
increase the value of the variable by 1 before using the value&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Post-decrement (x--)&lt;/strong&gt;&lt;br&gt;
decrease the value of the variable by 1 after using the value&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-increment (--x)&lt;/strong&gt;&lt;br&gt;
decrease the value of the variable by 1 before using the value&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statements using Java that perform different basic modifications of a number by using increment/decrement operators and printing its final result&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int numOne = 28;

numOne++; // 28
++numOne; // 30
numOne--; // 30
--numOne; // 28

System.out.println(numOne); // 28
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Control Structures
&lt;/h2&gt;

&lt;p&gt;Writing code with operators and variables is relativity good enough for selected operations. But most of the time, we need additional tools to meet certain functionalities that our app needs. We need more tools to perform tasks that can do the heavy lifting for us in meeting our specific needs in code.&lt;/p&gt;

&lt;p&gt;And this is where &lt;em&gt;control structures&lt;/em&gt; in programming came to work. They are crucial and not just optional tools to consider. Just like operators, there are structures that are not present in one language and that is part of learning some adjustments when jumping from one language to another.&lt;/p&gt;

&lt;p&gt;But, the good thing is there are general structures that most languages are common for.&lt;/p&gt;

&lt;h3&gt;
  
  
  Selection
&lt;/h3&gt;

&lt;p&gt;Serves as a &lt;em&gt;gate&lt;/em&gt; on what code will be run. Since it's like a &lt;em&gt;gate&lt;/em&gt;, the only way to open them is to have a true &lt;em&gt;key&lt;/em&gt;, literally. Or a condition evaluates to TRUE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single Alternative (if)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Statements will be done or executed when a &lt;em&gt;condition&lt;/em&gt; is met, evaluated, or equal to TRUE. Otherwise, meaning if the condition will become equal to FALSE, then nothing happens.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An if statement checks if the value of a variable is equal to something through a conditional in JavaScript, in which if the checking is true, it will print something, otherwise, nothing happens&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let foo = "foo";  

if(foo === "foo") {  
  console.log("foo!"); // Prints this if true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Double Alternatives (if-else)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Statements will be done or executed when a condition is met, evaluated, or equal to TRUE. Otherwise, meaning if the condition will become equal to FALSE, then the alternative statements will be executed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An if statement checks if the value of a variable is equal to something through a conditional in JavaScript, in which if the checking is true, it will print something, otherwise, it prints something else&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let foo = "foo";  

if(foo === "foo") {  
  console.log("foo!"); // Prints this if true
} else {  
  console.log("bar!"); // Prints this if false instead
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Multiple Alternatives (if-elseif-else)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Statements will be done or executed when a condition is met, evaluated, or equal to TRUE. But, if the condition returns FALSE, succeeding conditions will be checked until a condition is evaluated to TRUE, and statements inside of that will be executed. Finally, if all those succeeding conditions are all evaluated to FALSE, meaning none of them happens, then the statements in the final block will be executed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An if statement checks if the value of a variable is equal to something through a conditional in JavaScript, in which if the checking on the first condition is true, it will print something, otherwise, it will check the next conditions and print something else if true but if all conditions are false, print the last one&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(foo === "bar") {  
  console.log("bar!"); // Prints this if true
} else if(foo === "foobar") {  
  console.log("foobar!"); // Prints this if false instead
} else {  
  console.log("foo!"); // Prints this if everything else is false
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Repetition
&lt;/h3&gt;

&lt;p&gt;Serves as a &lt;em&gt;wheel&lt;/em&gt; that continues to spin or run our code repeatedly. Since it's like a &lt;em&gt;wheel&lt;/em&gt;, the only way to stop them is to have a false &lt;em&gt;handbrake&lt;/em&gt;, literally. Or until a condition returns FALSE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repeat-While (while)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before statements will be run, a condition is first evaluated and if the result is equal to TRUE, code will be run. After the execution, it will back at checking the condition again and it will run again and again until the condition becomes FALSE.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A basic while loop in Java that prints all numbers within the starting and ending range&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int counter = 1;  

while (counter &amp;lt;= 10) {  
  System.out.println(counter);  
  counter++;  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Do-Repeat-While (do-while)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Statements will be run first before checking the condition. After checking and the result was TRUE, it will run again the code and back at checking again. It will run again and again until the condition becomes FALSE. Unlike while loops, do-whiles are expected to run at least once.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A basic do-while loop in Java that prints all numbers within the starting and ending range&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;do {  
  System.out.println(counter);  
  counter++;  
} while(counter &amp;lt;= 10);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Repeat-For (for)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This structure also works under the hood like while loop but they have their own major difference. In for loop, iteration or number of times the code will run is known before the execution while the iteration is not known in a while loop.&lt;/p&gt;

&lt;p&gt;The code in here will run on a known time while the while loop is not. The other differences are most commonly language specific.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A basic for loop in Java that prints all numbers within the starting and ending range&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for(int counter = 1; counter &amp;lt;= 10; counter++) {  
  System.out.println(counter);  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Epilogue
&lt;/h2&gt;

&lt;p&gt;And there you have it. That's some of the different concepts of programming categorized as fundamental. We tackled variables alongside what constants, and identifiers are, alongside data types and their subtypes for basically just storing variables. We also learned more about different operators from arithmetic to increments and decrements to solve create calculations and execute crucial tasks. Lastly, we also talked about different control structures that make our applications much more smarter.&lt;/p&gt;

&lt;p&gt;I hope you learn more about the basics of programming. Now, you have at least basic ideas about some general concepts in relation to programming at least in simple terms. Concepts that are fundamentally crucial in making real-world applications. Feel free to learn more about them as your progress grow. Thank you and see you at the next one.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;Recipes tell you nothing. Learning techniques is the key.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Tom Colicchio&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Demystifying Programming Fundamentals: Languages, Syntax, Statements</title>
      <dc:creator>John Rommel P. Octaviano</dc:creator>
      <pubDate>Thu, 03 Nov 2022 10:06:13 +0000</pubDate>
      <link>https://dev.to/ctvnjhnrmmlp/demystifying-programming-fundamentals-languages-syntax-statements-2ifh</link>
      <guid>https://dev.to/ctvnjhnrmmlp/demystifying-programming-fundamentals-languages-syntax-statements-2ifh</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prologue&lt;/strong&gt;&lt;br&gt;
Foreword&lt;br&gt;
&lt;strong&gt;Language Types&lt;/strong&gt;&lt;br&gt;
Level&lt;br&gt;
Typed&lt;br&gt;
&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
Reserved Keywords&lt;br&gt;
&lt;strong&gt;Statements and Expressions&lt;/strong&gt;&lt;br&gt;
Blocks&lt;br&gt;
Conditions&lt;br&gt;
Comments&lt;br&gt;
&lt;strong&gt;Epilogue&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Prologue
&lt;/h2&gt;

&lt;p&gt;Learning how to code properly is a vital means of grasping at least the basic fundamentals of programming. Programming is hard especially when the learning habits and experience are also bad. One's journey makes it harder which leads to different issues in making our own source code.&lt;/p&gt;

&lt;p&gt;Changing the way we do programming also involves a proper learning habit that we should enforce and adapt.&lt;/p&gt;

&lt;p&gt;In this part, I will talk about the different types of programming languages alongside syntax with reserved keywords, and statements. I will tackle each one of the general and high-level concepts which are also mainly present in most programming languages out there.&lt;/p&gt;

&lt;p&gt;Learning these concepts makes programming easier as they are fundamentally attached altogether to solving problems by making applications to create solutions. Learning every single one of them could also lead to an easier learning experience in multiple programming languages out there. One of the ways in order to make programming easier to study is to make our hands dirty which, sadly, some people are missing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Foreword
&lt;/h3&gt;

&lt;p&gt;This material is not a stand-alone reading to learn about the fundamentals of programming as a whole. It is a simplified blog that tackles the basics. It could be used as a primary or secondary reference for learning them but it's not a stand-alone one.&lt;/p&gt;

&lt;p&gt;You could use this with other means of learning such as watching a video, reading other articles, etc. It's good to be supplemented with third-party references. You can also use this to have a quick read about concepts in relatively simplified content.&lt;/p&gt;

&lt;p&gt;If you are just starting out, it really doesn't matter to learn all the internal happenings about specific concepts. What really matters is that we know their use cases and we know at least how their work. It's not necessary to immediately learn their total workings in the background.&lt;/p&gt;

&lt;p&gt;But if you want, you can explore them on your own as there are tons of references on the web to make your hands dirty with it if you want to play with it. After all, we are different types of learners and nothing's wrong with that.&lt;/p&gt;

&lt;p&gt;Studying the fundamentals of programming is also not language-specific. In fact, it is a general concept which means that we can use other programming languages out there when learning it. I suggest you pick those languages that are very popular in the tech industry such as Java, Python, JavaScipt, Rust, Go, etc.&lt;/p&gt;

&lt;p&gt;These languages are well-established ones that also have a bright future on top of them. In regards to their setup and installation to get started on your computer, the web is full of tutorials on these. Feel free to search them out to get your hands dirty in no time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Language Types
&lt;/h2&gt;

&lt;p&gt;Before we proceed to learn the fundamentals, let's talk about types of programming languages and why at least having a basic understanding of their difference could help us understand more about programming.&lt;/p&gt;

&lt;p&gt;There are a lot of programming languages out there and most of them are &lt;em&gt;open-source&lt;/em&gt; meaning they are open for the public for modification and usage.&lt;/p&gt;

&lt;p&gt;Most of them, in terms of structure, are somewhat similar to each other and there's a chance that we will have to interact in not just one language so having basic knowledge about at least basic distinguishable features that they have is worth learning about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Level
&lt;/h3&gt;

&lt;p&gt;In terms of level, languages could be classified as either high or low-level one. What doesn't it mean? Well, the word &lt;em&gt;level&lt;/em&gt; here is not just about the difficulty of the learning curve to get started or its usage of it. It is also not just about its superiority over the low-level ones.&lt;/p&gt;

&lt;p&gt;Levels, in the context of PLs (or programming languages), point to how the &lt;em&gt;syntax&lt;/em&gt;, which I will gonna talk about in a moment, is readable or understandable to human programmers. This means that not all languages are readable to us, at least at first glimpse.&lt;/p&gt;

&lt;p&gt;Also, the levels describe the background operations a language will take to create or to do an operation commanded by us. This also means the levels describe the amount of &lt;em&gt;abstraction&lt;/em&gt; (or basically just means simplicity or complexity) a language provides, generally speaking.&lt;/p&gt;

&lt;p&gt;Both these languages have their own pros and cons and we must consider them into account. Mostly, in terms of levels, they are classified into two: high-level and low-level.&lt;/p&gt;

&lt;h4&gt;
  
  
  High
&lt;/h4&gt;

&lt;p&gt;High-level programming languages are considered &lt;em&gt;high&lt;/em&gt; due to valuable reasons. High-level languages have their code consisting of English words called &lt;em&gt;keywords&lt;/em&gt; which makes them more readable to us and coding with them just like similar to how to write poems - line by line.&lt;/p&gt;

&lt;p&gt;These languages, in terms of their background execution, are much simpler than the low levels.&lt;/p&gt;

&lt;p&gt;With this regard, we can conclude that coding with this type is much simpler and faster. Writing a bunch of solutions is straightforward since the words that need to use are intuitive.&lt;/p&gt;

&lt;p&gt;Generally, it provides a high level of &lt;em&gt;abstraction&lt;/em&gt; which aims to lessen the difficulty of creating solutions through PLs. The code base of these PLs is easy to maintain or sustain, debug, refactor, and many other modifications.&lt;/p&gt;

&lt;p&gt;PLs of this category are independent of the machine that the code is running from and the focus is only to create source code to solve problems without the emphasis on whether the machine will run it or not. Notable examples are Java, C++, C#, JavaScript, Python, Rust, and many more.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statement using Java that displays something on the screen&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String greeting = "Hello, World.";

// Prints "Hello, World."
System.out.println(greeting);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Compilers and interpreters&lt;/strong&gt; are applications that convert our high-level code into a machine or binary code that CPUs only understand to do a specific task based on the instructions that we've made. They are a &lt;em&gt;middleman&lt;/em&gt; whose task is to just translate our code into a series of 0s and 1s. They are specifically crafted in order to do this task to be thrown to our CPU.&lt;/p&gt;

&lt;p&gt;In terms of their difference, &lt;em&gt;interpreters&lt;/em&gt; convert our code into machine code right when our program or application runs also known as &lt;em&gt;runtime&lt;/em&gt; while &lt;em&gt;compilers&lt;/em&gt; translates our code into machine code before our program or application runs also known as &lt;em&gt;compile time&lt;/em&gt;. Interpreters are used by dynamically-typed PLs while the compilers are used by static types which we will talk about in the next part.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Low
&lt;/h4&gt;

&lt;p&gt;Low-level programming languages are considered as &lt;em&gt;low&lt;/em&gt; due to underlying reasons. Aside from these PLs being the first ones who exist in the early days of computers, the syntax of these languages is highly similar to computer commands.&lt;/p&gt;

&lt;p&gt;The background execution of these PLs is also specific and relies on the machine that it is running from which could be simple or complex. &lt;/p&gt;

&lt;p&gt;Coding with this level is relatively much more difficult and somewhat time-consuming due to their early implementations. Creating a source code needs to be clarified carefully because aside from they are not that understandable at first, they are specific to their machine.&lt;/p&gt;

&lt;p&gt;Generally, the level of &lt;em&gt;abstraction&lt;/em&gt; it has are low which makes them albeit complex to use.&lt;/p&gt;

&lt;p&gt;The speed and efficiency are one of its great strengths as they directly communicate to the CPU to execute instantly the created code without making any other additional background executions which also makes them for being memory-efficient.&lt;/p&gt;

&lt;p&gt;They are also highly controllable for maximizing performance to unlock their powerful potential. Notable examples are Assembly, the machine code itself, and others.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statement using Assembly that displays something on the screen&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;org 0x100  

mov dx, msg  
mov cx, len  
mov bx, 1  
mov ah, 0x40  
int 0x21  

mov ah, 0x4c  
int 0x21  

msg db 'Hello, World.', 0x0d, 0x0a  
len equ $ - msg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Typed
&lt;/h3&gt;

&lt;p&gt;Generally, programming languages could classify as being statically or dynamically typed. It also generally refers to the necessity of stating &lt;em&gt;data types&lt;/em&gt;, alongside &lt;em&gt;variables&lt;/em&gt; which we will talk about in a second. Both of these types of languages have their own pros and cons.&lt;/p&gt;

&lt;p&gt;That doesn't mean static languages are strict in terms of syntax doesn't mean they are superior compared to dynamic ones and vice versa.&lt;/p&gt;

&lt;p&gt;After all, programming languages are just part of the numerous tools to create solutions like applications and it's really up to a programmer (us) how to pick a tool or technology like languages to solve problems suitably.&lt;/p&gt;

&lt;h4&gt;
  
  
  Dynamic
&lt;/h4&gt;

&lt;p&gt;Dynamically-typed languages are considered &lt;em&gt;loose&lt;/em&gt; or &lt;em&gt;flexible&lt;/em&gt; because stating data types is not required by their own compilers. This also means that &lt;em&gt;types&lt;/em&gt; are only known or recognized as the program or application is running or in runtime.&lt;/p&gt;

&lt;p&gt;They are made to have the capability of recognizing these types upon execution that skips, ignores, or completely disregards the so-called &lt;em&gt;type-checking&lt;/em&gt; (or basically just a way of a language to check the types and values).&lt;/p&gt;

&lt;p&gt;The PLs of this type promote flexibility and freedom in their code as they allow us to have complete control of the source code that we are writing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statement using C++ that declares variables with data types&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string myFullName = "John Rommel Octaviano";  
char myMiddleInitial = 'P';  
int myAge = 28;  
bool isHuman = true;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Static
&lt;/h4&gt;

&lt;p&gt;Statically-typed languages are considered &lt;em&gt;strong&lt;/em&gt; or &lt;em&gt;strict&lt;/em&gt; because they tend to require us to state data types on pretty much anything that they are required by their own compilers. This also means that those types are known or recognized before the program or application will run or in compile time.&lt;/p&gt;

&lt;p&gt;This is to ensure the correct usage of types in the source code wherever they are needed. They enforce the type-checking and throw errors wherever they encounter inappropriate use-case.&lt;/p&gt;

&lt;p&gt;This makes PLs of this type produce a robust code that has a uniform standard of using types in a relatively appropriate manner.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Simple statement using JavaScript that declares variables without data types&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myFullName = "John Rommel Octaviano";  
let myMiddleInitial = 'P';  
let myAge = 28;  
let isHuman = true;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Syntax
&lt;/h2&gt;

&lt;p&gt;Syntax is defined as &lt;em&gt;the arrangement of words and phrases to create well-formed sentences in a language&lt;/em&gt;. Well, it makes sense because in programming, writing every piece of code must follow the said syntax of a specific language that we code along.&lt;/p&gt;

&lt;p&gt;Not following so mostly will cause exceptions (or basically just another term for errors).&lt;/p&gt;

&lt;p&gt;Generally, most languages have their own implementation or defined rules on how to write code based on its structure or contents implemented by their creators.&lt;/p&gt;

&lt;p&gt;As programmers, one of our jobs is to write code that follows proper syntax in order to do something through that language. Learning the syntax is language-specific and as we learn more concepts of a language that we code from, the more we have exposed to the different syntax that it supports.&lt;/p&gt;

&lt;p&gt;It's progress-based learning you could say.&lt;/p&gt;

&lt;p&gt;We need to also ensure reading language official documentation or by just simply researching online about a particular syntax.&lt;/p&gt;

&lt;p&gt;The good thing though is that when we are using a well-built IDE or code editor, they have the capability of visualizing incorrect syntaxes that we wrote in which could help us to fix them in a much faster and smart manner.&lt;/p&gt;

&lt;p&gt;Generally, the syntax of a particular language is somewhat similar to another one. As we learn more other programming languages, the more we notice that the syntaxes are very similar to each other (at least to most languages that are considered high-level ones).&lt;/p&gt;

&lt;p&gt;Just like for example, the syntax of JavaScript and C# is heavily-inspired by the syntax of C and C++. A concept could also be present in a particular language to others ones.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Different syntaxes for creating just a basic variable for dynamic type and static type languages and sample syntax for creating general structures&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;declaration type&amp;gt; &amp;lt;name&amp;gt; = &amp;lt;value&amp;gt;;  

&amp;lt;data type&amp;gt; &amp;lt;name&amp;gt; = &amp;lt;value&amp;gt;;  

if (condition) {  
    &amp;lt;statements&amp;gt;  
}  

for(&amp;lt;initialization&amp;gt;; &amp;lt;condition&amp;gt;; &amp;lt;initialization modification&amp;gt;) {  
    &amp;lt;statements&amp;gt;  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;h3&gt;
  
  
  Note
&lt;/h3&gt;

&lt;p&gt;Lastly, when learning the fundamentals of programming, it's also important to note that even though the concepts themselves are not particular to a specific language, meaning it is a general concept most likely applied to the majority of PLs, the syntax on the other hand may vary.&lt;/p&gt;

&lt;p&gt;It's important to specifically check the official syntaxes to avoid nasty errors. The web has a very plenty amount of resources so kindly check them out to learn more about a particular language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Reserved Keywords
&lt;/h3&gt;

&lt;p&gt;Most programming languages have their own syntaxes represented through the use of English words like &lt;em&gt;for, do, while, if, else, switch, break, continue&lt;/em&gt;, and many more. These are called &lt;em&gt;reserved keywords&lt;/em&gt; and they are mostly not allowed to be used in user-specific use cases such as naming something, etc.&lt;/p&gt;

&lt;p&gt;They are &lt;em&gt;reserved&lt;/em&gt; and specifically intended for special use cases. Only use them in particular use cases where they are needed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A basic use case that shows that these reserved keywords have unique purposes in a particular language like JavaScript&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let foo = 'Mamba';  
let bar = 'Coco';  

if (foo === bar)  
console.log('They are both equal!');  
else  
console.log('They are not equal!');  

for (let i = 0; i &amp;lt;= 9; i++) {  
console.log(`${foo} &amp;amp; ${bar}!`);  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;h3&gt;
  
  
  Note
&lt;/h3&gt;

&lt;p&gt;One important notion to remember is that doesn't mean a language shared a syntax with another language generally means they are completely similar to each other as a whole. There is still some difference between them such as concepts that are not present in one another.&lt;/p&gt;

&lt;p&gt;They are generally the same but not at all. All language has their own &lt;em&gt;unique features&lt;/em&gt; and we also need to learn those principles in order to grasp them.&lt;/p&gt;

&lt;p&gt;The good thing is once we grasp the general principles just like learning the fundamentals itself, adapting to learn other languages became easier and we only need to adjust to those distinct concepts that are present in them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Statements and Expressions
&lt;/h2&gt;

&lt;p&gt;Statements are just pieces of code that comprehend specific instructions or tasks that we want to accomplish. They're not producing a value on their own, unlike expressions. They are the pieces of code that hold our entire program together and they provide some sort of &lt;em&gt;slots&lt;/em&gt; to be filled by expressions&lt;/p&gt;

&lt;p&gt;Expressions on the other hand produce values. Values whether a product of an operation like adding numbers or just a raw value like a number. They fill the so-called &lt;em&gt;slots&lt;/em&gt; produced by statements.&lt;/p&gt;

&lt;p&gt;They work hand in hand together as part of an entire program or application in order to run. Together, they both formed the big picture of our intended product or solution.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Basic addition operation as an example of the combination of statements and expressions using Java&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int numOne = 43;  
int numTwo = 45;  
int sum = 0;  

sum = numOne + numTwo;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Blocks
&lt;/h3&gt;

&lt;p&gt;They are basically just multiple pieces of statements and expressions grouped or enclosed together, commonly by curly braces to do something. They are just multiple lines of code inside these braces to do tasks. Nothing special. Just a grouped source code and that's what a block or &lt;em&gt;code block&lt;/em&gt; is.&lt;/p&gt;

&lt;p&gt;Forming single lines or multiple lines together forms and isolating them through braces forms it. They are found and used mostly in other programming fundamentals like structures. They are part of their syntax in most PLs.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Basic code that determines if the entered year by the user is a leap year or not using C++&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int year;  

cout &amp;lt;&amp;lt; "Enter a year: ";  
cin &amp;gt;&amp;gt; year;  

if (year % 400 == 0) {  
cout &amp;lt;&amp;lt; year &amp;lt;&amp;lt; " is a leap year.";  
}  
else if (year % 100 == 0) {  
cout &amp;lt;&amp;lt; year &amp;lt;&amp;lt; " is not a leap year.";  
}  
else if (year % 4 == 0) {  
cout &amp;lt;&amp;lt; year &amp;lt;&amp;lt; " is a leap year.";  
}  
else {  
cout &amp;lt;&amp;lt; year &amp;lt;&amp;lt; " is not a leap year.";  
}  

return 0;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Conditions
&lt;/h4&gt;

&lt;p&gt;Conditions in real-life and conditions in programming both work the same way. They are statements that produce expressions that make our computer decide whether they &lt;em&gt;return&lt;/em&gt; only 2 types of values - true or false. Depending on the returned value, succeeding tasks are gonna be executed aligned to them.&lt;/p&gt;

&lt;p&gt;Just think of true or false as &lt;em&gt;yes or no&lt;/em&gt; as responses originated from these conditions. This is a way to make computers create decisions based on specific conditions that we created.&lt;/p&gt;

&lt;p&gt;And through that decisions, they will do intended tasks according to the results of their decision, which are commonly based on either true or false which makes our programs more dynamic and concise.&lt;/p&gt;

&lt;p&gt;Conditions are used in so-called &lt;em&gt;structures&lt;/em&gt;, which is a concept in programming to do more tasks. They are some sort of &lt;em&gt;machine&lt;/em&gt; that creates raw materials to be consumed by other &lt;em&gt;machines&lt;/em&gt; like structures for other intended tasks.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pieces of code to show the use case of conditions&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (foo == bar)...  

while(foo == bar)...  

for(int i = 0; foo &amp;lt;= bar; i++)...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Comments
&lt;/h3&gt;

&lt;p&gt;Comments are just texts whose purpose is to basically describe something in our code. Whether explaining something about the value of a variable or indicating the purpose of something, comments should be used moderately.&lt;/p&gt;

&lt;p&gt;Their sole purpose is to make our source code easier to read and understand to reduce the difficulty of maintaining or modifying them.&lt;/p&gt;

&lt;p&gt;Generally, because of their syntax, they are commonly ignored by compilers or interpreters. We can comment on everything in code like our statements themselves but be mindful of commenting on something to avoid errors.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Code using Python that solves quadratic equations&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Solve the quadratic equation ax**2 + bx + c = 0

# import complex math module
import cmath

a = 1
b = 5
c = 6

# calculate the discriminant
d = (b**2) - (4*a*c)

# find two solutions
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)

# displays the result
print('The solution are {0} and {1}'.format(sol1,sol2))

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Epilogue
&lt;/h2&gt;

&lt;p&gt;And that's it. That's the different types of programming languages alongside what syntax is and reserved keywords. We tackle PL types based on their level which is not basically all about their difficulty. We also tackled their strictness and conciseness as they distinguishable features. Also, we tackled what syntax is and the reserved keywords in a language.&lt;/p&gt;

&lt;p&gt;I hope you learned something from this article. Now, you have at least basic ideas about some general ideas in relation to programming in a nutshell. Underlying concepts that matter not just only when starting out but also in the long run. Hopefully, you grow on this blog and continue to learn about them. Thank you and see you at the next one.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;Change is the end result of all true learning.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Leo Buscaglia&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Assessing Personal Career and Progress</title>
      <dc:creator>John Rommel P. Octaviano</dc:creator>
      <pubDate>Wed, 02 Nov 2022 10:25:00 +0000</pubDate>
      <link>https://dev.to/ctvnjhnrmmlp/assessing-personal-career-and-progress-jch</link>
      <guid>https://dev.to/ctvnjhnrmmlp/assessing-personal-career-and-progress-jch</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prologue&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Ways&lt;/strong&gt;&lt;br&gt;
Taking Notes&lt;br&gt;
Seeking Assistance From Other People&lt;br&gt;
Research&lt;br&gt;
&lt;strong&gt;Epilogue&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Prologue
&lt;/h2&gt;

&lt;p&gt;In my own experience, taking a pause from something that we do in order to keep track of something that is needed some attention is very important especially if we tend to experience a &lt;em&gt;not-so-good&lt;/em&gt; piece of mind.&lt;/p&gt;

&lt;p&gt;But, before we start on technical things and stuff, let's pave the way to considering ourselves first. Let's say hello to ourselves before we proceed on the long journey of Computer Science. Or in the IT field as a whole. Am I good? Can I still do it? Do I need some rest? It's a highly subjective process but you get the idea. Let's assess our personal life first.&lt;/p&gt;

&lt;p&gt;Before we start doing something, let's check ourselves first. Just like checking a car before going on somewhere. The different parts of the car must be safe before traveling, especially if the destination is far away.&lt;/p&gt;

&lt;p&gt;Check mental health. But, take it easy. This is unskippable. Do I need to rest? Am I tired? Do I need someone to enlighten me on this vast field of a profession? What things do I need to consider?&lt;/p&gt;

&lt;p&gt;Giving ourselves time to take a stop and assess our life is a crucial process to help us start some personal directions before starting out or continuing something. Some of us have our own battles and silent wars to fight, which most don't know about. And taking a little time to have a bird's eye view of what's happening in our lives is beneficial most of the time.&lt;/p&gt;

&lt;p&gt;It could give us an idea of where we are lacking. It could give us a fact about what's going on in our life. It also could give us a different perspective on our strengths and weaknesses, ups and downs, improvements and lapses, etc. Different possibilities. Regardless of whether we can accumulate positive or negative after taking this step, it is what it is and that's a win.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ways
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Taking Notes
&lt;/h3&gt;

&lt;p&gt;How can we do it? Well, it depends on our own preferences. I recommend that we try to list our own personal positives and negatives. About the positives, try to analyze what their future is. Do I need to leave them behind? Do I need to pursue it? The same goes for the negatives. Also include the solutions of what should happen to them sometime in the future.&lt;/p&gt;

&lt;p&gt;We can grow in doing this process as we make ourselves up to keep track of important points in our life that we should consider as we are on the way to building our careers. And as time goes by, we must always have room for improvement is very vital especially since our field is aligned with technology.&lt;/p&gt;

&lt;p&gt;Also, taking notes is very crucial because our notes are the &lt;em&gt;extension of our brain&lt;/em&gt; which is one of the important things I learned on my personal coding journey. The truth is, when we train ourselves to take notes over time, it will help us along in our process of learning how to code as a whole. The more we take notes, the more the knowledge could stick better on the back of our heads.&lt;/p&gt;

&lt;p&gt;So, if we want to assess our personal career and progress? Taking notes is one of the best and easiest things to do here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Seeking Assistance From Other People
&lt;/h3&gt;

&lt;p&gt;If we're in a relationship, have a circle of friends, or relatives have a dog that could talk, seeking assistance from them is also important. Why? Because you or we have a different POV about ourselves. More POVs, means more factors to consider and review. More perspective could also mean more possibilities. Who knows?&lt;/p&gt;

&lt;p&gt;We can also ask for help on how to plan and assess our life. The truth is, &lt;em&gt;no man is an island&lt;/em&gt;. Yes, sometimes. So, we must grab the privilege that we have to make up for these things. In this way, we learn how to socialize and communicate better with other people. Which is important in the IT industry as a whole. Communication and socialization are very crucial. Let's normalize these things. Very important in one's career.&lt;/p&gt;

&lt;p&gt;BTW, if we have professional peeps that are known such as personal doctors like Psychiatrists, Software engineers, etc., seeking pieces of advice from them is also helpful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Research
&lt;/h3&gt;

&lt;p&gt;Lastly, research. And research. And research. Just like training to always take notes, we should also train ourselves to always browse the web through a search engine like Google. In fact, Googling is a skill. Solving a particular problem through means of using specific keywords to find a solution is a skill. Let's normalize that. A very crucial skill that could place us in a better place in the long run in our future careers.&lt;/p&gt;

&lt;p&gt;In fact, aside from the other 2, this is also an unskippable part as solving a particular problem involves seeking possible and justifiable solutions just like what we learn from Science.&lt;/p&gt;

&lt;p&gt;Now, here's the thing. Researching every aspect that is unknown to us while assessing our life could really help us. Searching other people's stories to build their careers to success, browsing some great testimonials from them, and being inspired by their personal experiences could leverage the assessment of our career.&lt;/p&gt;

&lt;p&gt;Be inspired and motivated by their stories. There are a bunch of successful stories in tech. They also share their personal struggles and how they overcome them. A college dropout before, now a professional software engineer. A former nurse turned data scientist. Engineering major turned mobile developer. There are a bunch of these kinds of stories.&lt;/p&gt;

&lt;p&gt;Also, there are many professional recommendations by professionals. Just kindly check them out. The testimonials from those kinds of people are also different.&lt;/p&gt;

&lt;p&gt;But know the limits. Don't compare ourselves to them. Being inspired and imitating someone are two distinct qualities. Always remember that everyone's journey is totally different from others (even though we always hear this thing every single damn time). Just don't compare ourselves to others. It's one of the root causes of human negativities.&lt;/p&gt;

&lt;p&gt;And yes, you got the idea. Just research all along. Let's use the free privilege that we have. Search engines are free. So, why not?&lt;/p&gt;

&lt;h2&gt;
  
  
  Epilogue
&lt;/h2&gt;

&lt;p&gt;And that's it. Assessing our life is crucial as we start and build careers in tech. Considering also our mental health is a very significant part of this life-long career. Also, we have also tackled the ways how we can do it. Maybe, we have other ways or methodologies which are good. We can just combine it all along. It is somewhat highly subjective.&lt;/p&gt;

&lt;p&gt;I just want to tell everyone that assessing one's personal life should be a priority and unskippable. I also introduced some ways how to do it. We can use these ways and combine them with our own ways. We can just grow in these ways and then as time goes by, it is possible to increase. But for the most part, these are things that are highly suggested which other professional folks could also suggest. These are just things that worked for me.&lt;/p&gt;

&lt;p&gt;Just for the sake of clearing our minds filled with doubts and worries, please, take time to assess. Take time to reflect. Take time to find out the state of our life at least once. I hope (if not all), these pieces of advice could help and contribute at least a little. To set as motivation and inspiration to continue for the better.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;The biggest room in the world is the room for improvement.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Helmut Schmidt&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>motivation</category>
    </item>
  </channel>
</rss>
