Speaker 1: Hello, and welcome to today's episode of alex Er. Miss.
Speaker 1: I am joined as always by our wonderful panel of hosts,
Speaker 1: including Bruce Kate. Hi everybody, Hey Bruce, We've got Josh Adams, Hello, Hi, Josh,
Speaker 1: Lars Vikmann what.
Speaker 2: Was that colloquial Swedish?
Speaker 1: Very nice?
Speaker 2: Hello?
Speaker 3: Hello?
Speaker 1: Hello? Hello, very cool?
Speaker 4: And Steven Nias helloes all.
Speaker 1: Our something Yeah, I think you do have to he
Speaker 1: out there perfect and joining us as a guest. We
Speaker 1: are very lucky to have an also netto who is
Speaker 1: a professor of computer science and he's also very active
Speaker 1: in the Elixir community, especially with regards to Elixir education.
Speaker 1: I am super happy that you could join us today
Speaker 1: because these are really some of my favorite topics, education
Speaker 1: and Elixer. You wouldn't mind go ahead and introduce yourself.
Speaker 2: Thank you very much.
Speaker 5: My name is Ago From, a professor or at the
Speaker 5: Federal University of Technology.
Speaker 2: But now which is it's here.
Speaker 5: In Critiba, Brazil, and I teach lodge for computer science
Speaker 5: and also an introduction to Functional Programming course. And I
Speaker 5: got interested in Elixir because it was created by a Brazilian.
Speaker 2: I have to say that because that was attracted me to.
Speaker 5: The language at first, but now I admire the language
Speaker 5: and also it's community.
Speaker 6: So do you actually get to teach elixure at your university.
Speaker 5: Yes, I don't have many students, least offering I had
Speaker 5: for students only because it's an optional course. It's you
Speaker 5: don't have to take this course to graduate in computer science.
Speaker 5: So actually we don't have computer science here. It's computer
Speaker 5: engineering and information systems, but it's it's an optional. For instance,
Speaker 5: I have an agual methods classes to class to and
Speaker 5: it's it has much more students because it attracts more
Speaker 5: interest for it. It's more interesting for the students to
Speaker 5: learn what's screamed than elixir. But I hope that as
Speaker 5: the time passes, more of the students are going to
Speaker 5: get interested in this class.
Speaker 6: It's interesting. We've gotten to spend a little bit of
Speaker 6: time together. For those who don't know, I have a
Speaker 6: metroing group and Adolfo shows up as I don't know
Speaker 6: something between a metro and amitee, which is kind of
Speaker 6: great for my students. But I have some questions. Do
Speaker 6: you have any techniques that you can throw my way
Speaker 6: or are there anythings that we do that you're going
Speaker 6: to take with you in your teaching approaches.
Speaker 5: Actually, I think I'm learning more with you than the
Speaker 5: opposite because be for this introduction to functional Programming course,
Speaker 5: I only taught and laudnge for computer science, so it
Speaker 5: was not an introduction to programming. I'm still trying to
Speaker 5: learn which is the best approach to teach programming. And
Speaker 5: what I try to do is teach them how to
Speaker 5: write a program in Elixir, but also the fundamentals and
Speaker 5: papers about the actor model, and so it's kind of
Speaker 5: makes There is also this academic approach that I think
Speaker 5: that's what's different from your approach with your main keys.
Speaker 6: Yeah, it's been fun to actually have smaller classes where
Speaker 6: we can flip the keyboard, and I think that that
Speaker 6: has been an eye opener for me. Do you get
Speaker 6: a chance to actually invite the key is to get
Speaker 6: up in code ever?
Speaker 2: I know I never had that in my pression.
Speaker 5: Yes, yes, because I'm also a big fan of the
Speaker 5: coding those who technique. I have written some papers about it,
Speaker 5: and whenever I can, I invite my students to do
Speaker 5: a coding those with whole class, and every five to
Speaker 5: seven minutes they first they do pre programming. So there's
Speaker 5: two persons on using the computer, and one of them
Speaker 5: is the driver and the other is the audiency. I
Speaker 5: don't remember the name, but the one that's observing and navigator, yes, navigator,
Speaker 5: And after some time the navigators becomes a driver. The
Speaker 5: drives go back to his seat, and another students takes
Speaker 5: the place of the navigator. You have to be always
Speaker 5: paying attention to what's happening to be able to write
Speaker 5: some code in front of the class. That's something that
Speaker 5: I really like. I had a Master's student who wrote,
Speaker 5: actually the two masters students, they wrote their thesis on
Speaker 5: coding those who so I tried to practice these with
Speaker 5: my students.
Speaker 1: It's interesting that you mentioned giving your students I think
Speaker 1: you mentioned some papers on like the actor model to
Speaker 1: read and that made me realize that when I was
Speaker 1: learning a lexur, I didn't really know what that was
Speaker 1: or even have an opportunity to think too much about it.
Speaker 1: And so maybe almost like a year into you know,
Speaker 1: writing a lecture professionally, and I have an oh oh background,
Speaker 1: Like I learned Ruby first, I was a real developer,
Speaker 1: and so a lot of my journey into Alix was
Speaker 1: characterized by like writing a lot of really messy sort
Speaker 1: of oh oh inflected Elixer code. And so one of
Speaker 1: the things I'm always curious about is, you know, what
Speaker 1: is it like to teach and learn something functional first,
Speaker 1: as opposed to learning oh and then like trying to
Speaker 1: sort of fight your way into a functional way of thinking.
Speaker 1: I don't know if you've taught oh oh as well
Speaker 1: as functional or you know how you think about these
Speaker 1: different totally different frameworks and mental models.
Speaker 5: Yes, the problem is that my students, when they come
Speaker 5: to this optional course, they already know how to problem.
Speaker 5: So I don't know how it is to teach functional
Speaker 5: programming first because they already The problem that they have
Speaker 5: is in that I tweeted a few days ago, was
Speaker 5: that they do what you said, They know how to
Speaker 5: do objective or in the program, and they try to
Speaker 5: do something like that with Elixir and they have it's
Speaker 5: really difficult for them. For the few students that I had,
Speaker 5: tried to write some more ideomatic codes, some code that
Speaker 5: looks like Elixure that makes use of pattern matching and
Speaker 5: small functions and lots of things that you can do
Speaker 5: in Elixir you can do in functional programming language, and
Speaker 5: it makes the code more readable, but you can't do it.
Speaker 2: Know.
Speaker 5: Also, at first, I'm not a professional programmer, so I
Speaker 5: program whenever I can. But I did my phdtas is
Speaker 5: used in Java, so I can say that I could
Speaker 5: write some reasonably good Java codes. And when I started
Speaker 5: Elixir now and before Alix, I started closure, and it
Speaker 5: was difficult to say.
Speaker 2: Now, how do I do that? How do I do
Speaker 2: a for loop? Here?
Speaker 5: There's no for loops, so I had to try to
Speaker 5: do things differently. So it's problem that I still don't have.
Speaker 5: But I want to have one of my projects. I
Speaker 5: have many projects, not all of them I put them
Speaker 5: in practice, But one of them was to create a
Speaker 5: programming chorse or even write a book for complete beginners,
Speaker 5: people that can't program in any language, and say oh now,
Speaker 5: let's learn Elixir without the telling them that it's Elixir.
Speaker 2: Let's because there are.
Speaker 5: Many productory books about Elixir that, for for example, my
Speaker 5: friends Police is all made that he wrote a great
Speaker 5: book about learning functional programming and with Elixir, but he
Speaker 5: kind of expects that people already know how to program
Speaker 5: with some other language.
Speaker 2: I believe Dave Thomas's book.
Speaker 5: Also expects even more such a uric book, So there's
Speaker 5: no program no programming book or that teaches functional programming
Speaker 5: with Elixir for complete beginners.
Speaker 6: As far as yes, such books do exist for the
Speaker 6: Haskell language, which is kind of a big step, right
Speaker 6: because you're you're not just grappling with the paradigm of
Speaker 6: you know, with an object and things, but you're also
Speaker 6: working into a completely different kind of type theory. And
Speaker 6: these these concepts are just pretty stunning to me. So
Speaker 6: another professor that that I really like is a man
Speaker 6: named John Hughes, one of the creators of Pascal, and
Speaker 6: he came to Chattanooga to attend our conference and I
Speaker 6: was fortunate to spend another couple of days with them.
Speaker 6: But he regularly taught students without any kind of mental corruption, right,
Speaker 6: and these are computer science students. So what's interesting to
Speaker 6: me is the students that I get that that are
Speaker 6: starting to proscritch are normally professionals that have tried to
Speaker 6: make a go in something else, right, So they they
Speaker 6: have the benefit of not having some of the baggage
Speaker 6: of a for programming paradigm that we have to deconstruct,
Speaker 6: but they also don't have the experience with the tools
Speaker 6: that they need for basic fluency, how to navigate the
Speaker 6: command line, how to use source control, how to do
Speaker 6: things like that, and and that's that is a tremendous obstacle.
Speaker 6: So you find the same thing teaching at university.
Speaker 2: You mean the.
Speaker 6: Basically a fluency with with the basic tools, you know,
Speaker 6: source control, editors, navigation of the command line, things like that.
Speaker 5: Yes, the first year students here at the Universe, some
Speaker 5: of them don't have any fluence, so they learn. See
Speaker 5: the teachers that teach them in the first semester they
Speaker 5: teach them. See, so they learned their basically in the
Speaker 5: first semesters. When they arrive in my class, they or
Speaker 5: I don't know how to do that, but I see
Speaker 5: what I mean. In there there are some.
Speaker 2: Online ideas like rep I don't know rip those do
Speaker 2: it and.
Speaker 5: Also win the box where you don't have to learn
Speaker 5: everything that create a file and all those things to
Speaker 5: be able to write some basic programs in ELIKSU.
Speaker 4: Yeah, on the subject of just teaching absolute beginners, one
Speaker 4: of the best books I ever found for this was
Speaker 4: Chris Pines Learned a Program which is in Ruby. I
Speaker 4: have a friend who was sort of modely technically competent.
Speaker 4: He learned the program Ruby using that book. He's the CTEO.
Speaker 4: Now have a startup.
Speaker 1: Really fun to watch that that actually can work. That's
Speaker 1: not a testimonial for chris Pine's book. I really don't
Speaker 1: know what it is. Yeah, it's really interesting to think
Speaker 1: about how to teach absolute beginners. And that's something that
Speaker 1: when Steven and I were teaching together at the Finer School,
Speaker 1: that's exactly what we did and what we were teaching
Speaker 1: was Ruby. And I think, at least at the time
Speaker 1: when I was a student there, which I was for
Speaker 1: being a teacher there, Chris Pine's book was I don't
Speaker 1: know if it was required, but it was sort of
Speaker 1: recommended pre reading of starting the course. And I think
Speaker 1: one of the things that I loved about teaching Ruby
Speaker 1: to absolute beginners, and one of the reasons why the
Speaker 1: school kind of touted it at such a great language
Speaker 1: for beginners is because it's easy to see how it
Speaker 1: models the real world. Right. There's an early assignment, I think,
Speaker 1: where we have students build out like a pet store
Speaker 1: or something, right, and you have a dog and the
Speaker 1: characteristics of a dog, and then you hadstantia dog objects
Speaker 1: and you know, take them to the vet or something
Speaker 1: like that. And for a while I was really just
Speaker 1: totally sold on oh oh models the real world, like
Speaker 1: that is the mental model for writing code that models
Speaker 1: the world. But now that I'm working with Elixir and
Speaker 1: thinking about things more functionally, I'm kind of thinking like,
Speaker 1: does it isn't it that message passing models the world?
Speaker 1: And that's certainly what Joe Armstrong, you know, would argue,
Speaker 1: And isn't it that the actor model really models the world?
Speaker 1: So it still feels like these things are at odds,
Speaker 1: like can they both be accurate representations of the way
Speaker 1: that you know, people and objects move through the world.
Speaker 2: Well, I think that.
Speaker 5: As I said, I came from a large in computer
Speaker 5: science background, and there is one thing that's it's real
Speaker 5: large even before in program is that there are many
Speaker 5: many models of the world. There is, for instance, loge.
Speaker 5: There is a classical propositional logic that we use mostly
Speaker 5: on programming is only one loge. There is multi valued loge.
Speaker 5: There is relevant lodge into an KI logic, there's minilarge.
Speaker 5: I believe that depending on the problem, one model is
Speaker 5: going to be the best. For other problems, there are
Speaker 5: two possible models, and you can choose so I don't
Speaker 5: think that's the problem. Maybe this book that teaches an
Speaker 5: absolute beginner how to program in Ruby is good for
Speaker 5: a person, and this other book that teaches how to
Speaker 5: program in Haskell is good for a mathematically inclined person,
Speaker 5: And so there there. I think that the great thing
Speaker 5: about all these programming languages there are many options. So
Speaker 5: I know people love closure. I know people hate closure
Speaker 5: because there is so many parentheses, and closure is even
Speaker 5: has less apparences than LESP.
Speaker 2: There's everything. It's made with perencies. So I don't think
Speaker 2: it's a problem. But I think here is that we
Speaker 2: have to provide options, and the.
Speaker 5: Students, the users, the persons, the people that want to
Speaker 5: learn programming, they choose what's best for them.
Speaker 6: I think that we're kind of entering a golden age
Speaker 6: of programming in some ways, because we've come out of
Speaker 6: a place when there was one true way, right, there
Speaker 6: was the Java way, and then the darkness find them right.
Speaker 6: So we were starting to get to the point where
Speaker 6: it's not just useful, but almost expected to have more
Speaker 6: than one tool in your tool back. And so for
Speaker 6: that reason, I think that probably the most important thing
Speaker 6: that we can learn is the skill of learning right.
Speaker 6: And so that's that's something that I've always really respected
Speaker 6: about you in your work, and especially this dojo approach
Speaker 6: where where you teach people to roll out their slaves
Speaker 6: and get their hands dirty first, really early in the process.
Speaker 5: Yes, And what's great about codin dozho it was created
Speaker 5: by two French guys. I believe that it was created
Speaker 5: in France. I can't remember the names of the loo
Speaker 5: Bosavi and I don't remember the.
Speaker 2: Name of the other guy.
Speaker 5: But one of the goals when I learned the coding
Speaker 5: doozho from one of my students, it is one of
Speaker 5: the goals I know you you do.
Speaker 2: During one two three.
Speaker 5: Hours, you solve a problem a code kata. And this
Speaker 5: concept of code kata was created by the great Dave Thomas,
Speaker 5: which you know well, and his idea was it was
Speaker 5: a small problem that you'd solve several times with.
Speaker 2: Different techniques in different languages.
Speaker 5: And so in there it's it's the de seed for
Speaker 5: this idea that you for you to be a good programmer,
Speaker 5: you can't be just don't know, I'm going to become
Speaker 5: perfect with Java and forget all about the other language. No,
Speaker 5: you can learn product you can learn, list you can learn.
Speaker 5: Of course, you have to decide. That's something that was
Speaker 5: happening at the Elixir World telegram group today is that
Speaker 5: sometimes you have to choose you cannot. I'm going to
Speaker 5: learn a bit of ELM, a bit of Elixir, a
Speaker 5: bit of Irland, a bit of Java, and and that
Speaker 5: being competent nothing you have to choose. I'm going to
Speaker 5: be good in elixure, I'm going to study other language
Speaker 5: so that I will be a better Elixir developer, a
Speaker 5: better developer in general, and maybe in the future again,
Speaker 5: oh no, Now I don't have a job with elik serve,
Speaker 5: but they have a Java job, so I can do
Speaker 5: Java too.
Speaker 2: And this is.
Speaker 5: Sorry, this is a real case. A friend of mine
Speaker 5: she had an elixirve job and then she went to
Speaker 5: Sweden to be an airline developer, and then she found
Speaker 5: a Java job.
Speaker 2: So yeah.
Speaker 3: In my experience, the whole idea of being a generalist
Speaker 3: sort of turns out to be a pretty good specialty
Speaker 3: and just having multiple things to lean on and having
Speaker 3: a wide knowledge of technology servers. For example, the field
Speaker 3: of web development is by its very nature extremely wide.
Speaker 3: There's a ton of things you should know to be
Speaker 3: really knowledgeable about the web, both back and front end,
Speaker 3: and the web standards and the APIs. There are so
Speaker 3: many things, and every domain in programming is basically like that,
Speaker 3: and there's a lot of depth and there's a lot
Speaker 3: of width. And of course you can focus down on
Speaker 3: a language to become an absolute expert in wielding the
Speaker 3: minute details of Java or Elixir or Python or c.
Speaker 3: But you can also pick up a few different languages
Speaker 3: or pick up a wide skill set where Okay, you
Speaker 3: need a SEQL database up and running, or now we
Speaker 3: need to set up some additional servers, or we need
Speaker 3: to write something in this language because we're using a
Speaker 3: project written in an entirely different language. Is there anyone
Speaker 3: that can actually read the code and work with it?
Speaker 2: Okay? Yeah.
Speaker 3: If you know a few languages, picking up a new one,
Speaker 3: for example, is usually fairly straightforward, except when you run
Speaker 3: into like the paradigm shift of functional programming, for example.
Speaker 3: But I think having that generalist approach tends to I've
Speaker 3: often heard the advice to specialize, you need to be
Speaker 3: good at a specific thing, and I think I think
Speaker 3: people mistake what that should be and what that needs
Speaker 3: to be. I think you can be very experienced. It
Speaker 3: can be an expert. That doesn't mean that you know
Speaker 3: every detail of the language. It can, but then you're
Speaker 3: a language doctor or a language specialist. That's usually not
Speaker 3: the most useful value add for a particular endeavor in
Speaker 3: my experience, and I.
Speaker 6: Mean, it strikes me, Adolpho, that you are essentially starting
Speaker 6: to move people in this direction right with your functional
Speaker 6: programming course and with the way that the world is
Speaker 6: moving or needs to move. Maybe it's a movie there
Speaker 6: fast enough, but it strikes me that you've you've at
Speaker 6: some point you've made a decision and to take people
Speaker 6: in this direction. When when was that? When did you
Speaker 6: start to be more of kind of open up the
Speaker 6: blinders a little bit. In the United States, there are
Speaker 6: a whole lot of schools that are invested in teaching
Speaker 6: Java and teaching Microsoft because that's where the certification, and
Speaker 6: they've made investments in those places and they just can't
Speaker 6: break away.
Speaker 5: I have a lot of freedom here in the public university,
Speaker 5: where the government owns the university and it's free for
Speaker 5: the students, so I can offer the course. I have
Speaker 5: some freedom to offer some courses, and I decided to
Speaker 5: start this functional programming course and functional programming is getting
Speaker 5: more well known with Brazilian software developers because there is
Speaker 5: a big company called New Bank, which it's a kind
Speaker 5: of a banking additional banking company. They have a credit
Speaker 5: card and they bought platform Attack, which is the company
Speaker 5: where Gioseffelin.
Speaker 2: Actually Giosefeline not only worked with that, but he was
Speaker 2: one of the owners of the company.
Speaker 5: And after that, the same company bought cogny Tact, which
Speaker 5: was the company is it still is the company behind Closure.
Speaker 2: So there was some kind of publicity for.
Speaker 5: Functional programming language here in Brazil because of these two
Speaker 5: companies that were bought. So I hope that in the
Speaker 5: near future I have more students for my functional Programming plus.
Speaker 5: I tried to offer them this because they what they
Speaker 5: learn as mandatory courses is c C plus plus and job.
Speaker 2: That's what they have to learn. But if they want,
Speaker 2: they can learn Elixir too.
Speaker 1: I think related to this kind of on the topic
Speaker 1: of teaching and producing generalists, sort of what you're saying like, okay, well,
Speaker 1: students are if not required, then they're kind of put
Speaker 1: into these boxes to learn these three languages, and if
Speaker 1: they want to they can come over here. And learn
Speaker 1: this as well really releases something you said earlier, which
Speaker 1: is that you're not teaching students alixir, although you know
Speaker 1: hopefully you are. You're teaching them how to learn, and
Speaker 1: I've always found that one of the best ways to
Speaker 1: do that is to make your students strategically uncomfortable, like
Speaker 1: kind of let let them suffer a little. And I'm
Speaker 1: gonna actually put Stephen in the hot feel a little
Speaker 1: bit because I think that this is if that's my
Speaker 1: teaching ploss that I think I probably stole that from.
Speaker 2: You a little bit.
Speaker 7: Yeah, I think that you know, there's they're sort of
Speaker 7: thinking about learning that you learn through and comfort the most.
Speaker 7: So the closure you can safely push people into being uncomfortable,
Speaker 7: the faster they'll sort of learn. I think everything is
Speaker 7: sort of theoretical until you've gotten to the point where
Speaker 7: you're like, oh, I have a deadline and have to
Speaker 7: build this project and I'm going to present in front
Speaker 7: of my entire class in two days. Oh my god,
Speaker 7: this is the end of the world if I do
Speaker 7: this wrong. But yeah, I think suffering is important, even
Speaker 7: if I sound a little low mean when I say it.
Speaker 7: I think that suffering and struggle is where you get
Speaker 7: the best learning and where it sticks.
Speaker 2: It's funny.
Speaker 6: There's a there's a man named Evan Miller, which we
Speaker 6: should definitely have on this this this podcast at some point.
Speaker 6: He's behind the Earl Project Chicago boss and so Adulfo.
Speaker 6: We were doing this Mint group that you're part of,
Speaker 6: you know, long before you and I met. We were
Speaker 6: doing it in Chattanooga, and everyone would show up right
Speaker 6: pre pandemic. But Evan would look up my shoulder when
Speaker 6: I was teaching somebody and someone would start to go
Speaker 6: off in the wrong direction, and that kind of give
Speaker 6: them a general nudge, you know, kind of nuts the
Speaker 6: rudder every now and then, and you know, I turn
Speaker 6: around and if it will be shaking his head right,
Speaker 6: and then, you know, so I would try to explain
Speaker 6: harder and he would be shaking his head. And then
Speaker 6: so this one time I turned around, I said.
Speaker 2: What Evan, what you know?
Speaker 6: And everybody just turned around. I'm usually pretty unflappable, right,
Speaker 6: but I was not that day. And he said, Bruce,
Speaker 6: it's all about the struggle. And so you know, that's
Speaker 6: that's probably my great weakness in a classroom setting, is
Speaker 6: building in enough struggle, right, So I teach a lot
Speaker 6: of technique. So what I should do is all the
Speaker 6: mistakes to happen in the right context and be kind
Speaker 6: of a guide, be a guard rail so that when
Speaker 6: the struggles happen, you can leave opportunity to bring people
Speaker 6: back on course and then and then cast them into
Speaker 6: the wind again. But yeah, you saw that first time.
Speaker 5: Yes, yes, and it's important because it's related to that
Speaker 5: model that used the Drifus model. Of course, if someone
Speaker 5: is a beginner, he or she needs more the direct instruction.
Speaker 5: But if someone that has a little bit more of
Speaker 5: experience than you are, okay, right, go to the internet
Speaker 5: and try to find what's the solution. Because one thing
Speaker 5: that I also think that's important nowadays that wasn't important when.
Speaker 5: That's important when when I started to learn program because
Speaker 5: when I started learning programming a long time ago, I
Speaker 5: started with basic there was no internet, so all I
Speaker 5: had was a book in the computer. But now we
Speaker 5: have lots of place where you can go. If you
Speaker 5: want to learn Elixir, you can go to Elixir School,
Speaker 5: and there is also the Elixir Forum, Elixir on Slack,
Speaker 5: Elixir on Discord, and I have just created the Elixir.
Speaker 2: World on in telegram and also tweetered.
Speaker 5: There's a lot of people tweeting about Elixir and so
Speaker 5: I think nowadays, if you want to learn a language,
Speaker 5: you have also to learn how to navigate all these
Speaker 5: opportunits to learn from others in the community.
Speaker 4: I wanted to plass one alexir World on telegram. I'm
Speaker 4: a big fan of telegram and I joined it once
Speaker 4: I realized it existed, and immediately scrolled up and saw
Speaker 4: interesting conversation.
Speaker 5: Thanks, I just started. My idea with Elixir Road was
Speaker 5: exactly that. I'm part of the eliksu bersial telegram and
Speaker 5: there's there are many interesting conversations there in Portuguese, of
Speaker 5: course because it's our language, but there was no I
Speaker 5: think there's no group like that in English. So I'm
Speaker 5: going to create one for English speaking, of course, not
Speaker 5: English speaking.
Speaker 2: It's people from all over the world. I once I.
Speaker 5: Listed there are people from many countries and so don't
Speaker 5: expect perfect English there, but people that can understand and
Speaker 5: write based English.
Speaker 6: That's so important too. Also that that we don't all
Speaker 6: look alike or sound alike. I think that one of
Speaker 6: the things you get is different problem solving perspectives, and
Speaker 6: when when we have people who have come from different
Speaker 6: backgrounds and different skills and and you get different language approaches,
Speaker 6: and you have justice, you know, make everything. You know,
Speaker 6: I will steamroll any obstacle. You know, I'll you know,
Speaker 6: we write to the Linux kernel for nerves. And then
Speaker 6: you have Bruce Williams and his approach and his kind
Speaker 6: of zen like approach to making things beautiful and making
Speaker 6: them flow and making them exactly in the right abstractions.
Speaker 2: And then you get absent. But that's what makes community special.
Speaker 6: And I'm really glad that you don't see perfect English
Speaker 6: there right, that you see that you see such a
Speaker 6: variety not just words, but of thought structures and paradigms
Speaker 6: and things like that.
Speaker 1: And I think that's one of our responsibilities as teachers
Speaker 1: and as educators. I think, is not just to give
Speaker 1: people materials that they can learn how to do a thing,
Speaker 1: but it's how to create conditions around them in which
Speaker 1: they can learn. And part of that are the conditions
Speaker 1: of this community, of the electric community, of the aline community,
Speaker 1: of the functional programming community. And that's why I think,
Speaker 1: in particular, you know a lot of the work that
Speaker 1: you've done at all to create these resources and these
Speaker 1: channels and these spaces where people can come together and
Speaker 1: learn together. I think is really incredible And I would
Speaker 1: love to hear from you what more do you want
Speaker 1: to see in the elexir community? Like, what resource do
Speaker 1: you wish existed that doesn't Maybe it's that Alexa for
Speaker 1: Absolute Beginner's Book. You know, what kind of involvement or
Speaker 1: participation do you want to see from people in the
Speaker 1: group that you've created or or in other groups? You know,
Speaker 1: what can we all be doing to keep this community
Speaker 1: growing so we can keep educating and keep bringing in newcomers.
Speaker 2: Wow, that's a good question. Maybe I really like Exorcism and.
Speaker 5: That's a resource that I think it's not there's no
Speaker 5: need to create another Exciscism. But maybe people in the
Speaker 5: community that want to help others, they should go there
Speaker 5: and become a mentor. And the orders that want tread
Speaker 5: should go there and become maintees and try to learn
Speaker 5: using research like that. And I mean, let me just
Speaker 5: say what I see in the Brazilian community, there's a lot,
Speaker 5: a lot. It's a lot, know, some like coding with
Speaker 5: elixir when on t each some on YouTube. I would
Speaker 5: like to see the more in English. Maybe I don't
Speaker 5: see it because it has not arrived to me, but
Speaker 5: it's there. So I if you know someone doing that,
Speaker 5: please treat me and then I you try to include that.
Speaker 5: I mean, I have a small bit help project where
Speaker 5: I'm compiling. Maybe after some time I will give this
Speaker 5: information to the Airline Ecosystem Foundation, because that's one of
Speaker 5: the things that let me introduce this subject. I'm part
Speaker 5: of the Education Working Group of the Long Ecosystem Foundation,
Speaker 5: and we are doing lots of things to try to
Speaker 5: make not on Elixir but also Airline and the other
Speaker 5: being language, make them more populars, to allow more people
Speaker 5: that want to learn that this length was to learn them.
Speaker 5: So for instance, we have had Elixir called you VIRTUALO
Speaker 5: a few months ago and there is a professor and
Speaker 5: my students want to take part in the training. So
Speaker 5: the foundation and supported the students and we have a
Speaker 5: lot of initiatives going on. We had before the pandemic.
Speaker 5: We've had some meetings where we we di scutted. For instance,
Speaker 5: one of the initiatives initiatives was to try to find
Speaker 5: professors in many universities that are teaching either airline or
Speaker 5: Elixxure or other language, and to try to connect these
Speaker 5: professionals that use Elixure in production with these professors that
Speaker 5: teach Elixir or length, so that these professionals can give
Speaker 5: talks to their students. And I believe there is also
Speaker 5: I need, as I said, for a good introductory book,
Speaker 5: but I know that that's because I particularly love books.
Speaker 5: Maybe most of the people nowadays don't love book as
Speaker 5: much as I do, so there's maybe no economic reason
Speaker 5: for an introductory book, but I love books. I would
Speaker 5: like to see a really introductory book leaks through, and
Speaker 5: I think that's it.
Speaker 6: A Licture should be a good language to break into
Speaker 6: functional programming. And I say that because I think that
Speaker 6: a leixture can stand on its own when you just
Speaker 6: get into the core, just the kind of the peer functions,
Speaker 6: the exorcism size and shaped projects. And you can do
Speaker 6: that without absorbing a whole lot of functional algebra in
Speaker 6: terms of the type structures. But you still have the
Speaker 6: full power of functional programming that you can.
Speaker 2: Bring to bear. So it should be.
Speaker 6: And the other thing that I think is critical is
Speaker 6: that with the pipe, you have this idea of glue
Speaker 6: between concepts, and that's the hard thing about teaching someone
Speaker 6: that's new, or teaching someone from an abjectorian system where
Speaker 6: we say, okay, objects don't do that, inheritance don't do that.
Speaker 6: So there's a lot of things that we say not
Speaker 6: to do. But unless you replace that glue, it's difficult
Speaker 6: to get traction with a new programmer. But if you
Speaker 6: have this framework of hey, there's a module that collects things,
Speaker 6: and then that module surrounds this central type and then
Speaker 6: you can kind of chain things together with simple transformations,
Speaker 6: I think it should be I think you're definitely onto
Speaker 6: something that learning programming one oh one in Elixer is
Speaker 6: definitely something that you could do.
Speaker 2: I would like to say something else about this learning
Speaker 2: the community.
Speaker 5: One thing that I noticed that it's really attracted me
Speaker 5: to the language and the larger communits being community because
Speaker 5: it's not only Elixir but also Aline.
Speaker 2: It's the podcasts.
Speaker 5: This podcast already has more than one hundred episodes, and
Speaker 5: there are other podcasts, and there is great podcast that
Speaker 5: it seems has already finished by It has a lot
Speaker 5: of great interviews there that you can if you want
Speaker 5: to listen to interviews with Joe Armstrong from the past.
Speaker 5: That it's their own Alixir fountain. So I think that
Speaker 5: this community. Of course, I I before Elixir, I was
Speaker 5: following the Closure community, which seems to be smaller. It
Speaker 5: has less resources for beginners. Maybe today it has the same,
Speaker 5: but at the time it had more less resources for beginners.
Speaker 2: So I think the idea of podcasts.
Speaker 5: I love podcasts because I can learn unexpected things. It's
Speaker 5: that that world that people use its certain deepity, right,
Speaker 5: so you're not expecting to learn something. And I mean,
Speaker 5: of course, the learning that happens in a podcast is
Speaker 5: much it's at a much higher level than the learning
Speaker 5: that you learn when you, for instance, you go to
Speaker 5: that series in your channel, Bruce and they grow to
Speaker 5: your channel.
Speaker 2: Of course you're going to learn some more.
Speaker 5: Technical things, technical details about how to write and a
Speaker 5: live view app. But it's also you can learn a
Speaker 5: lot of things and listening to people from the community
Speaker 5: and that's a great resource too. And I'm planning to
Speaker 5: do some research about this and the podcasts and how
Speaker 5: they are perceived by the community. I hope that when
Speaker 5: this episode goes on Earth, I will have a survey
Speaker 5: that to survey the community about how because I know
Speaker 5: there are some people that don't like podcasts, they won't
Speaker 5: listen to podcasts. But I know also that there is
Speaker 5: many people that listen to podcasts. But what do they
Speaker 5: get from the podcast? What do they expect from the podcasts?
Speaker 5: What do they value more a person because he or
Speaker 5: she was a guest on a podcast, or because of
Speaker 5: what he or she said on a podcast.
Speaker 2: There are some questions that I would like to see
Speaker 2: answer it.
Speaker 4: Yes, I used to listen to I've forgotten the name
Speaker 4: of it now, but the only airline podcast that existed
Speaker 4: back in the day with Brian Hunter and Zach But
Speaker 4: I would I would always get value from it from
Speaker 4: things like Bruce saying, hey, you should really focus on
Speaker 4: the transformations. And you know, it's a very pity statement
Speaker 4: in exactly the right meaning of the word, like learning
Speaker 4: hearing someone smart say that and go, huh, I wonder
Speaker 4: how I actually put that into practice and then figuring
Speaker 4: it out a month later. That's kind of the value
Speaker 4: I always got from programming podcasts.
Speaker 2: I believe the name of the podcast was mostly Earling.
Speaker 1: It was mostly Earling.
Speaker 4: Yeah, I listened to that while I was painting a house.
Speaker 1: I definitely agree with you, and also that sometimes you're
Speaker 1: listening to podcasts and you don't you don't really know
Speaker 1: what to expect. You don't know what you're going to learn.
Speaker 1: And that's what I appreciate about it, because I think,
Speaker 1: you know, you pick up a book for a reason, right,
Speaker 1: I want to learn how to do X and alixir.
Speaker 1: You know, you probably read a blog post for a
Speaker 1: reason as well. You were literally googling how to do
Speaker 1: this thing. I'm like, oh, this came up and you
Speaker 1: read it. But with podcasts, it's just kind of like
Speaker 1: an open space to start encountering things that you didn't expect.
Speaker 1: Here people talk about topics that weren't necessarily on your mind.
Speaker 1: It's kind of like why I like, I don't know
Speaker 1: how you guys are going to feel about this comparison,
Speaker 1: but what I like about cable television is that I
Speaker 1: only watch Law and Order on TV. They pick up
Speaker 1: the Law and Order episode for you all day long,
Speaker 1: from like eight am to eight pm. Like, you didn't
Speaker 1: choose the Lawn Order episode. You're just watching whatever they
Speaker 1: put in front of your face. And that's fun, you
Speaker 1: know that kind of that's what I'm looking for when
Speaker 1: I'm listening to podcasts, Like I'm interested in the broad topic,
Speaker 1: you know, I'm interested in who these people are, and
Speaker 1: I just want to hear what they have to say.
Speaker 1: And I don't know where it's.
Speaker 2: Going to take me. You don't like if you're more
Speaker 2: murder in your podcast, You're just I think I get it. Well.
Speaker 1: I'm also listening. That'll be one of my picks. Actually,
Speaker 1: it's pretty good true crime podcast that I was introduced
Speaker 1: to recently.
Speaker 3: So what you're saying is we'll get back to the
Speaker 3: murder part.
Speaker 1: Yeah, we'll talk about murder later.
Speaker 2: Yeah.
Speaker 3: I'm very curious to hear what comes out of the
Speaker 3: survey at all, because I do feel that the different
Speaker 3: podcasts that are available for the Lexi community, and we
Speaker 3: have a disproportionate amount compared to our community size, I think,
Speaker 3: so we have a lot of them, and I find
Speaker 3: I find all of them interesting, and I feel like
Speaker 3: they we actually do manage to cover different focus points
Speaker 3: and have wildly different styles. The Outlaws are definitely a
Speaker 3: style into their own, and I feel like there's a
Speaker 3: lot of difference between the Wizards and us, even though
Speaker 3: we are both to some extent guest driven. And yeah,
Speaker 3: the whole meta conversation of what podcasts are good for
Speaker 3: and yeah, very interesting. I hope to see your survey soon.
Speaker 1: Well, speaking of picks, this might be as good a
Speaker 1: time as any to wrap up our conversation and move
Speaker 1: into picks. So we'll just kind of round robin and
Speaker 1: if anybody has any links or recommendations to share, and
Speaker 1: this is the time for it, start with las we.
Speaker 2: Have for us.
Speaker 3: Well, I have the newly launched being Bloggers Webring, and
Speaker 3: I'll call out Sophie and well, Alex isn't here, so
Speaker 3: I can't call him out. That you're supposed to p
Speaker 3: army your blogs so they can be in the Webring.
Speaker 3: But yeah, this is a fun little project that I
Speaker 3: wanted to put together to just spread the love. Traffic
Speaker 3: is rotating around the beam bloggers. There's more design to come.
Speaker 3: Maybe it will even be pretty by the time this
Speaker 3: episode launches. So yeah, check it out. It's beam blog
Speaker 3: com or you can look around from my GitHub. But
Speaker 3: beam blogger stuff com very cool.
Speaker 1: I'm very excited to pr that have included my blog there.
Speaker 1: It'll inspire me to write more. Thank you for that.
Speaker 1: How about you birth.
Speaker 6: You've got a couple of course, the Garroxio course is
Speaker 6: going on now, the Lively Course, and that's been a
Speaker 6: lot of fun. One of the things that I get
Speaker 6: to do is look at techniques that are kind of
Speaker 6: off the beaten path, and one of the things I
Speaker 6: really like is gamerless chain sets. So I've kind of
Speaker 6: been playing with where those live, right, It's an ecto thing,
Speaker 6: but it's something that likes to live in the view.
Speaker 6: So I'm working on a video this afternoon that'll go
Speaker 6: out with the fourth chapter that that'll come out probably
Speaker 6: about the same time as this episode, so.
Speaker 2: I'll post that.
Speaker 6: I'm also excited to be working on a new project.
Speaker 6: But just to give you a teaser, here's a keynote.
Speaker 6: There's a keynote on failure by guy named Brian Trotwine
Speaker 6: and he's really just a fabulous speaker and an excellent
Speaker 6: person to you know. The kind of is the anti Bruce, right,
Speaker 6: So I'm optimist, happy path and Brian is how many
Speaker 6: ways can things fail? And so we're kind of kicking
Speaker 6: around the idea of putting together a video series of
Speaker 6: how things fail why they feel less of a programmer
Speaker 6: series and more of a kind of an exploration of failure.
Speaker 6: So but this is a teaser for that project.
Speaker 1: There's a lot of good stuff there. I'm looking forward
Speaker 1: to checking some of that out. Let's see who's up next,
Speaker 1: Steven and he picks for us.
Speaker 7: Yeah, I guess a general pick. I'll give what I'm using,
Speaker 7: but find something that does this. I found an like
Speaker 7: a PDF reader that does text the speech. I don't
Speaker 7: know why where this has been my entire life, but
Speaker 7: like I now walk the dog and I'm listening. I
Speaker 7: got Bruce in my ear while I have a robot
Speaker 7: in my ear saying Bruce's words. I've got, you know,
Speaker 7: everything that I've been meaning to read and then kind
Speaker 7: of get around to just constantly going in my ears.
Speaker 7: Now I have androids, so I'm using eReader Prestigio. They
Speaker 7: have a couple of different services for reading, but when
Speaker 7: they ask you to select, if you scroll down, you
Speaker 7: can pick the local Android one, so you can get
Speaker 7: the generic android voice doing Texas speech, which is good enough.
Speaker 2: But if you haven't done this, do this.
Speaker 7: You need this in your life, being able to just
Speaker 7: throw a technical book, reading growing objectory into word guided
Speaker 7: by tests in one ear.
Speaker 2: It's it's really cool. Do that good?
Speaker 1: Cah, Yeah, that's a good idea, Josh, any picks.
Speaker 2: I have two picks.
Speaker 4: The first is the GitHub Arctic code vaults tech tree,
Speaker 4: which I've linked to, and it's just you mentioned curation
Speaker 4: in the context of cable television. While I basically hate
Speaker 4: cable television, I do like the concept of curation. And
Speaker 4: this is they've listed just a ridiculous number of books
Speaker 4: that Hey, if you want to know about how to
Speaker 4: do stuff on computers, whether it be networking or software
Speaker 4: development or whatever, here's a list of just really solid
Speaker 4: book choices. And then also I a quote I don't
Speaker 4: know who to attribute it to. My friend Michael Alvis
Speaker 4: sent it to me, but it wasn't his set. Running
Speaker 4: a successful open source project is just good will hunting
Speaker 4: in reverse, where you start out as a respected genius
Speaker 4: and end up being a janitor who gets into fights.
Speaker 1: And I just wanted to share that that definitely Roseye interesting.
Speaker 1: All right, I'll run down to the mine and then
Speaker 1: we'll hand it off to our guest. I've got a
Speaker 1: few this time around. So we talked a little bit
Speaker 1: about being a generalist and how as engineers as programmers it,
Speaker 1: you know, is that's the way to go. I think
Speaker 1: a lot of us feel. So there's a great book
Speaker 1: by David Epstein called Let's See Range, How Generalists Triumph
Speaker 1: in a Specialized World. Really interesting book on this topic
Speaker 1: sort of more broadly speaking. And I was actually introduced
Speaker 1: to this book by my partner, who is an artist
Speaker 1: and who wrote what I thought was a very interesting
Speaker 1: post on the topic of being a generalist from the
Speaker 1: point of view of like an artist or a creative worker.
Speaker 1: So I'm going to share that link as well. Not
Speaker 1: quite shameless self promotion, shameless someone else promotion. And then
Speaker 1: we've got a recent blog post from someone you may
Speaker 1: have heard of, Stephen Nuniez, on the topic of managing
Speaker 1: rabbit MQ connections with the library called x rabbit Pool,
Speaker 1: and I just thought it was a really like, very clear,
Speaker 1: very straightforward look at you know, why we need to
Speaker 1: manage connections in this way, what this tool does for us,
Speaker 1: And what I really liked about it is there were
Speaker 1: all the pictures of I forget what it's called, like
Speaker 1: you know, the airline guy, and it shows you the
Speaker 1: processes what's that called, Stephen Earlin observer, Yeah, showing you,
Speaker 1: like the various processes that are being managed by your
Speaker 1: connection pool, and it's really fun to see, like, Okay,
Speaker 1: well if I do this, and then we go back
Speaker 1: to the airline observer and we see the tree kind
Speaker 1: of grow and strength depending on what you're doing. And
Speaker 1: I just thought you laid it up super well. And
Speaker 1: of course you hit upon this library and it's tooling
Speaker 1: as part of the work we're doing to prepare for
Speaker 1: our very exciting, thrilling even conference at this year's elixri
Speaker 1: compf on the topic of working with Elixer and Rabbit
Speaker 1: and Queue and using it to bring in a green
Speaker 1: field of water app into your legacy technical ecosystem. So you, yeah,
Speaker 1: you might want to get on that. And that's for me.
Speaker 1: Let's see if it also has any PEX for us.
Speaker 5: Yes, I have maybe too much, too many picks, but
Speaker 5: I have already sent you the links the Elixir World
Speaker 5: Telegram group, which a telegram group for any people related
Speaker 5: to any being language. What I like about telegram groups
Speaker 5: is that I don't have the fear of missing out
Speaker 5: because when you go to when there is a telegram
Speaker 5: group which is reasonably large, and you go there and
Speaker 5: there is two hundred new messages and you can't keep
Speaker 5: up you forget that you'll not be able to keep
Speaker 5: up with.
Speaker 2: All the message.
Speaker 5: So whenever you have time, you go there, you see
Speaker 5: what's happening, and then you go back to what you're doing.
Speaker 5: I have already sent other links related to tell but
Speaker 5: it's okay. I think it's parted to say that we
Speaker 5: have the Education Working Group of the Arlang Ecosystem Foundation.
Speaker 5: We have a list of issues at our git heub page,
Speaker 5: so I think it's important if people want to help
Speaker 5: our group. There are many issues issues open and Elixir
Speaker 5: Breds you two thousand, twenty, Elixir Breds you twenty twenty.
Speaker 5: Is it going to happen? It would happen in May
Speaker 5: and Bruce would be here in San Paulo. But it
Speaker 5: seems it's going to happen physically, we hope, only in
Speaker 5: twenty twenty one, but it's probably going to happen online.
Speaker 2: So that's what I would like to say.
Speaker 5: If people want to learn Elixir in Portuguese, the language
Speaker 5: of the creator of Elixir, it will be possible to
Speaker 5: learn it online. And my last peak is going to
Speaker 5: be a movie because I really like the I really
Speaker 5: enjoyed the Elixir Fountain podcast.
Speaker 2: The last part it was.
Speaker 5: I think it was fire behind the code because I
Speaker 5: could get to know better the people that were part
Speaker 5: of the community and their For instance, I learned that
Speaker 5: Joe Armstrong loved to play the piano. I can't play
Speaker 5: the piano. But I love movies, and I love some
Speaker 5: Brazilian movies. The last time I was a guest here,
Speaker 5: I suggested people watch.
Speaker 2: The movie Aquarius.
Speaker 5: Now I have another suggestion from the same director, It's Back.
Speaker 2: It's okay.
Speaker 5: Some people will not like this movie because it's kind
Speaker 5: of violent, but it has a very deep message about
Speaker 5: Brazil today and about actually about the world today.
Speaker 2: So it's it's a movie that I really like. It's
Speaker 2: called Back.
Speaker 1: This actually looks really cool. I just googled it. This
Speaker 1: is my kind of movie. The locals are not exactly
Speaker 1: what they appear to be in high dangerous Secrets. Yes,
Speaker 1: sign me, Yes, all right, Thank you so much for
Speaker 1: joining us today at although this was a great conversation.
Speaker 1: And that's it for today's episode of a Listener Mix