Using online resources to learn
The internet allows us to learn almost anything. There are a lot of resources for almost any topic you might wish to learn, each available to you at the touch of a button. The real skill isn't finding information, but it's knowing how to evaluate it, absorb it, and build genuine knowledge from it.
This is a weird page: it wishes to teach you how to use the DSK itself and resources you find on the internet, including this page, in order to truly learn and build skills you can use. In other words, it will give you the framework that expert learners use when approaching unfamiliar territory.
What are you learning?
Before diving into the learning process, pause. What exactly are you trying to learn? "I want to learn Python" is too vague. "I want to understand how to use nanopublications to share my results" is specific and actionable. Your learning purpose will guide every decision that follows.
Check your emotional state too. Are you frustrated and desperately searching for quick answers? Excited about a new topic? These feelings matter because they affect how critically you evaluate information. When you're angry or desperate, you're more likely to accept the first thing you find.
This resource, the DSK, helps you have a list of these specific topics to learn, and how they tie together in the overall big picture that is the Open Science and Research Data Management. It also gives you a curated list of resources which you can (and should!) use---hence the need for this page.
The Cardinal Rule
The most important thing this page is trying to teach you is the following:
If you do not understand a term, stop and find its meaning before moving on.
This is uncomfortable. It breaks your reading flow. It can turn a 10-minute article into a two-hour learning session. Do it anyway.
Here's why this matters: understanding is cumulative. If you don't grasp term A, you won't understand the sentence using term A. If you don't understand that sentence, you won't understand the paragraph. Before long, you're reading words without comprehending meaning—a complete waste of time.
The DSK tries to link to either the Wikipedia article for a specific term or similarly accessible resources which are beginner friendly. Such links are marked with the "beginner" symbol, 🔰: they are goo places to start looking for deeper understanding.
How to Handle Unknown Terms
Here's what to do when you encounter a term you don't understand:
- Consider the context: Consider what is the context in which the word is used in. What is the page talking about? Is the word composite (e.g. like "nano-publication"), and if so, can you decompose it?
- Search specifically: Don't just search the term alone. Search "what is [term] in [context]" to get relevant definitions. "Closure" means something different in psychology, mathematics, and programming. Having determined the context, as in the previous step, is essential here.
- Find multiple definitions: Technical terms especially benefit from seeing multiple explanations. Whenever possible, the DSK might link with multiple resources. Even if it doesn't, look for them if the first one you find isn't satisfactory to you.
- Verify your understanding: Can you explain it in your own words? Can you think of an example? If not, you don't really understand it yet.
This process feels slow at first, but it accelerates dramatically. The tenth unknown term takes less time to research than the first because you're building context. And critically, you're building actual understanding rather than surface-level familiarity.
It's important to keep notes on each term you don't understand, and even concepts you do understand. For example, you might use a notebook, a Word document or, even better, a platform specifically designed for these kinds of notes, like 🔨 obsidian or 🔨 :lock_with_key: notion. Create a new note (or paragraph, or section) on each concept that you either did not know before, or that you find particularly important.
Asking good questions
It is often said that there are no bad questions. I disagree: it is extremely easy to find something you don't understand, be too lazy to try and understand it, and simply go online and ask someone (or even worse, an LLM) to explain it to you. You are putting the effort of learning on someone else, rather than on you: the pain of not understanding is a symptom of learning, similar to muscle pain is a symptom of going to the gym to get buff.
This is why it is very important to ask good questions. But, how can we do this?
The programming community has developed exceptional norms around self-teaching because code either works or it doesn't—there's no faking it. Therefore, if you don't understand something, it is painfully obvious to someone who has this understanding. To an expert eye, it is also easy to see if you actually put effort in trying to understand or you did not.
I show a summary of these rules here, but you can find many resources online which go in more depth:
Do your own problem-solving first
When something doesn't make sense or you hit a problem, your first instinct shouldn't be to ask for help. Instead, as yourself these questions:
- What exactly is the problem? Are you not understanding a specific term or concept? Are you not understanding how a certain thing is used? Did you lose the thread to the big picture that this concept fits in?
- Is your problem related to an error, for example while using a tool? If so, read the error. Do you understand what the machine is trying to tell you?
- Can you find a resource, for example looking online, that can be used to learn more about the problem, contextualise a new term, link the concept to the big picture?
- Can you go back, retrace your steps, and get to the concept you are having issues with again? Perhaps you simply lost or forgotten something along the way. Here, your notes are very useful.
- Has someone else already asked your question (or a very similar one)? Look online for similar questions which might help you. Forums, sites like Reddit or Stack exchange can be useful in this task.
If, and only if, you still cannot find an answer or explanation, feel free to ask a question: there are many people that want to and will gladly help you out.
How to ask for help
If you've genuinely exhausted your self-teaching options, then ask for help. But ask well:
- Give the people who are helping you the context of your question. What are you trying to accomplish? What's your background level? Where did you encounter this problem?
- Be as specific as possible. "I don't understand FAIR data" is too broad. "I understand that FAIR data is data that is more shareable, but I don't understand why this is important" is specific and answerable.
- What do you already know? What have you already tried? What resources have you consulted? This isn't just courtesy—it helps people give you better, more targeted answers.
- If relevant, provide minimal reproducible examples. Clean, well-formatted questions get better responses faster. Even a simple "hello" and a "thank you in advance" can go a long way to get people to
People who ask questions this way are respected in their communities. The ones who don't struggle to get responses and are seen as low-effort learners. Remember that most people who are helping you online are volunteers that devote their free time to answer questions.
Common Traps to Avoid
Here are a bunch of things to keep in mind as you learn from online resources and the DSK itself.
- The Collector's Fallacy
- Saving dozens of articles, bookmarking hundreds of tutorials, and creating elaborate reading lists feels productive. It isn't. You learn by engaging with material, not by hoarding it.
- It's better if you pick one good resource and work through it completely before moving to the next.
- Tutorial Hell
- Endlessly following tutorials without building anything yourself creates an illusion of competence. You can follow along with guidance but can't apply the knowledge independently.
- Instead, after each tutorial, create something without following instructions. Rewrite what you learned in your own words. Start small if necessary, but create independently. After creating, look back at the source material and check if you got something wrong.
- Skipping fundamentals
- Advanced topics look more interesting than basics. But trying to learn advanced concepts without fundamental understanding is like trying to read before you know the alphabet. For instance, learning about advanced data structures without knowing anything about computer logic would be a waste of time.
- Be honest about your current level. Master fundamentals thoroughly even when they seem boring or you think you already know them.
Your Learning System
Effective self-teaching requires some structure. Here are some ideas on methods that may help you learn more.
I suggest you keep a journal, a 🔰 bullet journal or 🔰 commonplace book in which you annotate with what material you engaged on any single day, what you did or did not understand, and what you plan to look into next. This allows you to first, pick back up where you left off immediately, and second, it allows you to notice patterns of difficulty on some kinds of topics, which suggest you need stronger fundamentals in that area.
I've already said to keep a notebook or digital collection of notes while you learn. These notes will be your own, personal, messy knowledgebase which you can tap into again and again while you work. Don't think about making it pretty for others - its main purpose is to be useful to you. Each minute spent on building your knowledgebase will pay off later (to a point, of course).
Ways to build such a resource are many. Here are just a couple:
- 🔒 Building a Second Brain - Tiago Forte, a way to sort your notes, based on the project-centric philosophy of "getting things done".
- 🔒 How to take smart notes - Sonke Arhens, which explains how to create and maintain a digital :star: zettlekasten system.
Tools to build these notes are pen and paper, digital documents, or specific software like the aforementioned Obsidian or Notion.
Try to schedule regular study sessions. Sporadic learning is far less effective than consistent practice. Even 30 focused minutes daily outperforms occasional multi-hour sessions. Use your learning journal to schedule what to learn next, so you don't lose time when picking the subject back up.
Spaced repetition works! Revisit topics periodically to strengthen understanding and catch misconceptions. A common way to do this is to use flashcards, in which you write a question or concept on one side, and the answer, definition or explanation on the other. When reviewing, you look at the cards one the "question" side and try to answer, then check the back to see if you're correct. You can use these cards (or a subset of them) to review or "warm up" before starting your learning session. There are digital ways to do this, one such tool is ⭐ 🔨 ankiweb.
When learning a practical skill, like programming, building something yourself is extremely essential. Close the book or resource you are reading and test the tool you are learning how to use. Follow the tutorials but then try it out yourself, either doing the same thing or building something new. When learning how to program, for example, building simple projects like calculators and small games like tick-tac-toe may seem like a waste of time, but they are not: they are absolutely essential to learning as they make you face real-world problems that you will need to solve.