<?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: Yahya Abbakar</title>
    <description>The latest articles on DEV Community by Yahya Abbakar (@yahyaabbakar92).</description>
    <link>https://dev.to/yahyaabbakar92</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%2F764908%2Fc470638f-17db-4b6f-a9a5-bd0f0cf87da5.jpeg</url>
      <title>DEV Community: Yahya Abbakar</title>
      <link>https://dev.to/yahyaabbakar92</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yahyaabbakar92"/>
    <language>en</language>
    <item>
      <title>How to Learn Programming</title>
      <dc:creator>Yahya Abbakar</dc:creator>
      <pubDate>Tue, 31 Jan 2023 18:26:21 +0000</pubDate>
      <link>https://dev.to/yahyaabbakar92/how-to-learn-programming-llg</link>
      <guid>https://dev.to/yahyaabbakar92/how-to-learn-programming-llg</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Mind-mapping: use radially clustered diagrams to help you create associations.&lt;/p&gt;

&lt;p&gt;Interleaving: mix up the order in which you learn things.&lt;/p&gt;

&lt;p&gt;Recall: write or use flashcards or make notes.&lt;/p&gt;

&lt;p&gt;Spaced repetition: review information at increasing intervals to commit it to long-term memory.&lt;/p&gt;

&lt;p&gt;The Feynman Technique: explain something in simple, layman's terms.&lt;/p&gt;

&lt;p&gt;Active learning and diffused learning: learn actively then reflect on what you learned while diffusing your focus to something else.&lt;/p&gt;

&lt;p&gt;The Pomodoro technique: schedule short, frequent periods of work followed by short breaks.&lt;/p&gt;

&lt;p&gt;Exercise regularly to enhance your ability to learn new information.&lt;/p&gt;

&lt;p&gt;Takeaway: Using these techniques can help you learn more effectively.&lt;/p&gt;

&lt;p&gt;How to learn programming can be a challenging process, but you don't have to face it alone. Everyone learns differently and I'm here to help. You may notice I haven't mentioned specific resources in this post. As aspiring programmers, we all find our preferred learning style and stick with it. This is part of what helps us become unique individuals in the tech industry (and means you need a personal learning style when choosing a programming language too).&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 1: Mind-mapping
&lt;/h2&gt;

&lt;p&gt;Mind mapping is a technique used to get your ideas and creativity out there, preferably on paper. Brainstorming essentially.&lt;/p&gt;

&lt;p&gt;This is how you get started: get a piece of paper, and rotate it to a "landscape" view. Write down the idea or topic in the center of the paper, and from there you will write down the thoughts and ideas that come to your mind around the main idea.&lt;/p&gt;

&lt;p&gt;If you wanted to make a to-do list app, and you wanted to brainstorm the functionality of the app. You could write down words of what you wanted the app to do and easily have a pick of ideas to choose from.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 2: Interleaving
&lt;/h2&gt;

&lt;p&gt;Interleaving is a technique you use to improve learning by "jumping" between different topics. This helps in retaining new information and keeps learning "fresh".&lt;/p&gt;

&lt;p&gt;For example, say you're learning about factory functions and the topic isn't necessarily making sense. You could move on to learn a new topic like es6 javascript modules and by doing this, you're allowing your brain to process that information and maybe that new topic will make the previous topic make sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 3: Recall
&lt;/h2&gt;

&lt;p&gt;After you've read about a topic, the next best thing to do would be to spend 30 seconds writing what you remember about it down. This is what you call recall. It's the process of trying to remember what you've just read or learned about by writing it down or answering questions of your own to remember it.&lt;/p&gt;

&lt;p&gt;If you wanted to remember the essential CSS selectors, the way you could go about it is after learning about them, use them immediately without referencing them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 4: Spaced repetition
&lt;/h2&gt;

&lt;p&gt;Spaced repetition is a learning technique that is used to remember abstract information by reviewing topics over some timeframe. This means that for something to stick in your memory, you will learn about it, recall it and then try again in an hour and see if you remember it. Anki is a great tool used to assist you in learning spaced repetition.&lt;/p&gt;

&lt;p&gt;Using spaced repetition is a great way to increase your chances of remembering programming concepts that are asked as questions during the job interview process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 5: The Feynman Technique
&lt;/h2&gt;

&lt;p&gt;Coined after the theoretical physicist, Richard Feynman, this technique is a sure way to understand what you learn. You do this by explaining topics or concepts as though you are explaining them to a child. If you find yourself not able to explain it, then it's a sign you didn't understand the concept.&lt;/p&gt;

