<?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: Michiel Nuyts</title>
    <description>The latest articles on Forem by Michiel Nuyts (@michielnuyts).</description>
    <link>https://forem.com/michielnuyts</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%2F122041%2F3f6d18f6-94f3-46af-b736-f097a5da4429.jpeg</url>
      <title>Forem: Michiel Nuyts</title>
      <link>https://forem.com/michielnuyts</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/michielnuyts"/>
    <language>en</language>
    <item>
      <title>How To Learn A Programming Language</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Sat, 01 May 2021 17:13:57 +0000</pubDate>
      <link>https://forem.com/michielnuyts/how-to-learn-a-programming-language-2l05</link>
      <guid>https://forem.com/michielnuyts/how-to-learn-a-programming-language-2l05</guid>
      <description>&lt;h2&gt;
  
  
  Day 1 to 5
&lt;/h2&gt;

&lt;p&gt;Buy a book about language x, start reading it front to back. Just reading. Don’t stop on things you do not understand. The idea here is to get a high level overview of the language. How it feels and looks. It helps if you already know another language. Compare it with that language, how do you accomplish the same results in your known language? Just spend the first few days emerged in the book, keep going and don’t stop for too long.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 5 - 10
&lt;/h2&gt;

&lt;p&gt;Find multiple resources on the language. The official documentation is always a good start. Find the best resources from the community around the language. Use Twitter, forums, slack and google around. You want explanations from multiple authors. One of them is bound to give you an epiphany of understanding. Multiple good resources are key early on.&lt;/p&gt;

&lt;p&gt;Start building flashcards in Anki or another spaced repetition software. The official documentation or even parts of the official specification of the language can be a great asset here. Or resources that have a lot of accompanying visual material to do their teachings. We are all visual learners. With spaced repetition you will create a graph of interconnected knowledge about the language. The rules of the language. These need to become a mental model, you need instant access to these. It’s too tedious to constantly stop and lookup information, the genius of homo sapiens comes from finding the connections in separate pieces of information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 10 - 20
&lt;/h2&gt;

&lt;p&gt;It’s time to build something! Together with spaced repetition this is of vital importance if you want to go fast. You need to get the language in your fingers. You need to build muscle memory. It’s not enough to know the full specification of the language from your head. Building software will feel awkward in the new language at first. Just keep going, it will start clicking after a few days. Make lots of mistakes and actively start looking what you did wrong and why. Did you misunderstand certain theories of the language? Never assume anything. You will be mistaken about a lot of things.&lt;/p&gt;

&lt;p&gt;Truly understand what you are doing, never assume one thing happens if the language does something else, this is where bugs are born from. Never just assume something, learn what every single line of code is really doing behind the scenes. This is the only way to build real knowledge of a language and gain an expert level understanding. Never fool yourself, nothing is gained by this. And always remember that fooling yourself is very easy.&lt;/p&gt;

&lt;p&gt;Don’t just build along with a tutorial or what your resources dictate. Build something totally different. The key is to go out of your comfort zone, this is where the learning happens. Learning needs to be difficult, it creates the most connections in your brain. If what you are doing becomes easy move on to other concepts. Leave no stone unturned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 20 - 50
&lt;/h2&gt;

&lt;p&gt;Keep building and keep learning from resources. Keep doing your flashcards everyday. You want to be immersed in the language for some months at a time. Your subconscious will do a great amount of work for you. Rest and take lots of pauses. When resting we build connections from the learning process. Get at least 8 hours of sleep, when you wake up, you’ll find you have gained a better understanding. It can feel like magic sometimes.&lt;/p&gt;

&lt;p&gt;Start building bigger projects. Perhaps re-build projects you did in your first language and see how different the outcome is.&lt;/p&gt;

&lt;p&gt;Remember that first book you started with on day one? It might be fun to re-read it once more. And see how different the experience now feels. You’ll see the code and explanations in a different light. Some of it might still be unclear, write those down and focus on those in the coming days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;The days this will take you varies from person to person and doesn’t really matter. Just do a little bit everyday. Try to avoid not learning for more than 2 or 3 days in a row, don’t break the chain. Build a daily routine around this. Routines make life a lot easier.&lt;/p&gt;

&lt;p&gt;Never focus too much on a single resource. A certain author might not explain something that clicks for you. Lookup different tutorials on the concept and one of them is bound to click for you. Otherwise learning can be frustrating, we do not like to feel stuck too often. Keep the process smooth, but never easy.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>software</category>
      <category>programming</category>
    </item>
    <item>
      <title>Anki for Programmers</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Mon, 19 Oct 2020 00:00:00 +0000</pubDate>
      <link>https://forem.com/michielnuyts/anki-for-programmers-195g</link>
      <guid>https://forem.com/michielnuyts/anki-for-programmers-195g</guid>
      <description>&lt;p&gt;Should I convert this piece of information to an Anki card or not? Is a question often arises when I’m studying software development. For theory, Anki is always the default choice. But when there is code involved for me it usually doesn’t make sense to convert it into an Anki card.&lt;/p&gt;

&lt;h2&gt;
  
  
  Atomic
&lt;/h2&gt;

&lt;p&gt;One rule for Anki cards I abide by, is that they should be atomic. They ask me a simple question with a short answer to mark them as successfully answered. Another habit I have is to practice my Anki cards every single day, to keep that habit going I need to make sure the cards are as simple as possible and I can answer them anywhere I am. 90% of the time I am practicing my Anki cards on my phone. I try to do them just when I wake up. My phone is next to me, and instead of starting to browse Twitter in the morning as my default behavior. I practice my Anki cards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Notion
&lt;/h2&gt;

&lt;p&gt;That’s the main reason I don’t want to write pieces of code in my Anki cards for me to have a successful answer. Instead, when I feel like a new piece of information I want to learn needs to be encoded in code, I’ll use Notion. I have made a database in Notion where I keep my coding based exercises. I have buckets of 1 day, 7 days, 16 days, 35 days and 120 days. Which is based on the SuperMemo spaced repetition algorithm. Each successfully completed exercise moves into the next bucket. And with formulas in Notion you can automate and see what the next date of practice will be automatically. With a column showing exercises which are overdue and need to be completed as soon as possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Golden Rule for Learning
&lt;/h2&gt;

