Tweet
Simple things I learned as a TypeScript novice:

[Thread] 🧵 #LearnInPublic #BuildInPublic #100DaysOfCode
@reborg @AthensResearch Networked Thought at the Speed of Thought.

This is my most valuable contribution to @AthensResearch yet after almost a year of #learntocode

#buildinpublic #learninpublic #CodeNewbie #Clojure

Beta.82 includes our biggest performance update yet!

Kudos to @juniusfree, our resident #learninpublic and #buildinpublic expert and long-time Clojure learner!

Kudos to @denik for tips on datascript indexing and ~transducers~

PR➡️github.com/athensresearch…
@reborg Last week
- Read the re-frame docs
- Studied the basic concepts of Datomic/Datascript
- Started working on this PR for @AthensResearch github.com/athensresearch…

#CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
In the past few months, I'm studying the #Clojure core library thru @reborg manning.com/books/clojure-…. What I like about it is the basic English explanation + example use of each fn. Very helpful for beginners.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic
Grokking Simplicity Chap. 10

Higher-order functions come with a set of tradeoffs. They can remove a lot of duplication, but sometimes they cost readability.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Grokking Simplicity Chap. 10

Implicit argument in function name is a code smell where the difference between functions is named in the function name.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Grokking Simplicity Chap. 9

Properties emerge from the structure of the call graph. Those properties tell us where to put code to maximize our testability, maintainability, and reusability.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Grokking Simplicity Chap. 8

The stratified design organizes code into layers of abstraction.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Grokking Simplicity Chap. 7

Defensive copying is used to exchange data with code that mutates data.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Grokking Simplicity Chap. 6

It is impossible to write pure functions on mutable data

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Grokking Simplicity Chap. 5

- any implicit inputs & outputs you can eliminate will improve the testability and reusability of your impure func, even if you don't cross them into the pure func land.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Continued working on github.com/athensresearch… but it looks like there are more fundamental things that I still need to learn first(?).

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Tried to integrate popper.js to fix github.com/athensresearch…. I made small progress but there's still a lot to explore.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure
Grokking Simplicity Chap. 4

- The trick to making a pure function is to replace implicit inputs with arguments and to replace implicit outputs with return values.

#100DaysOfCode #CodeNewbie #learntocode #buildinpublic #learninpublic #Clojure