<?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: G Sudarshan</title>
    <description>The latest articles on DEV Community by G Sudarshan (@gsudarshan).</description>
    <link>https://dev.to/gsudarshan</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%2F490650%2F9a6b832a-b307-46ee-bec7-64346e4af9f1.png</url>
      <title>DEV Community: G Sudarshan</title>
      <link>https://dev.to/gsudarshan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gsudarshan"/>
    <language>en</language>
    <item>
      <title>Unveiling the Common Traits of High-Performing Individuals Through Enneagram Types</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Mon, 17 Feb 2025 14:26:56 +0000</pubDate>
      <link>https://dev.to/gsudarshan/unveiling-the-common-traits-of-high-performing-individuals-through-enneagram-types-1j41</link>
      <guid>https://dev.to/gsudarshan/unveiling-the-common-traits-of-high-performing-individuals-through-enneagram-types-1j41</guid>
      <description>&lt;p&gt;In today’s fast-paced and competitive world, understanding what makes high-performing individuals excel in their fields is crucial. I conducted a study on a group of high achievers, analyzing their Enneagram types, wings, roles, and industries to uncover patterns and common traits. The Enneagram, a powerful personality framework, provides insights into motivations, fears, and behaviors, making it an excellent tool for this analysis. If you're curious about your Enneagram type, you can take the test here: &lt;a href="https://www.eclecticenergies.com/enneagram/test" rel="noopener noreferrer"&gt;Enneagram Test&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here’s what I discovered:&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%2F2bwpozkhkl8leqskrigt.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%2F2bwpozkhkl8leqskrigt.png" alt="Image description" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  The Dominance of Enneagram Type 9: The Peacemaker
&lt;/h3&gt;

&lt;p&gt;The most common Enneagram type among high performers in this study was &lt;strong&gt;Type 9 (The Peacemaker)&lt;/strong&gt;. These individuals are often found in collaborative roles such as software engineering, where teamwork and communication are key. They thrive in environments that require adaptability and the ability to see multiple perspectives.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Traits&lt;/strong&gt;: Adaptability, empathy, and a calm demeanor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why They Excel&lt;/strong&gt;: Their ability to mediate conflicts and maintain a balanced work environment helps them thrive in team-oriented settings.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  The Strategic Thinkers: Enneagram Type 5 (The Investigator)
&lt;/h3&gt;

&lt;p&gt;The second most common type was &lt;strong&gt;Type 5 (The Investigator)&lt;/strong&gt;. These individuals are often found in technical and analytical roles such as data science and software engineering. They excel in environments that require deep expertise, problem-solving, and innovation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Traits&lt;/strong&gt;: Intellectual curiosity, independence, and a focus on mastery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why They Excel&lt;/strong&gt;: Their ability to dive deep into complex problems and come up with innovative solutions makes them invaluable in technical roles.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  The Achievers: Enneagram Type 3 (The Achiever)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Type 3 (The Achiever)&lt;/strong&gt; was also well-represented, particularly in competitive industries like tech and finance. These individuals are often found in roles that require goal-setting, leadership, and high visibility. They thrive in fast-paced environments where results are paramount.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Traits&lt;/strong&gt;: Drive for success, adaptability, and a focus on results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why They Excel&lt;/strong&gt;: Their ability to set and achieve goals, coupled with their adaptability, makes them stand out in competitive industries.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  The Helpers: Enneagram Type 2 (The Helper)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Type 2 (The Helper)&lt;/strong&gt; was another prominent type, often found in roles that require collaboration, mentorship, and customer interaction. These individuals excel in environments where building strong relationships and fostering teamwork are essential.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Traits&lt;/strong&gt;: Empathy, strong interpersonal skills, and a desire to support others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why They Excel&lt;/strong&gt;: Their ability to build strong relationships and foster teamwork makes them essential in collaborative environments.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  The Perfectionists: Enneagram Type 1 (The Reformer)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Type 1 (The Reformer)&lt;/strong&gt; was also present, particularly in roles that require precision, quality control, and ethical standards. These individuals are often found in industries like finance and tech, where attention to detail and a strong work ethic are critical.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Traits&lt;/strong&gt;: Attention to detail, strong work ethic, and a focus on improvement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why They Excel&lt;/strong&gt;: Their commitment to high standards and continuous improvement ensures they deliver exceptional results.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  The Loyalists: Enneagram Type 6 (The Loyalist)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Type 6 (The Loyalist)&lt;/strong&gt; is known for their reliability, loyalty, and problem-solving skills. These individuals thrive in roles that require risk assessment, security, and teamwork, often found in industries like tech and finance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Traits&lt;/strong&gt;: Reliability, strategic thinking, and a focus on security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why They Excel&lt;/strong&gt;: Their ability to anticipate challenges and create contingency plans makes them valuable in high-stakes environments.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Common Themes Across High Performers&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Adaptability&lt;/strong&gt;: Whether it’s Type 9s maintaining harmony or Type 3s adapting to achieve goals, adaptability is a recurring theme.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt;: Types like 2 and 9 excel in teamwork, while Types 5 and 6 contribute through problem-solving and reliability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drive for Excellence&lt;/strong&gt;: Types 1 and 3 are particularly focused on achieving high standards and measurable success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emotional Intelligence&lt;/strong&gt;: Many high performers, especially Type 2s and 9s, demonstrate strong interpersonal skills and empathy.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;High-performing individuals come from diverse Enneagram types, each bringing unique strengths to the table. However, common traits like adaptability, collaboration, and a drive for excellence unite them. Understanding these patterns can help organizations build stronger teams and foster environments where individuals can thrive.&lt;/p&gt;

&lt;p&gt;Whether you’re a &lt;strong&gt;Peacemaker (Type 9)&lt;/strong&gt;, an &lt;strong&gt;Investigator (Type 5)&lt;/strong&gt;, or an &lt;strong&gt;Achiever (Type 3)&lt;/strong&gt;, recognizing your strengths and leveraging them can propel you to new heights in your career. The Enneagram is not just a tool for self-discovery but also a roadmap for unlocking your full potential.&lt;/p&gt;




&lt;p&gt;What’s your Enneagram type, and how do you see it influencing your work? Share your thoughts in the comments below!&lt;/p&gt;




&lt;p&gt;G Sudarshan &lt;a href="https://x.com/g_sudarshan11" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>excellence</category>
      <category>careerdevelopment</category>
      <category>enneagram</category>
      <category>personality</category>
    </item>
    <item>
      <title>Mastering Focus: 106 Insights for Effective Study Habits and Enhanced Concentration</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Sat, 03 Feb 2024 14:23:02 +0000</pubDate>
      <link>https://dev.to/gsudarshan/mastering-focus-106-insights-for-effective-study-habits-and-enhanced-concentration-25b</link>
      <guid>https://dev.to/gsudarshan/mastering-focus-106-insights-for-effective-study-habits-and-enhanced-concentration-25b</guid>
      <description>&lt;p&gt;These points are a compilation of my learnings from various sources, including &lt;a href="https://www.coursera.org/learn/learning-how-to-learn" rel="noopener noreferrer"&gt;Learning How to Learn&lt;/a&gt;, &lt;a href="https://www.amazon.in/Ready-Study-Go-Smart-Learn/dp/9352641345" rel="noopener noreferrer"&gt;Ready, Study, Go!: Smart Ways to Learn&lt;/a&gt;, &lt;a href="https://www.vivekanandabookworld.com/product-page/secret-of-concentration#:~:text=This%20small%20booklet%20is%20a,in%20the%20practice%20of%20concentration." rel="noopener noreferrer"&gt;Secret of Concentration&lt;/a&gt;, and &lt;a href="https://www.amazon.in/Deep-Work-Focused-Success-Distracted/dp/0349413681" rel="noopener noreferrer"&gt;Deep Work: Rules for Focused Success in a Distracted World&lt;/a&gt;. This blog or links given are not monetized, and all credit goes to the original authors. I highly recommend readers to purchase these courses/books for further learning.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Healthy body is the first step. Good diet, exercise/yoga/meditation is necessary.&lt;/li&gt;
