<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Md. Naime Molla</title>
    <description>The latest articles on Forem by Md. Naime Molla (@naime_molla).</description>
    <link>https://forem.com/naime_molla</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%2F1510325%2F541f1fe6-ab2d-49bb-ab5f-92a608d230a4.jpg</url>
      <title>Forem: Md. Naime Molla</title>
      <link>https://forem.com/naime_molla</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/naime_molla"/>
    <language>en</language>
    <item>
      <title>Top 10 Free Resources to Learn Data Structures and Algorithms in 2024</title>
      <dc:creator>Md. Naime Molla</dc:creator>
      <pubDate>Sun, 02 Jun 2024 20:12:36 +0000</pubDate>
      <link>https://forem.com/naime_molla/top-10-free-resources-to-learn-data-structures-and-algorithms-in-2024-4i4j</link>
      <guid>https://forem.com/naime_molla/top-10-free-resources-to-learn-data-structures-and-algorithms-in-2024-4i4j</guid>
      <description>&lt;p&gt;It’s been a couple of years since I’ve started learning Data Structures And Algorithms. When I look back on my journey, it gives me mixed feelings. I laugh when I realize how silly I was; it makes me sad when I regret the amount of time I’ve wasted doing sh*t; I blame my luck for not getting these resources when I started learning DSA, and so on. But I must confess that having a good understanding of data structures and algorithms has made me a much better programmer/problem-solver than I was before. My mental stamina, reasoning capability, and deep knowledge of various programming languages have increased significantly. As software developers/engineers, we should have this kind of foundation to thrive in this ever-evolving landscape of the software industry. So, what’s pulling you back from wrapping your head around the mighty DSA? Let’s go.&lt;/p&gt;

&lt;p&gt;In the following walk, I’m going to share with you all the resources and strategies that I’ve been using to this day, including some additional resources that I’ve not used often but look good to me.&lt;/p&gt;

&lt;h2&gt;
  
  
  YouTube channels
&lt;/h2&gt;

&lt;p&gt;Whether you are a self-taught or formal student, our go-to platform for learning from video content is YouTube. I’ve picked the four best channels for mastering Data Structures And Algorithms. I’m following three of them regularly. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. takeUforward&lt;/strong&gt;&lt;br&gt;
Whenever people ask me for the best free resource on DSA, I tell them to search “takeUforward” on YouTube and Google. And then explore their channel and website. Because I think it’s a one-stop location for everything you need to know about DSA and a bunch of software development-related resources that will cost you 0 bucks now. I’ve covered almost every playlist on YouTube they have published about Data Structures and Algorithms And I can assure you about the content quality and teaching style. It’s top-notch. If you are curious about the man behind this gold mine, this is “Raj Vikramaditya” (SWE-III @Google | Founder takeUforward). I don’t wanna talk much and waste your time; go and thank me later.&lt;br&gt;
channel link: &lt;a href="https://www.youtube.com/@takeUforward"&gt;takeUforward&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. NeetCode/NeetCodeIO&lt;/strong&gt;&lt;br&gt;
I practice DSA on LeetCode, and every time I get stuck in a problem, I first search on his channel for a video editorial before going anywhere. This dude (the channel owner) has some magical ability to make complex problems easier to understand. At first, he explains the problem in his own way, which is very important, and then draws the solution before writing the code. He has two channels: “NeetCode” and "NeetCodeIO," which are similar. The second may be for backup. There, he makes videos about LeetCode problems and other software-related things. I recommend you look at his channels, especially if you plan to grind LeetCode.&lt;br&gt;
channel link: &lt;a href="https://www.youtube.com/@NeetCode"&gt;NeetCode&lt;/a&gt;&lt;br&gt;
channel link: &lt;a href="https://www.youtube.com/@NeetCodeIO"&gt;NeetCodeIO&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Abdul Bari&lt;/strong&gt;&lt;br&gt;
Those who know this gentleman will agree that “he is a DSA savant.” He teaches CS things on his YouTube channel for free. He also has one of the best-selling courses on DSA on platforms like Udemy. I didn’t find any reason not to include his name in this list. His ability to illustrate things on the whiteboard and easily explain complex things step-by-step makes him the best teacher in the online arena. Go and take a sip of his content, and let me know the taste.&lt;br&gt;
channel link: &lt;a href="https://www.youtube.com/@abdul_bari"&gt;Abdul bari&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Neso Academy&lt;/strong&gt;&lt;br&gt;
I found them pretty good for learning computer science lessons for free online. Though I have followed them infrequently, their popularity and reputation show the quality of their work. They have content about data structures, the design and analysis of algorithms, operating systems, computer networks, database management systems, and many more.&lt;br&gt;
channel link: &lt;a href="https://www.youtube.com/@nesoacademy"&gt;Neso Academy&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Websites/blogs:
&lt;/h2&gt;

