i am sorry for being stupid asking this, but i really wanted to seek all your advice. i cannot remember or memorize last course’s or lessons code in the next. in most cases even after reading all theories, i need to look at the hints or answers. how can i improve?
Just like Dataquest I do believe in hands-on learning. So, I would say that the best way to learn is to practice.
My suggestion is that, especcially when you are learning, that you never ever ever copy and paste the code. Always type it. Everything. Even if you are looking at the answer. And there is no problem to look the answer, but if do it, then make sure you understand what’s going on there and do not just type what you see. And never copy and paste it.
If you are having too much trouble when moving to the next misson, then before you do it, you should practice what you just learned on your own. Dataquest provides the datasets they use in the lessons, so just open your Jupyter notebook (I believe you have it installed) and practice. While practicing, try to do perform new tasks on own and if you can’t figured out how to do what you want then google it. Going after solutions on your own is a great way to learn.
You should always save the pdf files in the end of each mission as well. They are a very useful way to quickly revisite the mission’s content whenever you need to.
When I had problems like this, and I had such moments and still do, the guided projects were extremely helpful to better understand what I was taught in the lesson through practice, so give them lots of attention. When you’re a begginer you may spend a couple of days (or even more) to finish a guided project and that is absolutely OK. Just make sure you are really understanding everything you do.Also, create good text explanations of your code in the projects. This is not only helpful for those who will read it, but it will improve your learning.
But to be honest, I believe is quite normal to have some difficulties when you move foward in the courses. I mean, you’re learning something new and it is not all sunshine and rainbows, so persevere. The community is here for you, so don’t hesitate to ask for help!
Hope I could help somehow! Cheers!
thanks for the advice. i believe, practicing more will improve. i always do type by my own even when i see the hints or answers and clarify myself about what i typed to understand the concept. Problem is i cant memorize the code blocks in the challenges.
@otavios.s has covered almost everything. However, your response got me to reply too!
first of all, you can’t memorize coding. You just can’t so don’t even try! It’s like Math.
And if you meet anyone who says oh I can do all the coding on my own without looking up at my previous work or google or Stack Overflow, leave the room.
And if they follow you, climb the top floor of the tower lock yourself in and hire a to guard the door! make sure the tower has the internet and steady electricity for you to google and learn!
Not one coder or programmer in their right mind would ever claim no help coding! you can complement your learning via w3schools.com. They even have small quizzes that you can attempt.
Learning is always incremental! so don’t think if DQ mission gave you a simple for loop then and there, you would understand it completely. You can take this
for loop as a base, search out more, practice it with different data structures - list/ dataframe / array/ tuples, and so on.
So you will discover and learn more on your own leveraging what you have learned at DQ!
and if you feel the practice mode is compelling you to constantly look for answers, then perhaps for that topic brush your knowledge again and then come back to practice session.
and also I am a student at DQ too.
This is one of my biggest gripes with the platform. It can be anxiety provoking looking on when you are only at 3% completion of a track and can’t remember exactly how a for loop works, or whatever.
My advice would be to not move too quickly but also do not get too anxious. I noticed I spent too much time trying to understand every tiny detail for every module that when I got to the latter portions of steps 3 and 4 I was glazing over…
You need to take notes and practice. Open up a Jupyter notebook window separately, download their dataset, and attempt the question before them giving you the instructions.
You also have to be patient. If you think you’re going to do this for 3 months and BAM you’re an ML Engineer, you’ve got to rethink the amount of respect you’re giving this industry. I mean that with all love. This is not an easy cookie to bake
I have been in a similar situation as you and I want to layout strategies I employed to deal with this. So far, my strategies have been working well.
For me, learning and remembering involves these steps
- Learn the concepts well
This step is crucial. If you don’t understand concepts then you can’t do the remaining steps well. Don’t cheat. Take as much time needed to understand the material deeply. Write out the concepts in your own words, say it loud, etc. Do example problems (in the case of DataQuest they are the exercises) to understand better.
This step is subjective. I found that my gut feeling is pretty good at telling me whether I understood a concept or not.
- Take notes + Organize and Compress Notes
- Generally, in learning, there are lots of floating pieces. You want to be able to organize this info and compress the info. For example, with the pandas library in Python, I broke down my notes in several sections: Dataframe Basics, Creating & Modifying a Dataframe/Series, Selecting Values from Dataframe/Series, etc. Each of these sections contains concepts and useful syntax which I can quickly refer to if needed. I use OneNote for taking notes and complement it with handwritten notes if necessary.
- Figure out what to memorize and implement spaced repetition
I think memorizing and remembering is key. Look at the curve of forgetting here:
If you don’t review materials you learned, within 30 days you would have forgotten almost everything. So now, you need to relearn. I think that’s a huge waste of time
Before I used to review by simply glazing over my notes. That it is a terrible strategy. When you glaze over notes, your brain recognizes the notes but it does not mean it can pull that information out from your memory in key situations.
From my research, the best way to remember is by using active recall using a flashcard. A flashcard has a question on one side (example: what is for loop used for?) and the answer to the question on the other side of the card (answer, in this case, is: for loop is used to loop over a sequence)
And you need to review the cards at specific periods; 1 min after creating it, 10 min after creating it, 2 days after creating it, etc. The best way to implement spaced repetition is by using Anki which is a digital flashcard system. You can look online to figure out best practices for using Anki. I generally like to keep my questions very short and also keep the answers short as well.
I am very selective about what I memorize. So far for Python, I memorized concepts (how memory works in Python, function design guideline, etc.) and syntax (for loop, while loop, looping over common syntax). I have also memorized formulas for math as well. When memorizing, you want to use all the tools you can to help you memorize (visualization, metaphors, mnemonics, etc.). Rote memorization can work but is less effective.
For concept heavy subject, I don’t finish most of Step 2 and 3 unless I have practiced a lot and cleared my misunderstandings and strengthened my understanding. I should also mention that there is no substitute for practice. For math, for example, it is much more beneficial to solve practice problems over re-reading chapters to understand concepts better.
I highly recommend people taking this course from Coursera to learn how to learn:
Hey, @kowshikislam8 really liked your point 2: Take notes + Organize and compress notes.
I usually take notes whenever I am learning something new, the thing with me is I write everything down and cannot compress them.
If it’s not much can you share a snapshot or something like that of how one can structure and compress the notes? A basic idea that we can build on?
I quite agree with you on all the points. I´ve just finished the “Learning how to learn” course on Coursera and I also think that @arunroy2021 could get some useful ideas from this course.
I also feel the same, I’ve been working through the fundamentals of Python intro module and at first found it quite easy but found I needed to start looking at the answers and sometimes didn’t understand part of the answer.
I tried to do the project but felt like I was just looking at the answer for everything so I think I’m going to go back over the course over and the give the project another try.
I found that when I was taking too many notes, it was because I was taking notes way too early before understanding the whole picture. So you might feel like that everything is important and just jot down everything. If that’s the case then know that it is a very common trap.
When I was going through a lesson, I tried to look at a summary first to see what I was going to learn and continued referring back to it as I was going through the lesson. I even fast-forwarded through entire courses to get a brief idea of what I was going to learn. As I was going through a lesson, I took notes briefly to keep a tab of where I am going and understand difficult to understand concepts. Also, I don’t try to replace DataQuest or the internet using my notes. I frequently link to useful resources in my notes.
Notes can have different depths. You might have detailed notes of a chapter and then have a more compressed version of the notes somewhere else. For data science, I might create detailed notes for the statistics portion and then compress the notes further for memorization purposes. For syntax, I might only create a compressed version of documentation I would find online; a brief description of what the method or function does, examples, key parameters, and what each of the important parameters means. Some people try to compress this further and turn it into a cheat sheet.
You have to assess what kind of strategies work for you. You also need to decide what purpose your notes will serve. When you find in the future that they are not serving their purpose, you need to refine your strategies. For example, if you took notes about a particular method but find that you don’t understand your note and have to look online anyway then what’s the point of that note? At that point, refine your note or add to your note so you can understand it next time or get rid of it as you are using the internet anyways.
I have attached three PDFs that contain some of the notes I have taken. These are from different parts of the DataQuest Data Analyst path and contain notes from other sources as well. Hope this helps.
5.0 Comparing Frequency Distributions.pdf (412.8 KB)
Everyone gives great tips but for whomever is reading into the future… just because someone writes notes doesn’t necessarily mean you have to do it at all, or the way they do. Test what works for you and your mind. Work with your flow instead of against it.
As what @eugeniosp3 said, test out which method works for you. I generally take notes related to the more theory heavy topics - like machine learning. For the programming, I find programming to be very experiential.
Often when I solve a problem, I often perform “quality control” - meaning that I try to solve the problem a different way to confirm my answer. Or, I break down my answer into several components and test each component that way. I find that this a) ensures I understand the code correctly; b) ensures what I think I coded is actually coded correctly; c) tightens up my code because I often discover ways to make it less verbose, easier to understand, and/or provide better comments.
As others said, it takes a while. But if you do a little bit of programming each day, you will be surprised where you’ll end up
Perhaps besides practicing and taking notes, you could also implement your ideas in your own project that you can come up with to solve real-world problems or problems that you might face in your daily life that you think can be solved through programming and data science.
Thank you for explaining this important learning process. On a separate note, may I ask you, if I want to refer back to previous topic, what is the fastest way to do that?
I recommend using the saving the pdf files in the end of each mission for that. Then you can quickly revisite the mission’s content whenever you need to.
Hello~just want to share my way of quick refreshing: take notes in Word document with key words and examples, and use Search to quickly locate the syntax of your interest. Or just google it. Constantly revisiting old topics(ideally through practice or doing projects) and it will be easier and faster to use the same same knowledge next time.