&lt;li&gt;The mind is incredibly powerful at manifesting things you want, But it is also innocent and cannot differentiate between desire and fear or an aversion. And that's exactly why making intention clear is important so that you can tell clearly to mind, what to focus on. The mind latches on most powerful words - "fail" or "great" in this instance and manifest that for you. You should not have many intentions at the same time.&lt;/li&gt;
&lt;li&gt;Anything that is claimed to be a "quick fix" most definitely is not.&lt;/li&gt;
&lt;li&gt;Study for knowledge, not for marks. If you have knowledge, you will get the marks.&lt;/li&gt;
&lt;li&gt;No subject can be boring or uninteresting. When you have thoroughly understood subjects, when you have grasped the fundamentals and are confident about your knowledge of it, then education has truly happened.&lt;/li&gt;
&lt;li&gt;If you are only studying for great marks, you may possibly get a head start in life, but the people who truly understand their subjects will overtake you.&lt;/li&gt;
&lt;li&gt;You will need to memorize a lot of information, There is nothing wrong with that as long as you understand what you are memorizing.&lt;/li&gt;
&lt;li&gt;If we decide to like a subject, it grows on us. What you like and not like is your decision, and you can change it anytime. Take responsibility for what's happening in your mind and in your life. Only you can fix it.&lt;/li&gt;
&lt;li&gt;20-30 minutes of completely uninterrupted focused work can do wonders. &lt;a href="https://en.wikipedia.org/wiki/Pomodoro_Technique" rel="noopener noreferrer"&gt;Pomodoro Technique&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;As you build up knowledge about subject and start to understand even just a little bit of it, you gain confidence and can work even longer.&lt;/li&gt;
&lt;li&gt;Taking responsibility for your actions and inaction helps you dramatically increase chances of success in your life.&lt;/li&gt;
&lt;li&gt;Consciously choose to like the subject.&lt;/li&gt;
&lt;li&gt;Teaching friends is unbeatable.&lt;/li&gt;
&lt;li&gt;Whenever you listen, see, talk, read, write, feel, taste or practice something, fibers called dendrites grow out of the neurons. New dendrites take time to grow. Practice makes connection stronger and stronger.&lt;/li&gt;
&lt;li&gt;70% of anything new is forgotten within 24 hours if it is practiced right away. Practice is not simply reading and writing again and again. Test your knowledge. Apply it.&lt;/li&gt;
&lt;li&gt;Be careful of bad habits like watching too much TV for example can cause too many of those dendrites to grow, giving your brain the wrong signal that this is very important to you.&lt;/li&gt;
&lt;li&gt;We remember 95% of what we teach to someone else. &lt;/li&gt;
&lt;li&gt;Learning is just a matter of growing dendrites and strengthening connections between them. Practice what you learned within 24 hours, A few times again in a week. Don't fool in thinking that you know the material - practice, discuss and teach.&lt;/li&gt;
&lt;li&gt;Draw mind maps on whiteboard or paper. &lt;a href="https://www.adelaide.edu.au/writingcentre/sites/default/files/docs/learningguide-mindmapping.pdf" rel="noopener noreferrer"&gt;Read this to know more&lt;/a&gt;
6 C's of mind mapping
c1: Central Idea 
c2: conciseness
c3: craziness
c4: curves 
c5: colors
c6: cartoons&lt;/li&gt;
&lt;li&gt;Good news needs to be flow around, downwards and upwards. If you have bad news, share it only with your superiors or with people who can do something about it.&lt;/li&gt;
&lt;li&gt;When faced with a task, come up with ideas how to accomplish it. Don't waste time giving reasons about why it cannot be done. Accept that it has to happen and figure out ways of making it happen.&lt;/li&gt;
&lt;li&gt;"With" - This single word can make such a huge difference in the way leader leads the team. One leader says he has a team working under him. Another says he has a team working with him.&lt;/li&gt;
&lt;li&gt;Authority equation
Authority to be shown = criticality of project / Experience of the team&lt;/li&gt;
&lt;li&gt;Tremendous satisfaction comes from a job well done.&lt;/li&gt;
&lt;li&gt;Take full responsibility if the team fails and pass on the credit to them if they succeed. Turning problem into opportunity is the leader's job.&lt;/li&gt;
&lt;li&gt;Fair compensation, instilling a sense of purpose, giving opportunities for mastery, granting autonomy and generating feeling of safety are cornerstones of secrets of creating and leading great teams.&lt;/li&gt;
&lt;li&gt;It's not about what's being said, it's all about who is saying it.&lt;/li&gt;
&lt;li&gt;The most authentic thing about us - human beings, is our capacity to love =, to laugh, to create, to overcome, to endure, to transform and to be greater than whatever challenges life throws at us.&lt;/li&gt;
&lt;li&gt;Pain is inevitable, suffering is optional.&lt;/li&gt;
&lt;li&gt;Udyoginam Purushsimha upeyati Laxmi. - Laxmi (wealth and success) comes to the one who is willing to work dilligently and has the courage of a lion. Believe that you have this courage and work hard. Keep your eyes wide open, When opportunity knocks open the door.&lt;/li&gt;
&lt;li&gt;Intention, Attention, Manifestation &lt;/li&gt;
&lt;li&gt;&lt;p&gt;You only have control over your actions, never results of those actions. &lt;br&gt;
Karmanye vadhikaraste Ma Phaleshu Kadachana,&lt;br&gt;
Ma Karmaphalaheturbhurma Te Sangostvakarmani&lt;br&gt;
By Lord Krishna, &lt;a href="https://vivekavani.com/bhagavad-gita-chapter-2-verse-47/" rel="noopener noreferrer"&gt;Bhagavad Gita, Chapter 2, Verse: 47&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your reason behind study/work should be strong. The "Why" should be strong enough to sustain you in long term in same work that you don't need any external motivation for it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Intention, attention on action, non-attachment to results, ability to wait and a strong reason results in manifestation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don't ever spend more than you earn.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One of the biggest secret to secret of attracting wealth is donating a part of it to charity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The ability to give is the signature of being rich.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be in the company of people who respect wealth.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Never ever use derogatory words like filthy, stinking, obscene etc. to describe prosperity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rich people invest, others save.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don't get caught up in anything that promises quick money. It simply doesn't exist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Abundance begets abundance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gratitude for all that you have and forbearance to wait and work for all that you want will make you very, very rich indeed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you have acquired the knowledge, it will always be yours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practice brings perfection. Learning and repeating something 20 times a say is useless, but repeating and revising it once a day for 10 days makes great foundation.&lt;br&gt;
46.Whenever we try to learn something neural connections are made which further gives rise to new ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you felt lecture is getting boring ask a question, you will be conscious about lecture. Active learning is far better than passive learning. Learning by doing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Exercise gives rise/birth to new neurons. Hence physical workout is important.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Success isn't come to smart people, there are many smart people who are not successful, but there are lots of people very, very passionate and persistent of really staying the course, studying, working on it and not letting go, Not giving up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are two thinking mode - focused thinking mode and diffused thinking mode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Procrastination is the root of all evil.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Focus, Practice, repetition&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chunks are literally chunks of information in our brain. Chunks can be made by practicing consciously again and again. First step to form chunk is giving full attention towards information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Only doing it yourself helps create that underlie true mastery.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recalling is far better than rereading&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rereading is illusion of competence (studying) in case are feeling doing it easier than recalling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recalling material when you are outside your usual place can also help to strengthen it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write on paper to as you have to teach it to someone else.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chunking is related to habbit. the clue - The routine -  The reward - The habbit&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Minimize distractions while studying.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write weekly and daily journal planner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Try to work on most disliked and most important task first.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arrange your work in small challenges and make sure you get the reward.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Studying before sleep is very useful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Associate study that should be memorized with interesting things.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visual representation is great in memorization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practice problem-solving.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For memorization group and simplify your content in memory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://artofmemory.com/blog/how-to-build-a-memory-palace/" rel="noopener noreferrer"&gt;Memory palace technique&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Metaphors are useful in memorization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;People learn by trying to make sense out of the information they perceive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Taking responsibility for your own learning is one of the most important things you can do.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You must not fool yourself. You are easiest person to be fooled by you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing is itself an extraordinary powerful learning experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test preparation checklist&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you make serious effort to understand the text?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you work with classmates on homework problems?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you attempt to outline every homework problem solution?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you participate actively in homework group discussions?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you understand all of your homework problem solution? (when they are handed to you)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you ask in class for explanation of homework problem solution that weren't clear to you?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you had a study guide, did you carefully go through if before the test and convince yourself that you could do everything on it?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you attempt to outline lots of problem solution quickly?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you go over study guide and problems with classmates and quiz one another&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If there was a review session before the test, did you attend it and ask questions about anything you weren't sure about?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did you get the reasonable night's sleep before the test?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practice makes permanent.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You have not truly learned something unless you can teach it to others.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Passions can broaden, change and grow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consistency and hardwork leads to concentration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Human mind is a combination of monkey's jumps from here to there and elephant's power. The one who can control both monkey and elephant can control the mind.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you sit for study be stable, give atleast 1 hour to a subject at a time. Tell others to not to disturb you at the time of study.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To be aware at mind level - &lt;br&gt;
Avoid food which tends to sleep.&lt;br&gt;
Be clean, keep clothes and room neat and clean.&lt;br&gt;
have determination.&lt;br&gt;
chitchatting and unnecessary talking should be completely avoided.&lt;br&gt;
Eat dry fruits.&lt;br&gt;
If you have faith in something pray him/her honestly.&lt;br&gt;
Faith leads to confidence.&lt;br&gt;
Don't doubt your own ability of learning.&lt;br&gt;
One more key to concentration is love, mind always resides on what it loves. student need to develop love for study.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In begining student needs to put efforts to like study, afterwards when subject is clear to you , being undertood by you, your interest in studies also grow automatically.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faith and love brings concentration effortlessly without any conflict.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you don't understand a word, find it's meaning. This is silly thing but many a times people go on reading just for sake of reading wihtout properly understanding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;However genius you are, nothing is achieved without enough hardwork and try.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nothing is impossible for a human with persistence and who is stick to his aim.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non-attachment should be practised to achieve your aim all other attractions (or actually "distractions") should be avoided. you should not think about anything else rather than your current work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you have develop a little interest and concentration you should increase speed and hardwork.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;True sign of concentration is you forgot other things while studying even thirst and hunger too.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deep Work: Professional activities performed in a state of distraction free concentration that push your cognitive capabilities to their limit. These efforts create new value, improve your skill and are hard to replicate.&lt;br&gt;
Shallow Work: Non cognitive demanding, logistical-style tasks, often performed while distracted. These efforts tend to not create much value in the world and are easy to replicate&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Two core abilities for thriving in new economy are &lt;br&gt;
first is the ability to quckly master hard things and second is the ability to produce at eleite level in terms of both quality and speed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deep work helps you quickly learn hard things and deep work helps you to produce at elite level.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Beatiful code is short and concise, so if you were to give that code to another programmer, they would say, "oh, that's well written code. It's much like as if you were writing a poem"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Embrace boredom.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don't take breaks from distraction, Instead take breaks from focus. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>studyhabits</category>
      <category>focustechniques</category>
      <category>effectivelearning</category>
      <category>concentrationtips</category>
    </item>
    <item>
      <title>How Install MySQL and Workbench on Windows</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Wed, 04 May 2022 13:49:12 +0000</pubDate>
      <link>https://dev.to/gsudarshan/install-mysql-on-windows-1g77</link>
      <guid>https://dev.to/gsudarshan/install-mysql-on-windows-1g77</guid>
      <description>&lt;h3&gt;
  
  
  Step 1
&lt;/h3&gt;

&lt;p&gt;Go to &lt;a href="https://dev.mysql.com/downloads/installer/" rel="noopener noreferrer"&gt;https://dev.mysql.com/downloads/installer/&lt;/a&gt; and download Windows (x86, 32-bit), MSI Installer [ 422 MB size ]&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%2F8iqngco4ywrrugcndwu7.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%2F8iqngco4ywrrugcndwu7.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 On next page website will ask to login just click on "&lt;strong&gt;No Thanks, Just Start my download"&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2
&lt;/h3&gt;

&lt;p&gt;Execute the downloaded file.&lt;/p&gt;

&lt;p&gt;You will be asked to choose a setup&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Developer Setup&lt;/strong&gt;, click on next&lt;/p&gt;

&lt;p&gt;then some things like Extension for VSCode or if Python is not installed on your PC installer will ask you to download and install it manually but you can ignore that as they are not essential ( unless you are going to use python itself for development )  &lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3
&lt;/h3&gt;

&lt;p&gt;The Installation&lt;/p&gt;

&lt;p&gt;All products to be installed will be listed &lt;/p&gt;

&lt;p&gt;click on execute to install all of them&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%2Fcix79cdixbv7n2crilqc.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%2Fcix79cdixbv7n2crilqc.png" alt="Image description" width="800" height="599"&gt;&lt;/a&gt;&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%2F85pqo1rbd8kmseddhxrw.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%2F85pqo1rbd8kmseddhxrw.png" alt="Image description" width="785" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;click on next&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4
&lt;/h3&gt;

&lt;p&gt;Product Configuration&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%2Fwzeht51aqa0658o0ai4k.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%2Fwzeht51aqa0658o0ai4k.png" alt="Image description" width="787" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;click on next&lt;/p&gt;

&lt;p&gt;ports will be available to configure in most of the cases leave it as it is, But if you need to change ports due to clashes between different services with same you probably understand what you are doing so I don't need to elaborate that here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you don't know what to do or feeling confused just click on next&lt;/strong&gt;&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%2Fswrjl0i7pnfiiwk5eler.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%2Fswrjl0i7pnfiiwk5eler.png" alt="Image description" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;here too click on next&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5
&lt;/h3&gt;

&lt;p&gt;Set password for root user&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%2Fmv56yue9ek3mp5smjwe6.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%2Fmv56yue9ek3mp5smjwe6.png" alt="Image description" width="796" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you can also add other users here but if you are installing it first time you probably using it for learning purpose hence you don't need it, don't worry you can create users later too.&lt;/p&gt;