&lt;p&gt;“Anki + Practice + Learn by doing + Multiple resources” is my golden rule of tackling a new topic quickly. Learning should be hard, otherwise you aren’t really doing anything. I’ll explore these topics more in future posts.&lt;/p&gt;

</description>
      <category>anki</category>
      <category>study</category>
      <category>programming</category>
    </item>
    <item>
      <title>Do you deliver 100% every day?</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Thu, 12 Dec 2019 11:28:36 +0000</pubDate>
      <link>https://forem.com/michielnuyts/do-you-deliver-100-every-day-2dmp</link>
      <guid>https://forem.com/michielnuyts/do-you-deliver-100-every-day-2dmp</guid>
      <description>&lt;h3&gt;
  
  
  What is considered professional?
&lt;/h3&gt;

&lt;p&gt;I have been grinding in technical debt for some months on end and with some uninspiring user-stories on my plate. This happens now and then, how cool your project may be, there's always some stuff that nobody wants to do, but it just needs to happen.&lt;/p&gt;

&lt;p&gt;But now that I'm working on fun user-stories again, and in a greenfield side-project, my level of code quality, attention to detail and willingness to have 100% test coverage and all these little things are so much easier and come more natural than when I'm working in a codebase with technical debt. So I guess that means the joy you get from the work, directly influences a big part of the quality standard of the code. Is that professional of me?&lt;/p&gt;

&lt;h3&gt;
  
  
  Protect your passion
&lt;/h3&gt;

&lt;p&gt;I guess no, that's actually not really professional of me, but can you really expect an employee to deliver 100% quality, 100% of the time? I doubt there's a profession out there where an individual would be performing 100% all of the time, however passionate he or she may be. Passion is not a guarantee that you'll be 100% happy and productive every single day. Passion just keeps you going. And Passion is a finite resource, if you burn yourself out, your passion may be gone forever. So actually yes, I would say it is professional of me to protect my passion and wellbeing. I think it's normal that the percentage of quality an employee delivers can fluctuate over the year. It's up to you to respect your boundaries and take breaks, talk with someone, maybe change up the stuff you're working on for a little while, even if a deadline is creeping closer. The deadline isn't the only important thing for a software product to be successful, it's also the people that need to stay passionate, happy and productive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your last deadline
&lt;/h3&gt;

&lt;p&gt;I think passion is especially an important aspect of this line of work, sometimes you really need to grind deep, and you can't expect to work in the cleanest codebases all the time, so it's that passion that can keep the engine running through those muddy roads. The last thing you want is to lose your engine in the middle of a swamp, it can be lost forever, then what did you accomplish by making that deadline? It will be your last deadline. Protect your sanity and speak up when you need a change.&lt;/p&gt;

&lt;p&gt;So next time you're in a rut, or you just can't manage to get to that 100% standard, talk to people, try to change it up. The fact that your V8 engine is running like a beaten-up Chevy isn't going to contribute to any good causes in your company. It'll just bring a mountain of consequences for you and the people around you. So be professional and steer your own ship. That's what I'll be doing from now on. Or try harder at least.&lt;/p&gt;

</description>
      <category>work</category>
      <category>life</category>
      <category>balance</category>
    </item>
    <item>
      <title>The 80 Hours a Month Project</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Tue, 03 Dec 2019 11:36:02 +0000</pubDate>
      <link>https://forem.com/michielnuyts/the-80-hours-a-month-project-54l9</link>
      <guid>https://forem.com/michielnuyts/the-80-hours-a-month-project-54l9</guid>
      <description>&lt;p&gt;Since August 2019 I've been doing a lot of extra learning, coding, and writing besides my full-time job. November is the first month where it really just fell apart. In all the previous months I did pretty good and produced a lot of new blog posts, a big side-project, and a lot of studying about important principles of software development, and read 15+ books. What went wrong? And can I keep this value creation process going for the coming years if I solve some problems with my current system?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;August: 74 hours&lt;/li&gt;
&lt;li&gt;September: 78 hours&lt;/li&gt;
&lt;li&gt;October: 70 hours&lt;/li&gt;
&lt;li&gt;November: 30 hours&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see I actually never managed to get to the 80 hours so far, I've always come close and told myself I'll just do 90 hours in a month to increase the average to 80 hours for the last few months. Now with the terrible results in November that kinda became impossible and I was also just missing the point with that mindset.&lt;/p&gt;

&lt;p&gt;November has turned out to be my most un-productive month since I started in August. The thing is that 20 hours per week is just not sustainable for months on end. So I can either start working 4/5 at my company or do a bit less each month because forcing 80 hours per month isn't going to work and will result in actually accomplishing less anyway. Remember that hours clocked in isn't the real metric to measure. &lt;/p&gt;

&lt;p&gt;The real metric is value produced each month. Some examples are, the number of blog posts published, the number of new features written for my side-projects, books read and the lessons learned from them, new principles studied and learned in software development. Those are the things that will produce real value and it's those that I should measure, not the number of hours spent on what I decide is categorized as productive because let's face it, that just makes it easier to fool myself.&lt;/p&gt;

&lt;p&gt;I can still track the time, but I should measure it against the value I produced each month, I suspect that might give me a lot more insight. So starting from December, I'll measure my journey to success, as I might call it, in the value I produced. How that will translate itself to my systems I will have to see, but I'm excited to see where this will go.&lt;/p&gt;

&lt;p&gt;So why am I so obsessed with doing extra? Why can't I just be satisfied with the work I produce at my full-time job? I'm not sure, but I'm kind of slightly obsessed with success since around 6 years ago when I threw my life around and started doing software development full-time. I've never finished high school and worked the worst jobs they threw at me. I'm grateful for that though because I developed a lot of discipline at those jobs, they sucked but I never complained about it. Instead of complaining about my life, I turned it upside down. I looked for a part-time job, barely could pay my rent and I studied for 12 to 14 hours a day. A few months later I was doing software full-time. With focus, discipline, time and knowing what to learn, you can move mountains in just a few months. I still believe that.&lt;/p&gt;

