<?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: Dolamu</title>
    <description>The latest articles on Forem by Dolamu (@dolamu).</description>
    <link>https://forem.com/dolamu</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%2F365087%2F7a2541e9-b56f-435f-8e97-65d42257d924.jpg</url>
      <title>Forem: Dolamu</title>
      <link>https://forem.com/dolamu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dolamu"/>
    <language>en</language>
    <item>
      <title>How I Manipulate Files on the Command line</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Mon, 08 Nov 2021 00:22:41 +0000</pubDate>
      <link>https://forem.com/dolamu/7-easy-tips-to-manipulate-files-on-the-linux-command-line-2glf</link>
      <guid>https://forem.com/dolamu/7-easy-tips-to-manipulate-files-on-the-linux-command-line-2glf</guid>
      <description>&lt;p&gt;I found the linux command line quite intimidating when I first started learning to code. It seemed to require extensive and comprehensive knowledge and understanding of commands and keyboard shortcuts. However, as I read more about it and practiced what I learned, I realized that it isn't as scary as it seemed; that It only requires a lot of constant practice. I also discovered that others &lt;a href="https://hackernoon.com/linux-survival-guide-for-beginners-c18bfd982036" rel="noopener noreferrer"&gt;feel the same way&lt;/a&gt;, which made me realise that I wasn't alone.&lt;/p&gt;