&lt;p&gt;Click on Next&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%2F2vdtu2izckllj6ci5zx0.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%2F2vdtu2izckllj6ci5zx0.png" alt="Image description" width="780" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again click on Next&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%2F0ox15d6aat8pu3183k6n.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%2F0ox15d6aat8pu3183k6n.png" alt="Image description" width="796" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Execute [ this will take time to apply configuration ]&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%2Ftp350f3hbd2tf8if71r8.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%2Ftp350f3hbd2tf8if71r8.png" alt="Image description" width="793" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Finish&lt;/p&gt;

&lt;p&gt;Again click on Next ( It will ask for configuration again ignore and click on Next )&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%2F4mhtg8unlpi2vlwkrk6w.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%2F4mhtg8unlpi2vlwkrk6w.png" alt="Image description" width="796" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;click on Finish&lt;/p&gt;

&lt;p&gt;Click on next till following window appears&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%2Fbaz4p3hcaoc2fvtvd9x5.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%2Fbaz4p3hcaoc2fvtvd9x5.png" alt="Image description" width="793" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter Password you created in previous steps and click on Check&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%2Fij5qsk2j6wmzsuhnpsp3.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%2Fij5qsk2j6wmzsuhnpsp3.png" alt="Image description" width="787" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Next&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%2Fh3u5rheym4hof00hs9fi.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%2Fh3u5rheym4hof00hs9fi.png" alt="Image description" width="800" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Execute&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%2F8ahrqqmhakbxkw8n4hdc.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%2F8ahrqqmhakbxkw8n4hdc.png" alt="Image description" width="795" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Finish&lt;/p&gt;

&lt;p&gt;On next window it will ask for configuration again just click on next&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%2F0r4iqj9iekd16iypm8lk.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%2F0r4iqj9iekd16iypm8lk.png" alt="Image description" width="797" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Finish&lt;/p&gt;

&lt;p&gt;You have successfully installed MySQL and MySQL workbench on windows.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6
&lt;/h3&gt;

&lt;p&gt;To verify successful installation &lt;/p&gt;

&lt;p&gt;open MySQL Workbench&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%2Fdlis0zsmak49lhekyd0p.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%2Fdlis0zsmak49lhekyd0p.png" alt="Image description" width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;click on Local instance&lt;/p&gt;

&lt;p&gt;Enter password created during setup&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%2Fjriljrk98g5tlb1ii5uq.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%2Fjriljrk98g5tlb1ii5uq.png" alt="Image description" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter query " show databases; " and click on lightning symbol to execute it&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%2F99aycw9xw68jj5jz0y0t.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%2F99aycw9xw68jj5jz0y0t.png" alt="Image description" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you get this output like this, Yes you have installed MySQL and MySQL workbench completely!&lt;/p&gt;

&lt;p&gt;Happy Programming!&lt;/p&gt;




&lt;p&gt;🐦 &lt;a href="https://twitter.com/g_sudarshan11" rel="noopener noreferrer"&gt;@g_sudarshan11 Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🐧 &lt;a href="https://github.com/G-Sudarshan" rel="noopener noreferrer"&gt;G-Sudarshan GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🏒 &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;g-sudarshan LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 &lt;a href="https://instagram.com/g_sudarshan11" rel="noopener noreferrer"&gt;@g_sudarshan11&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mysql</category>
      <category>windows</category>
      <category>sql</category>
      <category>installation</category>
    </item>
    <item>
      <title>Git and GitHub 101</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Tue, 03 May 2022 11:12:34 +0000</pubDate>
      <link>https://dev.to/gsudarshan/git-and-github-101-2eki</link>
      <guid>https://dev.to/gsudarshan/git-and-github-101-2eki</guid>
      <description>&lt;p&gt;Git is the open source distributed version control system that facilitates GitHub activities on your laptop or desktop. This blog post summarizes commonly used Git command line instructions for quick reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;Git for All Platforms&lt;br&gt;
&lt;a href="http://git-scm.com" rel="noopener noreferrer"&gt;http://git-scm.com&lt;/a&gt;&lt;br&gt;
Git distributions for Linux and POSIX systems are also available on the official Git SCM web site&lt;/p&gt;
&lt;h2&gt;
  
  
  Configure tooling ( you have to configure this only one time after installation )
&lt;/h2&gt;

&lt;p&gt;Configure user information for all local repositories&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config --global user.name "[name]"&lt;/code&gt;&lt;br&gt;
Sets the name you want attached to your commit transactions&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config --global user.email "[email address]"&lt;/code&gt;&lt;br&gt;
Sets the email you want attached to your commit transactions&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config --global color.ui auto&lt;/code&gt;&lt;br&gt;
Enables helpful colorization of command line output ( you can skip this if you want )&lt;/p&gt;
&lt;h2&gt;
  
  
  Create repositories
&lt;/h2&gt;

&lt;p&gt;When starting out with a new repository, you only need to do it once; either locally, then push to GitHub, or by cloning an existing repository.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git init&lt;/code&gt;&lt;br&gt;
Turn an existing directory into a git repository&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git clone [url]&lt;/code&gt;&lt;br&gt;
Clone (download) a repository that already exists on&lt;br&gt;
GitHub, including all of the files, branches, and commits.&lt;/p&gt;
&lt;h2&gt;
  
  
  connecting Git and GitHub via SSH
&lt;/h2&gt;

&lt;p&gt;This is one of the most important things to set-up git and GitHub. I'll recommend you to follow these two pages of official GitHub documentation to genarate and add SSH keys.&lt;br&gt;
✅ &lt;a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent" rel="noopener noreferrer"&gt;Generating a new SSH key and adding it to the ssh-agent&lt;/a&gt; &lt;br&gt;
✅ &lt;a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account" rel="noopener noreferrer"&gt;Adding a new SSH key to your GitHub account&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Synchronize changes ( Most frequently used part )
&lt;/h2&gt;

&lt;p&gt;Synchronize your local repository with the remote repository&lt;br&gt;
on GitHub.com&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git add [file]&lt;/code&gt;&lt;br&gt;
To add file to stage. Mostly you will be using &lt;code&gt;git add .&lt;/code&gt; to add all file at once&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git commit -m "commit message"&lt;/code&gt;&lt;br&gt;
All the file changes that are on the stage will be commited ( saved ) in local git repo after this command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git status&lt;/code&gt;&lt;br&gt;
To check current status of repository.&lt;/p&gt;
&lt;h2&gt;
  
  
  Adding a remote repository
&lt;/h2&gt;

&lt;p&gt;To add a new remote, use the git remote add command on the terminal, in the directory your repository is stored at.&lt;/p&gt;

&lt;p&gt;The git remote add command takes two arguments:&lt;/p&gt;

&lt;p&gt;A remote name, for example, origin&lt;br&gt;
A remote URL, for example, &lt;a href="https://github.com/user/repo.git" rel="noopener noreferrer"&gt;https://github.com/user/repo.git&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git remote add origin https://github.com/user/repo.git
# Set a new remote

$ git remote -v
# Verify new remote
&amp;gt; origin  https://github.com/user/repo.git (fetch)
&amp;gt; origin  https://github.com/user/repo.git (push)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Remote repository synchronization
&lt;/h2&gt;

&lt;p&gt;to push the changes to remote repo for first time use the following command&lt;br&gt;
&lt;code&gt;$ git push [remote] [branch] -u&lt;/code&gt; &lt;br&gt;
✓ Remember -u is used only when pushing for first time later on you can simple use&lt;br&gt;
&lt;code&gt;$ git push [remote] [branch]&lt;/code&gt; &lt;br&gt;
Uploads all local branch commits to GitHub&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git fetch [remote] [branch]&lt;/code&gt;&lt;br&gt;
Downloads all history from the remote tracking branches&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git merge&lt;/code&gt;&lt;br&gt;
Combines remote tracking branch into current local branch&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git pull [remote] [branch]&lt;/code&gt;&lt;br&gt;
Updates your current local working branch with all new&lt;br&gt;
commits from the corresponding remote branch on GitHub.&lt;br&gt;
 &lt;code&gt;git pull&lt;/code&gt; is a combination of &lt;code&gt;git fetch&lt;/code&gt; and &lt;code&gt;git merge&lt;/code&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  The .gitignore file
&lt;/h2&gt;

&lt;p&gt;Sometimes it may be a good idea to exclude files from being&lt;br&gt;
tracked with Git. This is typically done in a special file named &lt;code&gt;.gitignore&lt;/code&gt; . You can find helpful templates for &lt;code&gt;.gitignore&lt;/code&gt; files at &lt;a href="//github.com/github/gitignore"&gt;github.com/github/gitignore&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Branches
&lt;/h2&gt;

&lt;p&gt;Branches are an important part of working with Git. Any&lt;br&gt;
commits you make will be made on the branch you're currently&lt;br&gt;
“checked out” to. Use &lt;code&gt;git status&lt;/code&gt; to see which branch that is.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch [branch-name]&lt;/code&gt;&lt;br&gt;
Creates a new branch&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git checkout [branch-name]&lt;/code&gt;&lt;br&gt;
Switches to the specified branch and updates the&lt;br&gt;
working directory&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git merge [branch]&lt;/code&gt;&lt;br&gt;
Combines the specified branch’s history into the current branch. This is usually done in pull requests, but is an important Git operation.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch -d [branch-name]&lt;/code&gt;&lt;br&gt;
Deletes the specified branch&lt;/p&gt;




&lt;h2&gt;
  
  
  Glossary
&lt;/h2&gt;

&lt;p&gt;git: an open source, distributed version-control system&lt;br&gt;
GitHub: a platform for hosting and collaborating on Git repositories&lt;br&gt;
commit: a Git object, a snapshot of your entire repository compressed into a SHA&lt;br&gt;
branch: a lightweight movable pointer to a commit&lt;br&gt;
clone: a local version of a repository, including all commits and branches&lt;br&gt;
remote: a common repository on GitHub that all team member use to exchange their changes&lt;br&gt;
fork: a copy of a repository on GitHub owned by a different user&lt;br&gt;
pull request: a place to compare and discuss the differences introduced on a branch with reviews, comments, integrated&lt;br&gt;
tests, and more&lt;br&gt;
HEAD: representing your current working directory, the HEAD pointer can be moved to different branches, tags, or commits&lt;br&gt;
when using &lt;code&gt;git checkout&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning Resources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://learngitbranching.js.org/" rel="noopener noreferrer"&gt;Git branching interactive learning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/RGOj5yH7evk" rel="noopener noreferrer"&gt;Git and GitHub for Beginners - Crash Course
&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thank You!&lt;/p&gt;