&lt;p&gt;So now that I've been doing software for 6 years or so, I kinda want to see how far I can get. Since the start of 2019, I've been reading a lot about financial independence and early retirement. And I feel that is a worthwhile goal to pursue in life for the long term. And of course I'm still passionate about everything about software so those are the things keeping me in check for now.&lt;/p&gt;

&lt;p&gt;So comming back to my 'system' I think I just need to set a few montly goals like writing x amount of blog posts, writing x amount of features for my side projects and new concepts I want to learn. I just need to figure out the average time I spend on things so I don't set too many goals that I'm not going to be able to accomplish anyway without burning out. Because I'm pretty sure I came really close to a small burnout in November. But no way I'm settling for less anytime soon.&lt;/p&gt;

</description>
      <category>hustling</category>
      <category>success</category>
    </item>
    <item>
      <title>UltraLearning</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Thu, 07 Nov 2019 15:07:42 +0000</pubDate>
      <link>https://forem.com/michielnuyts/ultralearning-3dgg</link>
      <guid>https://forem.com/michielnuyts/ultralearning-3dgg</guid>
      <description>&lt;p&gt;This is a re-post from my personal blog at &lt;a href="https://www.michielnuyts.com/"&gt;https://www.michielnuyts.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I read ultralearning a while ago, and here are some of my notes and highlights on it. It's definitely an inspiring book and I can't wait to setup my own ultralearning project pretty soon.&lt;/p&gt;

&lt;h1&gt;
  
  
  Main Principles
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Metalearning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Draw a map, Start by learning how to learn the subject. Do research.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Focus&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Concentrate, remove all distractions. Get into a flow-state.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Directness&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go straight ahead, learn by doing the thing you want to become good at.&lt;br&gt;
Don't trade it off for other tasks just because those are more comfortable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Drill&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Attack your weakest point. Be ruthless in improving your weakest points. Break down complex skills into small parts, then master those parts and build them back together again.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Retrieval&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Test to learn. Test yourself before you feel confident. Push yourself to actively recall information rather than passively review it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Feedback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't dodge the punches. Feedback is harsh. Extract the signal from the noise so you know what to pay attention to and what to ignore.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Retention&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understand what you forget and why. Learn to remeber things not just for now but forever.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Intuition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dig deep before building up. Develop your intuition through play and exploration of concepts and skills. Understand how understanding works. Deeply know things!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Experimentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Explore outside your comfort zone. True mastery comes not just from following the path trodden by others but from exploring possibilities they haven’t yet imagined.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Metalearning Broken Down
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;p&gt;Refers to understanding your motivation to learn. &lt;strong&gt;If you know exactly why you want to learn a skill or subject, you can save a lot of time by focusing your project on exactly what matters most to you.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What?
&lt;/h3&gt;

&lt;p&gt;Refers to the knowledge and abilities you’ll need to acquire in order to be successful. &lt;strong&gt;Breaking things down into concepts, facts, and procedures can enable you to map out what obstacles you’ll face and how best to overcome them.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How?
&lt;/h3&gt;

&lt;p&gt;Refers to the &lt;strong&gt;resources, environment, and methods you’ll use when learning.&lt;/strong&gt; &lt;strong&gt;Making careful choices here can make a big difference in your overall effectiveness.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Answering Why
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Determine if learning a topic is likely to have the effect you want it to, before you get started.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Answering What
&lt;/h1&gt;

&lt;p&gt;Once you’ve gotten a handle on why you’re learning, you can &lt;strong&gt;start looking at how the knowledge in your subject is structured.&lt;/strong&gt; A good way to do this is to &lt;strong&gt;write down on a sheet of paper three columns with the headings “Concepts,” “Facts,” and “Procedures.”&lt;/strong&gt; Then &lt;strong&gt;brainstorm all the things you’ll need to learn.&lt;/strong&gt; It doesn’t matter if the list is perfectly complete or accurate at this stage. &lt;strong&gt;You can always revise it later. Your goal here is to get a rough first pass.&lt;/strong&gt; Once you start learning, &lt;strong&gt;you can adjust the list if you discover that your categories aren’t quite right.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Concepts (first column)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Concepts are ideas that you need to understand in flexible ways in order for them to be useful. In general, if something needs to be understood, not just memorized, I put it into this column instead of the second column for facts.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Facts (second column)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Write down anything that needs to be memorized.&lt;/strong&gt; Facts are anything that suffices if you can remember them at all. You don’t need to understand them too deeply, so long as you can &lt;strong&gt;recall them in the right situations&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedures (third column)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Anything that needs to be practiced&lt;/strong&gt;. &lt;strong&gt;Procedures are actions that need to be performed and may not involve much conscious thinking at all.&lt;/strong&gt; Learning to ride a bicycle, for instance, is almost all procedural and involves essentially no facts or concepts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Underline the concepts, facts, and procedures that are going to be most challenging.&lt;/strong&gt; This will &lt;strong&gt;give you a good idea what the major learning bottlenecks are going to be&lt;/strong&gt; and can start you searching for methods and resources to &lt;strong&gt;overcome those difficulties.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowing what the bottlenecks will be can help you start to think of ways of making your study time more efficient and effective.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Often this coarse-grained analysis is enough to move on to the next phase of research. However, with more experience, you can dig deeper. You might look at some of the particular features of the concepts, facts, and procedures you’re trying to learn to find methods to master them more effectively.&lt;/strong&gt;&lt;br&gt;
If you can’t make these kinds of predictions and come up with these kinds of strategies just yet, don’t worry. This is the kind of long-term benefit of metalearning that comes from having done more projects.&lt;/p&gt;

&lt;h1&gt;
  
  
  Answering How
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Benchmarking
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The way to start any learning project is by finding the common ways in which people learn the skill or subject.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look at the curricula used in schools to teach that subject. This could be the syllabus from a single class or the course list for an entire degree.&lt;/p&gt;

&lt;p&gt;Syllabus from courses on Harvard, Cambridge, Udacity, ...&lt;/p&gt;

&lt;p&gt;Do online searches for people who have previously learned that skill or use the Expert Interview Method to focus on resources available for mastering that subject.&lt;/p&gt;