&lt;p&gt;If you prefer reading over watching videos, then the following resources are dedicated to you: Don’t get me wrong; these are going to be crucial for all of you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. LeetCode&lt;/strong&gt;&lt;br&gt;
Learning by doing is considered one of the most effective ways to master anything. So, if you wanna master DSA by solving DSA-oriented problems, then I can vouch that LeetCode is the best platform out there for you. For the last 400+ days, I’ve consistently solved coding problems on this platform to increase my problem-solving capability and DSA knowledge. Their website's UI, UX, and problem quality are top-notch. In the beginning, get some theoretical knowledge about a specific data structure or algorithm, then solve the problem related to the data structure or algorithm you’ve read. Getting stuck on a problem? See the hints they have given? Still stuck? See the editorial they’ve written on the editorial page. In case the editorial is only for premium users, check out the solution tab. There, you will find different solutions in various languages written by people like you. They also offer a bunch of things, like study plans, courses, and a store (where you can buy things using coins you’ve earned). Overall, I believe it's an excellent platform for mastering data structures and algorithms.&lt;br&gt;
link: &lt;a href="https://leetcode.com/"&gt;LeetCode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. GeeksforGeeks&lt;/strong&gt;&lt;br&gt;
This is one of my favorite platforms for learning CS topics, especially DSA. They have covered tutorials on various programming languages, data science, web technology, and DSA. Whenever I need a theoretical explanation of any data structure or algorithm, my first go-to location is GFG. Their explicit explanation of each topic gives me feelings of fulfillment, eventually uplifting my confidence in my theoretical understanding. They also have a wide range of DSA-based problem sets, which you can solve to practice on their online judge. Also, you can filter by varieties of tags like hard, medium, easy, specific company, and so on. Overall, GFG is one of the best platforms for having a huge amount of organized resources.&lt;br&gt;
link: &lt;a href="https://www.geeksforgeeks.org/"&gt;GeeksforGeeks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. w3schools&lt;/strong&gt;&lt;br&gt;
W3schools is a well-known platform for learning web development with extensive organized tutorials on various web development technologies. “Data structure and algorithm” is one of the latest inclusions on the list. I'm considering this platform because the people behind it explain and demonstrate concepts most straightforwardly, making them easy to understand. If you are a beginner or looking for some easy explanations of some of the well-known DSA, W3schools is a pretty good platform that I can suggest to you now.&lt;br&gt;
link: &lt;a href="https://www.w3schools.com/dsa/"&gt;w3schools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Programiz&lt;/strong&gt;&lt;br&gt;
Programiz has a complete series of beginner-friendly DSA tutorials along with suitable examples. Their in-depth visual explanation articulates the whole picture of the lesson. Having a list of organized lessons on commonly used data structures and algorithms makes them great resources to have on the list.&lt;br&gt;
link: &lt;a href="https://www.programiz.com/dsa"&gt;Programiz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Books:
&lt;/h2&gt;