&lt;p&gt;🐦 &lt;a href="https://twitter.com/g_sudarshan11" rel="noopener noreferrer"&gt;@g_sudarshan11 Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🐧 &lt;a href="https://github.com/G-Sudarshan" rel="noopener noreferrer"&gt;G-Sudarshan GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🏒 &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;g-sudarshan LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 &lt;a href="https://instagram.com/g_sudarshan11" rel="noopener noreferrer"&gt;@g_sudarshan11 Instagram&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How To Install Node.js and NPM on Ubuntu 20.04</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Sat, 02 Apr 2022 11:18:06 +0000</pubDate>
      <link>https://dev.to/gsudarshan/how-to-install-nodejs-and-npm-on-ubuntu-2004-24kj</link>
      <guid>https://dev.to/gsudarshan/how-to-install-nodejs-and-npm-on-ubuntu-2004-24kj</guid>
      <description>&lt;p&gt;Run following commands on terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install nodejs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To check which version of node is installed on machine type following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To install NPM (Node Package Manager) run following command on terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install npm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;a href="https://github.com/G-Sudarshan" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://twitter.com/g_sudarshan11" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>node</category>
      <category>npm</category>
      <category>linux</category>
    </item>
    <item>
      <title>Barclays Internship Interview Experience</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Tue, 30 Nov 2021 06:59:54 +0000</pubDate>
      <link>https://dev.to/gsudarshan/barclays-internship-interview-experience-4ob4</link>
      <guid>https://dev.to/gsudarshan/barclays-internship-interview-experience-4ob4</guid>
      <description>&lt;p&gt;Barclays visited my college for summer internship ( BA3 intern role ) in third week of November 2021. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Round 1(Online Test):&lt;/strong&gt;&lt;br&gt;
First there was a MCQ+coding round. In which there were 30 MCQ questions. MCQs were focused on Java and servlets. MCQs were based on following topics.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Servlet&lt;/li&gt;
&lt;li&gt;SQL&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;OOP &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Then there were 2 DSA questions&lt;/strong&gt;. &lt;strong&gt;I would say leetcode medium level.&lt;/strong&gt; Test was conducted on Hackerearth. Unlike other companies visited before, Barclays MCQ has a very good weightage. &lt;/p&gt;

&lt;p&gt;46 people were shortlisted after this round.&lt;br&gt;
Then there was a Technical+HR interview.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Round 2(Interview):&lt;/strong&gt; My interview was on 19th November, Time: around 45 min.&lt;/p&gt;

&lt;p&gt;Interviewer was a friendly person. Interview was held online on Cisco Webex. In Barclays interviewer is generally one of their VPs.&lt;/p&gt;

&lt;p&gt;following questions were asked to me&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tell about yourself in brief&lt;/li&gt;
&lt;li&gt;Tell me about hackathon you won and that project&lt;/li&gt;
&lt;li&gt;Tell me about any of your team project&lt;/li&gt;
&lt;li&gt;Explain that project further&lt;/li&gt;
&lt;li&gt;How you maintained security of project?&lt;/li&gt;
&lt;li&gt;Few counter questions on project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then he turned to behavioural questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tell me about situation when you were instructed to strictly  follow the rules &lt;/li&gt;
&lt;li&gt;Tell me about situation when you have difference of opinion with colleague&lt;/li&gt;
&lt;li&gt;Tell me about your mistake from which you learnt &lt;/li&gt;
&lt;li&gt;How you build connections with people, How do you feel while talking to a stranger for first time? &lt;/li&gt;
&lt;li&gt;Have you done any extra work beyond what is expected to be done?&lt;/li&gt;
&lt;li&gt;Do you have any questions for me? ( I did asked 2 questions here to him, for which I had already researched about the company on internet )&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;after this interview 13 people were selected. I was one of them:)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Practice DSA questions on gfg and leetcode&lt;/li&gt;
&lt;li&gt;After a point you get stuck in DSA, mostly after arrays and strings ( Dw, happens with everyone and with me too ). So I started learning from this great &lt;a href="https://www.youtube.com/playlist?list=PL_z_8CaSLPWekqhdCPmFohncHwz8TY2Go" rel="noopener noreferrer"&gt;playlist on DP by Aditya Verma&lt;/a&gt; . also I used to search topic wise videos on Youtube and watch one with most views or likes. You can also watch this &lt;a href="https://www.youtube.com/playlist?list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY" rel="noopener noreferrer"&gt;MIT Introduction to Algorithms Playlist&lt;/a&gt; to form understanding. However practicing on leetcode and gfg is also equally important as learning new topics( or actually slightly more important I would say ).&lt;/li&gt;
&lt;li&gt;I asked seniors who have been placed or have done internship in that specific company. They were really helpful. My other friends who were selected as summer interns at Credit Suisse, Deutsche bank and UBS also guided me very well about interview process.&lt;/li&gt;
&lt;li&gt;You can try a mock interview with one of your friend that also works great.&lt;/li&gt;
&lt;li&gt;Know your projects well so if interview went in that direction you can speak about your project and explain it.&lt;/li&gt;
&lt;li&gt;Have strong CS fundamentals. DSA, OOP, DBMS ( important for banks and fintech ), CN, OS. Though in my interview I was not asked anything on CS fundamentals. It depends on interviewer. Check out &lt;a href="https://github.com/yash0530/InterviewPrepResources" rel="noopener noreferrer"&gt;InterviewPrepResources&lt;/a&gt; and &lt;a href="https://github.com/chaharnishant11/PlacementPrepGuide" rel="noopener noreferrer"&gt;PlacementPrepGuide&lt;/a&gt; for Quick revision. Also &lt;a href="https://www.javatpoint.com/" rel="noopener noreferrer"&gt;Javatpoint&lt;/a&gt; is a blessing to CSE students to learn topics in short amount of time for interview prep. Just search topic name and javatpoint on google.&lt;/li&gt;
&lt;li&gt;It is important to talk and have a human conversation with interviewer. They are friendly to candidates. And have confidence that you are a good candidate. If you yourself believe in your abilities then you will prove it to interviewer very well.&lt;/li&gt;
&lt;li&gt;For Barclays read their RISES values. These are mentioned on their website.&lt;/li&gt;
&lt;li&gt;Be thorough with your resume.&lt;/li&gt;
&lt;li&gt;Read geeksforgeeks archive related to the company.&lt;/li&gt;
&lt;li&gt;Be confident in an interview.&lt;/li&gt;
&lt;li&gt;Here you have to sell yourself so don't be shy to talk about your good work and achievements. I think it would be a plus if you could show them one of their values in your behavioural Question-Answers ( Not mandatory but good to have if it comes spontaneously ).&lt;/li&gt;
&lt;li&gt;It is important to ask a good question at the end to the interviewer. That shows your interest in company.&lt;/li&gt;
&lt;li&gt;Be prepared for “tell me about yourself” as first impression matters.&lt;/li&gt;
&lt;li&gt;Last but one of the most important tip would be, have patience, before Barclays I didn't cleared first round (Coding round) of 3-4 companies in a row but I still had confidence in myself and that is why I think I could explain it well to interviewer. So have confidence. I know this can be hectic period for you, but focus on preparing rather than worrying coz worrying does not make any difference but working does. I too tried to do that. Give your 100%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All The Best!&lt;/p&gt;




&lt;p&gt;&lt;a href="https://twitter.com/g_sudarshan11" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; &lt;a href="https://github.com/g-sudarshan" rel="noopener noreferrer"&gt;Github&lt;/a&gt; &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>internship</category>
      <category>barclays</category>
      <category>college</category>
      <category>students</category>
    </item>
    <item>
      <title>Github to Whatsapp Push Notifier using GitHub Actions</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Fri, 19 Nov 2021 12:40:20 +0000</pubDate>
      <link>https://dev.to/gsudarshan/github-to-whatsapp-push-notifier-using-github-actions-40pp</link>
      <guid>https://dev.to/gsudarshan/github-to-whatsapp-push-notifier-using-github-actions-40pp</guid>
      <description>&lt;h1&gt;
  
  
  Github to Whatsapp Push Notifier
&lt;/h1&gt;

&lt;h4&gt;
  
  
  Link to GitHub repo: &lt;a href="https://github.com/G-Sudarshan/Github-to-Whatsapp-Push-Notifier" rel="noopener noreferrer"&gt;Github to Whatsapp Push Notifier&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;The whatsapp bot built using Twilio APIs which sends a Whatsapp message when code is pushed to a repository.&lt;/p&gt;

&lt;h1&gt;Whatsapp Push Notify Action 🚀&lt;/h1&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%2Fimg.shields.io%2Fbadge%2Fversion-1.0-blue.svg%3FcacheSeconds%3D2592000" class="article-body-image-wrapper"&gt;&lt;img alt="Version" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fversion-1.0-blue.svg%3FcacheSeconds%3D2592000" width="78" height="20"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/g-sudarshan/Github-to-Whatsapp-Push-Notifier/blob/master/LICENSE" rel="noopener noreferrer"&gt;
    &lt;img alt="License: GNU GPLv3" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FLicense-GPLv3-blue.svg" width="96" height="20"&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create account in twilio &lt;a href="https://www.twilio.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;From your twilio dashboard fetch Account Sid and Auth Token.