&lt;p&gt;This is especially true in learning programming as concepts are usually filled with jargon tech words and are hard to comprehend initially.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 6: Active learning
&lt;/h2&gt;

&lt;p&gt;You usually want to use active learning as a way to learn abstract topics. This is when you are engaged in learning and doing the work, and experimenting while learning about a topic.&lt;/p&gt;

&lt;p&gt;This is essential especially in learning programming because if you were only learning by consuming and not coding along or experimenting, you may think you are learning but you're not retaining the information. Active learning is also a great way to escape the dreaded tutorial hell experienced by many programmers&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 7: The Pomodoro technique
&lt;/h2&gt;

&lt;p&gt;This list is in no particular order of best to worst technique but if it were, I'd say this technique would be at the top of the list. You set aside a timer of 25 minutes and you do absolutely nothing but the work you set out to do, maybe it's learning. No distractions, nothing. After the 25 minutes, you take a 5-minute break and then repeat. By the time 2 hours or however long you set out to do work, you will find yourself in a state of focus that is usually achieved during your working time. This technique is so vital in learning programming as it helps you to progress faster in your learning by being focused.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 8: Exercise
&lt;/h2&gt;

&lt;p&gt;We all know that exercise is essential to living a healthy and happy life. If you wish to boost your productivity, exercise is the answer. It could be as simple as taking a walk. Not only does your productivity go up, but the overall choices you make also become better and your mental clarity does so as well. Your mind also works while you're doing exercise. So say you're stuck on a problem and dealing with a nasty bug in your code, and the solution might come to you during your exercise.&lt;/p&gt;

&lt;p&gt;I can't tell you how to best learn programming (and which language), but I hope that these tips will help you succeed in your journey toward becoming a programmer. If nothing else, I hope that they've inspired you to learn something new!&lt;/p&gt;

&lt;p&gt;A bonus and a thank you for reading all the way through:&lt;/p&gt;

&lt;p&gt;An absolute gem of a course&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.coursera.org/learn/learning-how-to-learn/home/" rel="noopener noreferrer"&gt;Learning How to Learn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
    <item>
      <title>How I'm learning to become a web developer in 2022</title>
      <dc:creator>Yahya Abbakar</dc:creator>
      <pubDate>Mon, 10 Jan 2022 12:18:23 +0000</pubDate>
      <link>https://dev.to/yahyaabbakar92/how-im-learning-to-become-a-web-developer-in-2022-1gfh</link>
      <guid>https://dev.to/yahyaabbakar92/how-im-learning-to-become-a-web-developer-in-2022-1gfh</guid>
      <description>&lt;p&gt;Reading so many success stories, blogs, and articles on web development prompted me to think about a career in this industry. Everything I read at the time seemed too good to be true and if it wasn't for my current status, maybe I wouldn't have considered it an option as a career. Although I had written my first lines of code some years ago, it wasn't until towards the end of 2021 that I followed through in the practice. In this post, I will share some of my thoughts on my web development journey so far.&lt;/p&gt;

&lt;h2&gt;
  
  
  How and why I decided to start studying programming
&lt;/h2&gt;

&lt;p&gt;My first encounter with a programming language must have been around 2015, maybe 2016. I was taking a year off university and I was trying to figure out something to do with my time. A friend of mine told me that I should have a look at taking a course in python programming. I hesitated at first as I had no idea what it'd be good for but a couple of weeks later I decided to check it out. I bought a course on Udemy and I dove straight in. I had done no prior research as to what the language was about and what it was used for, I just thought maybe this is a good way to pass time. A week into the course and my mind was still not into it and programming concepts didn't make sense to me so I eventually just put the course away and didn't come back to it until around 2019. Again I dove head-on without having a plan and the same outcome happened. I made no effort to learn it as it made no sense to me.&lt;/p&gt;

&lt;p&gt;I honestly don't have a recollection of the thought process that led me to start making an effort and to once again start learning python but I do remember it being around September 2021. I opened up my Udemy course and started watching the python tutorial all over again, and this time again... it still didn't make any sense. But it was different this time as I was determined to understand it. &lt;/p&gt;

&lt;h2&gt;
  
  
  What did I do
&lt;/h2&gt;

&lt;p&gt;I researched a lot looking for free resources to help me better understand concepts and somehow I stumbled upon &lt;a href="https://www.freecodecamp.org/learn/"&gt;freeCodeCamp&lt;/a&gt;. What made this a much simpler way to learn for me was that as soon as I wrote code in their editor, I saw the output. This approach made for a better sense of achievement and for that reason I put studying pyhton language on hold.&lt;/p&gt;