&lt;p&gt;An hour spent searching online for almost any skill should turn up courses, articles, and recommendations for how to learn it. Investing the time here can have incredible benefits because the quality of the materials you use can create orders-of-magnitude differences in your effectiveness.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Emphasize/Exclude Method
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Emphasize/Exclude Method involves first finding areas of study that align with the goals you identified in the first part of your research.&lt;/strong&gt; If you’re learning programming solely to make your own app, I’d focus on the inner workings of app development more than theories of computation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The second part of the Emphasize/Exclude Method is to omit or delay elements of your benchmarked curriculum that don’t align with your goals.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A good rule of thumb is that you should invest approximately 10 percent of your total expected learning time into research prior to starting. This percentage will decrease a little bit as your project scales up.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More Research or Start Learning?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Compare the marginal benefits of metalearning to regular learning.&lt;/strong&gt; One way to do this is to &lt;strong&gt;spend a few hours doing more research&lt;/strong&gt; &lt;strong&gt;and then spend a few hours doing more learning.&lt;/strong&gt; After spending some time on each, &lt;strong&gt;do a quick assessment of the relative value of the two activities&lt;/strong&gt;. If you feel as though the &lt;strong&gt;metalearning research contributed more than the hours spent on learning itself, you are likely at a point where more research is still beneficial.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Focus: Sharpen Your Knife
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;If I have difficult reading to do, I will often make an effort to jot down notes that reexplain hard concepts for me.&lt;/strong&gt; &lt;strong&gt;I do this mostly because, while I’m writing, I’m less likely to enter into the state of reading hypnosis where I’m pantomiming the act of reading while my mind is actually elsewhere.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Drill: Attack Your Weakest Point
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;By identifying a rate-determining step in your learning reaction, you can isolate it and work on it specifically.&lt;/strong&gt; Since it governs the overall competence you have with that skill, by improving at it &lt;strong&gt;you will improve faster than if you try to practice every aspect of the skill at once.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The rate determining step is the slowest step of a chemical reaction that determines the speed at which the overall reaction proceeds. (Improving a skill)&lt;/p&gt;

&lt;p&gt;Finally, doing drills is hard and often uncomfortable. Teasing out the worst thing about your performance and practicing that in isolation takes guts.&lt;/p&gt;

&lt;p&gt;By &lt;strong&gt;copying the parts of the skill you don’t want to drill&lt;/strong&gt; (either from someone else or your past work), you can &lt;strong&gt;focus exclusively on the component you want to practice.&lt;/strong&gt; Not only does this &lt;strong&gt;save a lot of time&lt;/strong&gt;, because you need to repeat only the part you’re drilling, it also &lt;strong&gt;reduces your cognitive burden&lt;/strong&gt;, meaning you can &lt;strong&gt;apply more focus to getting better at that one aspect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with a skill that you don’t have all the prerequisites for&lt;/strong&gt;. Then, &lt;strong&gt;when you inevitably do poorly, you go back a step, learn one of the foundational topics, and repeat the exercise.&lt;/strong&gt; This practice of starting too hard and learning prerequisites as they are needed can be frustrating, but it &lt;strong&gt;saves a lot of time learning subskills that don’t actually drive performance&lt;/strong&gt; much.&lt;/p&gt;

&lt;h1&gt;
  
  
  Retrieval: Test to Learn
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;After reading a section from a book or sitting through a lecture, to try to write down everything you can remember&lt;/strong&gt;. Free recall like this is often very difficult, and there will be many things missed, even if you just finished reading the text in question. However, &lt;strong&gt;this difficulty is also a good reason why this practice is helpful. By forcing yourself to recall the main points and arguments, you’ll be able to remember them better later.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most students take notes by copying the main points as they encounter them. However, &lt;strong&gt;another strategy for taking notes is to rephrase what you’ve recorded as questions to be answered later.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Restrict yourself to one question per section of a text, thus forcing yourself to acknowledge and rephrase the main point rather than zoom in on a detail that will be largely irrelevant later.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Feedback: Don't Dodge the Punches
&lt;/h1&gt;

&lt;p&gt;Sometimes the best action is just to dive straight into the hardest environment, since even if the feedback is very negative initially, it can reduce your fears of getting started on a project and allow you to adjust later if it proves too harsh to be helpful. All of these acts require self-confidence, resolve, and persistence, which is why many self-directed learning efforts ignore seeking the aggressive feedback that could generate faster results. Instead of going to the source, taking feedback directly, and using that information to learn quickly, people often choose to dodge the punches and avoid a potentially huge source of learning. Ultralearners acquire skills quickly because they seek aggressive feedback when others opt for practice that includes weaker forms of feedback or no feedback at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One important type of metafeedback is your learning rate.&lt;/strong&gt; This gives you information about how fast you’re learning.&lt;/p&gt;

&lt;p&gt;There are two ways you can use this tool. One is to decide when you should focus on the strategy you’re already using and when you should experiment with other methods. &lt;strong&gt;If your learning rate is slowing to a trickle, that might mean you’re hitting diminishing returns with your current approach&lt;/strong&gt; and could benefit from different kinds of drills, difficulties, or environments. A second way you can apply metafeedback is by &lt;strong&gt;comparing two different study methods to see which works better.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High-intensity, rapid feedback offers informational advantages&lt;/strong&gt;, but more often the advantage is emotional, too. Fear of receiving feedback can often hold you back more than anything. By throwing yourself into a high-intensity, rapid feedback situation, you may initially feel uncomfortable, but you’ll get over that initial aversion much faster than if you wait months or years before getting feedback. Being in such a situation also provokes you to engage in learning more aggressively than you might otherwise. &lt;strong&gt;Knowing that your work will be evaluated is an incredible motivator to do your best.&lt;/strong&gt; (This is a good reason to maybe open-source learning projects like building an app, or livestream while coding.) This motivational angle for committing to high-intensity feedback may end up outweighing the informational advantage it provides.&lt;/p&gt;

&lt;h1&gt;
  
  
  Retention: Don't Fill a Leaky Bucket
&lt;/h1&gt;

