On learning difficult things
I have been autodidacting quite a bit lately. You may have seen my reviews of books on the MIRI course list. I’ve been going for about ten weeks now. This post contains my notes about the experience thus far.
Much of this may seem obvious, and would have seemed obvious if somebody had told me in advance. But nobody told me in advance. As such, this is a collection of things that were somewhat surprising at the time.
Part of the reason I’m posting this is because I don’t know a lot of autodidacts, and I’m not sure how normal any of my experiences are. (Though on average, I’d guess they’re about average.) As always, keep in mind that I am only one person and that your mileage may vary.
Pair up
When I began my quest for more knowledge, I figured that in this modern era, a well-written textbook and an account on math.stackexchange would be enough to get me through anything. And I was right… sort of.
But not really.
The problem is, most of the time that I get stuck, I get stuck on something incredibly stupid. I’ve either misread something somewhere or misremembered a concept from earlier in the book. Usually, someone looking over my shoulder could correct me in ten seconds with three words.
“Dude. Disjunction. Disjunction.”
These are the things that eat my days.
In principle, places like stackexchange can get me unstuck, but they’re an awkward tool for the job. First of all, my stupid mistakes are heavily contextualized. A full context dump is necessary before I can even ask my question, and this takes time. Furthermore, I feel dumb asking stupid questions on stackexchange-type sites. My questions are usually things that I can figure out with a close re-read (except, I’m not sure which part needs a re-read). I usually opt for a close re-read of everything rather than asking for help. This is even more time consuming.
The infuriating thing is that answering these questions usually doesn’t require someone who already knows the answers: it just requires someone who didn’t make exactly the same mistakes as me. I lose hours on little mistakes that could have been fixed within seconds if I was doing this with someone else.
That’s why my number one piece of advice for other people attempting to learn on their own is do it with a friend. They don’t need to be more knowledgeable than you to answer most of the questions that come up. They just need to make different misunderstandings, and you’ll be able to correct each other as you go along.
The thing I miss most about college is tight feedback loops while learning. When autodidacting, the feedback loop can be long.
I still haven’t managed to follow my own advice here. I’m writing this advice in part because it should motivate me to actually pair up. Unfortunately, there is nobody in my immediate circle who has the time or patience to read along with me, but there are a number of resources I have not yet explored (the LessWrong study hall, for example, or soliciting to actual mathematicians). It’s on my list of things to do.
Read, reread, rereread
Reading Model Theory was one of the hardest things I’ve done. Not necessarily because the content was hard, but because it was the first time I actually learned something that was way outside my comfort zone.
The short version is that Basic Category Theory and Naïve Set Theory left me somewhat overconfident, and that I should have read a formal logic textbook before diving in. I had basic familiarity with logic, but no practice. Turns out practice is important.
Anyway, it’s not like Model Theory was impossible just because I skipped my logic exercises. It was just hard. There are a number of little misconceptions you have when you’re familiar with something but you’ve never applied it, and I found myself having to clean those out just to understand what Model Theory was trying to say to me.
In retrospect, this was an efficient way to strengthen my understanding of mathematical logic and learn Model Theory at the same time. (I’ve moved on to a logic textbook, and it’s been a cakewalk.) That said, I wouldn’t wish the experience on others.
In the process, I learned how to learn things that are way outside my comfort zone. In the past, all the stuff I’ve learned has been either easy, or an extension of things that I was already interested in and experienced with. Reading Model Theory was the first time in my life where I read a chapter of a textbook and it made absolutely no sense. In fact, it took about three passes per chapter before they made sense.
The first pass was barely sufficient to understand all the words and symbols. I constantly had to go research a topic. I followed proofs one step at a time, able to verify the validity of each step but not really understand what was going on. I came out the other end believing the results, but not knowing them.
Another pass was required to figure out what the book was actually trying to say to me. Once all the words made sense and I was comfortable with their usage, the second pass allowed me to see what the theorems and proofs were actually saying. This was nice, but it still wasn’t sufficient: I understood the theorems, but they seemed like a random walk through theorem-space. I couldn’t yet understand why anyone would say those particular things on purpose.
The third pass was necessary to understand the greater theory. I’ve never been particularly good at memorizing things, and it’s not sufficient for me to believe and memorize a theorem. If it’s going to stick, I have to understand why it’s important. I have to understand why this theorem in particular is being stated, rather than another. I have to understand the problem that’s being solved. A third pass was necessary to figure out the context in which the text made sense.
After a third pass of any given chapter, the next chapter didn’t seem quite so random. When the upcoming content started feeling like a natural progression instead of a random walk, I knew I was making progress.
I note this because this is the first time that I had to read a math text more than once to understand what was going on. I’m not talking about individual sentences or paragraphs, I’m talking about finishing a chapter, feeling like “wat”, and then starting the whole chapter over. Twice.
I’m not sure if I’m being naïve (for never having needed to do this before) or slow (for having to do this for Model Theory), but I did not anticipate requiring three passes. Mostly, I didn’t anticipate gaining as much as I did from a re-read; I would have guessed that something opaque on the first pass would remain opaque on a second pass.
This, I’m pretty sure, was naïvety.
So take note: if you stumble upon something that feels very hard, it might be more useful than anticipated to re-read it.
Cognitive exchange rates
When reading Model Theory, I was only able to convert 30-50% of my allotted “study time” into actual study.
This is somewhat surprising, as I had no such troubles with Basic Category Theory or Naïve Set Theory.
(I often have the opposite problem when writing code; this is probably due to the different reward structure.)
I was somewhat frustrated with my inability to study as much as I would have liked. My usual time-into-studying conversion rate is much higher (I’d guess 80%ish, though I haven’t been measuring).
I’m not sure what factor made it harder for me to study model theory. I don’t think it was the difficulty directly, as I often tend to work harder in the face of a challenge. I’d guess that it was either the slower rate of rewards (caused by a slower pace of learning) or actual cognitive exhaustion.
In the vein of cognitive exhaustion, there were a few times while reading Model Theory where I seem to have become cognitively exhausted before becoming physically exhausted. This was a first for me. I’m not referring to those times when you’ve done a lot of mental work and you shy away from doing anything difficult, that’s happened to me plenty. Rather, in this case, I felt fully awake and ready to keep reading. And I did keep reading. It just… didn’t work. I’d have trouble following simple proofs. I’d fail at parsing sentences that were quite clear after resting.
I’m still not sure what to make of this, and I don’t have sufficient data to draw conclusions. However, it seems like there are mental states where my I feel awake and able to continue, but my mind is just not capable of doing the heavy lifting.
Again, the fact that I’m only just realizing this now is probably naïvety, but it’s something to remember before getting frustrated with yourself.
Explain it to someone
As I’ve said before, one of the best ways to learn something is to do the problem sets. For Model Theory, though, there were times when I finished reading through a chapter and was not capable of doing the problems.
Re-reading helped, as mentioned above. Another thing that helped was explaining the concepts.
I explained model theory pretty extensively to a text file on my computer. I sketched the proofs in my own words and stated their significance. I explained the syntax being used. I tried to motivate each idea. (The notes are still lying around somewhere; I haven’t posted them because they’re pretty much a derivative work at this point.)
I found that this went a long way towards helping me track down places where I’d thought I learned something, but actually hadn’t. If you’re having trouble, go explain the concept to somebody (or to a text file). This can bridge the gap between “I read it” and “I can do the problems” quite well. For me, this technique often took problems from “unapproachable” to “easy” in one fell swoop.
Don’t book yourself solid
I’m pretty good at avoiding stress. I have the (apparently rare) ability to drop all work-related concerns at the door when I leave. I don’t even know how to get stressed by bad luck, especially if I made good choices given the information I had at the time. I get normally tense in stressful situations with time constraints, but I’m adept at avoiding the permastress that I’ve seen plague friends and family — unless I’ve booked myself solid.
I’ve had a packed schedule these past few weeks. I try to move the needle on at least two projects a day (more on weekends). Even if it’s entirely reasonable to fit all these things into my schedule, I have not yet found a way to avoid the stress.
Even when I know that, if I push myself, I can read this much and write that much and code this feature all in one day, I haven’t found a good way to push myself without pressure-stress.
I’m still hoping that I’ll learn how to move quickly without stress as I learn my capabilities, but I’m not sure I’ve been adequately accounting for the cost of stress.
It’s worth remembering that doing less than you’re capable of on purpose might be a good strategy for maximizing long-term output.
There you go. Those are my notes gathered from trying to learn lots of things very quickly (and trying to learn one hard thing in particular). Comments are encouraged; I am by no means an expert.
- Lessons I’ve Learned from Self-Teaching by 23 Jan 2021 19:00 UTC; 355 points) (
- The mechanics of my recent productivity by 9 Jan 2014 2:30 UTC; 200 points) (
- (Even) More Early-Career EAs Should Try AI Safety Technical Research by 30 Jun 2022 21:14 UTC; 86 points) (EA Forum;
- Reply to Nate Soares on Dolphins by 10 Jun 2021 4:53 UTC; 46 points) (
- Don’t be afraid of the thousand-year-old vampire by 18 Apr 2022 1:22 UTC; 37 points) (
- Optimizing the Twelve Virtues of Rationality by 9 Jun 2015 3:08 UTC; 36 points) (
- Find a study partner by 24 Jan 2014 2:27 UTC; 29 points) (
- MIRI course list study pairs by 12 Nov 2013 5:44 UTC; 26 points) (
- 28 Apr 2015 4:19 UTC; 24 points) 's comment on Learning Optimization by (
- Ideas to Improve LessWrong by 25 May 2015 22:55 UTC; 16 points) (
- Study partner matching thread by 25 Jan 2016 4:25 UTC; 8 points) (
- the world is detailed by 22 Oct 2018 1:22 UTC; 7 points) (
- Understanding and justifying Solomonoff induction by 15 Jan 2014 1:16 UTC; 7 points) (
- Technical AI Alignment Study Group by 1 Aug 2022 18:33 UTC; 5 points) (
- Find a study partner—March 2014 thread by 2 Mar 2014 6:00 UTC; 5 points) (
- Find a study partner—May 2014 Thread by 6 May 2014 5:37 UTC; 4 points) (
- Meetup : West LA—In Apprehending Hard Stuff by 14 Nov 2013 16:17 UTC; 3 points) (
- Find a study partner—April 2014 thread by 31 Mar 2014 19:24 UTC; 3 points) (
- 18 May 2018 18:52 UTC; 1 point) 's comment on “Taking AI Risk Seriously” (thoughts by Critch) by (
I’m glad to hear I’m not alone with the “getting stuck on stupid stuff” thing!
My favorite brand of wasted effort is when I’m reading a technical text, the text says something that I feel doesn’t make sense, I spend half an hour backtracking and trying to figure it out, until I finally move on—and realize that if I had just kept reading, they would have explained it in the very next paragraph. Anyone else do that?
IIRC, Feynman once said “read until you can’t understand anything, and then start from the beginning”
Yes, I’ve definitely experienced that quite often—despite having been exposed to Ian Stewart’s good advice in Letters To A Young Mathematician that your first tactic when you don’t understand something should be to just keep reading.
Yeah, sometimes, though I remember more cases where I was “wait a minute, there’s a mistake here!” or “this is completely sub-optimal” and would put that in my notes, and a few paragraphs later he would explain the mistake or how to do it more optimally etc. But I don’t see it as wasted effort, more as a small opportunity to pat myself on the back at how well I understand the material—I guess it’s the difference between thinking about it five minutes versus half an hour.
This is why I read through at least the whole chapter first, and mark paragraphs I don’t understand along the way. Annoyingly often paragraphs are just poorly written, and make sense only when you’ve learned the whole concept elsewhere.
I found that when a text requires a second or third reading, taking a lot of notes, etc., I won’t be able to master it at the level of the material that I know well, and it won’t be retained as reliably, for example I won’t be able to re-generate most of the key constructions and theorems without looking them up a couple of years later (this applies even if more advanced topics are practiced in the meantime, as they usually don’t involve systematic review of the basics). Thus, there is a triple penalty for working on challenging material: it takes more effort and time to process, the resulting understanding is less fluent, and it gets forgotten faster and to a greater extent. It’s only worth it if it’s necessary to (passably) learn the material on schedule, or if the material is not of much interest in itself and acts mostly as a stepping stone to more advanced material, or if there is no feasible route that would render the material non-challenging (in which case I’d have to put into it even more work to gain fluency, such as inventing mini-projects, inefficiently studying something not directly useful for my purposes that applies the material and then going back, etc.).
A more efficient path, if the goal is to learn a topic well eventually, is to focus on developing skills that would make the topic easier to learn. Instead of studying the hardest book that you can understand (after three readings and looking things up, etc.), study the easiest book containing something you don’t know very well, that would inform the topic you want to master. Eventually, you get to the book that was originally hard, but it’s now easy and can be mastered reliably.
Which seems related to building skills in the right order.
Personally I find that during study it’s sometimes hard to tell the difference between material that is too challenging and material that is difficult but tractable with some effort. That is, I have to put forth the effort either way and it’s only afterwards that I find out which is the case.
Thanks. Yeah, this is one of the reasons that I put Model Theory down a little less than halfway through and moved on to a logic textbook.
That makes sense—can you give some examples?
I have a system for reading difficult textbooks that I find works well. The basic idea behind my method is that the subject matter is easy once you have the right cached thoughts, so use spaced repetition to cache those thoughts before learning the difficult parts.
For the first reading, have a notebook handy. Make a note of all terminology, definitions, etc.. Don’t spend too much time trying to understand it all, and don’t do any of the exercises or problems. The purpose of this step is to identify any things that will help you understand the material. For example, if a derivation uses a math identity you don’t have memorized, make a note of it.
The second step, which I usually do on the next day, is to take each item I noted in my notebook and put it into my spaced repetition software. This has the added benefit of making me reread just the most important concepts in a chapter. After they are in SRS, I’ll do go through my SRS study.
The third step, which I usually do on the third day (after doing my SRS reps for the day), is to read the chapter thoroughly. This is where I’ll do the exercises and practice problems.
Steps 1 and 3 take the longest, so if I’m working two textbooks, I’ll have them offset on days, with textbook A will be on step 2 when textbook B is on step 1, etc.
This may not be fastest way to read, but I find it works well. It takes me about a month to get through a single textbook, which is why I read multiple texts in parallel—it also takes about a month for me to read three textbooks. The use of SRS also helps with retention of the material after I’ve finished the text.
It actually sounds like you’re getting a third effect out of your setup. Namely interleaving.
http://learninglab.uchicago.edu/Publications_files/5-CogsciIddeas2005.pdf
You could probably improve it slightly further by trying to generate your own theories before reading chapters and learning the material in different locations.
Thanks for the link, that was a very interesting read!
The generation technique reminds me a lot of active recall. In both cases doing some sort of work yourself improves retention.
I imagine it works best with theoretical material, and for many topics it would be near impossible to use. For example, recently I’ve been studying some nuclear physics, which it is very empirically based. The equations are made to fit the experimental data, and so are difficult to generate.
Seemingly a better way to use the technique would be for the material to be presented with key parts missing, and the learner would have to generate just those parts. This, of course, requires specifically prepared material, and not just the conventional textbooks I am using.
There seems to be a definite relation between active recall, the testing effect, spaced repetition, generation, learning in different environments, changing the parameters of learning. They seem to all work with long term memory by either filling short term memory up with different material or waiting until short term memory forgets the material in question. At least, that’s my reading of the research.
I found out about these learning effects while researching the interaction between spaced repetition and deliberate practice. I’m starting to think that certain parts of deliberate practice are wrong. Namely conflating measured improvement in a task directly after training with actual learning (ie how much skill you retain after a couple of days).
I would love to know what long term application of these techniques look like. Are you cumulatively improving faster than if you took a more traditional approach(massing many practice problems in one time frame)?
I’ve only been using SRS for around 6 months, and only starting doing textbooks this way in June, so I have no direct evidence for long term effectiveness. Also, the first five textbooks I Ankified were from classes I had already taken.
Of the texts of previously unlearned material I done this for, most (all but one) have been for classes I am currently taking. In these I have been adding chapters to Anki prior to the material being covered in class and waiting until it’s taught in class to do any practice exercises.
Because of this pacing, I haven’t been progressing any faster, but I am doing significantly better in those courses than before...
...which might only be because I’m using SRS now when I didn’t before.
I have a similar method, which I describe here.
I like to use use Gingko while I’m hard technical material. I basically just re-write a much more condensed version of the textbook as I read through it.
Here’s my Gingko map of Sivia’s Data Analysis: A Bayesian Tutorial.
EDIT: fixed the link
Also, I should note that I think a lot of the benefit of using Gingko is the simple act of putting the notes into it (because it changes the reading experience from passive to active).
I’m not so sure it’s that reading the Gingko tree is useful.
I can’t see your linked Gingko tree. It sends me to the Gingko home page, or my Gingko tree if I’m logged in. Am I doing it wrong?
Thanks, fixed.
Just a heads-up: that’s not a valid shareable link on gingko. What you need to do is go in the “Settings of Current Tree”, and make sure it’s set to “Readable At”. You can set a name for the tree there at the same time, and it’ll give you a link in red. This is the link you have to give others for them to view the tree.
Your current link simply takes us to the Gingko front page or to our own homepage.
Fixed, thanks!
The quick review feedback loop is also what is behind Pair Programming ( http://en.wikipedia.org/wiki/Pair_programming )
In a way this allows one of the pair to be in near mode (understanding the concrete concepts and examples) and the other in far mode (how does this match up with our grand picture).
I’ve never had the opportunity to do pair programming, and although I was willing to try it I didn’t quite see how it’d provide a qualitative advantage over code review. This explanation helps a lot, thank you. Even if it’s not the full picture, it’s certainly made me more motivated to try it.
When that happens, I can usually study something else of similar difficulty without similar impairment, just not this particular topic (the effect persists for a few hours). This could be interpreted as getting bored with the topic (at System 1 level).
I’ve definitely noticed this happening. However, I think this is more “brain generates a temporary ugh field for the textbook” than being bored with the subject—when I swap to a different textbook on the same subject, I can often understand what’s going on and do the exercises.
I personally interpret this as the relevant part of my brain getting low on resources. That could be experienced as boredom or simple inability. Doing something different enough from the previously explored domain does indeed work.
It seems there are also more general resources, where simply changing the topic doesn’t work. If I expend my memory capacity for the day by learning one subject, changing the subject won’t give me any more capacity to memorize, but I can still do deductive/mathematical reasoning or planning or learning procedural stuff just fine.
I find this experience common and I’m sure most working mathematicians (as opposed to merely a student) would confirm. One of the most important things is not getting discouraged in the face of total incomprehensibility.
I took a senior-level undergraduate course in logic that included proof theory and model theory. The textbook was indeed hard to follow and I, too, had to read segments several times, slowly, before I understood all the different things the book author was saying. Parsing unfamiliar symbols was part of the problem, too. I tend to call writing like this “dense”, in the sense that it feels like there’s a lot more information per word or per symbol than in most other writing. (Sometimes it’s hard to tell the difference between writing that’s dense and writing that’s bullshit, though.)
“Don’t book yourself solid” alone is worth reading the whole post for. Over the last couple of years I noticed myself getting crankier, with a shorter fuse, more easily overwhelmed or worn down, and I had no idea why.
Then I noticed that whenever I tried to plan something with someone I had to book it a couple of weeks in advance, and whenever I looked at my schedule I got a sinking feeling in my stomach.
So I deliberately didn’t try to plan more than a couple of things per week more than a week in advance. After about a week of this, I’m feeling better, more excited about doing things, and I’m saying no to most of the things I didn’t really want to do anyway.
I’ve not been going at anywhere near the same rate as you, but I’ve been doing self-directed study for the past few years. This year I made an ongoing pledge to read an undergrad textbook on every subject I claim to have an interest in. Abe Books has been pretty useful here, and it’s possible to pick up a wealth of respectable textbooks at a very agreeable price if you’re happy with a slightly older version. The importance of the textbook’s age obviously varies from subject to subject, but a lot of introductory material for established subjects ages quite well.
Having a learning buddy seems very useful, but a lot easier to orchestrate when following some sort of designated syllabus such as the MIRI course list. This seems like quite a strong argument for producing and following such a syllabus.
“When reading Model Theory, I was only able to convert 30-50% of my allotted “study time” into actual study.”
I’m interpreting this as “I would schedule study time, sit down and have time free and everything, but I just wouldn’t be able to study for the whole time”, but it could be read as you not being able to study due to external factors....
Anyway, if my interpretation was correct, are you talking about losing focus and taking breaks, or being distracted by other things, or what?
Yeah, pretty much.
I guess my study technique merits description. For one thing, I’ve never had luck forcing myself to read something: if I don’t want to, I don’t. If I really need to learn something that sounds boring, I spend my efforts convincing myself that it’s interesting (or finding an alternative method of learning it) rather than forcing myself to read. I don’t seem to absorb information well when I force it upon myself. In part, the problem was that I found my impulses vetoing model theory more frequently than they vetoed other subjects in the past.
Also, there’s this phenomenon (that I’ve never tried to articulate before) where when I first glimpse a surprising / difficult concept that looks like it’s going to take some time to untangle / conflict with my existing model, I sort of… eject. Ideally, I then stare off into space / scribble on my whiteboard / meditate, as necessary. Realistically, I often end up reading fiction / dealing with email for a time before I can convince myself to attack the issue head-on.
I found that with model theory, I ended up spending more time in the “realistic” branch than usual.
Note that there are many confounding factors here; this could be related to enjoying the fiction I was reading more than usual / having more email than usual / having more “woah” moments than usual, etc. -- as I said, I don’t have sufficient data to draw conclusions. Right now, I can only note that of the hours I allotted, I managed to spend less than half actually reading the damn book (which is less than usual).
I tend to interpret this as my subconscious needing time to process it, and I can occupy my conscious mind lots of ways without issue. I don’t have a good way to test what the boundary between things that don’t cause trouble to the processing and things that do, though. (I’m pretty sure emails are about as good as meditation, don’t know if scribbling is helpful, but strongly suspect that video games are unhelpful.)
Do you ever study with pomodoros, and if so does that affect whether or how often you eject?
Nope. I’m not sure that would be helpful. Like Vaniver, I suspect that this has to do with my subconscious needing time to absorb a new concept. I don’t expect a time management technique to be useful.
Thanks, that’s really helpful, and exactly what I was asking about.
Most or all of this seems exceedingly helpful, and I will figure out how to do similarly.
I think it’s important to think about how your mind works. I’m a visual person and not very academic (in a traditional sense) so spider diagrams really help me memorise things otherwise, for me the only way is practical experience. I wish I could just remember everything I read.
I’ll have to try that explaining tip.
Ah! I hate that. From context it sounds like you learn similarly to me.
I think you are, but in a good way. I’ve encountered similar things on the occasions—thinking about it—when I had to actually learn things from my highschool math course rather than simply going “ah, yes, this.” So my current theory is poor presentation. (Other theories being tiredness—I was tired a lot at the time—or simply not being that great at math, personally, just liable to read a lot.)
Yeah, it sounds like you were just cognitively exhausted. Try taking an extended break (a few hours) and doing something else. It’s also possible that you can learn that material that many hours a day.
I’ve noticed similar kind of tiredness when I switch job and every day there is a LOT of stuff to learn, often with zero context. Sleeping more helps me to deal with that kind of stress.
This is exactly what I was thinking lately and which possibly took a lot of time for me to come to terms.
I initially questioned “why” for every step in a proof and without ever completing the proof, it didn’t make sense at all. They seemed random!
Very recently I’ve understood that understanding is not continuous but discrete.
I’ve practiced to hold all of my “why” questions till the proof is completly covered, all suddently everything will fall into the picture.
Though this works, but is especially harder when for example, we need to prove multiple lemmas to prove a proposition.
Anyways, I believe this is how it works :)
Btw, I’m coming back to this post from time to time. Everytime I come here, I feel a breeze of a rattle from someone who’s went through a similar struggle as of me. It feels good, reminding that I’m not alone.
Thanks for expressing yourself!!
I started what I call “The book of books” to help me digest concepts or other information to better grasp and understand a book. I underline the important notes like stepping stones and rewrite those sections into the book of books. Writing it down drastically helps me remember those points in the future.
Superb post!
Has anyone experimented with writing down their competing hypotheses about what something may as your leaning and annotate the notes, then when other people learn from same notes they can follow the same path of analogy to succes even if they not so smart?
This is a relevant watch. It talks about the advantages of explaining things, and gives a demonstration. One of my favorite videos.
Even if you felt fully awake, have you tried taking a nap instead of just waiting for the next day?
I’ve had this exact problem, and napping used to be my main solution. More recently I’ve found that adrafinil works really well for this. I can now crank through dense textbooks for most of the day with the help of a pill.
Interestingly, adrafinil appears to be metabolized to modafinil. I’ve had an interest in the latter for some time but never tried it because it’s restricted in the U.S. Adrafinil apparently isn’t. Is it easily available?
I get it from antiaging-systems.com. It’s about a third the cost of modafinil and doesn’t require a prescription or anything. The one warning is that the same process which metabolizes adrafinil to modafinil stresses the liver a bit. Mild, but good to keep in mind.