# Is anyone else interested in earning the Reader badge?

**URL:** <https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911>\
**Category:** Uncategorized\
**Created:** [June 8, 2022, 4:08am UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911 "2022-06-08T04:08:43Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [July 20, 2022, 4:19pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/41 "2022-07-20T16:19:32Z")

</div>

Personally, I’d create an interface to describe the data we expect from the database and then use one pipe / map to convert it:

```nohighlight
export interface Author {
  name: string;
  students: string[];
  isPremium: boolean;
}
...
  author$: Observable<Author>;
  constructor(db: AngularFireDatabase) {
    this.author$ = db.object('/authors/1')
      .valueChanges()
      .pipe(map(a => a as Author));
  }

```

Something like that. Full disclosure: I just typed that out here without checking in an IDE or anything. No guarantees it will work, just trying to point you in the right direction.

The error about it returning an `Observable<unknown>` means you could also just map from `unknown` to `any` and then type as `Observable<any>`.

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [July 20, 2022, 4:22pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/42 "2022-07-20T16:22:13Z")

</div>

Unfortunately, every time you type as `any` we are basically losing any benefit to using Typescript since we know nothing about the type that it can use to help prevent issues. I have mostly programmed in Java so I may have a bias towards strongly typed languages.

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [July 20, 2022, 4:23pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/43 "2022-07-20T16:23:36Z")

</div>

Just for a data point: the longest thread I could find only had 44 so we are getting close to being the longest thread.

---

<div class="post-metadata">

**Author:** ![AlohaPapaya](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@AlohaPapaya](https://forum.codewithmosh.com/u/AlohaPapaya)\
**Post date:** [July 20, 2022, 9:15pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/44 "2022-07-20T21:15:34Z")

</div>

Thank you so much, I’ll modify my code whenever I get back home!

---

<div class="post-metadata">

**Author:** ![AlohaPapaya](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@AlohaPapaya](https://forum.codewithmosh.com/u/AlohaPapaya)\
**Post date:** [July 20, 2022, 9:15pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/45 "2022-07-20T21:15:56Z")

</div>

We are now on the longest thread then 🙂

---

<div class="post-metadata">

**Author:** ![AlohaPapaya](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@AlohaPapaya](https://forum.codewithmosh.com/u/AlohaPapaya)\
**Post date:** [July 20, 2022, 9:17pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/46 "2022-07-20T21:17:23Z")

</div>

Indeed, that’s what I thought too, but sometimes it is so hard to make things work ^^’  
Working on it though!

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [July 20, 2022, 9:41pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/47 "2022-07-20T21:41:31Z")

</div>

I feel like that deserves a small celebration. 🥳 🎉

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [July 20, 2022, 9:46pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/48 "2022-07-20T21:46:08Z")

</div>

A big part of the issue is working with legacy libraries that predate Typescript (so they do not have good typing at their interface, just returning _some_ JSON object). There are also methods which cannot do much better typing. For example, making an HTTP Get call - how do you type the return?

I suspect that is why some have typed with `unknown` rather than `any` since it forces you to pick something useful to treat it as.

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [July 20, 2022, 9:47pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/49 "2022-07-20T21:47:40Z")

</div>

I hope it actually works…

---

<div class="post-metadata">

**Author:** ![UniqueNospaceShort](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/uniquenospaceshort/32/1814_2.png) [@UniqueNospaceShort](https://forum.codewithmosh.com/u/UniqueNospaceShort)\
**Post date:** [July 22, 2022, 12:57pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/50 "2022-07-22T12:57:01Z")

</div>

I put the “half” milestone as 50th reply.  
Yeah you’re right it goes faster than I thought. 😁

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [July 22, 2022, 2:07pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/51 "2022-07-22T14:07:46Z")

</div>

It certainly does, and I do not mind if it takes several weeks. The badge is impossible to achieve currently and this is as good a way as any in my opinion.

---

<div class="post-metadata">

**Author:** ![AlohaPapaya](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@AlohaPapaya](https://forum.codewithmosh.com/u/AlohaPapaya)\
**Post date:** [August 2, 2022, 12:33pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/52 "2022-08-02T12:33:38Z")

</div>

Hey! Thanks for putting it 🙂

---

<div class="post-metadata">

**Author:** ![AlohaPapaya](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@AlohaPapaya](https://forum.codewithmosh.com/u/AlohaPapaya)\
**Post date:** [August 2, 2022, 12:34pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/53 "2022-08-02T12:34:14Z")

</div>

Hi again! Saw nothing really happened so I try to make it work again!  
Hope you are doing well 🙂

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [August 2, 2022, 1:08pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/54 "2022-08-02T13:08:54Z")

</div>

Yeah, gotta have replies to get some bantar going.

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [August 2, 2022, 1:10pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/55 "2022-08-02T13:10:20Z")

</div>

Oddly enough, I also find these badge systems enjoyable at work. My company has a just for fun badge collection system (anyone can make and give out badges for any reason). It is a fun way to break up some of the monotony at work.

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [August 3, 2022, 12:14pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/56 "2022-08-03T12:14:05Z")

</div>

To spice things up a bit, here’s a question: what is your favorite thing about Mosh’s teaching?

---

<div class="post-metadata">

**Author:** ![jmrunkle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/jmrunkle/32/3765_2.png) [@jmrunkle](https://forum.codewithmosh.com/u/jmrunkle)\
**Post date:** [August 3, 2022, 2:19pm UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/57 "2022-08-03T14:19:52Z")

</div>

We can have another party post when we hit 75.

---

<div class="post-metadata">

**Author:** ![UniqueNospaceShort](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/uniquenospaceshort/32/1814_2.png) [@UniqueNospaceShort](https://forum.codewithmosh.com/u/UniqueNospaceShort)\
**Post date:** [August 5, 2022, 11:32am UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/58 "2022-08-05T11:32:51Z")

</div>

Yes gamification is an interesting thing. It first came AFAIK into game platforms such as Steam. As a player in between the casual and try-hard I hardly ever complete those but it still gives me some extra stuff to try.

---

<div class="post-metadata">

**Author:** ![UniqueNospaceShort](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/uniquenospaceshort/32/1814_2.png) [@UniqueNospaceShort](https://forum.codewithmosh.com/u/UniqueNospaceShort)\
**Post date:** [August 5, 2022, 11:54am UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/59 "2022-08-05T11:54:10Z")

</div>

There are 3 people in particular from those I know.

- Mosh
- Bogdan Staschuk
- Dmitri Nesteruk

I think I put them in order of preference.  
I know them all from Udemy.  
Dmitri Nesteruk is a very knowledgeable Quant that provide advanced information. The drawback is I often postpone if not give up on his courses because of that even though I like it. Simply it is a bit too soon.

Bodgan is going in depth in his topics. He really gives a ton of information. The thing I like less though is the huge amount of repetition. Though repetition is good for memorizing/learning, when one consume his courses the way I do this is pretty tiring. His courses are probably made to be consumed bit by bit at a slower pace. I think many hours of his courses are mere repetition.

Mosh is kinda like reading my mind. He answers questions pretty much as soon as I have them. It seems we are focusing on the same bits of information and he is just providing it to us. Sure many complain about courses being outdated and to some extent I can understand. Also there are a few hiccups here and there such as showing a working result yet in practice it doesn’t but the answer actually appears on the next video (that React course and a few others). In these moment I heat search engines like crazy often not finding a solution until I give up on trying to find and play the next one. That one would have explained it to me. 😅 But overall I love the way he teaches. The courses are comprehensive.

I can understand keeping courses up to date on many techs may feel cumbersome, but from time to time (like every 3/5 years) they deserve an update or new course if suitable. I learned ASP .NET MVC with Mosh yet I learned ASP .NET Core building from that.

Oh Bonus awesome guy who probably would kick Nesteruk from the top 3. Rahul Nath has a Youtube channel where he presents various technologies in which .NET Core. I think I got my understanding of more advanced topics from him.

---

<div class="post-metadata">

**Author:** ![UniqueNospaceShort](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.codewithmosh.com/uniquenospaceshort/32/1814_2.png) [@UniqueNospaceShort](https://forum.codewithmosh.com/u/UniqueNospaceShort)\
**Post date:** [August 5, 2022, 11:56am UTC](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911/60 "2022-08-05T11:56:02Z")

</div>

Extra question: What are you working on now ?

I am following the Learning path for .NET MAUI on Microsoft Learn.

[Previous page](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911.md?page=2)

[Next page](https://forum.codewithmosh.com/t/is-anyone-else-interested-in-earning-the-reader-badge/12911.md?page=4)
