[00:00:00] Joel: I'm really stoked to talk to you because we've worked together for a while now and we've had similar interests and we both like making courses and teaching people and helping people grow as software developers. So there's a ton of stuff to talk about. I'm really curious about rust and your experience building a course platform and creating a course in that space.
[00:00:20] I wanted to ask before we dig into that though, like when you were sitting down to learn something new, something complex, whether it's technical or other. What's your approach to learning a complex subject?
Learning to program
[00:00:31] Chris Biscardi: I will say that I started my career with the action script three, like Bible book, which if you've never seen it before is like this giant FIC, like meaty flash book. Right. And I just sat down and I banged my head again. And sat in a computer lab that I had access to with the Adobe software that I had access to.
[00:00:52] And I just, effectively banged my head against the book until it worked.
[00:00:56] Joel: That was the book I learned how to code off of that's. What's funny to me is because I've literally like how I learned, how to program was with that with essential action script three by Colin. Mick was my introduction and just
[00:01:05] Chris Biscardi: Oh, no.
[00:01:06] Joel: shouldered into it until like, it finally clicked like, oh, this is what a class is.
[00:01:10] It took me so long. I didn't get it.
[00:01:12] Chris Biscardi: For so long. I think especially around that time when I was, I had no idea what programming really was. I was like, why are these symbols like that? Are they important like that? Or do I, does it need to be like that? Like just the, what is that? Just stumbling along and because that's really, that's the way that I then learned.
[00:01:31] Too. So like, at one point I was doing high school professionally and getting paid for contracting doing that. And the way I learned that was banging my head against it for years. And it's the same thing with anything else. So now when I re run up against like a library that is undocumented or something like that, and just like fall back on the old process, just bang my head against it until it hurts quite a bit.
[00:01:54] And then. For some reason, I'm a person that keeps doing that. So I don't really have a, yeah. Nobody's going to like that answer. Cause that's a really painful answer.
[00:02:03] Joel: Just shouldering in and suffering until you have learned enough to use it as kind of like how I might describe that.
[00:02:11] Chris Biscardi: Yeah.
Motivation
[00:02:12] Joel: What keeps you going? Like, what keeps you motivated when you're in that process though? Because it's very frustrating. I like personally, like when I learned How to code it was pre-internet and I remember like I called it the chapter four problem because I would get there and it would just be like, I don't understand this isn't for me.
[00:02:25] I give up now, but what keeps you going when you, like, how do you know it's worth it?
[00:02:29] Chris Biscardi: How do you know it's worth? It is a very different question than how do you keep going?
[00:02:33] Joel: Maybe that's true.
[00:02:34] Chris Biscardi: So like when I learned how to program, I didn't know what programmers got. I charged. So I started my career freelancing and I was charging like $15 an hour or whatever. Right. Like, like basically what people always are like, yeah, this should be the minimum wage. And I was like, I don't know.
[00:02:53] It's better than working at McDonald's. So I guess I'll keep doing this.
[00:02:56] Joel: That's true though, too. And it makes it easier to get gigs at that point too. And I
[00:02:59] Chris Biscardi: oh
[00:02:59] Joel: like my discharge in a really low rate. So people will say yes, and actually give me the chance to try
[00:03:04] Chris Biscardi: There is something to be said for like, when you don't have the skills and the expertise and the negotiation ability and the network and the audience and the, all of these other things. Right.
[00:03:16] Joel: Your crew that.
[00:03:17] Chris Biscardi: just getting something.
[00:03:18] Joel: Yeah.
[00:03:19] Chris Biscardi: But also like, Later on you learn that I don't know, software engineers don't make $15 an hour.
[00:03:23] But like, I didn't know any of that. So like the motivation for me is intrinsic. Like it's internal it's. The only way that I do things is if I want to do things.
[00:03:33] Joel: Yeah.
[00:03:34] Chris Biscardi: yeah, I got recently diagnosed with ADHD and stuff like that. So like, it makes a little bit more sense to me these days. But like, I don't do well with authority and external deadlines and people telling me what to do and all of that kind of shit.
[00:03:47] And then I imagine that so I don't know if it's not internal motivation, if it's not something I want to be doing, if I don't have like my reason for doing it, whatever that is, whether it's, I like, even to the extent of like, I need to pay rent almost isn't good enough for me to keep up.
[00:04:03] Joel: that's just somebody else telling you what to do
[00:04:05] Chris Biscardi: and like, I don't have people depending on me either.
[00:04:07] So
[00:04:07] Joel: If you have a brood, right? Like if you have people that are relying on you to pay their rent, that changes the whole perspective. Cause I'm such the same way. If you tell me what to do, like my first instinct is like, no, just flat it anyway.
[00:04:21] It's totally reasonable request. Just like, no, I'm not
[00:04:23] going to do
[00:04:23] Chris Biscardi: me to do, but no.
Deciding on Rust
[00:04:24] Joel: I think that actually makes my next question more interesting because you're focusing on rush. And you've chosen an area to teach and educate in. And to me, based on what you just said, that means that, you know, like this is something that you want to do, that you really liked, that you think is a good idea.
[00:04:41] And what w what drew you into the programming language rust, and why did you choose that as a focus in terms of your own expertise development, and then has something to teach to others?
[00:04:50] Chris Biscardi: I feel like on some level I've always had a fairly good like ability to pick the next technology I need to be working with. Like I picked react in like 20 13, 20 14, and that's been going for like almost 10 years now. Which is pretty nice. And like, obviously I don't pick everything correctly, but like, Rust to me seemed like a thing that all of the smart people that I knew were talking about again.
[00:05:16] And I went to use the language and probably due to my personal contextual history with other languages and having worked across a number of them at this point, I saw rust and I was like, well, it has all the things I like about. Like the JavaScript ecosystem, right? Like NPM for all of its words. And like the package management works of JavaScript is really nice.
[00:05:36] Like, I don't want to go back to a land where like, like go before modules or like C plus or something like that. Right. Like, I don't want, I mean, like Elliot. At least Maven has some like dependency management kind of stuff. Right? Like, I don't want to go back into a world where it's like, we expect you to have all of the source that you're ever going to compile in this repo.
[00:05:55] Joel: Yeah. Yeah. I agree.
[00:05:56] Chris Biscardi: So like NPM and then NPM scripts and all of like the higher level tools on top of that, where like, things that I really like about the tooling that I'm working with and rust has that. And it has. I think Don at a better level, right? Like
[00:06:10] Joel: It's an iteration on that concept too, right? Like,
[00:06:12] so they they're iterating on NPM, which is iterating on, you know, Ruby jams, which is iterating on, you know, like the stuff that proceeded before that too. I think.
[00:06:20] Chris Biscardi: Yeah. I mean, there's something to be said for the fact that like rust came after all of these other things. Right. Which means they've got to learn from all of them and like that doesn't always happen. Sometimes people are just like, oh, I want C, but like whatever, some minor things. And it's like, then it's just see without the ecosystem.
[00:06:36] Yay. But yeah, so I saw that and then I started using rust and I really liked it as a language in addition to all the tooling and stuff. And I saw the capacity for it to be like embedded in other languages, like Java script. So this was like, I don't know, three years ago or something, I was making the decision to like get into rust and whatnot.
Rust research process
[00:06:55] Joel: So that, that kind of goes back and not assume over time. Like when you first learned how to program, when you sat down with the action script, three books to like shoulder in, that's a totally different experience than when you sat down to like learn and research rests. So what was that approach like?
[00:07:10] Like how do you approach that? I'm sure it's similar. Like you're still shoulder it, but you have a higher resolution. Insight into it also. So what was your research process When you decided to teach rest?
[00:07:20] Chris Biscardi: When I decided to teach rust. My iterations looked a lot different. Right. When I decided to learn rust, it was somewhat similar, but like I've been through, I don't know, almost double digits in languages these days. Like, so like seeing new syntax to me is scary.
[00:07:39] Joel: Yeah. You're not having to learn what an array is and it's not a concept that you have to even think of as a, as an example. yeah.
[00:07:45] Chris Biscardi: Like, oh yeah. I can talk about things and make them sound scary. Just like anybody else. Right.
[00:07:50] As a teacher, I try not to do that. But yeah, when I go to learn something for like the perspective of teaching it, you have to learn it on a much deeper level. Right? You have to learn it because people are going to ask you really random questions about things that you never thought about.
[00:08:03] So like researching to teach is researching to figure out what everybody else's problems are. Whereas researching to learn is like researching to get past your own roadblocks, which you can often see. Without even like really addressing, right. But if you're researching to teach, you have to go and you have to find the things that everybody else is running into.
[00:08:23] You have to aggregate those into, okay. Most people will hit this. A bunch of people will hit that. And then like, these are the things I need to explain to like, get everybody to the next step without. Without doing the thing of like, I'm going to dive into three concepts. You don't know because I'm smart, right?
[00:08:42] Joel: Okay. Kind of showing off your knowledge versus helping them solve
[00:08:45] Chris Biscardi: Yeah. Yeah. I feel like that's a problem. A lot of people fall into where it's like, I'm going to show off that. I know this, when often teaching, to people who don't know what, you know, you will look like, you don't know what you're talking about to people who want to be. Aggressive right. Or whatever.
[00:09:02] And you look at them and you're just like, yeah, but I'm talking to somebody who doesn't know what any of that is. Right. Like, I can't use these words. I can't use the word item potent, if you don't already know what that is. Cause that's just layering, like another big technical word on top of whatever I'm trying to teach you.
[00:09:18] I'm going to say it does the same thing. Every time you call it. Right? Like there, there are different ways of talking about things that you need to do. Definitely.
[00:09:25] Joel: Jargon has its place. And it's like, but it's it's like a lossy format, right? Like it's compression of concepts and do something you can speak to her slowly and then it can be, just be thrown around in uncomfortable ways maybe or just the
[00:09:36] context where it
[00:09:37] Chris Biscardi: I
[00:09:37] Joel: isn't it isn't appropriate.
[00:09:39] Right? Like getting in some contexts.
[00:09:40] Chris Biscardi: it's the higher level, like the next steps to like what we've talked about in the past and what we've been talking about for years at this point in the instructional design arena. Where, what you're doing with building basically higher level of heuristics and obstructions and procedures, and like building on top of a, at some point, talking about things being communitive or item potent or whatever big word you want to use, like means something to the other set of people who are also speaking at a certain level about a certain thing in a certain way.
[00:10:14] That very often is not what you do when you're teaching somebody something. But it is something that two people on the same sort of wavelength can say and communicate ideas faster. Right? It's like not everybody needs to get to that point, but like, it's just another aspect of that.
[00:10:33] Joel: Yeah. It's like an optimist optimization at the end of the day is how I kind of look at it. Cause you know, like I find it's in, you get down into like initialisms and whatnot, where we're reducing things into just purely their initials. When we're having a conversation, it's like, hold up. I have no idea what. With that even means, and I've been doing this for a long time and, you know, it's like, you have to be aware of that.
[00:10:53] especially when you're teaching people and introducing new words and not supporting that. It's this huge, with rust and in your design and you've decided to teach it and you have a course, what, what are people looking for?
What brings people to Rust
[00:11:04] Joel: Like what is bringing people to rest the language in terms of their problems or the difference that they're trying to achieve with a new program in language, like.
[00:11:11] Chris Biscardi: I think I see really like two big groups. I see the people who. Are either all while you're already working somewhere or had just got a new job and now they have to deal with rust on some level. Right. So they have to figure it out. And they have to be productive at it because now for some reason it's their job to deal with it.
[00:11:29] And then there's the other group of people who are like and I focus on more dynamic language. People like JavaScript, Python Rubius slides up.
[00:11:37] Joel: Yeah.
[00:11:38] Chris Biscardi: I don't really teach for seed developers. That's not to say the content doesn't work for C developers. It's just that, like, I'm going to talk a lot less about memory and registers and what have you.
[00:11:47] And I'm going to talk a lot more about like things that JavaScript people care about. Yeah.
Knowledge transfer
[00:11:52] Joel: Kind of to switch gears and maybe talk a little bit about instructional design philosophy. What makes a good course in your opinion?
[00:11:58] Chris Biscardi: I think the higher order bit for me is that transfer, right? Like, if you do a course and the person ends your course, and they're like, went through a course, but like, I don't really know what to do with any of
[00:12:13] that's a, that's not a good course. Right? Like you failed something for somebody in this case, it's somebody specific, but like when you
[00:12:21] Joel: transfer, being like knowledge transfer, where they're taking what they've learned in your course, and then applying it to whatever's going on in their life.
[00:12:27] Chris Biscardi: Right. If they can't use what you taught them to do, what they want to do, then they are no better off than where they were when they started. Right. If you're at the same place when you start the course. And when you end the course, like the course, isn't a good course,
[00:12:40] Joel: Yeah,
[00:12:41] Chris Biscardi: right? Like the person hasn't lesson learned anything.
[00:12:44] Joel: Is to make a difference, right? Like, so.
[00:12:45] if there is no difference than
[00:12:47] Chris Biscardi: Yeah. So like they have to be able to do something that they weren't able to do before. And that's what I asked. What kind of, what I mean, when I say transfer.
Measuring success
[00:12:54] Joel: How do you know. You know, like when you're watching people or talking to people that are actually involved in your course right now, like how do you know that they are meeting their goals when they're going through the process?
[00:13:03] Chris Biscardi: So we have a discord for the rest of venture stuff. And the people in the discord are doing various things like for realistically, sometimes I won't know. Right. Some people go through. Go through the workshops, do all the work, get all the stuff done. And then they walk off to their job and they start doing it at their job.
[00:13:22] And they really just like, they're done. They never come back. Or like they learned the thing they needed to learn and now they are using it, which is great. But like, not something that you can necessarily guarantee that they come back and tell you. But there are people that come back and go, oh, I did like, the 20, 48 course or whatever, and I made this game and now I'm getting.
[00:13:39] Make a clone of Wordle on my own. Right? So like when you see people starting to do that, I think that's when you have, a thing that is capturing that goal of like the transfer, right? If the people are able to take the course and then feel like they can go do their own thing, even if they like hit a bunch of roadblocks, when they go to do it, if they feel like they can do their own thing after they do the course.
[00:14:02] There's something good about that. Right. And you can follow that. And then when they try to go do their own thing and they start running into roadblocks, you get that feedback, cause they're in the discord or whatever. And they're like, oh, I'm trying to do this thing. We didn't really cover this in the course or whatever.
[00:14:14] Joel: Have you had any success stories since you started teaching that were like, just made it just feel like this is totally worth it.
[00:14:21] Chris Biscardi: I think anytime anybody ever does, one of my things and is like, yeah, I accomplished it. I did what I set out to do before I used your thing is like, just such a bright star moment. Right. Whether that's like, oh I eventually got a promotion from going through all of your stuff or like I learned this thing and now I feel more confident or just.
[00:14:39] I do like I have that open graph images course, right. On a, again, a bunch of people go through that. It's kind of hilarious because a lot of people like go try to do simpler versions of it. Then eventually realized they actually need the thing, the courses, and they end up, they likely have known about the course the whole time.
[00:14:56] And then they eventually hit a point where they're like oh, that's why this exists. Okay. And then they go through it and then they have. are open graph images being generated in a serverless function, cashed on Cloudinary, whatever. And they're just, they're like, they'd have, they have the thing that they wanted in the first place.
[00:15:09] And that's a success, right? Like when I think about like the rest of venture stuff, I'm thinking about transfer skills, but even on the level of like this project is a useful project, it teaches you a number of skills, like serverless functions puppeteer, playwright, whatever Cloudinary, But the result of that course is really like, you have the thing that you wanted when you came to it.
[00:15:29] Right. It's a kind of a direct action course, as opposed to a curriculum course,
Designing examples
[00:15:34] Joel: I think that's really interesting in, on a couple of levels. And one of them is how do you decide what to build for an example, either through a course or, you know, whether you're writing or how do you decide what the example is going to be? I think people struggle with that a lot.
[00:15:47] Chris Biscardi: that's definitely research, right? Like, either there can be problems that I have, right. In which case it's like, it's like, it's a problem that I have, like the open graph image thing, where then like, that's the thing that other people also ran into, or it's research and I'm researching like what problems other people are having.
[00:16:06] And. What they're having trouble with. And then you build a example basically based off of that, right? Like what example can I build that addresses the problem. These people are having in a way that lets me explain and build up to it. So that when they end it, they can go off and do whatever they want whenever.
[00:16:26] Joel: you're in the design process, do you get any feedback from people? Do you have a way of sharing that or, you know, beta testing for lack of a better term the content from, you know, like during the do workshops or how do you approach this testing cycle and getting feedback from.
Testing content
[00:16:40] Chris Biscardi: Yeah, I it's a very large spread actually from writing blog posts and seeing how people react to it, to doing YouTube videos and seeing how people react to it. Livestreaming and seeing what people will questions people have when they come in to the chat all the way through to like, I've now gone through a bunch of the problematic stuff.
[00:16:56] I've designed a curriculum or a set of lessons or whatnot. And there's a set of videos now that are in like their raw cut format, like a rough edit, and I'll give the rough edit to somebody and be like, does like, do you want to go through this? Like actually do it. And finding the people who will actually like full on beta, test something for you and actually do it.
[00:17:17] And then actually provide feedback is a very hard thing to do on its own. But if you can find that group of people then you're pretty good. Right?
[00:17:24] Joel: what is the live streaming? How has that influenced your kind of process and design in terms of developing a course? I think that's really interesting. It's something that you've been practicing for quite some time.
[00:17:34] Chris Biscardi: The livestreaming is really interesting because it's like an early testing ground, right? It is a, I can do very early. Like I have a inkling of an idea about something, right. Or I have a, just a thing I want to accomplish or something like. And I can take that to a livestream and nobody really expects polished content on a live stream.
[00:17:59] They expect like to be able to hang out and talk to you. And it's a, I, at some point, I imagine we'll talk about marketing, but like a deepening of a trust relationship with the people that I interact with on a regular basis around all of the rest courses and material and stuff like that. Live streams are really good for like being I'm a person and you're a person and we're talking and like, you can ask questions as I'm going through this.
[00:18:23] If you don't like recognize something and like, I can answer your questions. But also every question somebody asks is like, a marker, a note, a point that I go back to. Right. So that's what that is.
[00:18:37] Joel: my expense. I haven't done a lot of, I haven't done a lot of live streaming, but I've done in-person workshops, which in a way as a live streaming and meet space. I guess, and It's the same thing, right? Like if you do this and you're either running through your examples, but the times when people actually ask questions, and if you do these things more than once, you'll notice there's these natural places where people ask questions or you can, you know, you'll see the looks on their faces or the questions come up and chat.
[00:19:01] And I think, that's like that experience is pretty fantastic in terms of design, because you don't have to have, it's not as polished and permanent, I guess.
The value of questions
[00:19:08] Chris Biscardi: I think that the. People always feel like they're bothering other people. Right? Like they always feel like, oh, I shouldn't ask this. I'm bothering them. Oh this feels like a silly question. Like, I shouldn't have to ask this. I should just go figure it out on my own. But the key insight there is that what they don't understand is that every time somebody asks me a question anywhere on the internet, in my life, whatever, that is a thing that I know that somebody had to ask.
[00:19:34] Joel: Yeah.
[00:19:34] Chris Biscardi: And that feedback is really invaluable when it comes down to actually building courses and curriculum and doing the actual work of developing something that addresses the problems that people actually run into. Right. So like I'm always happy to like, get questions and like sometimes maybe, I don't know, sometimes maybe I don't have the time sometimes whatever, but I'm always happy to like, get a question and then I can at least be like, That direction.
[00:20:01] Joel: Yeah.
[00:20:02] I mean, I think that's a common problem. Just people want to either figure it out or don't want to pester us. And us being the, anybody, they don't want to pester anybody about whatever, you know, they think their questions bad and won't ask it. And it's really true that the bill phrase, there's no bad questions.
[00:20:18] I think really kind of holds up.
[00:20:19] Chris Biscardi: Yeah. I have a, I have feelings about that phrase because like, there are no bad questions. If you're doing it while you're learning while whatever, but there are bad faith questions,
[00:20:29] Joel: Yeah I would, yeah, I think that there's definitely an asterisks there. No, no bad questions, asterisk past in good faith. Cause you can definitely, I mean, the Internet's full of trolls, so, it's a wonderful and horrible place. You've been running your course for a while now. And it hasn't, you know, it's, I think you were about six months in and I don't know if this has been a concern yet, but maintenance of video courses in particular maintenance of courses in general, I think is, can be difficult.
Keeping content up to date
[00:20:55] Joel: And I was wondering, you know, how much time are you finding yourself having to maintain versus working on new stuff on the horizon?
[00:21:01] Chris Biscardi: Course maintenance for me is tied to version bumps in the. Like libraries and stuff. Right. I find that to be a very useful like point at which to revisit the content because there's a natural change. Right. So for example, bevy came out with like zero dot six on the workshop that I initially did is zero dot five.
[00:21:22] So there are, I don't want to call them substantial changes to. The workshop, but there are opportunities to remove some of the, accidental complexity of the workshop. So it's a good opportunity for me to dig in and be like, okay, should I redo these videos or not? And I think those are ones that I'm redoing, but the se digital gardens CLI course, or like another CLI course or something like that, might just need a.
[00:21:49] Right. And you might just need like a, Hey, you know, you're going through this video and while you're going through this video, you're going to end up with like this one thing that you need to type in addition. Right? So like, it's definitely like when the software version comes out, that's when I deal with, do I redo the thing or not?
[00:22:07] That's when I revisit is the instruction here actually. Achieving its purpose. Right? Because at that point I will have like a bunch of feedback from people who have gone through the courses and whatnot. And I take that into consideration as well.
Content streams
[00:22:19] Joel: When you're here, you're thinking. Your courses and it's multi modules and you have existing modules and there can be improvement there and refinement versus creating additional courses that cover more ground. How do you balance, like maybe what's the trade-offs between working on new content and refining what exists already?
[00:22:39] Chris Biscardi: Well, like I said, like the refining, the old stuff happens at particular times. Right? So
[00:22:44] Joel: that.
[00:22:44] Chris Biscardi: There, as part of the reason I have a trigger for that. Right. Cause I could do whatever I want to do at any given time. But software bumps. That there are enough version bumps of libraries or crates or whatever that are used in the workshops that, that makes a natural point at which to revisit.
[00:23:03] So like for rust adventure, it's a series of workshops, right? Like a lot of people call it a course or whatever, and total and that I think is a, it's a marketing thing that I probably have to leave. More than leaned away from, like, everybody is going to just call it a course or whatever. Right. Like, like yeah.
[00:23:21] Meet people where they are basically. Right. Like, I don't need, I don't need people to call it workshops. I don't need to get people to whatever, but it is a whole set of things. Right. So having a Corpus of content that is in a couple of different streams is where my head does that for that, and that needs.
[00:23:38] New stuff. Right. So I can tell you, there's a couple of streams on rest adventure right now. One of them is like a CLI stream and one is like a games stream and one is like a ServerList stream. And then there's a language stream, right? Like, so the first phase of rest adventure was basically answering the question, what can you do with rust?
[00:24:00] Because that was the most common question I was seeing from people. It was like, I like, what can you even do with this. And like having a bunch of workshops that address that question, like you can do serverless functions and you can just see a lot of tools and you can build games and you can, whatever.
[00:24:13] Made a lot of sense. So there now needs to be like additional from beginner to advanced in each of those streams. And also. A from absolute beginner to being able to take the workshops stream itself. So like the new content is really important. In the sense of rest adventure, I don't know that's true everywhere.
[00:24:32] Cause I feel like a lot of other places do very different kinds of workshops. They'll do one on this framework and one on that framework and they don't really connect. But I'm trying to build more of a larger curriculum with rust adventure. So.
[00:24:46] Joel: Do you have an idea of when, what finished looks like in terms of the broad curriculum?
[00:24:50] Chris Biscardi: It's a really good question there. I have the idea that I have in my head right now. Right. And that will not be the finish line, I don't think. But there's the like language learning stream, like the intro to Russ, like why would I use it? Who cares? Some syntax some, like here's your first program kind of stuff.
[00:25:10] Right. And then there's the use cases, streams. And then at some point there is the, I don't need another CLI project. How do I build really good CLS? And that's like the CA capstone on the end of like the CLI stream set of workshops. Right. It's like, Like, do I include flags to output as Jason or human readable or whatever.
[00:25:35] Right. The like higher level questions that you can now consider now that you have the underlying, like factual skill of this is the crate I'll use these other, the libraries I'll use. This is how I write like a thing that accepts arguments or whatever. So that's what I'm thinking about in terms of like the desired end goal for probably this year is the, there's a bunch of streams.
[00:25:55] They lead into each other. You can go from language to use cases. And then at the end of the use cases, there is the, this is how you do this on like a, on a metal level.
[00:26:04] Joel: I think what's interesting is because the metal level.
[00:26:06] you described, you know, like, like what are the considerations that go into really building a great CLI is, that expands. Boundaries of a particular programming language. And that's something that you could probably do in many programming languages and might even be useful as a, you know, like as a learner to watch something like that.
[00:26:22] Just so I have a good idea of that. And then,
[00:26:24] Chris Biscardi: Yup.
[00:26:24] Joel: like think about the language level stuff as a separate concern, even.
[00:26:27] Chris Biscardi: Yep. For sure. I like, I don't think you need to. Sort of take the language workshop before you take the use cases. But it's important to like, just in time provide that information, right? Like if somebody wants to go through the link, there are people who are like, I need to learn the syntax and I need to learn like the hello world before I can do anything with anything else.
[00:26:50] And then there are other people who are like, so I'm pretty used to building like, SAS services as my first project. I want to do that. And then they'll go do that. And they'll like, they'll need little tidbits. Like they'll need to reach out. And you need to have those like reach out points available to them.
[00:27:05] But I don't think that everybody starts in the same spot or ends in the same spot. Right. And the way,
Problems with implementing the same project in every new language
[00:27:11] Joel: the idea that people have their own kind of pet project, where they learn every language in the same way.
[00:27:15] Chris Biscardi: yeah, well, one of the things that people try to do a lot with. Because they grew up in a traditional CS education, like C language environment as they try to implement link plus, and they're like, this is a simple data structure in my head. This is the basic data structure, because they've been told us the basic data structure or whatever for years and CS degrees and stuff like
[00:27:38] Joel: The interviews.
[00:27:39] Chris Biscardi: Yeah. I like, that's not necessarily true. So there is some aspect of like, if you're writing Java and you want to move to like Haskell, you don't want to write your Haskell as if you were writing Java, right? You want to learn the new paradigm. So there is something to the effect of like maybe your pet project isn't applicable to the new situation and maybe you should reconsider.
[00:28:00] But there is definitely like a whole bunch of approaches that people take. And they're not necessarily really. Which means that like, they may jump from halfway through the 20, 48 course to like start to do the serverless course because they had something come up at work or whatever. Right. And the way that I think about it is like super Mario 2d world levels, because the way that I think about rest adventure, so like there's the serverless world and the language world and the whatever, whatever, right.
[00:28:27] At some point you unlock the other worlds. But that doesn't mean you like completed every. To the extent that it can be completed
[00:28:34] Joel: All the side quests and mini games and that sort of thing.
[00:28:37] Chris Biscardi: Yeah.
[00:28:37] Joel: I love that. I actually, I think the video game and kind of map analogy works pretty well for a lot of this in terms of learning and how we structure it. There's a lot of platforms out there. There's, you know, platforms like teachable and Podio, where you can just go in there and you can throw your videos up there and kind of, kind of run with it. And I'm wondering why wouldn't you use, something like that to just publish your course and because you've gone through and built a custom course platform and why not just use something kind of off the rack where you can self-serve and go from there.
[00:29:04] Chris Biscardi: I saw this question and the questions that you sent to me, and I was like, my response is like, convince me to use one of them. Right.
[00:29:11] Joel: well, their salespeople might be able to,
[00:29:13] Chris Biscardi: I don't, I, you know,
[00:29:15] Joel: ease would be my, probably my strongest one would be like, like it's really easy. You can just put your videos up there, Chris, and push a button on your, all of a sudden you're selling subscription. So it's easy peasy.
[00:29:24] Chris Biscardi: I mean, that's fine then all, but like, zero control over so many things, right? Like from payment structures to what you can put on the platform to like, whatever. I guess the way I'll phrase it is like YouTube has a really good UI for setting up a playlist and handing somebody a link and then getting able to go through it with comments and whether people like and dislike and like all of that kind of stuff, if you're not doing a better job than YouTube is why should I use your thing?
[00:29:51] Right? Like, there is a lot of value in putting. Like that YouTube playlist or long video or whatever. Because if it's useful, then people will watch it and then you start developing that relationship with them, et cetera, et cetera. Like you've been helping people. Right. When I think about.
[00:30:09] Joel: Yeah.
Semantic issues with the term "platform" in reference to a site that hosts just one person's content
[00:30:10] Chris Biscardi: Why did I build my own?
[00:30:12] You called it a chorus platform. I don't think anybody's building course platforms. Really a platform has a very specific meaning in my head. It means that other people are building businesses on top of your thing. And
[00:30:23] Joel: you're building a business on your thing.
[00:30:25] Chris Biscardi: You're building. Yeah, but it's one business. It's my business, right?
[00:30:29] Like it's not a platform is my product.
[00:30:32] Joel: It's yours. Yeah, but it's your platform it's I mean, it is, it's like your platform, it's literally, you are standing on it and you are the only person standing on and I'm just going to argue with you for just a
[00:30:40] Chris Biscardi: Sure. Yeah,
[00:30:41] Joel: But like semantically speaking, like I agree, like in, in the software world, when we consider a platform would be something where other people are using it, where it's white labeled or something.
[00:30:49] But I think with what you built is absolutely a platform and you could take it and other people could use it, whether you chose to do that or not is probably, and it's also a different problem space. And there's lots of new questions that come up, but I'm going to just say that it maybe it's, we don't call it a platform.
[00:31:04] It's your soap box, but like it is yours and you were standing on it and you were delivering your courses on it. So for me very much, like I think it is I think of it as a platform and that there's just kind of difference. I do understand what you're, where you're coming from. I just want it to.
[00:31:16] Chris Biscardi: I think soapbox is even worse of a term.
[00:31:18] Joel: Oh, it absolutely is. I'm doing that thing where you offer like a worse alternative, and in hopes that you can win your semantic argument. Yeah. for sure. It is a worst
[00:31:26] Chris Biscardi: Yeah. I mean, If there's one person on your platform, it's not a platform, right? Like it has to be enabling other people. Like YouTube is a platform because people build businesses on YouTube and have multiple businesses that YouTube is helping drive.
[00:31:39] Joel: Could get into this for so long because like
[00:31:40] Chris Biscardi: we could, we
[00:31:41] Joel: your learners are, they're standing on your platform with you. This really ruins the rest of my questions too, because I have the word course platform over and over again. But so we'll get beyond that. I think we can say
[00:31:50] Chris Biscardi: I will accept your platform as I have been for the previous, whatever half hour of this podcast.
[00:31:56] Joel: so if you're delivering a course,
[00:31:58] Chris Biscardi: yeah.
Course access and other software features
[00:31:59] Joel: What are the essential, like software features? Like what does it, what does a course need to get delivered to the learners that they want to learn from it?
[00:32:06] Chris Biscardi: Uh, Access to the car.
[00:32:07] Joel: That's it.
[00:32:08] Chris Biscardi: Like, I mean, if you talk about like, what do you, what does it need, like really need it. Like you need to offer your stuff in a way that people can access it. So like, when I think
[00:32:18] Joel: I guess is the other side. Cause so that's pretty basic, right? So for them, they just need to have access and some way to, to kind of trudge through it. So you, what do you need, like as the person that's trying to deliver this to them, what are the essential features for you?
[00:32:30] Chris Biscardi: so, so it It sounds basic, but it enables you to do things like, think about notion as a course hosting provider,
[00:32:37] Joel: Yeah, I'm a big fan.
[00:32:38] Chris Biscardi: right. Where like, okay, we're talking about my needs now I need to be able to upload videos and I need to be able to do that in a way that isn't like, take me three hours or something like that.
[00:32:48] Cause like that's awful. It needs to be able to like, I mean, that's it, right? Like you need to be able to upload your stuff and people need to be able to view it. That's the fundamental requirements of like a course platform. I think that for me, I want to be able to go beyond that. I want people to be able to like, for example, write rust and run tests on the website without having to install rust.
[00:33:10] And like, that's something that I can't get from teachable. It's something I can't get from podium is something I can't get for. Notion or whatever. And it's a reason for building like a separate site. But like when it comes down to it I don't think that anything really needs to be there other than the ability to like, get the information there and the ability for people to like see the information.
[00:33:31] Joel: What
[00:33:31] about things like.
[00:33:32] like.
[00:33:32] authorization and progress and collecting payments. So you can pay the
[00:33:36] Chris Biscardi: I mean, all of that is dependent on like, what are you trying to achieve? Right. Like you're talking about a course platform, not a not a subscription service that I can use to like fund everything for the year and what not. Right. Like, do you need user accounts? Not if it's free. Right. So like, it depends on what your courses, right.
[00:33:59] Is it a free leader to like other stuff? Then your poor platform is like super simple, right? It needs to be accessible. It needs to be like SEO oriented. Right. And like those things change when you start thinking about how am I going to do a paid course platform or something like that. Right. If you, I think you need to make decisions about like, okay, is what pieces of it is going to be accessible.
[00:34:21] Is this going to be able to hit Google at all? Right? Like, is Google going to be able to bring people in for me? A lot of people just like, ignore that question and default to no. Right. Cause it's the easiest way to do it. At which point you need like user accounts, at which point you need like, payments and stuff.
[00:34:37] Things like that. Video playback is one that I'm using obviously, or I guess not obviously to listeners, but like obviously to the person that I'm talking to on the podcast right now. I don't think that comments are like required. Cause I think that's supplemental to, like, if you have a space for people to make comments like discord or something like that, you
[00:34:56] Joel: sort of community outlet, right? Like there's some sort of vow where they can go and interact with other people, maybe having a similar experience as then.
[00:35:04] Chris Biscardi: Yeah. I mean, like, that's a value add if you can pull it off, right? Not everybody wants to maintain a community. Not everybody wants to build a community. Not everybody wants to do like discord based support stuff like that. Right. But like, if we're talking about all of the tools that you need to use to like actually build a course platform, You need to be able to respond to people's emails and you need to be able to accept payments and create user accounts.
[00:35:24] And do you track
[00:35:25] Joel: load might be a big one that is often overlooked. Cause as soon as you start, I mean, exchanging products for dollars, right? Like at that point, people are going to have needs and you are going to want to meet them. And especially if you're taking money, right? Like now you need
[00:35:37] Chris Biscardi: Can you process a refund for example? Right. Like a rusted venture. I've been very lucky. It's been very successful. I've only had to process like two refunds, but I still have to process to refunds. Right.
Refunds
[00:35:49] Joel: Good average. I think actually
[00:35:51] that's a, that's a that's because that's a great metric and I've heard this a lot, right? If you are seeing a lot of refunds, then It's.
[00:35:57] like, you're either selling something and they don't understand what they're getting and it just doesn't match up to expectations.
[00:36:02] But when you know, like, I think that's kudos for that. Cause that's a great metric.
[00:36:05] Chris Biscardi: It's, there's one of the metrics that I think about. And I'm like, yeah, most people buy the highest like version of Russ adventure, and I've only had to give two people refunds and like, I instantly do it. Right. Somebody asks for a refund. I just give it to them. Like, there's no, like that whole aspect to it.
[00:36:24] It's just like, just give it. And then like all of my I'll ask them some questions and like maybe they stick around and answer. Maybe they. But but yeah, I mean, I that's one of the things that I'm most sort of proud of in a way, because it means that people are buying it and then they're not looking at it and going, dang.
[00:36:39] I wish I didn't.
[00:36:40] Joel: Was there any, was there anything surprising when you were building it? I know you're an extremely technical person, so, but at the same time was, did anything kind of jump out either technically or otherwise when you were building your course delivery mechanism?
[00:36:52] Chris Biscardi: How easy video was to get working
[00:36:55] Joel: Yeah.
Video on the web is a lot better now
[00:36:55] Chris Biscardi: because the last time I seriously dealt with having to like do video was like probably flash era.
[00:37:02] Joel: It's come a long ways
[00:37:03] Chris Biscardi: Oh. And then I like the HTML five video element came around and then it really wasn't usable. Right. for, yeah. It's still not, it's not YouTube. Right. Is the way that I'll put it, but it's something that like people have.
[00:37:16] There are players out there and there are services out there to deliver the video. And like, I didn't have to build video delivery infrastructure. If I think if I had to build video delivery infrastructure, like, I dunno RTMP shit. Or like, something like that that would have been like, Ooh, do I really want to do this?
[00:37:34] That would have been a moment at which like, okay, can I sacrifice, Like building my own thing and go like do something half on teachable, half, somewhere else or something like that.
[00:37:44] Joel: Teachable, this uses Wistia.
[00:37:45] Chris Biscardi: I've heard of with the I have
[00:37:46] Joel: So they're a delivery platform and they're basically marketing. And they actually, when we build egghead, Chris, the CEO Wistia as an amazing person and just gave it to us for free, which at the time video delivery was a real pain in the butt. And it's improved a lot since then, but gave it to us for free is great, but like that's teachable did not build their own video delivery infrastructure. the point, right? Like in there they're a multi-billion dollar company and they did not they avoided that, sticky wicket and left it. You know, people that are it's like video delivery, infrastructure, global CDNs and email. These are problems that I am.
[00:38:18] super happy to allow companies to handle.
[00:38:22] Chris Biscardi: I mean, if you asked me the set of technologies I'm using, or like what I actually built. It's very small. Like it's probably smaller than you think it is.
[00:38:29] Joel: is it then? I want to hear that.
[00:38:31] Chris Biscardi: sure. The actual stuff that I actually built I happened to have been building a framework myself for the past year or something called toast.
[00:38:39] And I knew that what I wanted was to not have to worry about actively running servers as much as. So ton of it is just pre-render through toast. And I use that for all of the content and stuff like that. You can get to all of the rest adventure, stuff, via Google, all of the writing, all the blog posts, all of the stuff like that.
[00:38:59] You can not access the videos,
[00:39:01] Joel: Yeah.
[00:39:01] Chris Biscardi: But you can access all of the regions. And like that's slush shorter thigh. That's really important to me. It's really important for me to like give access to people who actually need it and are willing to go through a little bit more effort to get at it.
[00:39:13] Joel: Speaking, you could probably get a lot of the information, if not most, just by, by spelunking and doing a little bit of legwork and discovering it in text form. So some you lose some convenience, but the meat of it is still there.
[00:39:26] Chris Biscardi: Yeah, I think for me like the curation and all of that is like valuable to pay for. And like, if you want me to do more of it, like I need the money. So like at some point buy it. But like, I remember being a young programmer or whatever, and not being able to afford any of this stuff. So like, it's really important to me to make it accessible to people who actually need.
[00:39:45] Even if it's not like everything, even if it's not like perfect, even if they don't have the user account or whatever. So that's basically all of that aesthetically rendered and just like up there it's hard to get to,
[00:39:55] Joel: Also easier technically, right? Like you don't have to even think about how you're going to protect it or hide it or prevent people from sneaking glimpses. It's just like, it doesn't matter. it's just there.
[00:40:04] Chris Biscardi: I had somebody submit like, try to get a security bounty for like, Hey, we can access your content. And I was like, feature.
[00:40:12] Joel: Yeah.
[00:40:12] Chris Biscardi: So yeah, I mean, that's really all I built. And then I built some like serverless functions to handle various things, but like everything else is mux for video delivery.
[00:40:22] Max's integration for. Video player and analytics and stuff like that. And then the payments or Stripe checkout, the user authentication has Cognito and stuff like that. So like, there's like, I'm not building the infrastructure myself. I'm building the kind of like, kind of why I call it like a product,
[00:40:42] not like a platform like we were talking before, because it's a thing for me built on top of a bunch of. Platforms and infrastructure, right? Like AWS to me, definitively platform, like it's powering so many other businesses. Right. So like I'm standing on top of those things and like the PR the amount of stuff that I actually did for a Rust Adventure, like I'm hosting all my repos on GitHub and they're all open source by the way.
Allowing people to find free access
[00:41:08] Chris Biscardi: So like, if you are a person who wants to dig and access the stuff, you can get access to that. Like the code is there. All of the blog posts are given in the commence. So if you clone the repo, you get access. I recently saw somebody else on Twitter talking about like, somebody tried to translate their course or whatever and posted a translation.
[00:41:27] And they were like, can you take that down? And like, you know, like I would be concerned about that getting out of date and stuff. And they were like, there are reasons that I would not want. It spread around in the way that it's being spread around there. But like when it comes down to it, if it makes it more accessible to people, I think in the end, it's all a positive because in the end, people want to pay for content that helps them.
[00:41:48] People want to support people who are helping them get done, what they need to get done with their life. I don't think that needs to be a thing that I need to worry about. Right. The occasional person who like might've, would've paid for, it might get it for. Like, oh, well, I'm still making plenty off of it.
[00:42:05] There's useful convenience to having the user account. There's useful convenience to getting access to the videos. There's useful convenience to me, being able to continue to do this thing that you are benefiting from. And I think that drives basically everything about rest adventure at this point.
[00:42:22] Joel: The only line that we've ever drawn. Cause like, it's just silly and it's hard to combat and often fruitless and frustrating. The only like sometimes we'll get people wholesale uploading to YouTube. And we make the effort to have that pulled down from YouTube because it feels like it should be free.
[00:42:37] Like if you, the people that are consuming it don't know that they're. Consuming it in a way that they shouldn't like pirate sites. I don't worry about it. Cause everybody that's on a pirate site knows exactly what they're doing and they're not your customers anyway. So I don't really care what you're doing cause you're just stealing from yourselves.
[00:42:50] But like when it goes up on YouTube wholesale, I'm like, okay, well I'll do the, I have a script that builds the spreadsheet that YouTube requires to have that sort of thing removed. And that is, that's like the line for me. But like there's, you know, like I agree with you. Like if somebody is doing a translation maybe can I just pay you for that?
[00:43:05] And we'll put it on the official channels, like that sort of thing, right? Like.
[00:43:08] Chris Biscardi: And then I find a way to keep it updated or something, rather than have it go out of date and whatnot.
[00:43:12] Joel: Yeah. Yeah. So, you know, this is a need that people have, so maybe we can just service that knee instead of fighting it or wanting it to go away. That's
[00:43:20] Chris Biscardi: I think the the really easy example of this that I just saw recently, as Nintendo just took down a bunch of stuff off of one of these like music re-upload channels for like Mario kart theme songs and stuff like that. But they don't have it up on their own channel
[00:43:34] Joel: Yeah.
[00:43:35] There's no way to
[00:43:35] Chris Biscardi: can listen to it.
[00:43:36] Right? Like that to me is the. The line, like you're going to re upload it. Yeah. Well, I mean, like if it's all of my stuff is on YouTube anyway, you can go through and view all of like the early content, early versions of the content, all of the stuff. As I was figuring everything out, it's all on YouTube, it's all freely available.
[00:43:54] It's all there. Yeah, I mean, like I stream a lot of it. Right. So like, I don't know, it like. I would prefer people get it from the source, but like people credit me and stuff like that. That's kind of what I care about. Like I did the stuff and don't, re-upload it under your name and then not let it get back to me.
[00:44:14] Like, don't cut me out of the equation and then try to resell it. That's aligned for me, but like don't but I want people to have access in case.
[00:44:21] Joel: It's important. I think we, we share that desire. This is the last question and, I'm curious what your answer will be. Do you have any audacious goals in terms of your teaching or course development or the course delivery mechanisms that you have employed?
Goals
[00:44:33] Chris Biscardi: Oh, audacious goals. Like I said, I have some stuff that I'm working on currently, where you will be able to, like run rust on the site in the corner. To like, do that language level kind of stuff. You can't really do that for like CLS and stuff. I mean, like you could, but like, it doesn't have the same impact.
[00:44:52] Like you can't run a game on the website through compiling with, from somewhere else or whatever. It doesn't really make sense to do that, but for like, rustlings like almost exorcism means type stuff, like language levels, syntax, and small exercise. Those are all going to be like, you can write some rest in the browser and run it and run the tests and get the feedback.
[00:45:13] Joel: Building that.
[00:45:13] Chris Biscardi: yes, that is a thing that I currently have in prototype mode. So that should be coming at some point. It'll probably come out like, as I start shipping the language stuff on the site right now, a lot of the language level content is going to YouTube, because I'm I have ideas of how it should be presented, but I want to make sure that they are the ones that should go into the workshop on the site.
[00:45:34] And that's going to be, like free leader content, because I don't think that the language level stuff, I think there's so much language level stuff for us out there that it doesn't really make sense for me to like, charge for that. But it makes a lot of sense for me to like, have that be a thing. Right.
[00:45:49] Joel: Your perspective and it'll be like a direct conduit into like, this is how we are going to do things here. So you can it's like a primmer at that point, I would think.
[00:45:57] Chris Biscardi: Yeah, for sure. And then there's also like, I D I don't just do rust. Right. And like, I never really have just done JavaScript either. And I have wider vision around like, yeah. So I do a bunch of serverless stuff for us. But if I have already done all of the instructional design for like the serverless side of it, then it's less work for me to do that also for JavaScript or something.
[00:46:22] Right. Like something else. I have expertise in
[00:46:24] Joel: So when you have a serverless course on the market, We then have a platform I'm just teasing call it what you will. It's fun. I really appreciate it, Chris. Thanks for sharing your experience. And I think it's great. What you're doing. It sounds like if people are interested in
[00:46:39] rust, I'm following you on YouTube would probably be a really good idea and then maybe exploring the rest adventures.
[00:46:44] Thanks again. it.
[00:46:45] Chris Biscardi: Thanks for having me.
[00:46:46] Joel: Cheers.