&lt;p&gt;A strategy for applying spacing, which can work better for more elaborate skills that are harder to integrate into your daily habits, is to semiregularly &lt;strong&gt;do refresher projects&lt;/strong&gt;. This approach has the disadvantage of sometimes deviating quite a lot from optimal spacing; however, &lt;strong&gt;if you’re prepared to do a little bit of relearning to compensate, it can still be a better approach than completely giving up practice.&lt;/strong&gt; Scheduling this kind of maintenance in advance can also be helpful, as it will remind you that &lt;strong&gt;learning isn’t something done once and then ignored but a process that continues for your entire life.&lt;/strong&gt; Overlearning is a well-studied psychological phenomenon that’s fairly easy to understand: &lt;strong&gt;additional practice, beyond what is required to perform adequately, can increase the length of time that memories are stored.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Intuition: Dig Deep Before Building Up
&lt;/h1&gt;

&lt;p&gt;Simply spending a lot of time studying something isn’t enough to create a deep intuition.&lt;/p&gt;

&lt;p&gt;One way you can introduce this into your own efforts is to give yourself a “struggle timer” as you work on problems. When you feel like giving up and that you can’t possibly figure out the solution to a difficult problem, try setting a timer for another ten minutes to push yourself a bit further. The first advantage of this struggle period is that very often you can solve the problem you are faced with if you simply apply enough thinking to it. The second advantage is that even if you fail, you’ll be much more likely to remember the way to arrive at the solution when you encounter it. Difficulty in retrieving the correct information—even when the difficulty is caused by the information not being there—can prime you to remember information better later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prove Things to Understand Them&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Dunning-Kruger effect&lt;/strong&gt; occurs when someone with inadequate understanding of a subject nonetheless believes he or she possesses more knowledge about the subject than the people who actually do.15 This can occur because when you lack knowledge about a subject, you also tend to lack the ability to assess your own abilities. It is true that the more you learn about a subject, the more questions arise. The reverse also seems to be true, in that the fewer questions you ask, the more likely you are to know less about the subject.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One way to avoid the problem of fooling yourself is simply to ask lots of questions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explaining things clearly and asking “dumb” questions can keep you from fooling yourself into thinking you know something you don’t.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write down the concept or problem you want to understand&lt;/strong&gt; at the top of a piece of paper. In the space below, &lt;strong&gt;explain the idea as if you had to teach it to someone else.&lt;/strong&gt; If it’s a concept, ask yourself how you would convey the idea to someone who has never heard of it before. If it’s a problem, explain how to solve it and—crucially—why that solution procedure makes sense to you. &lt;strong&gt;When you get stuck, meaning your understanding fails to provide a clear answer, go back to your book, notes, teacher, or reference material to find the answer.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Experimentation: Explore Outside Your Comfort Zone
&lt;/h1&gt;

&lt;p&gt;When starting to learn a new skill, often it’s sufficient simply to follow the example of someone who is further along than you. In discussing the principles of ultralearning, metalearning comes first. Understanding how a subject breaks down into different elements and seeing how others have learned it previously, thus providing an advantageous starting point. However, as your skill develops, it’s often no longer enough to simply follow the examples of others; you need to experiment and find your own path.&lt;/p&gt;

&lt;p&gt;The first place to experiment is with the methods, materials, and resources you use to learn. This kind of experimentation is useful in helping you discover the guides and resources that work best for you. It’s important, however, that your impulse to experiment be matched with a drive to do the necessary work. A good strategy to take is to pick a resource (maybe a book, class, or method of learning) and apply it rigorously for a predetermined period of time. Once you apply yourself aggressively to that new method, you can step back and evaluate how well it is working and whether you feel it makes sense to continue with that approach or try another.&lt;/p&gt;

&lt;p&gt;Pick some subtopic within the skill you’re trying to cultivate, spend some time learning it aggressively, and then evaluate your progress. Should you continue in that direction or pick another? There’s no “right” answer here, but there are answers that will be more useful to the specific skill you’re trying to master.&lt;/p&gt;

&lt;p&gt;There are two advantages to doing split tests. The first is that as in scientific experiments, you will get much better information about which method works best if you limit the variation to only the factor you want to test. The second is that by solving a problem multiple ways or applying multiple solution styles to it, you will increase your breadth of expertise. Forcing yourself to try different approaches encourages experimentation outside your comfort zone.&lt;/p&gt;

&lt;p&gt;The challenge of learning in the beginning is that you don’t know what to do. The challenge of learning in the end is that you think you already know what to do. It’s this latter difficulty that causes us to rerun old routines and old ways of solving problems that are encouraged through habit, not always because the old way is actually best. A powerful technique for pushing out of those grooves of routine is by introducing new constraints that make the old methods impossible to use. It’s practically an axiom of design that the best innovations come from working within constraints. Give a designer unlimited freedom, and the solution is usually a mess. On the other hand, creating specific constraints in how you can proceed encourages you to explore options that are less familiar to you and sharpens your underlying skills.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>ultralearning</category>
    </item>
    <item>
      <title>Show Your Work</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Fri, 25 Oct 2019 09:10:24 +0000</pubDate>
      <link>https://forem.com/michielnuyts/show-your-work-69k</link>
      <guid>https://forem.com/michielnuyts/show-your-work-69k</guid>
      <description>&lt;p&gt;This is a repost from my personal blog &lt;a href="https://www.michielnuyts.com/"&gt;michielnuyts.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last week I read a great book by Austin Kleon, it's called Show Your Work!&lt;br&gt;
This was the book that shot me into action and made me set up this blog and start sharing about the stuff I'm doing every day and what I'm passionate about. It's a short book you can finish in a few hours but it has great ideas to build a network of like-minded people.&lt;/p&gt;

&lt;p&gt;And worst-case scenario, if nobody reads it, You'll have a great life/developer/career journal to look back on and learn from yourself and past mistakes. We as developers often forget, there is just so much information we need to process on a daily basis, take advantage of this and write it down. Compose it into a readable format for other people and your future self. I think we can be surprised by what the outcomes might be.&lt;/p&gt;