&lt;/li&gt;
&lt;li&gt;To encrypt them, create new secrets in your repository named account_sid, auth_token, to_whatsapp_no and give it's value.
&lt;/li&gt;
&lt;li&gt;Create a .github/workflows/whatsapp-push-notify-action.yml.
&lt;/li&gt;
&lt;li&gt;Add the following properties to whatsapp-push-notify-action.yml file
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: When a push occurs in the master branch, a private message is sent on the Whatsapp.
on:
  push:
    branches: 
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: install twilio
        run: pip install twilio
      - name: run code
        run: python main.py
        env:
          account_sid: ${{ secrets.ACCOUNT_SID }}
          auth_token: ${{ secrets.AUTH_TOKEN }}
          to_whatsapp_no: ${{ secrets.TO_WHATSAPP_NO }}
          from_whatsapp_no: ${{ secrets.FROM_WHATSAPP_NO }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Whatsapp Push Notifier Output
&lt;/h1&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%2Fwkmkiz7voca7cc626a4c.jpeg" 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%2Fwkmkiz7voca7cc626a4c.jpeg" alt="output" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This project is &lt;a href="https://github.com/G-Sudarshan/Github-to-Whatsapp-Push-Notifier/blob/main/LICENSE" rel="noopener noreferrer"&gt;MIT&lt;/a&gt; licensed.&lt;/p&gt;




&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Maintainer Must-Haves, DIY Deployments, Phone Friendly, or Wacky Wildcards&lt;/p&gt;

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

&lt;p&gt;I have used &lt;a href="https://www.twilio.com/" rel="noopener noreferrer"&gt;Twilio's Whatsapp APIs&lt;/a&gt; for this project&lt;/p&gt;

&lt;h4&gt;
  
  
  Link to GitHub repo: &lt;a href="https://github.com/G-Sudarshan/Github-to-Whatsapp-Push-Notifier" rel="noopener noreferrer"&gt;Github to Whatsapp Push Notifier&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>actionshackathon21</category>
      <category>github</category>
      <category>whatsapp</category>
      <category>automation</category>
    </item>
    <item>
      <title>Installing Java on Ubuntu 20.04 [ Easy Way ]</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Tue, 07 Sep 2021 14:34:39 +0000</pubDate>
      <link>https://dev.to/gsudarshan/installing-java-on-ubuntu-easy-way-3d7i</link>
      <guid>https://dev.to/gsudarshan/installing-java-on-ubuntu-easy-way-3d7i</guid>
      <description>&lt;h2&gt;
  
  
  In this guide, we will describe how to install Java on Ubuntu 20.04.
&lt;/h2&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%2F1g8o3c56txcm6xq7538q.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%2F1g8o3c56txcm6xq7538q.png" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Installing OpenJDK 11
&lt;/h1&gt;

&lt;p&gt;Open Terminal, As always first check for updates&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then type following command in terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;openjdk-11-jdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;when asked for [ Y/n ], Type Y&lt;/p&gt;

&lt;p&gt;Once the installation is complete, you can verify it by checking the Java version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;java &lt;span class="nt"&gt;-version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output should look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openjdk version &lt;span class="s2"&gt;"11.0.7"&lt;/span&gt; 2020-04-14
OpenJDK Runtime Environment &lt;span class="o"&gt;(&lt;/span&gt;build 11.0.7+10-post-Ubuntu-3ubuntu1&lt;span class="o"&gt;)&lt;/span&gt;
OpenJDK 64-Bit Server VM &lt;span class="o"&gt;(&lt;/span&gt;build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;code&gt;JAVA_HOME&lt;/code&gt; Environment Variable
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;JAVA_HOME&lt;/code&gt; &lt;a href="https://linuxize.com/post/how-to-set-and-list-environment-variables-in-linux/" rel="noopener noreferrer"&gt;environment variable&lt;/a&gt; is used by some Java applications to determine the Java installation location.&lt;/p&gt;

&lt;p&gt;To set the &lt;code&gt;JAVA_HOME&lt;/code&gt; variable, first find the Java installation path with &lt;code&gt;update-alternatives&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo update-alternatives --config java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the installation paths are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenJDK 11 is located at &lt;code&gt;/usr/lib/jvm/java-11-openjdk-amd64/bin/java&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you found the path of your preferred Java installation, open the &lt;code&gt;/etc/environment&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/environment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Assuming you want to set &lt;code&gt;JAVA_HOME&lt;/code&gt; to point to OpenJDK 11, add the following line, at the end of the file:&lt;/p&gt;

&lt;p&gt;/etc/environment&lt;/p&gt;

&lt;p&gt;&lt;code&gt;JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"&lt;/code&gt;&lt;br&gt;
Copy&lt;/p&gt;

&lt;p&gt;For changes to take effect on your current shell you can either log out and log in or run the following &lt;code&gt;[source](https://linuxize.com/post/bash-source-command/)&lt;/code&gt; command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source /etc/environment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify that the &lt;code&gt;JAVA_HOME&lt;/code&gt; environment variable was correctly set:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo $JAVA_HOME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see the path to the Java installation:&lt;/p&gt;

&lt;p&gt;That’s it! At this point, you have successfully installed Java on your Ubuntu system!&lt;/p&gt;

&lt;p&gt;Now for complete assurance &lt;/p&gt;

&lt;p&gt;Open any text editor type following following code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Simple&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;  
        &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;[]){&lt;/span&gt;  
         &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  
        &lt;span class="o"&gt;}&lt;/span&gt;  
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;save this code as Simple.java&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;cd to the folder where the program is saved. &lt;/p&gt;

&lt;p&gt;then compile using following command in terminal. ( remember S is capital in Simple )&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;javac&lt;/span&gt; &lt;span class="nc"&gt;Simple&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and then run using following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;java&lt;/span&gt; &lt;span class="nc"&gt;Simple&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you are able to see this output ..... then your java is successfully installed on Ubuntu!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Hello Java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Uninstalling Java
&lt;/h2&gt;

&lt;p&gt;You can uninstall Java like any other package installed with apt .&lt;/p&gt;

&lt;p&gt;For example, to uninstall the default-jdk package enter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt remove openjdk-11-jdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;OpenJDK 11 and OpenJDK 8 are available in the default Ubuntu 20.04 repositories and can be installed using the apt package manager.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/G-Sudarshan" rel="noopener noreferrer"&gt;https://github.com/G-Sudarshan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;: &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/g-sudarshan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Twitter&lt;/strong&gt;: &lt;a href="https://twitter.com/g_sudarshan11" rel="noopener noreferrer"&gt;https://twitter.com/g_sudarshan11&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>CPP Wiki: All you need to quick revise c++</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Tue, 07 Sep 2021 14:29:57 +0000</pubDate>
      <link>https://dev.to/gsudarshan/cpp-wiki-all-you-need-to-quick-revise-c-2d2k</link>
      <guid>https://dev.to/gsudarshan/cpp-wiki-all-you-need-to-quick-revise-c-2d2k</guid>
      <description>&lt;h2&gt;
  
  
  CPP wiki
&lt;/h2&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%2Fon99x24n3x4jsh0uurea.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%2Fon99x24n3x4jsh0uurea.png" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Several of the basic types can be modified using one or more of these type modifiers −&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;signed&lt;/li&gt;
&lt;li&gt;unsigned&lt;/li&gt;
&lt;li&gt;short&lt;/li&gt;
&lt;li&gt;long&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;The following table shows the variable type, how much memory it takes to store the value in memory, and what is maximum and minimum value which can be stored in such type of variables.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Default return type of all cpp functions is int&lt;/li&gt;
&lt;li&gt;Without return 0 statement in main a warning will be produced&lt;/li&gt;
&lt;li&gt;Data type representation is machine specific in cpp&lt;/li&gt;
&lt;li&gt;Void can be used to declare generic pointers&lt;/li&gt;
&lt;li&gt;If we use vinay modifier alone it defaults to int&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lvalues and Rvalues
&lt;/h2&gt;

&lt;p&gt;There are two kinds of expressions in C++ −&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;lvalue&lt;/strong&gt; − Expressions that refer to a memory location is
called "lvalue" expression. An lvalue may appear as either the left-hand or right-hand side of an assignment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;rvalue&lt;/strong&gt; − The term rvalue refers to a data value that is
stored at some address in memory. An rvalue is an expression that cannot have a value assigned to it which means an rvalue may appear on the
right- but not left-hand side of an assignment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Variables are lvalues and so may appear on the left-hand side of an &lt;br&gt;
assignment. Numeric literals are rvalues and so may not be assigned and &lt;br&gt;
can not appear on the left-hand side. Following is a valid statement −&lt;/p&gt;


&lt;h2&gt;
  
  
  Initializing Local and Global Variables
&lt;/h2&gt;

&lt;p&gt;When a local variable is defined, it is not initialized by the &lt;br&gt;
system, you must initialize it yourself. Global variables are &lt;br&gt;
initialized automatically by the system when you define them as follows −&lt;/p&gt;

&lt;p&gt;It is a good programming practice to initialize variables properly, otherwise sometimes program would produce unexpected result.&lt;/p&gt;

&lt;p&gt;A program can have same name for local and global variables but value of local variable inside a function will take preference.&lt;/p&gt;

&lt;p&gt;A reference variable must be initialised at the time of declaration&lt;/p&gt;

&lt;p&gt;:: varname ( scope resolution operator here used to print global variable varname )&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Explicit use of return 0 statement will indicate program was successfully executed&lt;/li&gt;
&lt;li&gt;An inline function is a function that is expanded inline when invoked&lt;/li&gt;
&lt;li&gt;Only trailing arguments can have default values&lt;/li&gt;
&lt;li&gt;An argument to a function can be declared as const
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;






&lt;p&gt;Following are other examples of various types of Integer literals −&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;85         // decimal
0213       // octal
0x4b       // hexadecimal
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Boolean Literals
&lt;/h2&gt;

&lt;p&gt;There are two Boolean literals and they are part of standard C++ keywords −&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A value of &lt;strong&gt;true&lt;/strong&gt; representing true.&lt;/li&gt;
&lt;li&gt;A value of &lt;strong&gt;false&lt;/strong&gt; representing false.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;You should not consider the value of true equal to 1 and value of false equal to 0.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Character Literals
&lt;/h2&gt;

&lt;p&gt;Character literals are enclosed in single quotes. If the literal &lt;br&gt;
begins with L (uppercase only), it is a wide character literal (e.g., &lt;br&gt;
L'x') and should be stored in &lt;strong&gt;wchar_t&lt;/strong&gt; type of variable . Otherwise, it is a narrow character literal (e.g., 'x') and can be stored in a simple variable of &lt;strong&gt;char&lt;/strong&gt; type.&lt;/p&gt;

&lt;p&gt;A character literal can be a plain character (e.g., 'x'), an escape &lt;br&gt;
sequence (e.g., '\t'), or a universal character (e.g., '\u02C0').&lt;/p&gt;

&lt;p&gt;There are certain characters in C++ when they are preceded by a &lt;br&gt;
backslash they will have special meaning and they are used to represent &lt;br&gt;
like newline (\n) or tab (\t). Here, you have a list of some of such &lt;br&gt;
escape sequence codes −&lt;/p&gt;



&lt;p&gt;There are two simple ways in C++ to define constants −&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using &lt;strong&gt;#define&lt;/strong&gt; preprocessor.&lt;/li&gt;
&lt;li&gt;Using &lt;strong&gt;const&lt;/strong&gt; keyword.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note that it is a good programming practice to define constants in CAPITALS&lt;/p&gt;

&lt;p&gt;The data type modifiers are listed here −&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;signed&lt;/li&gt;
&lt;li&gt;unsigned&lt;/li&gt;
&lt;li&gt;long&lt;/li&gt;
&lt;li&gt;short&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The modifiers &lt;strong&gt;signed, unsigned, long,&lt;/strong&gt; and &lt;strong&gt;short&lt;/strong&gt; can be applied to integer base types. In addition, &lt;strong&gt;signed&lt;/strong&gt; and &lt;strong&gt;unsigned&lt;/strong&gt; can be applied to char, and &lt;strong&gt;long&lt;/strong&gt; can be applied to double.&lt;/p&gt;


&lt;h2&gt;
  
  
  Type Qualifiers in C++
&lt;/h2&gt;

&lt;p&gt;The type qualifiers provide additional information about the variables they precede.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;const&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Objects of type &lt;strong&gt;const&lt;/strong&gt; cannot be changed by your program during execution&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;volatile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The modifier &lt;strong&gt;volatile&lt;/strong&gt; tells the compiler that a variable's value may be changed in ways not explicitly specified by the program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;restrict&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A pointer qualified by &lt;strong&gt;restrict&lt;/strong&gt; is initially the only means by&lt;br&gt;
 which the object it points to can be accessed. Only C99 adds a new type&lt;br&gt;
 qualifier called restrict.&lt;/p&gt;



&lt;p&gt;an object created inside a block using &lt;strong&gt;new&lt;/strong&gt;, will remain in existence until explicitly destroyed using &lt;strong&gt;delete&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;the first dimension of array may be variable whose value is supplied at runtime . All others must be constants&lt;/p&gt;

&lt;p&gt;like any other operator new and delete can be overloaded&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Explicit use of return 0 statement will indicate program was successfully executed&lt;/li&gt;
&lt;li&gt;An inline function is a function that is expanded inline when it is invoked&lt;/li&gt;
&lt;li&gt;only trailing arguements can have default values&lt;/li&gt;
&lt;li&gt;an argument to a function can be declared as const
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;ul&gt;
&lt;li&gt;By default members of classes are private&lt;/li&gt;
&lt;li&gt;objects can be defined by placing their name immediately after closing brace
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Test&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;//code here&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;t3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Unlike many other programming languages cpp put semicolon after class definition
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Item&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;//code here&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Outside class definition of member function&lt;/li&gt;
&lt;li&gt;syntax
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argument&lt;/span&gt; &lt;span class="n"&gt;declaration&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//function body&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;ul&gt;
&lt;li&gt;A member function can call another member fnction directly without using dot operator&lt;/li&gt;
&lt;li&gt;when a function is defined inside a class, it is treated as an inline function. Therefore, all the restrictions and limitations that apply to an inline function are also applicable here.&lt;/li&gt;
&lt;li&gt;normally only small functions are defined inside class definition&lt;/li&gt;
&lt;li&gt;It is normal practice to place all data items in private section and all the functions in public&lt;/li&gt;
&lt;li&gt;separate memory is allocated for member variables bit no separate memory is allocated for member functions&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;static data members &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is initialized to zero when the first object of its class is created.&lt;/li&gt;
&lt;li&gt;only one copy of that member is created for entire class and is shared by all the objects of that class, no matter how many objects are created&lt;/li&gt;
&lt;li&gt;It is visible only within class but its lifetime is entire program&lt;/li&gt;
&lt;li&gt;static variables are normally used to maintain values common to entire class&lt;/li&gt;
&lt;li&gt;Static variables are also known as class variables
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;Item&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="c1"&gt;// definition&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Note that type and scope of each static members variable must be defined outside the class definition&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Static member functions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A static function can have access to only other static member ( functions or variables ) declared in the same class&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A static member function can be called using class name ( instead of its objects ) as follows&lt;/p&gt;

&lt;p&gt;class-name :: function-name&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Friend function
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To make an outside function friendly to a class, we have to simply declare this function as a friend of the class as shown below
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ABC&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;public:&lt;/span&gt;
&lt;span class="k"&gt;friend&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;fun1&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;usually it has objects as arguements&lt;/li&gt;
&lt;li&gt;It can be declared in private or public part&lt;/li&gt;
&lt;li&gt;member functions of one class can be friend functions of another class. In such cases, they are defined using scope resolution operator as below
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;friend&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="n"&gt;fun1&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;We can also declare all the member functions of one class as the friend functions of another class. In such cases class is called as friend class.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;friend&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;B&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  const member functions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If a member function does not alter any data in the class, then we may declare it as a const member function as follows
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;mul&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="n"&gt;get_balance&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;The qualifier const is appended to the function prototypes ( in both declaration and definition ) The compiler will generate an error message if such function tries to alter data.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Pointer to member
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;::*&lt;/span&gt; &lt;span class="n"&gt;ip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// display value of m&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// display value of m&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;ap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="c1"&gt;// pointer to object&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;*&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// display value of m&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// display value of m&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;pointer to member functions&lt;/p&gt;

&lt;p&gt;(object.*pointer-to-function) (10);&lt;/p&gt;

&lt;p&gt;(pointer-to-object→*pointer-to-function) (10);&lt;/p&gt;


&lt;h2&gt;
  
  
  Constructor
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;constructor enables an object to initialize when it is created.&lt;/li&gt;
&lt;li&gt;destructor destroys the object when they are required&lt;/li&gt;
&lt;li&gt;constructor should be declared in public section, they do not have return type&lt;/li&gt;
&lt;li&gt;the derived class can call base class constructor&lt;/li&gt;
&lt;li&gt;construcor cannot be virtual&lt;/li&gt;
&lt;li&gt;An object with constructor cannot be used as member function&lt;/li&gt;
&lt;li&gt;constructor can accept ta refrenece to its own class as a parameter
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;public:&lt;/span&gt; 
 &lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;){}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;constructor overloading is allowed in c++&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Constant Objects
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;We may create and use constant objects using const keyword before object declaration
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;matrix&lt;/span&gt; &lt;span class="nf"&gt;m&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//object m is constant&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Any attempt to modify value of a and b will generate compile time error&lt;/li&gt;
&lt;li&gt;constant object can call only constant member functions&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Destructor
&lt;/h2&gt;

&lt;p&gt;Synatx: ~class-name(){ }&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A destructor nevevr takes any argument nor does it return any value&lt;/li&gt;
&lt;li&gt;The primary use of destuctor is freeing up the memory in freeing up th memory reserved by the object before it gets destroyed.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Operator overloading
&lt;/h2&gt;
&lt;h3&gt;
  
  
  operators that cannot be overloaded
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;class member access operators ( . and .*)&lt;/li&gt;
&lt;li&gt;scope resolution operator ( :: )&lt;/li&gt;
&lt;li&gt;size operator ( sizeof )&lt;/li&gt;
&lt;li&gt;conditional operator ( ? : )&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;
&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;::&lt;/span&gt; &lt;span class="k"&gt;operator&lt;/span&gt; &lt;span class="nf"&gt;op&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;argument&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="c1"&gt;// f](//f)unctionbody&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Operator functions must bee either friend functions or member functions&lt;/li&gt;
&lt;li&gt;Declare the operator function operator op() in the public part of class&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;Only existing operators can be overloaded. New operators cannot be created&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Friend functions cannot used to overload certain operators. However member functions can be used to overload them.&lt;/p&gt;

&lt;p&gt;= () [] →&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Type Conversion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The constructors used for the type conversion take a single argument whose type is to be converted.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  class to basic type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;vector&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt; &lt;span class="nx"&gt;operator&lt;/span&gt; &lt;span class="nf"&gt;double&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;double&lt;/span&gt; &lt;span class="nx"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;..&lt;/span&gt;
&lt;span class="p"&gt;..&lt;/span&gt;

&lt;span class="nx"&gt;vector&lt;/span&gt; &lt;span class="nx"&gt;v1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;double&lt;/span&gt; &lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;v1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Casting operator function should be &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It must be a class member&lt;/li&gt;
&lt;li&gt;It must not specify a return type&lt;/li&gt;
&lt;li&gt;It must not have any argument&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  One class to another class type
&lt;/h3&gt;

&lt;p&gt;Such conversion between objects of different classes can be carried out by either a constructor    or a conversion function.&lt;/p&gt;

&lt;p&gt;In case of conversion function , conversion takes takes place in source class and object is returned to destination class.&lt;/p&gt;

&lt;p&gt;In case of constructor, conversion take place in destination class.&lt;/p&gt;




&lt;h2&gt;
  
  
  Abastract class
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;an abstract class s a class that is not used to create objects&lt;/li&gt;
&lt;li&gt;An abstract class is only used as base class&lt;/li&gt;
&lt;li&gt;A class can only be considered as abstract class if it has at least one pure virtual function&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If any base class contains a constructor with one or more arguments, then it is mandatory for  derived class to have a constructor and pass the arguments to the base class constructors &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A class can contain objects of other classes as its members. This kind ofrelationship is called containership or nesting&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Declaring Pointer
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Syntax: data-type *pointer-var&lt;/li&gt;
&lt;li&gt;We can locate asterisk ( * ) immediately before the pointer variable, or between the data-type and the pointer variable, or immediately after the data type. It dos not cause any effect in the execution process.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;ptr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Pointer to pointer
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;p2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;p1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;p2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;p1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;We can also use void pointers, known as generic pointers, which refer to variables of any data type before using void pointers we must cast the variable to the specific data types that they point to.&lt;/li&gt;
&lt;li&gt;Pointers which are not initialized in a program, are called Null pointers. Pointers of any data typecan be assigned with one value i.e. '0' called null address&lt;/li&gt;
&lt;li&gt;Indirection operator *&lt;/li&gt;
&lt;li&gt;attempt to dereferenced an unnitialized pointer, will cause runtime error by referring to any other location in memory&lt;/li&gt;
&lt;li&gt;we cannot perform pointer arithmetic on variabes which are not stored in contigous memory location&lt;/li&gt;
&lt;li&gt;There is no error checking of array bounds in c++. Suppose we declare array of size 25. The compiler issues no warnings if we attempt to access 26th location. It is programmer's task to check the limits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Array of pointers
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;inarray&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Char array of pointers
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;"books"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"television"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"computer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"sports"&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;A string ends with the null character '\0' in c++&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pointers to functions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Syntax: data-type (*fun1)();&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pointers to objects
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The pointer this acts as an implicit argument to all the member functions.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//returns object it points to&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Pointers to objects of base class are type-compatible with pointers to objects of a derived class&lt;/li&gt;
&lt;li&gt;Runtime polymorphism is achieved only when a virtual function is accessed through a pointer to base class&lt;/li&gt;
&lt;li&gt;We cannot have virtual constructors but we can have a virtual destructor&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pure virtual function
&lt;/h2&gt;

&lt;p&gt;also know as Do nothing functions&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;virtual&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Pure virtual function&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Class containing pure virtual functions cannot be used to declare any objects of its own. Such classes are called abstract base  classes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  I/O Operations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A stream is a sequence of bytes.&lt;/li&gt;
&lt;li&gt;The source stream that provides data to the program is called the input stream and the destination stream that receives output from the program is called the output stream.&lt;/li&gt;
&lt;li&gt;A program extracts the bytes from an input stream and inserts bytes into an output stream&lt;/li&gt;
&lt;li&gt;A stream acts as interface between the program and the I/O devices used&lt;/li&gt;
&lt;li&gt;cin and cout are predefined objects in iostream
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;cin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// get char from keyboard&lt;/span&gt;
&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// same&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;put&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'x'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;put&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// ch is variable&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;put&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;68&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// displays 'D' ( ASCII Value conversion ) &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The getline() function reads a whole line of text that ends with newline character&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;syntax: cin.getline(linr, size)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="n"&gt;cin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;cin can read strings that do not contain white spaces&lt;/li&gt;
&lt;/ul&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;It is possible to concatenate two strings using write() function.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ios format functions aios format functionsios format functionsios format functionsnd manipulators
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.notion.so/871e197272cf47ec95afa4e5856aca59" rel="noopener noreferrer"&gt;ios format functions&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To access the manipulators, the file iomanip should be included in the program&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.notion.so/69b75cd4eafa45228050ffbab82eac69" rel="noopener noreferrer"&gt;Manipulators&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  width()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;543&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;c++ never truncates the values&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  precision
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;By default the floating numbers are printed with six digits after the decimal point.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;synatx: cout.precision(d);&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;precision&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;3.14153&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// results in 3.142 ( rounded to nearest cent )&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;2.50032&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//results in 2.5 ( no trailing zeros )&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Precision setting stays in effect until it is reset&lt;/li&gt;
&lt;li&gt;Default precision is 6 digits&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  fill()
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The unused positions of the field are filled with white spaces by default.&lt;/li&gt;
&lt;li&gt;We can use fill() to fill the unused position by any desired character
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'*'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;5250&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// results in ******5250 &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;like precision fill() stays in effect till we change it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.notion.so/f57a78152dcd48bdb3da83704c376581" rel="noopener noreferrer"&gt;manipulators&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;setw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;setiosflags&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ios&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;12345&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;setw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;setprecision&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;1.2345&lt;/span&gt; 
     &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;setw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;setprecision&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  own manipulator
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;ostream&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;unit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;ostream&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"inches"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;36&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;unit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// results in 36 inches&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  File
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;infile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;seekg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="cm"&gt;/* 
moves the file pointer to the byte no. 10 
Remember the byte in a file are numbered begin from  zero 
therefore the pointer will be pointing to 
the 11th byte in file  
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;EOF flag is turned off using function clear()&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Command line arguments
&lt;/h2&gt;

&lt;p&gt;main() function can take two argument&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;argc represents the no. of arguments&lt;/li&gt;
&lt;li&gt;second argument argv (known as argument vector ) is an array of char type pointers that points to the command line arguments. The size of this array will be equal to the value of argc.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Templates
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Templates allows us to create generic classes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;template&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;T&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;item&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;T&lt;/span&gt; &lt;span class="n"&gt;varName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;//use anonymous type T wherever appropriate&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;We can use more than one generic datatype in class template
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;template&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;T1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;T2&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;template&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;T1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;// default data type specified as int&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Like class template we can also define function template&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Exception Handling
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// try block&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="n"&gt;exception&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;arg&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// catch block&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// catch all exceptions&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;When an exception is rethrown it will be caught by anappropriate catch in the outer try/catch  sequence only&lt;/li&gt;
&lt;li&gt;Try/catch block can be used inside construcor and destructor&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  STL
&lt;/h2&gt;

&lt;p&gt;STL contains several components but at its core are three key components. They are&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;containers&lt;/li&gt;
&lt;li&gt;Algorithms&lt;/li&gt;
&lt;li&gt;Iterators&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Algorithms employ iterators to perform operations on  objects stored in containers&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;A container is an object that actually stores data&lt;/li&gt;
&lt;li&gt;An algorithm is a procedure that is used to process the data contained in the containers. Algorithms are implemented by template functions.&lt;/li&gt;
&lt;li&gt;An iterator is an object ( like pointer ) that points to an element in a container.&lt;/li&gt;
&lt;li&gt;To have access to STL algorithms, we must include  in our program.&lt;/li&gt;
&lt;li&gt;STL also contains few numeric algorithms under &lt;/li&gt;
&lt;li&gt;containers are divided into three major categories sequential, associative and derived&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Vectors
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vector is the most widely used container&lt;/li&gt;
&lt;li&gt;A vector can change its size dynamically and therefore allocates memory as needed at runtime&lt;/li&gt;
&lt;li&gt;We must include header file  to use vector class in our program
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;typedef&lt;/span&gt; &lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;phonemap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Strings
&lt;/h2&gt;

&lt;p&gt;All algorithms that are applicable for containers can be used with string objects&lt;/p&gt;

&lt;h3&gt;
  
  
  Important Functions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;at()&lt;/li&gt;
&lt;li&gt;find()&lt;/li&gt;
&lt;li&gt;insert()&lt;/li&gt;
&lt;li&gt;lenght()&lt;/li&gt;
&lt;li&gt;replace()
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;getline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Reads embeded blanks&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Accessing characters in strings&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;at()&lt;/li&gt;
&lt;li&gt;substr()&lt;/li&gt;
&lt;li&gt;find()&lt;/li&gt;
&lt;li&gt;find_first_of()&lt;/li&gt;
&lt;li&gt;find_last_of()&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We can also use overloaded [] operator ( which makes a string object look like an array ) to access individual element in a string&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;compare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"s1 == s2"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"s1 &amp;gt; s2"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"s1 &amp;lt; s2"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;compare () compares the strings s1 against s2 and assigned 0 if the strings are equal, a positive number if s1 is lexicographically greater than s2 or a negative otherwise&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;Values of type bool are automaticallt elevated to integers when used in nonBoolean expressions&lt;/li&gt;
&lt;li&gt;The character type wchar_t has been defined in NSI c++ to hold 16-bit wide chracters&lt;/li&gt;
&lt;li&gt;Wide character literal begin with letter L
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;xy&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="c1"&gt;// Wide character literal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// cpp type casting&lt;/span&gt;
&lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;double&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// c type casting&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  The static_cast operator
&lt;/h3&gt;

&lt;p&gt;syntax: static_cast  (object);&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;static_cast&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;ul&gt;
&lt;li&gt;We can use the typeid operator  to obtain the types of unknown objects. Such as their classname at runtime.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;objectType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;typeid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;object&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;We must include  header file to use the operators dynamic_cast and typeid which provide runtime type information (RTTI)&lt;/li&gt;
&lt;li&gt;mutable keyword is used when we want to change/modify value of particular data item of const object&lt;/li&gt;
&lt;li&gt;ANSI c++ standard has added a new keyword namespace to define a scope that could hold global identifiers.&lt;/li&gt;
&lt;li&gt;We can define our own namespace in our program.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;NS1&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// declaration of variable, functions and classes etc.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;TestSpace&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;TestSpace&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;namespace can be nested within another namespace&lt;/li&gt;
&lt;li&gt;To access nested namespace variable
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;NS1&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;NS2&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alternatively&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;NS&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;NS2&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;NS1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// brings members of NS1 to current scope&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Operator keywords
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;C++ contain 64 keywords including main.&lt;/li&gt;
&lt;li&gt;The ANSI c++ standard has defined a new way to specify header files.They do not use .h extension to filename. eg. #include&lt;/li&gt;
&lt;li&gt;However the traditional style , etc. is still fully supported&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/G-Sudarshan" rel="noopener noreferrer"&gt;https://github.com/G-Sudarshan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;: &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/g-sudarshan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Twitter&lt;/strong&gt;: &lt;a href="https://twitter.com/g_sudarshan11" rel="noopener noreferrer"&gt;https://twitter.com/g_sudarshan11&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>quick</category>
      <category>revise</category>
      <category>programming</category>
    </item>
    <item>
      <title>2021: Top 5 Linux distros for beginners</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Tue, 30 Mar 2021 11:45:21 +0000</pubDate>
      <link>https://dev.to/gsudarshan/2021-top-5-linux-distros-for-beginners-4o7b</link>
      <guid>https://dev.to/gsudarshan/2021-top-5-linux-distros-for-beginners-4o7b</guid>
      <description>&lt;h2&gt;
  
  
  1. Ubuntu
&lt;/h2&gt;

&lt;p&gt;Ubuntu has always been first choice for almost every beginner to Linux world. Its easy to install, with good GUI. It is based on Debian. It is composed mostly of free and open-source software. Ubuntu is officially released in three editions: Desktop, Server, and Core for Internet of things devices and robots. All the editions can run on the computer alone, or in a virtual machine. You can download it from  &lt;a href="https://ubuntu.com/" rel="noopener noreferrer"&gt;Official Ubuntu Website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Zorin OS
&lt;/h2&gt;

&lt;p&gt;I personally recommend this OS to everyone to try at least one time. It is super productive OS built on top of Ubuntu. It's Lite version is also available that runs smooth on older machines. I have ran them on machines having 1.5GB RAM and they worked fine. It is astonishing to see how software runs smoothly on the these older machines giving you modern experience. The Zorin Core OS also has phone connectivity feature through which you can control laptop through your smartphone, share the files from and to phone,can use smartphones keyboard to type on laptop also you can control mouse using smartphone's screen. You can download it from  &lt;a href="https://zorinos.com/" rel="noopener noreferrer"&gt;Official Zorin Website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Elementory OS
&lt;/h2&gt;

&lt;p&gt;Elementory OS in simple words can be described as open-source alternative which gives you feel of using macOS. Elementary OS is a Linux distribution based on Ubuntu LTS. It promotes itself as a “fast, open, and privacy-respecting” replacement to macOS and Windows and has a pay-what-you-want model. The operating system, the desktop environment, and accompanying applications are developed and maintained by Elementary, Inc. You can download it from  &lt;a href="https://elementary.io/" rel="noopener noreferrer"&gt;Official Elementory Website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Kali Linux
&lt;/h2&gt;

&lt;p&gt;When you heard of Kali Linux most of you might remember the hacking scenes from movies but actually Kali Linux is a lot more useful distro to understand the the underlying working of an operating system. Even if you are not interested in Ethical hacking every programmer must try this distro at once to know more about networks and other related stuff.Kali Linux is a Debian-based Linux distribution geared towards various information security tasks, such as Penetration Testing, Security Research, Computer Forensics and Reverse Engineering. You can download it from  &lt;a href="https://write.geeksforgeeks.org/preview/ali%20Linux%20is%20a%20Debian-based%20Linux%20distribution%20geared%20towards%20various%20information%20security%20tasks,%20such%20as%20Penetration%20Testing,%20Security%20Research,%20Computer%20Forensics%20and%20Reverse%20Engineering" rel="noopener noreferrer"&gt;Official Kali Linux Website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. MX Linux
&lt;/h2&gt;

&lt;p&gt;MX Linux is a popular distro among programmers due to its lightning speed and Graphics. It's popular because it makes Debian more user friendly for beginning to intermediate (Not so much “non technical”) Linux users. It has newer packages from Debian backports repos; vanilla Debian uses older packages. MX users also benefit from custom tools which are great time savers. You can download it from &lt;a href="https://mxlinux.org/" rel="noopener noreferrer"&gt;Official  MX Linux Website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>opensource</category>
      <category>os</category>
    </item>
    <item>
      <title>Top 10 YouTube Channels That Beginner Indian CSE Students Should Follow</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Fri, 12 Mar 2021 14:16:19 +0000</pubDate>
      <link>https://dev.to/gsudarshan/top-10-youtube-channels-that-beginner-indian-cse-students-should-follow-570</link>
      <guid>https://dev.to/gsudarshan/top-10-youtube-channels-that-beginner-indian-cse-students-should-follow-570</guid>
      <description>&lt;h2&gt;
  
  
  1. &lt;a href="https://www.youtube.com/channel/UC0RhatS1pyxInC00YKjjBqQ" rel="noopener noreferrer"&gt;GeeksforGeeks&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;NO. 1 is of-course GeeksForGeeks. Here you can get many useful playlists for Data structures and Algorithms, Interview Questions, Linux tutorials and many more.&lt;br&gt;
you will find hundreds of videos that will provide you with the insight and the knowledge to become an efficient coder.&lt;br&gt;
These videos are inclusive of real life interview experiences of Geeks who are placed in product and service based companies, webinars and &lt;br&gt;
workshops with industry experts which are inclusive of a variety of &lt;br&gt;
topics pertaining to Computer Science and coding, informative videos and&lt;br&gt;
 solutions to a variety of subjects and lastly, a music playlist for you&lt;br&gt;
 Code Jamming sessions!&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;a href="https://www.youtube.com/channel/UCS25Y-2DUke9uOU5OtLwwgg" rel="noopener noreferrer"&gt;Linux Tex&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This is one of the most underrated channel about Linux on YouTube. I personally love the content this channel posts. Its about different Linux distros and different Linux applications. In short "Latest and the greatest of Linux news, tutorials, software and distro reviews brought right to you."&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://www.youtube.com/channel/UCeVMnSShP_Iviwkknt83cww" rel="noopener noreferrer"&gt;CodeWithHarry&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This list can't br complted without superman of Hindi Dev tutorials i.e CodeWithHarry . Recently CodeWithHarry completed  1 million subscribers and its growing fast. As far as I know this is most subscribed programming related channel ran by an Indian.&lt;br&gt;
Code With Harry attempt to teach basics and those coding techniques to people in short time which took ages to learn.&lt;br&gt;
Code With Harry provide a quick and to the point demo along with resources of anything and everything I teach. Source code and other resources are hosted on  website &lt;a href="https://write.geeksforgeeks.org/preview/CodeWithHarry.com" rel="noopener noreferrer"&gt;CodeWithHarry.com&lt;/a&gt;. provides source code(if any) in the description of every video.&lt;/p&gt;

&lt;p&gt;In short "Quality programming videos in Hindi"&lt;/p&gt;

&lt;h2&gt;
  
  
  4. &lt;a href="https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw" rel="noopener noreferrer"&gt;Gaurav Sen&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Gaurav Sen is pioneer in System Design Videos on Youtube in India. He is one &lt;br&gt;
of the earliest Competitive Programmer to talk about CP on YouTube.&lt;/p&gt;

&lt;p&gt;Algorithms and System Design is a powerful combination!&lt;/p&gt;

&lt;p&gt;Here are some things that been talked about on channel:&lt;/p&gt;

&lt;p&gt;1) Competitive programming&lt;/p&gt;

&lt;p&gt;2) System design&lt;/p&gt;

&lt;p&gt;3) Artificial intelligence&lt;/p&gt;

&lt;h2&gt;
  
  
  5. &lt;a href="https://www.youtube.com/c/akshaymarch7" rel="noopener noreferrer"&gt;Akshay Saini&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Akshay Saini, Popularly known for his JS tutorial series "&lt;a href="https://www.youtube.com/watch?v=pN6jk0uUrD8&amp;amp;list=PLlasXeu85E9cQ32gLCvAvr9vNaUccPVNP" rel="noopener noreferrer"&gt;Namaste Javascript&lt;/a&gt;"&lt;br&gt;
 working as an Engineer at Uber. Apart from that, creates videos on this channel to help people with Interview preparation, Tech Tutorials, and &lt;br&gt;
his personal Tips and Tricks to advance their career. Currently,&lt;br&gt;
making videos about Frontend Interview Tips, his Interview Experiences &lt;br&gt;
and core concepts of Javascript. Go ahead to the video section and do check out all of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. &lt;a href="https://www.youtube.com/channel/UCVe8CMJF4caRzuckVYV8CaQ" rel="noopener noreferrer"&gt;Nishant Chahar&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This is also one of the most underrated YouTube channel in India. Nishant talks to different Software developers about their journey in college and placements in series called "&lt;a href="https://www.youtube.com/watch?v=acaQLchQgdk&amp;amp;list=PLDYtC50LJ5HRYMHaClxNuz5d20SZAyI4j" rel="noopener noreferrer"&gt;Placement Diaries&lt;/a&gt;"&lt;/p&gt;

&lt;h2&gt;
  
  
  7. &lt;a href="https://www.youtube.com/channel/UCfv8cds8AfIM3UZtAWOz6Gg" rel="noopener noreferrer"&gt;Code for Cause&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Code for Cause is an initiative started by a group of like-minded people working for a similar cause. Their primary focus is to provide guidance and mentorship to students. Not only for those who lack on-campus opportunities but also for those who lack awareness about the &lt;br&gt;
possibilities in the field. They provide a hands-on learning experience and keep students informed about the latest trends in technology, opportunities so that they can keep up with the fast-paced digital world via following a pi-shape learning pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. &lt;a href="https://www.youtube.com/channel/UCNFmBuclxQPe57orKiQbyfA" rel="noopener noreferrer"&gt;Tanay Pratap&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Tanay, an engineer at Microsoft. He shares what he knows to make you an awesome coder. The courses are 100% free. He makes videos about React JS and programming in general.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. &lt;a href="https://www.youtube.com/channel/UCQHLxxBFrbfdrk1jF0moTpw" rel="noopener noreferrer"&gt;Love Babbar&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Love Babbar, a graduate from NSUT, Delhi. SDE at Amazon,Gurugram. He has made videos related to placements with detailed information.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. &lt;a href="https://www.youtube.com/channel/UCGuJC8U8zMOpvKdYPsh1M2Q" rel="noopener noreferrer"&gt;Get Saged&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Get Saged is Popular for his playlist "&lt;a href="https://www.youtube.com/watch?v=1shWjf4fZiA&amp;amp;list=PLMSKqvripiHuR5KHZ9f_QKFU2w2a7vKRV" rel="noopener noreferrer"&gt;Company Review : CTC, Recruitment Process, Profiles, Top Tips&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;Umang Chauhan, an engineer who loves to explore, do weird stuff, and try out new things. Get Saged is a place to get into the not so boring life of an over-optimistic Indian trying to explore and get adventurous making &lt;br&gt;
other people saged. He make videos about VLogs, Travel, Coding, &lt;br&gt;
Placements, New Products, and much more that you can't even imagine.&lt;/p&gt;

&lt;p&gt;This was the list of top 10 channels I felt useful, Thanks for reading:)&lt;/p&gt;

&lt;p&gt;Happy Programming!&lt;/p&gt;

</description>
      <category>youtube</category>
      <category>tech</category>
      <category>beginners</category>
      <category>students</category>
    </item>
    <item>
      <title>How to install MySQL and Workbench on Ubuntu 20.04 ( Localhost )</title>
      <dc:creator>G Sudarshan</dc:creator>
      <pubDate>Wed, 24 Feb 2021 05:43:04 +0000</pubDate>
      <link>https://dev.to/gsudarshan/how-to-install-mysql-and-workbench-on-ubuntu-20-04-localhost-5828</link>
      <guid>https://dev.to/gsudarshan/how-to-install-mysql-and-workbench-on-ubuntu-20-04-localhost-5828</guid>
      <description>&lt;p&gt;&lt;strong&gt;G.&lt;/strong&gt; &lt;strong&gt;Sudarshan&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing MySQL Server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install the MySQL server by using the Ubuntu operating system package manager:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;mysql-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the secure installation utility does not launch automatically after the installation completes, enter the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;mysql_secure_installation utility
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Allow remote access
&lt;/h3&gt;

&lt;p&gt;If you have ip tables enabled and want to connect to the MySQL database from&lt;br&gt;
another machine, you must open a port in your server’s firewall (the default&lt;br&gt;
port is 3306). You don’t need to do this if the application that uses MySQL&lt;br&gt;
is running on the same server.&lt;/p&gt;

&lt;p&gt;Run the following command to allow remote access to the mysql server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw &lt;span class="nb"&gt;enable
sudo &lt;/span&gt;ufw allow mysql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Start the MySQL service
&lt;/h3&gt;

&lt;p&gt;After the installation is complete, you can start the database service by&lt;br&gt;
running the following command. If the service is already started, a message&lt;br&gt;
informs you that the service is already running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl start mysql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Start the MySQL shell
&lt;/h3&gt;

&lt;p&gt;There is more than one way to work with a MySQL server, but this article&lt;br&gt;
focuses on the most basic and compatible approach, the &lt;code&gt;mysql&lt;/code&gt; shell.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;At the command prompt, run the following command to launch the &lt;code&gt;mysql&lt;/code&gt;
shell and enter it as the root user:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/usr/bin/mysql &lt;span class="nt"&gt;-u&lt;/span&gt; root &lt;span class="nt"&gt;-p&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Installing MySQL Workbench
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Step 1: Download configuration file from the apt repository
&lt;/h3&gt;

&lt;p&gt;Using this method, you can install MySQL from the official apt &lt;br&gt;
repository. For this purpose, download the repository configuration file&lt;br&gt;
 from the given URL &lt;a href="https://dev.mysql.com/downloads/repo/apt/" rel="noopener noreferrer"&gt;https://dev.mysql.com/downloads/repo/apt/&lt;/a&gt;.&lt;br&gt;
 When you browse this URL, it will take you directly on the download &lt;br&gt;
page from where you will download ‘mysql-apt-config_0.8.15-1_all.deb’  ( You might get latest version hence version no may be changed )&lt;br&gt;
repo configuration file. Click on the Download option.&lt;/p&gt;

&lt;p&gt;On the next page, it will ask you either you want to register or log in. If you don’t want to select these options then, click ‘No thanks, just start my download’ link to download the required package to your system’s local directory.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Installation of MySQL Workbench
&lt;/h3&gt;

&lt;p&gt;Use the following command to add MySQL repository URLs in the apt &lt;br&gt;
sources list so that you can install the software on your Ubuntu 20.04 &lt;br&gt;
system.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Downloads

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; ./mysql-apt-config_0.8.16-1_all.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Update apt-cache
&lt;/h3&gt;

&lt;p&gt;Update the apt cache using the following command to update the configuration URLs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Installing MySQL Workbench on Ubuntu 20.04
&lt;/h3&gt;

&lt;p&gt;Now, it’s time to install MySQL workbench using the apt repository. &lt;br&gt;
To do that, execute the following command to install MySQL workbench.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;mysql-workbench-community
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 5: Launch MySQL Workbench
&lt;/h3&gt;

&lt;p&gt;Once the installation is complete, you will finally launch the MySQL &lt;br&gt;
Workbench on your system. You can launch it using the terminal by typing&lt;br&gt;
 the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mysql-workbench
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are DONE!&lt;/p&gt;




&lt;p&gt;But wait a minute, It is equally important to know how to uninstall MySQL and MySQL Workbenc&lt;/p&gt;

&lt;h2&gt;
  
  
  Uninstall MySQL
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Make sure MySQL is not running:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl stop mysql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Then purge all of the MySQL packages:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt purge mysql-server mysql-client mysql-common mysql-server-core-&lt;span class="k"&gt;*&lt;/span&gt; mysql-client-core-&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Then delete all of the MySQL files:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /etc/mysql /var/lib/mysql /var/log/mysql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Finally clean all packages that are not needed:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt autoremove
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt autoclean
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/G-Sudarshan" rel="noopener noreferrer"&gt;https://github.com/G-Sudarshan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;: &lt;a href="https://www.linkedin.com/in/g-sudarshan/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/g-sudarshan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Twitter&lt;/strong&gt;: &lt;a href="https://twitter.com/g_sudarshan11" rel="noopener noreferrer"&gt;https://twitter.com/g_sudarshan11&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