&lt;p&gt;The other thing I discovered during this period is that we are all beginners and sharing is helpful, since no one is an island. So I decided to &lt;a href="https://dev.to/dolamu/10-linux-commands-every-newbie-should-know-hpj"&gt;share my experience&lt;/a&gt; with others starting out as well. As we all know, learning is never-ending. There will always be new tools and new commands to learn, especially when you're a beginner. The following tips will help you navigate through files and directories on the command line. 👇&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Manipulating Files and Directories&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;to print a string of characters to your screen, use the &lt;code&gt;echo&lt;/code&gt; command by typing 👉 &lt;code&gt;echo &amp;lt;string&amp;gt;&lt;/code&gt; e.g. &lt;code&gt;echo Hello world&lt;/code&gt;. To print without a newline being inserted, use the &lt;code&gt;-n&lt;/code&gt; option as follows; type 👉 &lt;code&gt;echo -n &amp;lt;string&amp;gt;&lt;/code&gt;. To print a string of characters to a file without using a text editor, use the &lt;em&gt;redirect operator&lt;/em&gt; &lt;code&gt;&amp;gt;&lt;/code&gt; by typing 👉 &lt;code&gt;echo "string" &amp;gt; filename&lt;/code&gt; e.g. &lt;code&gt;echo "this prints to file" &amp;gt; index.html&lt;/code&gt;. To add a new string of characters to the next line of same file, use the &lt;em&gt;append operator&lt;/em&gt; &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; and type 👉 &lt;code&gt;echo "string" &amp;gt;&amp;gt; filename&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to dump the contents of a file to your screen, use the &lt;code&gt;cat&lt;/code&gt; command and type 👉 &lt;code&gt;cat &amp;lt;filename&amp;gt;&lt;/code&gt; e.g &lt;code&gt;cat book.txt&lt;/code&gt;. To facilitate the comparison of files that are similar but not identical, use the &lt;code&gt;diff&lt;/code&gt; command, type 👉 &lt;code&gt;diff &amp;lt;filename1&amp;gt; &amp;lt;filename2&amp;gt;&lt;/code&gt;. Note that when there is no difference between two files, &lt;code&gt;diff&lt;/code&gt; simply outputs nothing. To dump the contents of a file (or to combine the contents of multiple files) into a separate one, direct the output of the &lt;code&gt;cat&lt;/code&gt; command to the new file using the redirect &lt;code&gt;&amp;gt;&lt;/code&gt; operator, type 👉 &lt;code&gt;cat filename(s) &amp;gt; newfile&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to abort the current task and regain user-control of the terminal, press 👉 &lt;code&gt;Ctrl-C&lt;/code&gt;. If this command fails, hit the &lt;code&gt;Esc&lt;/code&gt; key. To be able to move quickly within the command line, press 👉 &lt;code&gt;Ctrl-A&lt;/code&gt; to get to the beginning of the line; &lt;code&gt;Ctrl-E&lt;/code&gt; to get to the end of the line and; &lt;code&gt;Ctrl-U&lt;/code&gt; to clear the entire line and start over.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to learn more details about a command, type 👉 &lt;code&gt;man &amp;lt;command name&amp;gt;&lt;/code&gt;  e.g &lt;code&gt;man cat&lt;/code&gt;. Note that &lt;code&gt;man&lt;/code&gt; pages use the same interface as the &lt;code&gt;less&lt;/code&gt; command so you can navigate through both using the same key shortcuts. To open a new terminal tab (or window), press 👉 &lt;code&gt;Ctrl+Shift+T&lt;/code&gt; and &lt;code&gt;Ctrl+Shift+N&lt;/code&gt; respectively. To clear your screen, type 👉 &lt;code&gt;clear&lt;/code&gt; or press 👉 &lt;code&gt;Ctrl-L&lt;/code&gt;. To exit a terminal window (or tab), press 👉 &lt;code&gt;Ctrl-D&lt;/code&gt; or &lt;code&gt;Ctrl+Shift+W&lt;/code&gt; or type 👉 &lt;code&gt;exit&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to run the previous command exactly as written, use the exclamation point &lt;code&gt;!&lt;/code&gt; (pronounced bang) and type &lt;code&gt;!!&lt;/code&gt;. Another way to repeat previous commands is by typing &lt;code&gt;!&lt;/code&gt; followed by a character (or number of characters), which runs the last command that started with those characters. For example, to run the last &lt;code&gt;ls&lt;/code&gt; command issued, type 👉 &lt;code&gt;! l&lt;/code&gt;. Another powerful technique is to press 👉 &lt;code&gt;Ctrl+R&lt;/code&gt;. This allows you to search interactively through your previous commands, and then optionally edit the result before executing.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to create a hard link to a file; use the &lt;code&gt;ln&lt;/code&gt; command by first typing the name of the file you want to link to (i.e the source file), followed by the name of the linked file you want to create (i.e the target) for example 👉 &lt;code&gt;ln letter.doc book.doc&lt;/code&gt;. To force a link &lt;em&gt;(say, to an existing file)&lt;/em&gt; (or to execute a command without having to confirm it) use the &lt;code&gt;-f&lt;/code&gt; flag e.g &lt;code&gt;ln -f letter.doc index.html&lt;/code&gt;. &lt;br&gt;&lt;br&gt;&lt;br&gt;
The default type of link that gets created when using the &lt;code&gt;ln&lt;/code&gt; command is the hard link. Hard links create an identical copy of the linked file on disk, that gets updated automatically as the source file is updated. However, this type of link does not work for directories.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to create a link to a directory, use the &lt;code&gt;-s&lt;/code&gt; flag to create a symbolic link. This flag can also be used for linking to files as well, not just directories for example, &lt;code&gt;ln -s letter.doc index.html&lt;/code&gt;. Symbolic links can also link to files or directories on other file systems. &lt;em&gt;File systems refer to directories and files&lt;/em&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Inspecting Files&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;to open a file or a directory or access a URL, type 👉 &lt;code&gt;xdg-open &amp;lt;filename&amp;gt;/&amp;lt;directory&amp;gt;/&amp;lt;URL&amp;gt;&lt;/code&gt;. To download a file from the internet, use the &lt;code&gt;curl&lt;/code&gt; utility which allows you to interact with URLs at the command line; type 👉 &lt;code&gt;curl -OL &amp;lt;URL&amp;gt;&lt;/code&gt;. To fetch the HTTP header of a site, type 👉 &lt;code&gt;curl -I &amp;lt;URL&amp;gt;&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to view the beginning and end of a file, use the &lt;code&gt;head&lt;/code&gt; and &lt;code&gt;tail&lt;/code&gt; commands by typing 👉 &lt;code&gt;head &amp;lt;filename&amp;gt;&lt;/code&gt; and &lt;code&gt;tail &amp;lt;filename&amp;gt;&lt;/code&gt; respectively. They show the first and last 10 lines of the file, as aplicable. To print the first &lt;em&gt;n&lt;/em&gt; lines of a file (instead of the first 10), type 👉 &lt;code&gt;head -n &amp;lt;number&amp;gt; &amp;lt;filename&amp;gt;&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to count the number of lines in a file, type 👉 &lt;code&gt;wc &amp;lt;filename&amp;gt;&lt;/code&gt;. The output shows three separate figures, indicating the number of lines, words, and bytes in the file. To view a file that is actively changing, type 👉 &lt;code&gt;tail -f &amp;lt;filename&amp;gt;&lt;/code&gt;. This command is mostly executed when monitoring files used to log the activity of web servers for instance, in  a practice known as 'tailing the log file'.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to easily navigate through the contents of a large file, use 👉 the &lt;code&gt;less&lt;/code&gt; command for example type 👉 &lt;code&gt;less &amp;lt;filename&amp;gt;&lt;/code&gt;. While in &lt;code&gt;less&lt;/code&gt; mode; press the &lt;code&gt;spacebar&lt;/code&gt; or &lt;code&gt;Ctrl+F&lt;/code&gt; to move forward a page; the &lt;code&gt;arrow keys&lt;/code&gt; to move one line up or down; &lt;code&gt;Ctrl+B&lt;/code&gt; to move a page up; press 👉 &lt;code&gt;1G&lt;/code&gt; and &lt;code&gt;G&lt;/code&gt; to move to the beginning and end of the file respectively (to go directly to a specific line, type 👉 &lt;code&gt;&amp;lt;linenumber&amp;gt;G&lt;/code&gt;); to search through the file for a string/word, use the forward slash key &lt;code&gt;/&lt;/code&gt;, e.g. type 👉 &lt;code&gt;/&amp;lt;word&amp;gt;&lt;/code&gt;; press 👉 &lt;code&gt;n&lt;/code&gt; to move to the next search result and &lt;code&gt;N&lt;/code&gt; to the previous search result and to quit the &lt;code&gt;less&lt;/code&gt; command, press 👉 &lt;code&gt;q&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to search directly for a word/string in a file, use the &lt;code&gt;grep&lt;/code&gt; command, type 👉 &lt;code&gt;grep &amp;lt;word&amp;gt; &amp;lt;filename&amp;gt;&lt;/code&gt;. To search for a word/string in a file when you aren't sure where the file is, use the &lt;code&gt;-r&lt;/code&gt; flag and type 👉 &lt;code&gt;grep -r &amp;lt;word&amp;gt;&lt;/code&gt;.To perform case-insensitive search using &lt;code&gt;grep&lt;/code&gt; use the &lt;code&gt;-i&lt;/code&gt; flag by typing 👉 &lt;code&gt;grep -i &amp;lt;word&amp;gt; &amp;lt;filename&amp;gt;&lt;/code&gt;. To exclude a word/string from a search term when using &lt;code&gt;grep&lt;/code&gt;, use the &lt;code&gt;-v&lt;/code&gt; option as follows 👉  &lt;code&gt;grep &amp;lt;search term&amp;gt; &amp;lt;filename&amp;gt; | grep -v &amp;lt;word&amp;gt;&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to find the line number(s) in a file where a word appears, type 👉 &lt;code&gt;grep -n &amp;lt;word&amp;gt; &amp;lt;filename&amp;gt;&lt;/code&gt;. To print the first 'n' lines of a search result, pipe to the &lt;code&gt;head&lt;/code&gt; command as follows 👉 &lt;code&gt;grep -i &amp;lt;word&amp;gt; &amp;lt;filename&amp;gt; | head &amp;lt;-n&amp;gt;&lt;/code&gt;.  To count the number of lines containing references to a search term/string, use the pipe &lt;code&gt;|&lt;/code&gt; and word count&lt;code&gt;wc&lt;/code&gt; commands as follows 👉 &lt;code&gt;grep &amp;lt;word&amp;gt; &amp;lt;filename&amp;gt; | wc&lt;/code&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to print the history of commands you have previously executed in your terminal shell, use the &lt;code&gt;history&lt;/code&gt; command and pipe &lt;code&gt;|&lt;/code&gt; it to &lt;code&gt;less&lt;/code&gt; as follows 👉 &lt;code&gt;history | less&lt;/code&gt;. To execute a specific command in your command history, type 👉 &lt;code&gt;!n&lt;/code&gt; where &lt;em&gt;n&lt;/em&gt; represents the command number e.g. the 43rd command in your history. &lt;br&gt;&lt;br&gt;&lt;br&gt;
Lastly, to modify system files or directories and execute tasks as &lt;em&gt;root&lt;/em&gt;, use the &lt;code&gt;sudo&lt;/code&gt; command.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;As always, thanks for reading!&lt;/em&gt;  👋 👋&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Basics of Cloud Computing for a TechNewbie</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Wed, 27 Oct 2021 15:42:45 +0000</pubDate>
      <link>https://forem.com/dolamu/basics-of-cloud-computing-for-a-technewbie-3nf2</link>
      <guid>https://forem.com/dolamu/basics-of-cloud-computing-for-a-technewbie-3nf2</guid>
      <description>&lt;h4&gt;
  
  
  &lt;em&gt;Background and Definition&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;Cloud computing is one of the hottest buzzwords in the IT world today. It has revolutionized our internet experience as users and the way organizations conduct their businesses. Cloud-based technologies are used for services such as email (e.g. Gmail), &lt;a href="https://en.wikipedia.org/wiki/Social_networking_service" rel="noopener noreferrer"&gt;social networking&lt;/a&gt;, file storage (e.g. Dropbox), &lt;a href="https://en.wikipedia.org/wiki/Big_data" rel="noopener noreferrer"&gt;big data&lt;/a&gt; analytics, software testing and development, &lt;a href="https://en.wikipedia.org/wiki/Customer_relationship_management" rel="noopener noreferrer"&gt;CRM&lt;/a&gt; (e.g. Salesforce), etc. Regardless of your tech background (whether you're an IT professional or a financial analyst), having a basic understanding of cloud computing is an invaluable skill.&lt;/p&gt;

&lt;p&gt;The term &lt;code&gt;cloud computing&lt;/code&gt; simply refers to the provision of computer system resources  (like storage, software, servers or databases) over the internet (i.e. &lt;strong&gt;the cloud&lt;/strong&gt;), without the need for internal infrastructure or direct active management by the user. It is often represented as a fluffy blue (or white) cloud graphic ☁☁️. Benefits of cloud computing include: It offers the best in terms of scalability, flexibility, reliability, geographical independence and cost effectiveness. Furthermore, it enables users to access the latest technologies and guarantees data protection.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Forms of Cloud Services
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Infrastructure as a Service (IaaS)&lt;/strong&gt;: This form of cloud computing offers the delivery of virtual infrastructure that replaces physical hardware to businesses seeking cost-effective IT solution. It delivers the necessary resources that enable high-performance computing and it also facilitate data storage, backup, and recovery services to users. Infrastructure as a service provides the following resources: compute (i.e, resources like virtual servers which are provided on-demand); block storage (like data storage drives which is used for providing blocks for storing information); and networks which are all the resources required for providing users with networking capabilities.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Platform as a Service (PaaS)&lt;/strong&gt;: In addition to the provision of fundamental infrastructure of virtual servers, data storage drives and network, this type of cloud services adds operating systems and software to the range of services delivered to users. It also provides run-time environment which provide all the functionality necessary for an application or program to run. PaaS allows developers to focus on their apps and avoid tasks like acquisition and resource planning.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Software as a Service (SaaS)&lt;/strong&gt;: This is the largest (and most popular) of the three forms of cloud computing as it involves the deployment of software or apps over the internet. It operates a subscription model (either yearly or monthly) that requires an internet connection for users to access its services. Examples of areas covered by software as a service include: application monitoring, content, finance, communication tools/apps, collaboration technology and services.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cloud Deployment Models
&lt;/h2&gt;

&lt;p&gt;There are several types of cloud deployment models, depending on where the infrastructure resides and who has control over it. Below are four main models associated with cloud computing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Cloud_computing#Public_cloud" rel="noopener noreferrer"&gt;&lt;strong&gt;Public clouds&lt;/strong&gt;&lt;/a&gt;: are the most common cloud deployment model, they are operated by third-party companies which are also known as cloud providers (such as &lt;a href="https://aws.amazon.com/" rel="noopener noreferrer"&gt;Amazon Web Services&lt;/a&gt; (AWS), &lt;a href="https://azure.microsoft.com/" rel="noopener noreferrer"&gt;Microsoft Azure&lt;/a&gt;, and &lt;a href="https://cloud.google.com/" rel="noopener noreferrer"&gt;Google Cloud&lt;/a&gt;) and made available to the general public or a large industry group on a pay-as-you-use basis. With public clouds, users can access computing resources [like hardware (operating system, storage) or software (application server, database)] at a relatively low cost as there are no capital expenditures required. Typical uses of public clouds are for: application development and testing, file sharing and storage, and email service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Cloud_computing#Private_cloud" rel="noopener noreferrer"&gt;&lt;strong&gt;Private cloud&lt;/strong&gt;&lt;/a&gt;: is a cloud environment in which all computing resources are controlled and managed exclusively for a single organization either by the organization itself or a third party service provider. Private clouds are often hosted within a company's own data center, although they can also be built on the infrastructure of an independent cloud provider or on rented infrastructure in an offsite data center. They are usually more costly than public clouds due to the huge capital investments involved in their maintenance, installation and acquisition. However, private clouds offer businesses increased security and privacy as well as the added benefits of scalability, flexibility, and full control over software and hardware choices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Cloud_computing#Hybrid_cloud" rel="noopener noreferrer"&gt;&lt;strong&gt;Hybrid clouds&lt;/strong&gt;&lt;/a&gt;: integrate the best features of public and private clouds. Both types of cloud infrastructure are combined into a single one; organisations can choose to store sensitive information privately on their on-premises infrastructure while using their public cloud data center for any additional platform, storage, or computing resources they may require. This model is typically used when companies need to scale up their IT infrastructure very quickly as it gives a business greater flexibility and more application deployment options. &lt;br&gt;&lt;br&gt;
Note that hybrid clouds are not to be confused with the &lt;a href="https://en.wikipedia.org/wiki/Multicloud" rel="noopener noreferrer"&gt;multi-cloud&lt;/a&gt; infrastructure, which is a cloud service environment consisting of more than one public clouds and private clouds. Multi-cloud, which aims to eliminate reliance on any single cloud provider, differs from hybrid cloud in that it refers to &lt;em&gt;multiple cloud services&lt;/em&gt; rather than &lt;em&gt;multiple deployment models&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Community_cloud" rel="noopener noreferrer"&gt;&lt;strong&gt;Community cloud&lt;/strong&gt;&lt;/a&gt;: is especially useful for organizations that have similar goals and interests, such as schools and companies merging. It is a deployment model in which cloud infrastructure, whether managed internally or by a third party and hosted internally or externally, is shared between several organizations from a specific community with common concerns. Community cloud is a centralized cloud infrastructure that alllows companies to collaborate on applications and projects belonging to the community. Benefits offered by this deployment model include: security and sharing infrastructure, cost effectiveness, flexibility and scalability, etc.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Characteristics of Cloud Computing
&lt;/h2&gt;

&lt;p&gt;a. &lt;strong&gt;Resource Pooling&lt;/strong&gt;: means that the cloud services provider's computing infrastructure is pooled together to serve several businesses. In cloud computing, resource usage can grow or shrink as the client's needs changes therefore, providers serve customers with scalable and provisional services to suit their needs.&lt;/p&gt;

&lt;p&gt;b. &lt;strong&gt;Scalability and Rapid Elasticity&lt;/strong&gt;: scalability is the ability to contract or expand computing infrastructure as a response to clients' changing requests while rapid elasticity refers to the fast allocation of resources to meet the needs of consumers. It is essential that cloud providers can efficiently allocate resources and be able to do it quickly as their resources are seen as one large pool that can be divided up among clients as needed.&lt;/p&gt;

&lt;p&gt;c. &lt;strong&gt;On-demand Self-Service&lt;/strong&gt;: means that customers can automate their requests based on their computing needs, without having to contact their cloud providers. This characteristic of cloud computing allows clients to access additional resources at anytime without enquiring with the service provider. &lt;/p&gt;

&lt;p&gt;d. &lt;strong&gt;Broad Network Access&lt;/strong&gt;: this means that computing resources can be easily accessible from any location (such as the office or home) and with various operating systems (like Windows, mobile, or Linux). Broad network access is one of fundamental hallmarks of cloud computing.&lt;br&gt;&lt;br&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Now that we have covered the most basic concepts of cloud computing, we will be delving into cloud networking and storage in another article. To know more on cloud computing, consider checking out the following resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What is Cloud Computing? - &lt;a href="https://aws.amazon.com/what-is-cloud-computing/" rel="noopener noreferrer"&gt;Amazon AWS&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microsoft &lt;a href="https://azure.microsoft.com/en-us/overview/what-is-cloud-computing/" rel="noopener noreferrer"&gt;Azure&lt;/a&gt; - A Beginner's Guide&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IBM | &lt;a href="https://www.ibm.com/cloud/learn/cloud-computing" rel="noopener noreferrer"&gt;Cloud Computing Fundamentals&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lastly, this 👉 &lt;a href="https://www.forbes.com/sites/bernardmarr/2021/10/25/the-5-biggest-cloud-computing-trends-in-2022/?sh=34d0c3492267" rel="noopener noreferrer"&gt;Forbes article&lt;/a&gt; explore the five biggest cloud computing trends in 2022&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Hey, thanks for reading!&lt;/em&gt; 👋 👋&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>A Basic Guide to Cascading Style Sheets</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Sat, 09 Oct 2021 14:11:01 +0000</pubDate>
      <link>https://forem.com/dolamu/a-basic-guide-to-cascading-style-sheets-54fd</link>
      <guid>https://forem.com/dolamu/a-basic-guide-to-cascading-style-sheets-54fd</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Brief Background&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Like HTML, &lt;a href="https://en.wikipedia.org/wiki/CSS" rel="noopener noreferrer"&gt;CSS&lt;/a&gt; (which means Cascading Style Sheets) is not a programming language, it is the code you use to selectively style the &lt;a href="https://en.wikipedia.org/wiki/World_Wide_Web" rel="noopener noreferrer"&gt;web&lt;/a&gt;. CSS is a &lt;a href="https://en.wikipedia.org/wiki/Style_sheet_language" rel="noopener noreferrer"&gt;style sheet language&lt;/a&gt; for describing the presentation of a document written in a markup language like &lt;a href="https://en.wikipedia.org/wiki/HTML" rel="noopener noreferrer"&gt;HTML&lt;/a&gt;. It is designed to help improve a site's content &lt;a href="https://en.wikipedia.org/wiki/Accessibility" rel="noopener noreferrer"&gt;acessibility&lt;/a&gt;; provide more flexibility and control in the specification of presentation characteristics; and enable multiples web pages to share formatting which reduces complexity and repetition.&lt;/p&gt;

&lt;p&gt;Before CSS, nearly all presentational attributes of HTML documents were contained within the HTML &lt;a href="https://en.wikipedia.org/wiki/Markup_language" rel="noopener noreferrer"&gt;markup&lt;/a&gt;. All font colors, background styles, element alignments, borders and sizes had to be explicitly described, often repeatedly, within the HTML. CSS lets authors move much of that information to another file; the style sheet, resulting in considerably more simpler HTML.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Anatomy of CSS Ruleset&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;All CSS rulesets are wrapped in curly braces &lt;code&gt;{ }&lt;/code&gt;. They can be specified inside a &lt;code&gt;style&lt;/code&gt; element or inside an external CSS file. CSS layout is based on the "box" model, with each &lt;em&gt;box&lt;/em&gt; taking up space on the webpage having various properties like: padding (which is the space around the content e.g., the space around your paragraph), border (this is the solid line that encircles the padding), and margin (which is the around the outside of the border). Here's what the syntax of a typical CSS code looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;body {
  font-style: italic
  color: blue;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A CSS ruleset consists of: the selector, declaration, property and the property value. When the above CSS code is applied to a HTML document, the content of the &lt;code&gt;body&lt;/code&gt; element will be &lt;em&gt;italic&lt;/em&gt; in style and blue in color. In CSS, anything specified within the &lt;code&gt;/*&lt;/code&gt; and &lt;code&gt;*/&lt;/code&gt; tags is a &lt;strong&gt;comment&lt;/strong&gt;. Comments are a helpful way to write notes about your code and browsers do ignore them as they render the CSS code. Below are the detailed analysis of a CSS ruleset 👇&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Selector&lt;/strong&gt;: This indicates or &lt;em&gt;selects&lt;/em&gt; the HTML element(s) or contents [e.g attributes, ids, and classes] to which a set of styling rules apply. It is usually at the beginning of the ruleset. For instance, in the illustration above, the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element is the selector. To style a different element you simply have to change the selector. Other forms of selectors in CSS include;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a universal selector - denoted by the symbol * and which affects all elements (e.g heading, paragraph, list etc.) on a document tree or all values of a particular element.&lt;/li&gt;
&lt;li&gt;an element selector - also known as a tag or type selector, is a commonly-used selector in CSS that involves all HTML elements of an identified type when that type is specified. Multiple elements can also be selected with the use of a comma, and a single ruleset applied to them all as follows 👉 h1, p, li, {color: blue;}.&lt;/li&gt;
&lt;li&gt;pseudo-class - is a keyword added to a selector that specifies a special state of the selected element, for instance  in this ruleset 👉 a:hover {color: blue;}, the color of the selector (a) changes to blue when the mouse pointer hovers over the link.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Declaration&lt;/strong&gt;: This &lt;em&gt;declares&lt;/em&gt; the property of an HTML element to be styled. It determines how elements are formatted on a webpage. Each declaration is made up of a property and a property value which are separated by a colon. Declarations within a block are separated by a semicolon. For example &lt;code&gt;font-style: italic; color: blue;&lt;/code&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Property&lt;/strong&gt;: This is the attribute to be styled in an HTML document. Different HTML selectors and elements have different properties, properties specify &lt;em&gt;what to style&lt;/em&gt; on a CSS selector. This could be the background of the HTML elements or its color or font. Just like the CSS selector, some properties are uiniversal and can be used on any element while others apply only to specific groups of elements and under particular conditions. In the example above, the property of the &lt;code&gt;body&lt;/code&gt; element chosen to be styled is its "color". Frequently used properties in CSS documents include: list properties; font properties; border properties; and text properties.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Values&lt;/strong&gt;: are written after the colon that separates them from the properties in CSS. The word "values" can be quite misleading though because CSS values are not just text; they are often in different forms like integers, units, strings, URLs, etc. See below for more details 👇 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;text values - are quite common in CSS and are usually written without quotes. `italic` and `blue` are the text values of `font-style` and `color` in the CSS ruleset above.&lt;/li&gt;
&lt;li&gt;integers - are numbers from zero to nine. Some CSS properties allow their values to be described as negative integers. An example of an integer is 👉 "6" as a value for the property 'column-count'. It isn't uncommon to see some properties like 'margin' take on two values (e.g. 3 auto;). When this occurs, the first value (3 in this case) affects the element's top and bottom side while the second value affects the left and right side [note that 'auto' is a special value that divides the available horizontal space evenly between left and right].&lt;/li&gt;
&lt;li&gt;units/measurements - many properties in CSS take this as their value to effectively position general layout and media queries on a webpage. Examples of property-specific units for CSS values include; pc - the unit for picas; em - for the calculated size of a font; cm - the unit for centimeters; pt - for points (as measurement in printed media); and % - the unit for percentages.&lt;/li&gt;
&lt;li&gt;URLs - properties like 'background-image' often take an actual URL as their value. A URL could be absolute or relative meaning that the address of an image could either be copied online and used as a background image or an image could be uploaded directly from the user's computer. For example: div{background-image: url("./images/picture.jpg");}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Additional Resources
&lt;/h3&gt;

&lt;p&gt;As a codenewbie, it is quite easy to get overwhelmed by the sheer size of properties, properties values and CSS selectors to remember, which is why I've compiled the following list of resources for future reference 👇&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://meiert.com/en/indices/css-properties/" rel="noopener noreferrer"&gt;CSS index&lt;/a&gt;; for a list of all properties, their initial values and CSS versions.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A comprehensive guide on CSS ruleset &lt;a href="https://www.w3schools.com/cssref/" rel="noopener noreferrer"&gt;can also be found here at w3schools&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, check out 👉 &lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;this site&lt;/a&gt; for CSS tips and tricks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;As always, thanks for reading&lt;/em&gt;  👋 👋&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Basic Elements in HTML Every Beginner Has to Know</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Tue, 28 Sep 2021 20:09:48 +0000</pubDate>
      <link>https://forem.com/dolamu/basic-elements-in-html-every-beginner-has-to-know-3h09</link>
      <guid>https://forem.com/dolamu/basic-elements-in-html-every-beginner-has-to-know-3h09</guid>
      <description>&lt;p&gt;HTML elements are an essential part of its structure and semantics, yet many code (or web development) newbies do not know them &lt;em&gt;really&lt;/em&gt; well. They discount them and focus instead on other areas that contribute to the appearance, style, and functionality of a webpage. In this article, we will be examining the crucial role, HTML and HTML elements play in the practical development of the web. &lt;/p&gt;

&lt;h2&gt;
  
  
  Role of HTML on the Web.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/HTML" rel="noopener noreferrer"&gt;HTML&lt;/a&gt; is a &lt;em&gt;hypertext&lt;/em&gt; (i.e, a text that goes beyond ordinary text) markup language that describes the semantic structure of a webpage. It was first proposed by &lt;a href="http://en.wikipedia.org/wiki/Tim_Berners-Lee" rel="noopener noreferrer"&gt;Tim Berners-Lee&lt;/a&gt; in 1989 and is defined by the &lt;a href="http://en.wikipedia.org/wiki/World_Wide_Web_Consortium" rel="noopener noreferrer"&gt;W3C&lt;/a&gt;, which stands for World Wide Web Consortium. HTML was initially introduced for researchers and educators to share resource documents and other content like experimental data that they had found out with their peers. Today, it is used to build robust web applications with rich graphical user interfaces, and can be enhanced with other technologies like &lt;a href="https://en.wikipedia.org/wiki/CSS" rel="noopener noreferrer"&gt;CSS&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/JavaScript" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The latest version of this &lt;a href="https://en.wikipedia.org/wiki/Markup_language" rel="noopener noreferrer"&gt;markup language&lt;/a&gt; is &lt;a href="https://en.wikipedia.org/wiki/HTML5" rel="noopener noreferrer"&gt;HTML5&lt;/a&gt;, which extend, improve and rationalizes the markup available for documents. HTML5 is the standard language for documents designed to be displayed in web browsers. It allows browsers to interpret and arrange text, images, and other resources into visually appealing or audible web pages. HTML5 is platform-independent, which means that it can be created on any computer, regardless of its operating system. Although, HTML directs the arrangement of words in a web page, it does nothing about the spacing between paragraphs, color, font, etc. HTML is merely the code you write to structure your web content and give it purpose and meaning.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;HTML Elements&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I mentioned earlier that HTML semantically defines the structural content of web pages. HTML does this through the use of &lt;code&gt;elements&lt;/code&gt;. &lt;a href="https://en.wikipedia.org/wiki/HTML_element" rel="noopener noreferrer"&gt;HTML Elements&lt;/a&gt; are components that add formating and meaning to the content of a web document. Here's what the &lt;a href="https://en.wikipedia.org/wiki/Syntax_(programming_languages)" rel="noopener noreferrer"&gt;syntax&lt;/a&gt; of HTML elements look like:&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;!DOCTYPE  html&amp;gt;
&amp;lt;html&amp;gt;
    &amp;lt;head&amp;gt;
          &amp;lt;title&amp;gt;Basic Anatomy of HTML Elements&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
          &amp;lt;h1&amp;gt;The main heading&amp;lt;/h1&amp;gt;
          &amp;lt;p class="text"&amp;gt;Hello world!&amp;lt;/p&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From the above, we can see that typically, elements contain: an &lt;em&gt;opening tag&lt;/em&gt; &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt; which can contain some &lt;a href="https://en.wikipedia.org/wiki/HTML_attribute" rel="noopener noreferrer"&gt;attributes&lt;/a&gt; (i.e. words that control an element behaviour and define its additional properties), enclosed text content, and a &lt;em&gt;closing tag&lt;/em&gt; &lt;code&gt;&amp;lt;/&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;HTML elements are used to enclose or wrap different parts of a webpage, to make it appear or act a certain way. For instance, the&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt; declaration tells browsers the standard compliance or version of the web content i.e., HTML 5; the&lt;code&gt;&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;&lt;/code&gt; element acts as a root container that describes the whole page. It is the parent element of the entire HTML web page The &lt;code&gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;/code&gt; element contains all sorts of content that would not be rendered to users such as the metadata or information about the rendering of the document. Key 'child' elements that are often used within this element include; the &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;meta&lt;/code&gt;, &lt;code&gt;script&lt;/code&gt;, &lt;code&gt;style&lt;/code&gt;, &lt;code&gt;link&lt;/code&gt;, and &lt;code&gt;base&lt;/code&gt; elements. The &lt;code&gt;&amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;&lt;/code&gt; element contains all the content that are visible to users when they visit your webpage such as text, lists, links, tables, and images.  Let us now consider some of these elements in detail 👇&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;Header&lt;/strong&gt;&lt;br&gt;
This is a text-based element that denotes different sections of your document. it represents a group of introductory or navigational aids like the website branding, search bar, table of contents and similar contents that is duplicated across all or most pages of a website. It contains information related to the title. A header element usually contain all the font changes, paragraph breaks, and any white space necessary to render the heading. HTML defines 6 levels of headings, from &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; to &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; with &lt;code&gt;h1&lt;/code&gt; being the highest level and should only appear once per page while &lt;code&gt;h2&lt;/code&gt; - &lt;code&gt;h6&lt;/code&gt; are secondary headings. Additionally, the header element can be used to improve &lt;a href="https://en.wikipedia.org/wiki/Search_engine_optimization" rel="noopener noreferrer"&gt;search engine optimization&lt;/a&gt; (SEO) and &lt;a href="https://en.wikipedia.org/wiki/Web_accessibility" rel="noopener noreferrer"&gt;accessibility&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Note: Do not confuse the &lt;code&gt;header&lt;/code&gt; element with the &lt;code&gt;head&lt;/code&gt; element. The header element is usually used within the &lt;code&gt;body&lt;/code&gt; element in HTML which means its contents are visible on a webpage.&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;Paragraph&lt;/strong&gt;&lt;br&gt;
This element specifies formating details for paragraphs and is the most basic way of adding text to a webpage. As a result, it is one of the most widely used elements in HTML. By default, when a block of text is surrounded by paragraph tags, browsers create a single blank line before and after it. This helps to keep each paragraph separate from the others around it while alternate separation methods like first-line indentation can be introduced with CSS.&lt;br&gt;&lt;br&gt;
In previous versions of HTML - 4 and earlier - the opening tag of a paragraph element alone was sufficient to create a new paragraph. In HTML 5 however, this can lead to unexpected errors or results. Therefore, for good coding practice, it is advisable to include both the opening &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;and closing &lt;code&gt;&amp;lt;/p&amp;gt;&lt;/code&gt; tags of the paragraph element. As with the &lt;code&gt;header&lt;/code&gt; element, the &lt;code&gt;paragraph&lt;/code&gt; element is used within the &lt;code&gt;body&lt;/code&gt; element. &lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;Links&lt;/strong&gt; &lt;br&gt;
These are found in nearly all web pages, they are integral to the creation of the web. HTML links are &lt;a href="https://en.wikipedia.org/wiki/Hyperlink" rel="noopener noreferrer"&gt;hyperlinks&lt;/a&gt; that users can follow by clicking or selecting the link. They serve as a connection from one web resource to another. An hyperlink has two ends (called anchors), usually starts at the &lt;em&gt;source&lt;/em&gt; anchor and points to a &lt;em&gt;destination&lt;/em&gt; anchor, which could be any web resource such as an image, video clip, program, another HTML document or a specific element within an HTML document.&lt;br&gt;&lt;br&gt;
The element used to create a link is the&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element which is short for anchor. To add a link, use the &lt;code&gt;href&lt;/code&gt; (which actually means &lt;em&gt;hypertext reference&lt;/em&gt;; an &lt;code&gt;href&lt;/code&gt; uses a URL to reference another document) attribute to specify the link's destination (e.g &lt;a href="https://www.google.com" rel="noopener noreferrer"&gt;https://www.google.com&lt;/a&gt;) to the opening tag &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; then add the word(s) that will function as the link (e.g Google Homepage) as the enclosed text content and remember to include the closing tag &lt;code&gt;&amp;lt;/a&amp;gt;&lt;/code&gt; so as to show where the link ends. Note that you might get unexpected results if you ignore the &lt;em&gt;protocol&lt;/em&gt; (i.e., the &lt;code&gt;https://&lt;/code&gt;) part of the web address. A sample link element would look like 👇&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;a href="https://www.google.com"&amp;gt;Google Homepage&amp;lt;/a&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;→ &lt;strong&gt;Lists&lt;/strong&gt; &lt;br&gt;
In HTML, lists are used to present information in an organised and well-formed manner. Texts, images and links can be place in a list item as well as another entire list (nested lists). The most commonly used list types are ordered and unordered lists. Ordered list elements &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; are used when creating a list of related items in a particular order or when the order of arrangement is important.&lt;br&gt;&lt;br&gt;
Unordered list elements &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; are used to create a series of items (content, text or links) that are identified as belonging in a group together but do not have a particular order associated with them. Each list item (whether ordered or unordered) is put inside a list &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; element. For example: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcxubis0qris6bku4khl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcxubis0qris6bku4khl.png" alt="Unordered list image.png" width="631" height="118"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above code input translates into 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkiybj2peflkxniitdspn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkiybj2peflkxniitdspn.png" alt="code output.png" width="505" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;In Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;HTML has a variety of &lt;a href="https://en.wikipedia.org/wiki/HTML_element" rel="noopener noreferrer"&gt;elements&lt;/a&gt; to choose from; however, I choose to focus only on the above four since they are the most fundamental ones. Elements are very important and are at the very core of the web. As a beginner, If you are learning HTML, I believe you should start there. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hey, thanks for reading&lt;/em&gt; 👋 👋&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>4 Short Tips on Seeking for Help Online</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Fri, 24 Sep 2021 15:53:07 +0000</pubDate>
      <link>https://forem.com/dolamu/4-short-tips-on-seeking-for-help-online-5d8f</link>
      <guid>https://forem.com/dolamu/4-short-tips-on-seeking-for-help-online-5d8f</guid>
      <description>&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@graylab?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Pratik Gupta&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/ask-for-help?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In your coding journey as a beginner, you're sure to need help with something, whether it's becoming more familiar with a programming language you're trying to learn or simply getting an explanation of how to accomplish a task. In order to avoid unnecessary frustration, it is important to ask good questions. Here are 4 tips to consider when seeking for help online:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Don't ask to ask, just ask:&lt;/strong&gt;
A wrong way of asking for help is to &lt;a href="https://dontasktoask.com/" rel="noopener noreferrer"&gt;ask if you can &lt;em&gt;ask&lt;/em&gt; questions&lt;/a&gt;. Remember nobody is obligated to help you so don't ask for help in a way that is designed to waste other people's time. Something like &lt;em&gt;'Is there any Ruby expert here?'&lt;/em&gt;, is not cool. By doing this, you are questioning people's abilities and unnecessarily excluding others, it's like you're essentially saying;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Well, see I have a problem Involving Ruby but I don't think 
I want your help if you're not only a Ruby user but also a
Ruby expert.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similarly, &lt;a href="https://www.nohello.com/" rel="noopener noreferrer"&gt;don't just say 'hello'&lt;/a&gt; or &lt;em&gt;'Hi, can I ask a question?'&lt;/em&gt; Just ask already. Nobody would respond to you when you ask for help this way, because it's not efficient. Go straight to the heart of the problem and ask your question, you do not need to ask for permission to do that. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't ask people to solve your problem for you, instead ask for guidance:&lt;/strong&gt;&lt;br&gt;
Keep in mind that the overall purpose of seeking help from others is to learn and improve. This goal would be defeated if you're asking people to profer solution to your problem. Rather, ask about the particular thing bothering you about the problem. Say for instance, you're trying to build a website, don't ask "&lt;em&gt;can someone teach me how to build a website?&lt;/em&gt;". You are expected to have researched how to do this then come back and ask about the specific issue you encountered in the process of building a website. While asking your question, explain what you've done and the steps you've taken so far to resolve that issue. This way, people will know that you're respectful of their time because you've already tried to solve the problem yourself and will then (probably) proceed to help you from there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Provide as much (relevant) details as possible about your problem:&lt;/strong&gt;&lt;br&gt;
When seeking help online, remember that no one can read your mind or anticipate what your issue is without getting the necessary information from you, so try to provide some relevant details when asking your questions. If this means you have to take a screenshot or include sample code in the question, then do it. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, remember to explain the context so that people can identify exactly what your problem is. Try not to keep your questions vague, help people to help you by explaining yourself very clearly and in great detail. Ask informative questions. Furthermore, when asking questions online, go straight to the point, don't beat around the bush or ask indirect questions as you will only end up wasting everyone's time (including yours) by doing this. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Be courteous, remember to provide feedback and thank people for responding:&lt;/strong&gt; Always endeavour to provide feedback to everyone who responded to your question. Even if they ended up not being able to help, still thank people for responding because they didn't have to do so. Keep in mind that you might still have more questions in future so showing people that you appreciate their efforts now will encourage them to come to your aid next time. The fact that someone's response now isn't the help you needed doesn't mean that a response from them in future will not be the exact help you need. So always be courteous and remember to respond to people and say thank you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For tips on asking smart questions, consider checking these out 👇&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/@gordon_zhu/how-to-be-great-at-asking-questions-e37be04d0603" rel="noopener noreferrer"&gt;How to be great at asking coding questions&lt;/a&gt; by Gordon Zhu.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frustrations of &lt;a href="https://xyproblem.info/" rel="noopener noreferrer"&gt;the XY Problem&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://stackoverflow.com/help/how-to-ask" rel="noopener noreferrer"&gt;How to ask a good question&lt;/a&gt; on StackOverflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tips to avoid becoming &lt;a href="https://www.slash7.com/2006/12/22/vampires/" rel="noopener noreferrer"&gt;a help vampire&lt;/a&gt; by Amy Hoy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.catb.org/esr/faqs/smart-questions.html" rel="noopener noreferrer"&gt;How to ask questions the smart way&lt;/a&gt; by Eric Steven Raymond.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As always, &lt;em&gt;thanks for reading!&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Bye for now 👋 👋&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>5 Essential Terms for a Code Newbie</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Tue, 14 Sep 2021 22:52:12 +0000</pubDate>
      <link>https://forem.com/dolamu/5-essential-terms-for-a-code-newbie-3fh3</link>
      <guid>https://forem.com/dolamu/5-essential-terms-for-a-code-newbie-3fh3</guid>
      <description>&lt;p&gt;When it comes to the world of programming, there are tons of stuff newbies aren't aware of. Terms like "web", "hypertext", "server" or "client" often heard in the tech community sounds strange and unfamiliar to them, not knowing that these are simple terms used in describing processes routinely carried out in software development. In this article, I'll be explaining some of these words in detail below:&lt;/p&gt;

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

&lt;p&gt;This literally means to "write code". In the context of creating webpages, programming means to write HTML in the HTML files, CSS in the CSS files or JavaScript in the JavaScript files. It is the process of building a computer program to accomplish a task. A program is a set of commands to the computer to facilitate specific actions. By the way, the web is a collection of documents written in a hypertext markup language called HTML along with other resources such as images, videos and other programs and services that interact with these documents and resources.&lt;/p&gt;

&lt;p&gt;The web operates a "hypertext" system, which is a form of text in which documents can link to other documents and resources and users can refer to those links for other related information. All web technologies are built around this concept of hypertext - the idea of documents and data resources that are linked to each other in a standard way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Terms Often Used in Programming
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Web server&lt;/strong&gt;: This is a computer that provides resources, services or programs to other computers, known as "clients", over a network. A computer network is a set of computers sharing resources provided by a communication endpoint. A [server] provides functionality (such as sharing data among multiple clients or performing computation for a client) for other computer programs or devices. Web servers are computer software and underlying hardware that accepts request from browsers via HTTP, which is the network protocol created to distribute web pages. They are one of the most abundant types of servers today and they respond to requests for web pages and other web-based services. Other typical servers include: a database server, file server and virtual server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming language&lt;/strong&gt;: This is the language (i.e., the formal vocabulary containing a set of grammatical rules) developers use to instruct a computer to perform specific tasks. It is a kind of computer language used to implement algorithms. The most popular programming languages (in no particular order) are: Python, JavaScript, C#, Ruby, Java and C++. In web development, programming languages can be sub-divided into: front and back end languages. Front end languages are languages used to develop the part of a website that a user interacts with directly. HTML is an example of a front end language, it is one of the languages used in creating a website colors, images, buttons and text. The back end languages are used in buiding the back (i.e., server-side) portion of a website. These languages are used for activities such as creating libraries, writing APIs and arranging data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax&lt;/strong&gt;: This is the grammar rule for a computer language like HTML or JavaScript. It is the general set of rules for how words and sentences in a language should be arranged. In programming, a syntax defines how declarations, functions, commands and other statements are structured. It arrange words and phrases to create a well-formed sentence in a language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;: This is the markup language that provides the structure and text of web pages. It stands for HyperText Markup Language. It is the first item sent by a server when a website is loaded into a browser. An HTML code contains technical details which a web browser uses as a blueprint to build a web page. A good place to get started on programming is writing in HTML because it provides quick feedback on what is being learnt as this is displayed by the web browsers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text editors&lt;/strong&gt;: This is a software specifically designed to help a developer write code. It is a program built for editing code, it automatically highlight different parts of a code (syntax highlighting) when it is opened. It also manages the indentation of the code for a developer as different levels of indentation often indicate that some code is contained within other pieces of code. Indicators of syntax errors in text editors include;  a missing quote, a comma is used rather than semicolon or a curly brace is used instead of bracket. Popular text editors include: VSCode, Atom, Sublime text, among others. Word Processors are not the same as text editors. A word processor is a piece of software used to write or format plain text like documents. It is not used in writing code because it doesn't handle syntax highlighting or indentation. Examples include; Microsoft Word, Google Docs, OpenOffice&lt;/p&gt;

&lt;p&gt;Hey, thanks for reading!   👋 👋&lt;/p&gt;

&lt;p&gt;I previously published this post &lt;a href="https://theconsistentdeveloper.hashnode.dev/5-essential-programming-terms-to-know" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Basics of the Git Workflow for a Code Newbie</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Wed, 01 Sep 2021 06:45:05 +0000</pubDate>
      <link>https://forem.com/dolamu/basics-of-the-git-workflow-for-a-code-newbie-23aa</link>
      <guid>https://forem.com/dolamu/basics-of-the-git-workflow-for-a-code-newbie-23aa</guid>
      <description>&lt;p&gt;Last month, I read up on the &lt;a href="https://git-scm.com/book/en/v2" rel="noopener noreferrer"&gt;Git version control system&lt;/a&gt;. I actually found it difficult to understand initially, but after reading several articles on Git, watched a lot of YouTube videos, and completed my &lt;a href="https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/git-basics" rel="noopener noreferrer"&gt;The Odin Project lesson&lt;/a&gt;, I think I have a clear idea now. Here is a summary of the git commands I learned, as a cheatsheet for future use by me - and any other fellow Git-beginners out there. But before we dive into all that, let's address this obvious question;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;em&gt;What Exactly is Git?&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Git is a free and open-source distributed version control system. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Version_control" rel="noopener noreferrer"&gt;Version control&lt;/a&gt; systems (also known as revision control, source control, or source code management) are used to manage changes to &lt;a href="https://en.wikipedia.org/wiki/Computer_program" rel="noopener noreferrer"&gt;computer programs&lt;/a&gt;, documents, large &lt;a href="https://en.wikipedia.org/wiki/Website" rel="noopener noreferrer"&gt;web sites&lt;/a&gt;, and other collections of information. These systems provide an automatic way to track changes in projects thereby giving creators the power to view previous versions of &lt;a href="https://en.wikipedia.org/wiki/Computer_file" rel="noopener noreferrer"&gt;files&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Directory_(computing)" rel="noopener noreferrer"&gt;directories&lt;/a&gt;, securely back up the project and its history, and collaborate easily and conveniently with others. They are crucial for tracking edits made by others, correcting errors, and protecting against spam and vandalism. Distributed version control (also known as distributed revision control) is a form of version control in which the complete &lt;a href="https://en.wikipedia.org/wiki/Codebase" rel="noopener noreferrer"&gt;codebase&lt;/a&gt;, including its full history, is mirrored on every developer's computer. &lt;/p&gt;

&lt;p&gt;Git is acessed via a &lt;a href="http://www.linfo.org/command_line_program.html" rel="noopener noreferrer"&gt;command-line program&lt;/a&gt; called &lt;code&gt;git&lt;/code&gt; which lets users transform an ordinary directory into a &lt;a href="https://en.wikipedia.org/wiki/Software_repository" rel="noopener noreferrer"&gt;&lt;em&gt;repository&lt;/em&gt;&lt;/a&gt; (a sort of enhanced directory with the additional ability to track changes to every file and sub-directory). Here are some basic commands frequently used when running Git 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Git Cheatsheet&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;All Git commands consist of the command-line program &lt;code&gt;git&lt;/code&gt; followed by the name of the command, so for the full command to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;to check the version of git installed on your system, type 👉 &lt;code&gt;git --version&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to set your global configuration settings (i.e. your git name and username), type 👉 &lt;code&gt;git config --global user.name &amp;lt;yourname&amp;gt;&lt;/code&gt; and &lt;code&gt;git config --global user.email &amp;lt;email address&amp;gt;&lt;/code&gt;. To configure your local default git branch name to &lt;em&gt;main&lt;/em&gt; (rather than &lt;em&gt;master&lt;/em&gt; which has always been used), type 👉 &lt;code&gt;git config --global init.defaultBranch main&lt;/code&gt;. To check all your git configuration values, type 👉 &lt;code&gt;git config --list&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to initialize a git repository, type 👉 &lt;code&gt;git init&lt;/code&gt;. This creates a special hidden directory called .git where git stores the information it needs to track your project’s changes. (It’s the presence of a properly configured &lt;code&gt;.git&lt;/code&gt; directory that distinguishes a git repository from a regular directory.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to clone a remote repository on your computer, type 👉 &lt;code&gt;git clone &amp;lt;URL where the repository is&amp;gt;&lt;/code&gt;. To create a file in a git repository just use &lt;code&gt;touch&lt;/code&gt; like you would when creating a new file on the command line. To check if you've successfully connected your remote repository to your local machine, navigate to the cloned repository and confirm its URL by typing 👉 &lt;code&gt;git remote -v&lt;/code&gt;. To change the URL of your git remote origin, type 👉 &lt;code&gt;git remote set-url origin &amp;lt;newurl&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to hide files in your repository that you don't want others to see, create a git ignore file using touch, type 👉 &lt;code&gt;touch .gitignore&lt;/code&gt; and manually include the names of those files (or file patterns/extensions) you want ignored to the .gitignore text file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to check the status of your repository, use 👉 &lt;code&gt;git status&lt;/code&gt;. This enables you to see all &lt;em&gt;changes&lt;/em&gt; to files within the respository, displayed to show; files that are merely in your working directory (these are termed 'untracked files'), files that have been edited but not yet (re)staged for commit and files in the staging area (with &lt;em&gt;changes&lt;/em&gt; about to be committed to the repository).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to make a commit in git: first add the file (or files) you want to commit to the staging area, type 👉 &lt;code&gt;git add &amp;lt;filename&amp;gt;&lt;/code&gt; to add a single file or &lt;code&gt;git add .&lt;/code&gt; to add all unstaged files &lt;em&gt;in the current directory&lt;/em&gt; and &lt;code&gt;git add -A&lt;/code&gt; to add all untracked files and directories &lt;em&gt;in the repository&lt;/em&gt;. Then type 👉 &lt;code&gt;git commit -m &amp;lt;a message describing what you have done to make this snapshot different&amp;gt;&lt;/code&gt; to commit your changes. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to remove a single file from the staging area, type 👉 &lt;code&gt;git reset &amp;lt;filename&amp;gt;&lt;/code&gt; or &lt;code&gt;git restore --staged &amp;lt;filename&amp;gt;&lt;/code&gt; or &lt;code&gt;git rm --cached &amp;lt;filename&amp;gt;&lt;/code&gt;. To remove all files, simply type 👉 &lt;code&gt;git reset&lt;/code&gt;. To check the difference between the last commit and unstaged changes in your current project, type 👉 &lt;code&gt;git diff&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to upload/push your work to a remote repository, type 👉 &lt;code&gt;git push origin main&lt;/code&gt;.  To see the history of your commits, type 👉 &lt;code&gt;git log&lt;/code&gt;. This command shows only the commits messages which isn't particularyly detailed. To see the full diffs representated by each commit, use the &lt;code&gt;-p&lt;/code&gt; flag, type 👉 &lt;code&gt;git commit -p&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to commit &lt;em&gt;all changes&lt;/em&gt; in your currently existing files, pass the &lt;code&gt;-a&lt;/code&gt; flag to the &lt;code&gt;git commit&lt;/code&gt; command by typing 👉 &lt;code&gt;git commit -am &amp;lt;message&amp;gt;&lt;/code&gt;. The &lt;code&gt;-a&lt;/code&gt; flag commits &lt;em&gt;all pending changes&lt;/em&gt; to files in the repository. Always remember to type 👉 &lt;code&gt;git add -A&lt;/code&gt; when there are new files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to see the difference between staged changes and the previous version of the repo, type 👉 &lt;code&gt;git diff --staged&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to correct an error in /update your last commit message, type 👉 &lt;code&gt;git commit --amend&lt;/code&gt;. To ascertain that your git commit message was properly updated, run &lt;code&gt;git log&lt;/code&gt; to  get the SHA of your last commit then view the diff using 👉 &lt;code&gt;git show &amp;lt;SHA&amp;gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Resources&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I generally use the &lt;a href="https://www.theodinproject.com" rel="noopener noreferrer"&gt;The Odin Project&lt;/a&gt; curriculum to study. In addition to that, other resources I found useful while reading up on Git include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.learnenough.com/git-tutorial" rel="noopener noreferrer"&gt;Learn Enough Git to be Dangerous&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Corey Schafer's &lt;a href="https://www.youtube.com/watch?v=HVsySz-h9r4" rel="noopener noreferrer"&gt;Git Tutorial for Beginners&lt;/a&gt; on Youtube&lt;/li&gt;
&lt;li&gt;Fireship's Youtube video on &lt;a href="https://www.youtube.com/watch?v=HkdAHXoRtos" rel="noopener noreferrer"&gt;Git It? How to use Git and Github&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hey, thanks for reading!  👋 👋&lt;/p&gt;

</description>
      <category>git</category>
      <category>codenewbie</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>10+ Linux Commands Every Newbie Should Know</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Sat, 21 Aug 2021 00:11:46 +0000</pubDate>
      <link>https://forem.com/dolamu/10-linux-commands-every-newbie-should-know-hpj</link>
      <guid>https://forem.com/dolamu/10-linux-commands-every-newbie-should-know-hpj</guid>
      <description>&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@pakata?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Pakata Goh&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/coding?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I mentioned in my &lt;a href="https://dev.to/deteekay/how-i-plan-to-learn-to-code-before-2022-4o9p"&gt;last blog post&lt;/a&gt; that I will be &lt;a href="https://www.swyx.io/learn-in-public/" rel="noopener noreferrer"&gt;learning in public&lt;/a&gt; and sharing what I learn online in order to hold myself accountable and measure my progress.&lt;/p&gt;

&lt;p&gt;Well last month, I learned how to use the Linux command line. In &lt;a href="https://dev.to/deteekay/how-i-plan-to-learn-to-code-before-2022-4o9p"&gt;that post&lt;/a&gt;, I explained that I am currently curating my coding studies with &lt;a href="https://www.theodinproject.com/" rel="noopener noreferrer"&gt;The Odin Project&lt;/a&gt; (TOP) curriculum. TOP encourages students to use a Linux system to learn coding, while those of us with a windows computer are taught how to access Ubuntu through a &lt;a href="https://www.virtualbox.org/" rel="noopener noreferrer"&gt;virtual machine&lt;/a&gt;. After installing the virtual machine, we then explored how to manipulate the command line.&lt;/p&gt;

&lt;p&gt;My usual practice whenever I'm studying or learning something new is to jot down useful and relevant notes in a notebook. However, for the purpose of this learning-in-public journey, I have chosen to share my notes below 👇 &lt;/p&gt;

&lt;h2&gt;
  
  
  Linux File System Operations
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Manipulating files and directories&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;to create a new directory type 👉 &lt;code&gt;mkdir &amp;lt;directoryname&amp;gt;&lt;/code&gt;. To create intermediate or nested directories, the &lt;code&gt;mkdir&lt;/code&gt; command will allow you to do so using the &lt;code&gt;-p&lt;/code&gt; flag like this 👉 &lt;code&gt;mkdir -p Documents/book/page&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to create a file, use 👉 &lt;code&gt;touch &amp;lt;filename(s)&amp;gt;&lt;/code&gt;. For example, to create a single file, type 👉 &lt;code&gt;touch novel.txt&lt;/code&gt; and &lt;code&gt;touch letter.doc index.html script.js style.css&lt;/code&gt; to create multiple files at once.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to copy a file, use the &lt;code&gt;cp&lt;/code&gt; command citing two arguments; the first argument is the file you want to copy (the source file) while the second argument (or target) is the location you want to copy the source file to. For instance, type 👉 &lt;code&gt;cp letter.doc book.doc&lt;/code&gt;. When copying one directory to another, use the &lt;code&gt;-r&lt;/code&gt; flag and specify both the source and target directories' paths. To copy only the &lt;em&gt;contents&lt;/em&gt; of a directory, remember to use the star &lt;code&gt;*&lt;/code&gt; operator at the end of the source directory path e.g &lt;code&gt;cp ~/book/* ~/Documents&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to delete directories, use &lt;code&gt;rmdir &amp;lt;directory name&amp;gt;&lt;/code&gt; or &lt;code&gt;rm -d &amp;lt;directory name&amp;gt;&lt;/code&gt; and &lt;code&gt;rm -r &amp;lt;directory name&amp;gt;&lt;/code&gt; or &lt;code&gt;rm -rf &amp;lt;directory name&amp;gt;&lt;/code&gt; for empty and non-empty directories respectively. To delete a file, type 👉 &lt;code&gt;rm &amp;lt;filename&amp;gt;&lt;/code&gt; e.g, &lt;code&gt;rm script.js&lt;/code&gt;. To confirm that a command is about to be executed use the &lt;code&gt;-i&lt;/code&gt; flag, for instance to confirm that a file is about to be overwritten, type 👉 &lt;code&gt;cp -i &amp;lt;originfile&amp;gt; &amp;lt;targetfile&amp;gt;&lt;/code&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to rename or move a file (or directory), use the &lt;code&gt;mv&lt;/code&gt; command and type 👉 &lt;code&gt;mv &amp;lt;oldname&amp;gt; &amp;lt;newname&amp;gt;&lt;/code&gt; for instance &lt;code&gt;mv book.doc index.html&lt;/code&gt; to rename a file or &lt;code&gt;mv &amp;lt;directoryname&amp;gt; &amp;lt;targetdirectory&amp;gt;&lt;/code&gt; to move a directory. You can also move a file or directory by first using the &lt;code&gt;cp&lt;/code&gt; and then the&lt;code&gt;rm&lt;/code&gt; commands. Remember to use the &lt;code&gt;-r&lt;/code&gt; flag when copying directories. To move or copy a file to the current directory, specify the path/location of the file followed by &lt;code&gt;.&lt;/code&gt; (which means the 'current directory') for instance type 👉 &lt;code&gt;cp ~/book/page.txt .&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to print the results of a command to the console, add the &lt;code&gt;-v&lt;/code&gt; flag. e.g, &lt;code&gt;rm -v book.doc&lt;/code&gt;. Using this flag can provide useful reporting when writing scripts that will execute a lot of commands for you.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: most command line programs support &lt;em&gt;tab completion&lt;/em&gt;, which involves automatically completing a word if there's only one valid match on the system. For example, if the only file starting with the letters 'Pic' is Picture, you could create the command to remove it as follows 👉  &lt;code&gt;rm Pic⇥&lt;/code&gt; where ⇥ is the tab key. The program would then complete the filename, yielding &lt;code&gt;rm Picture&lt;/code&gt;. This feature is especially handy  with longer filenames (or directories) where tab completion can save a huge amount of typing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Navigating Directories and Files&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;to find out where you are on the terminal, use the &lt;code&gt;pwd&lt;/code&gt; command. You can also use this to get the path of your home directory. To see if a given program is available at&lt;br&gt;
the command line, type 👉 &lt;code&gt;which &amp;lt;program name&amp;gt;&lt;/code&gt;. The &lt;code&gt;which&lt;/code&gt; command technically locates a file on the user’s [usr] path; which is a list of directories where executable programs are located.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to see what files or directories are in your current directories, type &lt;code&gt;ls&lt;/code&gt;. To see both 'visible' and 'hidden' files and directories, use the &lt;code&gt;-a&lt;/code&gt; flag as follows 👉 &lt;code&gt;ls -a&lt;/code&gt;. To find out the contents of another directory, without first leaving your current directory, specify the full path of the other directory to the &lt;code&gt;ls&lt;/code&gt; command as follows 👉 &lt;code&gt;ls /home/username/Documents/novel&lt;/code&gt;. To list directories' names only without listing their contents use the &lt;code&gt;-d&lt;/code&gt; flag, for instance type 👉 &lt;code&gt;ls -d txt*&lt;/code&gt; to list all files and directories starting with &lt;em&gt;txt&lt;/em&gt; without listing their contents.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to list all files and directories of a certain type for instance; for all files ending in &lt;em&gt;txt&lt;/em&gt; pattern, type 👉 &lt;code&gt;ls *txt&lt;/code&gt;; for all files starting with &lt;em&gt;txt&lt;/em&gt;, type 👉 &lt;code&gt;ls txt*&lt;/code&gt;; for all files containing &lt;em&gt;txt&lt;/em&gt;, type 👉 &lt;code&gt;ls *txt*&lt;/code&gt;. To find files whose names match a certain pattern or file extension e.g &lt;code&gt;.txt&lt;/code&gt; starting in the current directory &lt;code&gt;.&lt;/code&gt; and in its sub-directories, use the &lt;code&gt;find&lt;/code&gt; command and type 👉 &lt;code&gt;find . -name '*.txt'&lt;/code&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to find out detailed information on files and directories, type 👉 &lt;code&gt;ls -l&lt;/code&gt;. To see the sizes of files and directories, in human readable format such as 1K or 23M, use 👉 &lt;code&gt;ls -lh&lt;/code&gt;.  To list the long form of each file or directory in order of how recently it was modified (&lt;em&gt;reversed&lt;/em&gt; so that the most recently modified entries appear at the bottom of the screen for easy inspection), type 👉 &lt;code&gt;ls -lrt&lt;/code&gt;. To display the long form of files sorted so the largest files appear at the bottom, type 👉 &lt;code&gt;ls -lrS&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to navigate to the home directory, simply type 👉 &lt;code&gt;cd&lt;/code&gt;. To navigate back up a directory (i.e to move one level up to the parent directory of the current directory) type 👉 &lt;code&gt;cd ..&lt;/code&gt; To move change directories to the &lt;em&gt;previous&lt;/em&gt; directory, wherever that was, type 👉 &lt;code&gt;cd -&lt;/code&gt;. To move to an immediate sub-directory, type 👉 &lt;code&gt;cd &amp;lt;directory&amp;gt;&lt;/code&gt; e.g &lt;code&gt;cd Documents&lt;/code&gt;. To simply change directories, call the &lt;code&gt;cd&lt;/code&gt; command by specifying to it the full path of the directory you want to navigate to e.g, &lt;code&gt;cd ~/book&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to redirect the output of one command to the input of another command, use the pipe operator &lt;code&gt;|&lt;/code&gt;. For instance, to interactively navigate the full output of a command like &lt;code&gt;git help&lt;/code&gt; in your terminal window, pipe the output to &lt;code&gt;less&lt;/code&gt; as follows 👉 &lt;code&gt;git help | less&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to combine commands, use the semicolon &lt;code&gt;;&lt;/code&gt; or double-ampersand &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; characters after each command you want to combine e.g. to create a file in another directory without leaving your current directory, type 👉&lt;code&gt;cd &amp;lt;directory&amp;gt; &amp;amp;&amp;amp; touch &amp;lt;filename&amp;gt; &amp;amp;&amp;amp; cd -&lt;/code&gt;. The difference between these two characters is that commands separated by &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; execute only if the previous command succeeded while with &lt;code&gt;;&lt;/code&gt; all the commands will be executed no matter what.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Hey, thanks for reading!&lt;/em&gt; 👋 👋&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was originally published on&lt;/em&gt; &lt;a href="https://theconsistentdeveloper.hashnode.dev/" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>codenewbie</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How I Plan to Learn to Code Before 2022</title>
      <dc:creator>Dolamu</dc:creator>
      <pubDate>Sun, 15 Aug 2021 08:09:21 +0000</pubDate>
      <link>https://forem.com/dolamu/how-i-plan-to-learn-to-code-before-2022-4o9p</link>
      <guid>https://forem.com/dolamu/how-i-plan-to-learn-to-code-before-2022-4o9p</guid>
      <description>&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@cgower?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Christopher Gower&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/coding?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have always wanted to code. Actually, I have always been interested in learning about computers, my desire to learn code arrived much later. As a student, I had a friend who was studying computer tech, and whenever I had a problem with my computer (be it a software update, hardware issue etc), I would watch him work on it, take mental notes, and the next time something similar occured, I would try to fix it myself. I was so intrigued about all things tech and computers back then that whenever I heard words like "program", "developer", "internet", "code", etc., I felt totally curious and wanted to know more about them. However, as an accounting professional with a hectic work schedule, I had no time to indulge my curiosity about an industry I was so passionate about. Additionally, due to my lack of background in STEM, I thought there was no way I could break into tech. &lt;/p&gt;

&lt;p&gt;Then came the pandemic, and the lockdown left me with extra time on my hands. I started reading online and I discovered that &lt;a href="https://thenextweb.com/news/over-65-percent-of-new-developers-are-self-taught-im-surprised-its-not-100-percent" rel="noopener noreferrer"&gt;lots of developers are self-taught&lt;/a&gt; and (like me) had no formal background in tech. This motivated me greatly, and I realised that maybe there is hope for me after all. So I started researching how to learn to code and while doing that, I heard about &lt;a href="//freecodecamp.org"&gt;freeCodeCamp&lt;/a&gt;, and coincidentally ran into &lt;a href="https://www.freecodecamp.org/news/join-the-code-book-club/" rel="noopener noreferrer"&gt;this article about a virtual meetup for developers to learn together&lt;/a&gt; on Discord. It was amazing that I stumbled upon that post at the time I did, because before then I had never heard of Discord and not long after joining, I learned about the &lt;a href="https://www.stanforddaily.com/2020/06/08/code-in-place-makes-cs-accessible-to-thousands-worldwide/" rel="noopener noreferrer"&gt;Stanford Code in Place&lt;/a&gt; free Python course. It was during the application process for this online class that I first discovered what programming was all about. I don't know if anybody else remembers their first time learning code, but it was so exciting for me, I decided to &lt;a href="https://theconsistentdeveloper.hashnode.dev/learn-in-public-my-first-time-writing-code" rel="noopener noreferrer"&gt;blog about it&lt;/a&gt;. I promised myself I was going to pick up other learning resources at the end of the class to continue my coding journey but that was not to be.&lt;/p&gt;

&lt;p&gt;Prior to enrolling in the &lt;a href="https://codeinplace.stanford.edu/" rel="noopener noreferrer"&gt;Code-in-Place&lt;/a&gt; course, I created an account on The Odin Project and &lt;a href="//freecodecamp.org"&gt;freeCodeCamp&lt;/a&gt; where I started taking basic HTML lessons. However, I took a break once the Python class began, so I could concentrate on the course fully. As I mentioned earlier, I wanted to continue studying web development after the class. However, between my still-exhausting fulltime work schedule and other life dynamics, I never went back to coding. I signed up for courses on &lt;a href="https://app.pluralsight.com/library/" rel="noopener noreferrer"&gt;PluralSight&lt;/a&gt; through the &lt;a href="https://help.pluralsight.com/help/google" rel="noopener noreferrer"&gt;Google Africa Developer Scholarship&lt;/a&gt; 2020 program but later dropped out because I selected the wrong learning track. My freecodecamp and The Odin Project courses were waiting for me but I kept pushing back my start date, until there were no more days left in 2020, and I realized I had not actually done any coding at all. &lt;/p&gt;

&lt;p&gt;On my list of resolutions for this year, learning to code was at the top. The first half of 2021 came and went and I realized I hadn't managed to do as much coding or learning as I really wanted. Other commitments and hindrances kept cropping up - there was always something else I had to do. But I was determined to learn how to code. Each time I receive a newsletter from a developer community (like Hashnode, &lt;a href="https://dev.to/"&gt;Devto&lt;/a&gt; or &lt;a href="https://code.quora.com/" rel="noopener noreferrer"&gt;Quora code groups&lt;/a&gt;) I've subscribed to, I'm reminded all over again how much I'd like to be a part of this. &lt;/p&gt;

&lt;p&gt;As the second half of 2021 approached, it dawned on me that another year was drawing to a close without me accomplishing my dream. I didn't want that, so I decided to make a new plan, which is to commit to learning to code for at least one hour every day. I've been trying out this new plan since mid-July when I finally logged into my &lt;a href="//theodinproject.com"&gt;The Odin Project&lt;/a&gt; account again for the first time since leaving it last year. However, because of my tendency to procrastinate and not finish things, I'll be employing a &lt;a href="https://en.wikipedia.org/wiki/Commitment_device" rel="noopener noreferrer"&gt;commitment device&lt;/a&gt; to &lt;a href="https://www.swyx.io/learn-in-public/" rel="noopener noreferrer"&gt;learn in public&lt;/a&gt; by blogging on what I've learned each week.&lt;/p&gt;

&lt;p&gt;To this end, I have created a series on Hashnode titled &lt;a href="https://theconsistentdeveloper.hashnode.dev/series/what-i-learnt-today" rel="noopener noreferrer"&gt;#mytechjourney&lt;/a&gt; in which I will be documenting what I learn each week. I already drafted five posts on what I've learned since July, however, I wanted to post this article first before publishing them. Having done so now, I'll be publishing every week. 🤞 I realize that this is not going to be easy; distractions will arise as usual, and other commitments (work, life, etc.) will require my time, but I intend to see this through.&lt;/p&gt;

&lt;p&gt;Hey, thanks for reading! &lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Previously published &lt;a href="https://theconsistentdeveloper.hashnode.dev/how-i-plan-to-learn-to-code-before-2022" rel="noopener noreferrer"&gt;on my blog&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>motivation</category>
      <category>wecoded</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