&lt;p&gt;If you prefer learning from books, I recommend two books that will help you understand all the major data structure and algorithm (DSA) concepts. (They will cost you a few bucks.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Grokking Algorithms:&lt;/strong&gt; An illustrated guide for programmers and other curious people, by Aditya Bhargava&lt;br&gt;
shope: &lt;a href="https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230"&gt;amazon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Introduction to Algorithms&lt;/strong&gt;, by Thomas H. Cormen (Author), Charles E. Leiserson (Author), Ronald L. Rivest (Author), and Clifford Stein (Author)&lt;br&gt;
shope: &lt;a href="https://www.amazon.com/Introduction-Algorithms-Eastern-Economy-Thomas/dp/8120340078/ref=sr_1_3?crid=HE95Y6J87UR&amp;amp;dib=eyJ2IjoiMSJ9.dDPqDZSqkDgdnEPWAEei-Gq3gCVIjXxt9eyJ9zX_ywHVakZZBB7kD5WYrJk_fGXZpd5RFsXfKPeS3oFmqVaJlm-BZAX-lVp_zzV3RgHiscA4jMcA6lQaScOCPjbRLMJSorJKfYZX7olOOF1suVST8Pblvz2g6IsBOTaiI7hge6nCcsEZXVFmdIf1Z7ljhcri_nlxcNaQRU7E7KqnLbmtkhbKcKFDxe6zFMlJY0GpaN4.WuAw-iYkq7hRaZy8dgXYqekPA8EyoUbRs5Xw-LJiBeg&amp;amp;dib_tag=se&amp;amp;keywords=Introduction+to+Algorithms&amp;amp;qid=1717358854&amp;amp;s=books&amp;amp;sprefix=introduction+to+algorithms%2Cstripbooks-intl-ship%2C477&amp;amp;sr=1-3"&gt;amazon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nowadays, lack of resources is not the problem, but lack of determination, persistence, consistency, and not knowing what you don’t know is. Everything is one click away from you. So what are you waiting for, my mate? I’ve tried to accumulate all the resources I’ve used to grasp data structures and algorithms so that you can get another organized list of resources. I would be glad if this helped even a single person who strives to learn DSA. Please let me know if you find this helpful.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>coding</category>
      <category>algorithms</category>
      <category>datastructures</category>
    </item>
    <item>
      <title>Mastering the Art of Asking Questions</title>
      <dc:creator>Md. Naime Molla</dc:creator>
      <pubDate>Tue, 21 May 2024 16:39:52 +0000</pubDate>
      <link>https://forem.com/naime_molla/mastering-the-art-of-asking-questions-34bi</link>
      <guid>https://forem.com/naime_molla/mastering-the-art-of-asking-questions-34bi</guid>
      <description>&lt;p&gt;"Learning how to learn anything is one of the most essential skills you can acquire in your life." As soon as I realized it, I started learning about it. And I found out that “asking the question” is one of the key branches of it. The more I dig down into “Asking Questions," the more it astonishes me. Some of the greatest individuals in the history of mankind have talked about its power, from unlocking the mysteries of the universe to self-improvement. Confucius, who is also a favorite philosopher of mine, said,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The man who asks a question is a fool for a minute; the man who does not ask is a fool for life.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After learning for a while, I felt I should share some with you guys. As we are developers, I’ve written from our arena’s perspective. So, without further ado, let’s focus on the point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Paint the Full Picture:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A question without background information is like a story without context. To articulate your question beautifully to others, consider giving background information about it. For instance, instead of asking, "Why isn't my code working as expected?”, say: &lt;br&gt;
"I've been crafting a web application using React, and I'm trying to implement a state management solution with Redux. My problem is that the state isn't updating as expected when I dispatch actions. Here's the relevant part of my code: [your code snippet]. Could you help me clarify what I'm doing wrong?”&lt;/p&gt;

&lt;p&gt;With the addition of context, you help others grasp your problem better, which makes it a piece of cake for them to give you a useful solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Be Specific and Clear:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don’t make it vague, ambiguous, or cryptic. Make it specific and as clear as possible.&lt;br&gt;
Example of a vague question: "Can someone explain JavaScript closures?"&lt;br&gt;
An example of a specific and clear question: "I'm trying to understand JavaScript closures, specifically how they work in the context of callbacks. Here's a code snippet where I'm struggling: [insert code snippet]. Could someone explain why the variable i is behaving this way?”&lt;/p&gt;

&lt;p&gt;The quality of the answer depends on the quality of the question. So, don’t expect perfect and precise answers to a sh*t question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Show What You’ve Tried:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make your hands dirty before throwing the question at others. Do a minimum amount of brainstorming and debugging. Take assistance from LLMs, ChatGPT, and Gemini-like tools. Include in your question what you have done to get the result. For example:&lt;br&gt;
"I've tried debugging with console.log, and I have noticed that the state is correct before the action is dispatched, but it doesn't update afterward. I've also checked that my reducer function is pure. What else should I look at?”&lt;/p&gt;

&lt;p&gt;This demonstrates that you are not a goofy or noob developer. You’ve worked on it and tried to resolve it by yourself. And now you’re asking for help on the next steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Ask One Question at a Time:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We humans are extremely poor at memorizing multiple things at a single moment. And best at doing one thing at a time. So don’t overwhelm others by asking multiple questions at once. Write down all the questions on a list, sort them accordingly, and then ask them one-by-one to get the best possible output. For example, instead of asking, "How do I set up Redux, and can you also explain how to connect it to my components and how to debug it?”&lt;br&gt;
Ask one at a time, like, "How do I set up Redux in my React app?”&lt;br&gt;
Once you get the answer, ask your next question, and so on. By following this strategy, you show respect for the respondent's time and make it more manageable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Be Polite and Appreciative:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being respectful and polite is a fundamental trait of Homo sapiens. A simple "please" and "thank you" can make a huge difference. For example:&lt;br&gt;
"Could anyone please help me understand why my state isn't updating in Redux? Thank you in advance for your valuable time.”&lt;br&gt;
Remember that the people answering your questions are often doing so voluntarily. Showing appreciation can encourage more people to help you, and it fosters a positive community spirit.&lt;/p&gt;

&lt;p&gt;By following these tips, you'll not only get better answers but also build a reputation as a thoughtful and assiduous developer. Stay curious, ask questions, keep learning, and spread knowledge.&lt;/p&gt;

&lt;p&gt;I appreciate any feedback and suggestions you may have.&lt;/p&gt;

</description>
      <category>interview</category>
      <category>softwareengineering</category>
      <category>developer</category>
      <category>career</category>
    </item>
  </channel>
</rss>