&lt;p&gt;The following are some notes I took from the book, be sure to give it a read if you find it inspiring or useful!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Show-Your-Work-Austin-Kleon/dp/076117897X"&gt;Check out the book on Amazon here&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Build Sharing Into Your Routine
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Instead of maintaining absolute secrecy and hoarding work, be open about what you're working on, and be consistently posting bits and pieces of your work, ideas, and what you're learning online.&lt;/strong&gt; Instead of wasting time “networking,” &lt;strong&gt;take advantage of the network.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The amateur has the advantage over the professional because they have nothing to lose.&lt;/strong&gt; Amateurs are willing to try anything and share the results. &lt;strong&gt;In the process of doing things unprofessionally they make new discoveries.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“In the beginner’s mind, there are many possibilities, In the expert’s mind, there are few.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Contribute Something Today
&lt;/h1&gt;

&lt;p&gt;“On the spectrum of creative work, &lt;strong&gt;the difference between the mediocre and the good is vast.&lt;/strong&gt; &lt;strong&gt;Mediocrity is, however, still on the spectrum&lt;/strong&gt;; you can move from mediocre to good in increments. &lt;strong&gt;The real gap is between doing nothing and doing something&lt;/strong&gt;.” Amateurs know that &lt;strong&gt;contributing something is better than contributing nothing.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  We're All Turning Into Amateurs
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;The world is changing at such a rapid rate that it’s turning us all into amateurs.&lt;/strong&gt; &lt;strong&gt;Even for professionals, the best way to flourish is to retain an amateur’s spirit and embrace uncertainty and the unknown.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When Radiohead frontman Thom Yorke was asked what he thought his greatest strength was, he answered, “That I don’t know what I’m doing.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Get Started On Sharing Your Work
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Make a commitment to learning in front of others.&lt;/strong&gt; Find a scenius, pay attention to what others are sharing, and then start taking note of what they’re not sharing. &lt;strong&gt;Be on the lookout for voids that you can fill with your own efforts, no matter how bad they are at first.&lt;/strong&gt; Don’t worry, for now, about how you’ll make money or a career off it. Forget about being an expert or a professional, and wear your amateurism (your heart, your love) on your sleeve. &lt;strong&gt;Share what you love, and the people who love the same things will find you.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It sounds a little extreme, but in this day and age, if your work isn’t online, it doesn’t exist.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  The Person Behind The Product
&lt;/h1&gt;

&lt;p&gt;“By putting things out there, consistently, you can form a relationship with your customers. It allows them to see the person behind the products.” &lt;strong&gt;Audiences not only want to stumble across great work, but they, too, long to be creative and part of the creative process.&lt;/strong&gt; By letting go of our egos and sharing our process, we allow for the possibility of people having an ongoing connection with us and our work, which helps us move more of our product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Become a documentarian of what you do.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Start a work journal / blog&lt;/li&gt;
&lt;li&gt;  Start a YouTube channel&lt;/li&gt;
&lt;li&gt;  Shoot video of you working / stream stuff on Twitch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;This is all about keeping track of what is going around you.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Share Something Small Everyday
&lt;/h1&gt;

&lt;p&gt;Overnight success is a myth. It takes decades of hard work. Focus on the days instead of the years. Compound small incremental pieces of work into something huge. What do you want to have accomplished in a year or two? Start today!&lt;/p&gt;

&lt;p&gt;Share something about your daily progress, your systems, problems you came across or just thinking out loud. Even if nobody will ever read it, it still will be tremendously valuable to yourself.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“If you work on something a little bit every day, you end up with something that is massive.”—Kenneth Goldsmith&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>blogging</category>
      <category>sharing</category>
      <category>documenting</category>
    </item>
    <item>
      <title>Going offline with IndexedDB</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Sun, 20 Oct 2019 17:32:45 +0000</pubDate>
      <link>https://forem.com/michielnuyts/going-offline-with-indexeddb-1p0g</link>
      <guid>https://forem.com/michielnuyts/going-offline-with-indexeddb-1p0g</guid>
      <description>&lt;p&gt;This is a repost from my personal blog &lt;a href="https://www.michielnuyts.com/"&gt;michielnuyts.com&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Going offline with IndexedDB
&lt;/h1&gt;

&lt;p&gt;Over the past week, I have refactored my app from using FireBase to IndexedDB. This brings a new set of tradeoffs. Some cool benefits are that I can now provide all services of the app without a user needing to make an account. A potential user stumbles upon the landing page, clicks on the Call-To-Action button and can immediately start using the app. All data is saved locally in the browser in IndexedDB, which is provided in all browsers. So even without an internet connection, the app can be fully used by the user. This works because I'm using a service worker, which installs itself the very first time a user starts using the app.&lt;/p&gt;

&lt;p&gt;One of the biggest downsides is that when the user clears his browser data, the app data in IndexedDB will also be cleared. I'm fixing this by providing a syncing ability through Google Drive, Dropbox, and other major cloud storage providers. &lt;/p&gt;

&lt;p&gt;I think this is a cool direction for my app because all data is just locally on the user's machine, queries and mutations are really fast! There is no more latency when you don't need to talk to a server somewhere far away from the user's location. The key here will be to make the syncing between IndexedDB and the cloud storage work really well, especially when the user switches often between devices. I still need to think this through, it's probably the most complex new issue when choosing this route. &lt;/p&gt;

&lt;p&gt;At least I'm avoiding a lot of complexity as well, it's often easier to query and do mutations in IndexedDB than in FireBase. I'm also avoiding a lot of financial worries. FireBase has a pay-for-what-u-use model. I'm also avoiding vendor lock-in. Google can always ramp up their prices or just abandon the service as they have done with other services already in the past. This also benefits the user, because I can just keep the App free to use. I only have to pay for the hosting of the client application, which I'm doing at &lt;a href="https://zeit.co"&gt;zeit.co&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm aiming to launch a first beta version on November 20. Still, I have some stuff to figure out, but isn't that the best part about software development? Yep.&lt;/p&gt;

&lt;p&gt;If you ever find yourself tinkering with IndexedDB and want to really use it to build something, even if it's just for prototyping, have a look at &lt;a href="https://dexie.org/docs/Tutorial/Getting-started"&gt;Dexie&lt;/a&gt;. Which is a wrapper around the IndexedDB API and makes it a lot more usable. I'll definitely write more about using IndexedDB in a production App soon, for now here are some more resources to check out if you are interested in this direction for your own App.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/web/tools/workbox"&gt;Google Workbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/indexeddb-best-practices"&gt;IndexedDB Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dexie.org/docs/Tutorial/Getting-started"&gt;Dexie&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>indexeddb</category>
      <category>offlinefirst</category>
      <category>firebase</category>
      <category>serviceworkers</category>
    </item>
    <item>
      <title>From The Trusted Web To A Foreign Electron</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Mon, 14 Oct 2019 18:22:51 +0000</pubDate>
      <link>https://forem.com/michielnuyts/from-the-trusted-web-to-a-foreign-electron-3mln</link>
      <guid>https://forem.com/michielnuyts/from-the-trusted-web-to-a-foreign-electron-3mln</guid>
      <description>&lt;p&gt;This is a repost from my personal blog &lt;a href="https://www.michielnuyts.com/"&gt;michielnuyts.com&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Offline First
&lt;/h1&gt;

&lt;p&gt;Recently I came across a great &lt;a href="https://jlongster.com/secret-of-good-electron-apps"&gt;blog&lt;/a&gt; post from James Long, where he talks about his app Actual and its architecture. This intrigued me because I'm building &lt;a href="https://www.spaced-learning.app"&gt;spaced-learning.app&lt;/a&gt; and I rely on FireBase to do all the heavy lifting on the backend and the authentication. This saves me a lot of time to focus on the front-end experience.&lt;/p&gt;

&lt;p&gt;However, I've read a lot about the pricing models of serverless options and sometimes they seem too good to be true. Or even a bit scary once you start to really grow. Also, the vendor lock-in is always hanging above my head, what if Google, Amazon or Azure crank up their prices once serverless is popular enough?&lt;br&gt;
This could be a possible scenario in the coming years.&lt;/p&gt;

&lt;p&gt;I'll also have less freedom when working with my data because I'm restricted to the exposed firebase API. There are also a lot of stories where pricing got out of hand, anyway I think most of these can be avoided by carefully designing your data model and how you query and mutate your data.&lt;/p&gt;

&lt;p&gt;The idea I got from James's Blog was to move the web-app to be a desktop app only using Electron. This way I could still have the flexibility of the web technologies and I could build it as an offline application. I could use SQLite and use the background process that James already figured out in his starter boiler-plate on GitHub.&lt;/p&gt;

&lt;h1&gt;
  
  
  I Actually Care About a 'Free Forever' Plan
&lt;/h1&gt;

&lt;p&gt;I'm still not sure if this is the way to go, as just a few days later James &lt;a href="https://twitter.com/jlongster/status/1181720749746331649"&gt;tweeted&lt;/a&gt; about kinda regretting his move to Electron because of all the cumbersome aspects of managing and releasing an Electron app. I do think it's a great idea even with the extra complexity and the more pain-in-the-ass release process for the different platforms. Releasing it as a desktop app is a big benefit for my potential users and myself. I do not have to worry about firebase costs anymore. People can just download the app for free and use it forever on their own terms and with totally private data.&lt;/p&gt;

&lt;p&gt;I could introduce a premium pricing model where you can sync data in the cloud and provide a mobile companion app. Or some neat features could be behind a pay-wall. All that is still up in the air. My main goal is to provide a really good free experience, free forever.&lt;/p&gt;

&lt;h1&gt;
  
  
  Focus
&lt;/h1&gt;

&lt;p&gt;Maybe I should focus on what delivers the most value up front and stick to the Firebase route I'm already on? After some research and trying out the starter boiler-plate from James I know that there will be more complexity if I go this route. I would need to learn more about Electron, the release process and I'd need to write a backend service to let people sync their data. Although I kinda like and encourage the extra complexity, because this project has become a great learning experience where I can tinker away on something truly full-stack, not just in software terms but also in building a product from a to z.&lt;/p&gt;

&lt;p&gt;And I actually get pretty excited to try out this background process to handle all queries and mutations in the application. The experience will be near-instant because it's just loading data right from your computer instead of a server somewhere. And working with SQLite also sounds fun. I think I might just do it! You'll know the verdict in my next post.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.&lt;br&gt;
&lt;strong&gt;SQLite is the most used database engine in the world.&lt;/strong&gt; &lt;strong&gt;SQLite is built into all mobile phones and most computers&lt;/strong&gt; and comes bundled inside countless other applications that people use every day."&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>firebase</category>
      <category>electron</category>
      <category>offline</category>
    </item>
    <item>
      <title>Imagine Yourself as an Index Fund</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Tue, 01 Oct 2019 16:40:37 +0000</pubDate>
      <link>https://forem.com/michielnuyts/imagine-yourself-as-an-index-fund-1njl</link>
      <guid>https://forem.com/michielnuyts/imagine-yourself-as-an-index-fund-1njl</guid>
      <description>&lt;h3&gt;
  
  
  You're an Index Fund
&lt;/h3&gt;

&lt;p&gt;I'm of the opinion that I should invest some of the money I earn in myself. I definitely see it as a worthwhile investment. All the money I use to buy books, courses or any other educational material is an investment in myself, and it will pay back for itself eventually. It's like compounding interest, it keeps growing over time as you invest more money in your education. You become more attractive to bigger and better companies. More opportunities will unfold if you look at it this way.&lt;/p&gt;

&lt;p&gt;I've said it before, learning new things can really change our lives. The more time and money you pour into it, the bigger the change. But be careful of diminishing returns. Only invest your hard-earned money into learning material with a high standard of quality.&lt;/p&gt;

&lt;h3&gt;
  
  
  Premium Tooling
&lt;/h3&gt;

&lt;p&gt;I never back down from subscribing to a paid service/app as long as I see some benefits for myself. I gladly pay for tools that improve my career and personal life. Some of my favorites currently are Notion and RescueTime. I have been a long-time premium member of those services. I don't care about the monthly fee, because it improves my life enough that I earn it back, probably tenfold.&lt;/p&gt;

&lt;p&gt;Without RescueTime keeping me in check, I would waste hours on YouTube, instead, I work on side-projects or learn something new that I'm interested in. This, in turn, can make me more valuable at work. &lt;/p&gt;

&lt;p&gt;Notion is a savior when it comes to organizing my brain digitally. I've been reading a lot about Building a Second Brain. I've organized everything in Notion through this system. I'm still learning about it, if you are interested in it, check out the PARA Method.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://praxis.fortelabs.co/the-p-a-r-a-method-a-universal-system-for-organizing-digital-information-75a9da8bfb37/amp/?__twitter_impression=true"&gt;The PARA Method: A Universal System for Organizing Digital Information&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What are some of the things you have invested in for your personal growth?
&lt;/h1&gt;

</description>
      <category>learning</category>
      <category>investment</category>
    </item>
    <item>
      <title>How To Learn Fast</title>
      <dc:creator>Michiel Nuyts</dc:creator>
      <pubDate>Sun, 15 Sep 2019 15:50:02 +0000</pubDate>
      <link>https://forem.com/michielnuyts/how-to-learn-fast-18af</link>
      <guid>https://forem.com/michielnuyts/how-to-learn-fast-18af</guid>
      <description>&lt;h1&gt;
  
  
  Learning is our Superpower
&lt;/h1&gt;

&lt;p&gt;If you want to increase your value to your employer or just to yourself, the one superpower you'll need to have is how to learn effectively. Think about it, the ability to do research, find the right materials and really study it to a level where you could teach it to others is really an attainable superpower. This is one of the fastest ways to increase your value to others and yourself. And the great thing about it is that anybody can do it! We are all born with the same potential as human beings. Doesn't matter where, or in what circumstances we are born, our potential is equal. This is what sets us apart from all other species, the ability to imagine something we want to achieve, and set in motion the wheels to get us there. &lt;/p&gt;

&lt;p&gt;Learning and reading are the best skills you need to develop in our line of work, it's what results in the biggest gains. I've been spending a lot of time trying out ways to get better at learning. One of the biggest breakthroughs was reading "Make it stick" from Peter C. Brown and Mark A. McDaniel. They talk about spaced repetition as the best method to quickly learn and retain the information you want to learn. I tried this out with my own method, I would have 4 columns in a Notion kanban board.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5DHGqZlt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yyva3niyddfa047s9ghw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5DHGqZlt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yyva3niyddfa047s9ghw.png" alt="My First method in Notion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I took time between columns to kind of forget about the cards I learned, because of empirical research we know that the harder it is to recall information if we eventually do recall it, we will have created better retention of that piece of information, it will be much harder to forget it. By the time cards were trained to the last column I would be able to remember it without effort. &lt;/p&gt;

&lt;p&gt;I was getting hooked when I studied the book "A Philosophy of Software Design" by John Ousterhout with my new system. When I finished it, I could talk about it for hours! And it opened my eyes to see the problems in our codebase at work that prevented us to scale it to more lines of code, and bigger dev teams.&lt;/p&gt;

&lt;p&gt;I've learned that just reading a book is kind of a waste of time, most of the information will be forgotten in just a few weeks. I often look at books I have at home and ask myself: You know, I actually don't remember much of what I read in that book... Isn't that kind of a shame? We live in a time where everything is already written down in books, written by people that accomplished the very thing we want to accomplish. Studying it the correct way will get us there much faster than just giving it a read.&lt;/p&gt;

&lt;h1&gt;
  
  
  Automating my System
&lt;/h1&gt;

&lt;p&gt;This realization kind of changed my life. So much so that I wanted a better system then my 4 columns in Notion. I wanted to know how much time went between learning a card and be backed up by an algorithm that calculated the perfect time between learning cards. Of course, many of us have heard of Anki, I think it's a really great option, but the UX was a bit lacking and I wanted to personalize my workflow a bit more outside of the Anki options. Also, the creation of cards can be a bit time-consuming.&lt;/p&gt;

&lt;p&gt;So as a developer, of course, I started working on my own version of Anki, where I could decide between simple and advanced boards based on the current information I was learning. There'll also be an automated creation screen where you can transform text, pdf's and other textual information really quickly into flashcards. You can choose to go with default Anki/SuperMemo algorithm flashcards or a more simple board where cards get automatically locked with time-spans you can configure.&lt;/p&gt;

&lt;p&gt;I am making good progress, and spending around 20 hours a week on it! I'm hoping to launch a first BETA release in November this year. I'm really excited about it, and hope to solve the learning problem for more people out there! Here are a few screenshots!&lt;/p&gt;

&lt;h2&gt;
  
  
  A view of the simple boards
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XihRmG2x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qlpu88sx5angp3pt7ffo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XihRmG2x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qlpu88sx5angp3pt7ffo.png" alt="View of the Simple board"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Everybody loves statistics!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qpbsg-l7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/np112kf6yuq8q643jc5m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qpbsg-l7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/np112kf6yuq8q643jc5m.png" alt="Everybody loves statistics!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Import Cards from other users
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---vt_jjJ1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/c4minro8box4gpv5w779.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---vt_jjJ1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/c4minro8box4gpv5w779.png" alt="Import Cards from other users"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Early look at the creation screen
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PKpULNpn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/eth24jn9svlo8m2smwpo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PKpULNpn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/eth24jn9svlo8m2smwpo.png" alt="Early look at the creation screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Early look at the Anki/SuperMemo Style cards
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6tb956_U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kb8rz6usheovm0ow3mvu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6tb956_U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kb8rz6usheovm0ow3mvu.png" alt="Early look at the Anki/SuperMemo Style cards"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm really curious to hear feedback about this. What are you struggling with when it comes to learning new information? And let me know if you are interested in being involved in the first beta test! I'm planning to do it around November this year!&lt;/p&gt;

&lt;p&gt;Have a look at &lt;a href="https://www.spaced-learning.app"&gt;https://www.spaced-learning.app&lt;/a&gt; if you want to join the beta!&lt;/p&gt;

&lt;p&gt;The stack of the Application is React, NextJS, TypeScript, FireBase, and Algolia. I might talk about it more in future blog posts if people are interested in it, let me know in the comments!&lt;/p&gt;

</description>
      <category>learning</category>
      <category>efficiently</category>
      <category>superpowers</category>
    </item>
  </channel>
</rss>