&lt;p&gt;After completing their responsive web design portion of the course, I did a couple of their projects. Even though it was all going well I felt as though I was missing out on something. This led me through a youtube rabbit hole where I eventually found &lt;a href="https://www.youtube.com/watch?v=Y9mTrj0oR8A&amp;amp;ab_channel=DorianDevelops"&gt;Dorian's&lt;/a&gt; youtube video comparing freeCodeCamp and &lt;a href="https://www.theodinproject.com/"&gt;The Odin Project&lt;/a&gt;. The Odin Project's curriculum of being a site that offers a developer work-like structure is what made me start using it as my main study material resource. Ultimately, both freeCodeCamp and TOP(The Odin Project) are great free resources to study web development, but I much preferred the challenging material on TOP. At the moment I'm on my javascript journey on TOP and it has definitely been challenging and on many occasions frustrating.&lt;/p&gt;

&lt;p&gt;Along my journey, I've come to understand that the path to being a self-taught developer is rather difficult and this one quote I've heard from somewhere explains it quite well:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Teaching yourself is like being taught by an amateur.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm sure those may not be the exact words as I can't remember where I heard it from but it resonates so well with being a self-taught developer. Aside from that, I understood the challenge that I will have to do more compared to those who probably have a computer science degree or go through boot camps. &lt;a href="https://www.youtube.com/playlist?list=PL9Te_zV-DO1jjFxG8NHJWCfylTL39MIff"&gt;Michael's&lt;/a&gt; youtube series of his journey to being a self-taught developer in itself is inspiring and also motivational. Through his Youtube channel, he documented his journey and this would definitely have given him an advantage in landing a job. What I took from this was that aside from good-looking portfolios and projects, as a self-taught developer you need to have something extra, and using mediums such as blogs or youtube you can share your identity and your real self with which can help in the hiring process. So I've decided to be posting my journey too through blog posts. I definitely don't think it needs to be as long as this one, but it's my first attempt.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I have learned so far
&lt;/h2&gt;

&lt;p&gt;Programming is a $%&amp;amp;# and is hard but ultimately rewarding too. Getting stuck on a problem can feel overwhelming but you need only to take some time away to let your brain process whatever solutions it can come up with and even if that doesn't work, there are tons of resources out there that can lead you to your answer. I think one of the best things about learning to program is engaging in communities in discord, Slack, Reddit, etc. In these communities, you're more likely to find someone willing to put their time and effort into helping you solve a complicated problem. I know I'm guilty of not using these communities as much as I should even when I sometimes get stuck on a problem for a couple of days. And I know that people in these communities are super helpful and will always try and help. There are a lot of things that I've learned that I could list but that's for later posts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Extra resources I have used that may help
&lt;/h2&gt;

&lt;p&gt;-&lt;a href="https://www.oreilly.com/library/view/head-first-javascript/9781449340124/"&gt;Head First JavaScript Programming&lt;/a&gt; by Eric Freeman, Elisabeth Robson. When I didn't understand some concepts on TOP, this book simplified it and I still am going through it and determined to get the most out of it.&lt;/p&gt;

&lt;p&gt;-&lt;a href="https://www.youtube.com/c/TheNetNinja/featured"&gt;The Net Ninja&lt;/a&gt; also simplifies the topics and concepts that they're easily understood the first time.&lt;/p&gt;

&lt;p&gt;-&lt;a href="https://www.frontendmentor.io/home"&gt;Frontend Mentor&lt;/a&gt; is a great site to build projects that already have a design and can test your frontend skills. They also have a great slack community that can provide you feedback on your project.&lt;/p&gt;

&lt;p&gt;-I always was listening to the &lt;a href="https://www.codenewbie.org/podcast"&gt;CodeNewbie podcast&lt;/a&gt; for interesting stories on tech and development and a lot of resources are always recommended at the end of each episode. You also get to stay up to date with the current status of tech through their stories.&lt;/p&gt;

&lt;p&gt;-I also think you should follow &lt;a href="https://balapriyac.hashnode.dev/"&gt;Bala Priya C&lt;/a&gt; on hashnode for her great posts and articles that are easy reads. I know that reading her &lt;a href="https://balapriyac.hashnode.dev/blogging-how-and-why-you-should-do-it"&gt;post&lt;/a&gt; on blogging inspired me to finally write on my own.&lt;/p&gt;

&lt;p&gt;And of course, there are plenty more resources I would love to share, which I certainly will in an upcoming post. I also post, share, and retweet interesting tech and productivity articles and stories that I think could be beneficial. I hope you've enjoyed reading this post and it can be useful to someone!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
      <category>motivation</category>
    </item>
  </channel>
</rss>
