Coconut Report 20

Utah, US

This week, I wrote code and practiced on Leetcode. But I haven’t delivered the bot I want to build yet.

My feeling for Rust so far is, Rust gives you freedom as long as you behave well, which means you have to understand what you are doing while writing code line by line. You can not just write something you do not fully understand and expect to pass the compiler.

Javascript, by comparison, is easy to write and easy to make mistakes as well. The baseline of the code quality is quite low. That makes you concerned to others’ Javascript code very often. Btw, I didn’t like Javascript at all from 2007, when I first wrote C#.

I think the main differences between newcomers and senior developers are that the senior ones have a map of solutions in their minds, which they can use effortlessly. They know clearly what they are doing, and where they currently are in their maps. They also know there are more new maps to discover.

Although, it takes time and practice in action to build the mindset. Rome wasn’t built in a day.

Becase of the growing Coconut reports, I reorganized my website impl.dev for better content focus and fewer distractions from the menu.

Efforts

  • Programmed the bot in Rust
  • Generated a blog post draft on note-taking
  • Posted some crates on Rib twitter
  • CooEnglish posts

Learning

  • Finished 刻意练习. Introduce the correct and efficient way of learning, to devote your attention in practice. The three key factors:
    • A high quality standard or a role model, that is a compass for your efforts.
    • A mentor, who provides feedback to correct you and guide you to the right direction.
    • Build your knowledge map and the mindset by spending time on practice, and constantly challenge yourself to make small progress.
  • Currently reading: Linux for Beginners gives a brief history of Linux, and introduces several distributions as well as the installation guide. (I haven’t finished this book)
  • Studied on lecture of Structure & Interpretation of Computer Programs.
    • Blackbox explained – how to build the mindset of solving problems from small pieces
      • Ignore details as its a blackbox
      • Build bigger blackbox for the solution
    • Define
      • Make a guess
      • Improve the guess
      • Keep improving the guess until it is good enough

How you combine primitive data to get compound data, and how you abstract data so you can use large globs of data as if they were primitive. That’s where we are going.

  • Lisp examples
  (define (try guess X)
    (if (good-enought? guess x)
      guess
    (try (improve guess x) x)))


  (define (improve guess x)
    (average guess (/ x guess)))


  (define (good-enough? guess x)
    (< (abs (- (square guess) x))
      .001))

After I read a book, I review it in goodreads and recently realized that more useful reviews aren’t just thoughts on the book but are summaries. So I try summarize my learnings from a book there.

That is only worth doing if you’re reseraching a topic that is important to you.

Fun

We spent our Saturday afternoon in a park with a bottle of wine. We laid on the grass and drew, and we were pretty happy with the latest drawing. We also made a city center planning v0.1 of Cocoverse.

At last, I recommand a fun reading How to Start Your Own Country.