facebook-developer-circle-delhi / Ask-The-Community

This is an initiative where-in people can ask questions (directly or anonymously) as issues. People can then respond to them as comments. Once there is a satisfactory answer, we can close that issue down.
14 stars 1 forks source link

Help regrading efficient ways to remember so many programming concepts while exploring new tech simultaneously #2

Closed learner213 closed 6 years ago

learner213 commented 6 years ago

Hey! I need a small help from all the great developers out there! I started exploring this field of programming and development just 2-3 months back and I'm already struggling with remembering all those concepts. I'm completely autodidact and learnt till now referring to free online courses available. I never saw any of my friends or other peer developers in my contact taking down notes while they were learning new concepts. But I think, everyone has different learning capabilities. Whenever I start exploring new tech field, I start forgetting the old concepts. Thus, I had to refer to the guides on website to visit the concept again and then use it. But searching through all way round again and again becomes hell lot of work. So, I started taking down notes from last week. But one drawback I observed was, in that way my focus is going more towards theory side (I literally jotted down notes like we were supposed to do in any school/ coaching institute) rather than practical, and I also don't want to fill tons of notebooks with programming concepts. Making notes in school way is something that feels very inefficient practice now!

Hence, I need an idea that how you all developers manage to remember so many concepts, while exploring new tech at the same time. Do you all prepare the short notes/ drawings, and if yes, can you all who are reading this can share your self made notes (please) or notes from any other developer who've made them publicly available. That would be very helpful in giving me an idea on how I can proceed to solve this problem, and how to prepare concise notes while saving a lot of time. Thanks in advance. Also, sorry for such a detailed post, but I actually wanted to explain entire situation for satisfactory answers.

darthgera123 commented 6 years ago

i think the best way is to do projects and read blogs. Personally i dont remember half of advanced python syntax but i keep checking up as and when required and projects are the best way to remember them

gaurav-gogia commented 6 years ago

Hi there,

First of all, give yourself a pat on the back for your perseverance in spite of these initial challenges. They are usually the most troublesome ones while trying out something new.

As for your query. I can respond with my approach. Do NOT try to remember them. The concepts that you are learning, they are supposed to make sense as you try to develop something. So, while you're learning something and you feel that you might forget a programming paradigm or some concept or some algorithm then don't over-think it. Instead, keep going with the flow and as you make some projects you'll notice that how those concepts and best practices will be making your life easier.

And when you discover those points, a lot of things will fit into place.

TL;DR:

  1. When you write code you will realize that understanding those concepts isn't that hard.
  2. Re-visiting old concepts is OKAY. I know some developers who do that. (myself included).
  3. Don't think too much about it. Things will fall in place as you work on them. If something still doesn't feel right then well, you can always count on DevC
vabhishek-me commented 6 years ago

In a simple sentence: Go with the flow.

You don't know but visiting something again and again actually helps you grasp the concept in your subconscious memory....... It will help in the long run.

sidvishnoi commented 6 years ago

If you're learning, you'll forget. Don't learn, but understand. Take your time. No hurries.

Some general thoughts:

  1. You don't have to remember things. You'll remember things with experience. And you can always read again if you forget.
  2. It's okay to start slow.
  3. Do not try to learn everything together. Give yourself time.
  4. Write down codes, not notes. Don't write code on paper (unless practising for interview). Dry run codes on paper as it helps you understand them better.
  5. Focus more on algorithms, not coding languages/frameworks.
  6. Practice.
harshitjuneja commented 6 years ago

As the previous comments say, all those commands, shortcuts and the language syntax develop overtime with muscle memory when you apply the same thing in one way or the other.

What you should care about: The constructs, design patterns, ideologies and their implementation.

You might want to go through a three-step process, that I have been following.

Step 1: Question Question how the particular approach is useful. Draw comparisons, raise and find/get answers to questions that you encounter in the process until you reach a satisfactory understanding of the concept.

Step 2: Discuss Discuss the new thing you've learned with peers or in online communities/forums like ours to have multiple viewpoints. It's sometimes amazing to know that how common a scenario you missed or you can even encounter a thought-provoking scenario whose answer you need to find out.

Step 3: Teach This gives you a fair amount of confidence since during the little preparation involved, you come to know if there are any gaps in your understanding.

The journey becomes really fun when it is shared. A whole lot of everyday dev for me is actually looking for the stuff that I can't remember, that I went through the day before and it's totally cool!

saranshkataria commented 6 years ago

Everyone has pretty much given the advice that I would have written. One thing I would add is that understand the crux of why something is the way it is. All you need to know is why something fundamentally exists and when it is useful. You can look up the details later and modify according to need. The syntax does not matter, what matters is understanding the principles and the reasoning why it works (or in some cases does not).

parulagg27 commented 6 years ago

Hey @learner213, I think good no. of satisfactory answers have been given and hope they helped you out. If you are still left with any doubt, feel free to ask, else please close this issue down to help us better track all the issues.

learner213 commented 6 years ago

Sure @parulagg27! All my queries were answered very well. Thank you everyone who helped me out by answering here. Thanks to fb DevC community for starting this initiative. :blush: