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.
Speaker 2: Hi everybody, Hey Bruce.
Speaker 1: We've got Josh Adams, Hello, Hi, Josh, Lars Vikmann what.
Speaker 3: Was that colloquial Swedish?
Speaker 1: Very nice?
Speaker 4: Hello?
Speaker 3: Hello?
Speaker 1: Hello?
Speaker 4: Hello?
Speaker 1: Very cool? And Steven Nias helloes all our something Yeah,
Speaker 1: I think you do have to he out there perfect
Speaker 1: and joining us as a guest. We are very lucky
Speaker 1: to have an also netto who is a professor of
Speaker 1: computer science and he's also very active in the Elixir community,
Speaker 1: especially with regards to Elixir education. I am super happy
Speaker 1: that you could join us today because these are really
Speaker 1: some of my favorite topics, education and Elixer. You wouldn't
Speaker 1: mind go ahead and introduce yourself.
Speaker 4: Thank you very much. My name is Ago From, a
Speaker 4: professor or at the Federal University of Technology. But now
Speaker 4: which is it's here in Critiba, Brazil, and I teach
Speaker 4: lodge for computer science and also an introduction to Functional
Speaker 4: Programming course. And I got interested in Elixir because it
Speaker 4: was created by a Brazilian. I have to say that
Speaker 4: because that's what's attracted me to the language at first,
Speaker 4: but now I admire the language and also it's community.
Speaker 2: So do you actually get to teach a luxure at
Speaker 2: your university.
Speaker 4: Yes, I don't have many students, less offering I had
Speaker 4: for students only because it's an optional course. It's you
Speaker 4: don't have to take this course to graduate in computer science.
Speaker 4: So actually we don't have computer science here. It's computer
Speaker 4: engineering and information systems, but it's it's an optional. For instance,
Speaker 4: I have an agual methods classes to class to and
Speaker 4: it's it has much more students because it's it attracts
Speaker 4: more interest for it. It's more interesting for the students
Speaker 4: to learn what's scrounged than elixir. But I hope that
Speaker 4: as the time passes, more of the students are going
Speaker 4: to get interested in this class.
Speaker 2: It's interesting. We've gotten to spend a little bit of
Speaker 2: time together. For those who don't know, I have a
Speaker 2: metroing group and Adolfo shows up as I don't know
Speaker 2: something between a metro and amity, which is kind of
Speaker 2: great for my students. But I have some questions. Do
Speaker 2: you have any techniques that you can throw my way
Speaker 2: or are there anythings that we do that you're going
Speaker 2: to take with you and your teaching approaches.
Speaker 4: Actually, I think I'm learning more with you than the
Speaker 4: opposite because be for this introduction to functional Programming course,
Speaker 4: I only taught and laudnge for computer science, so it
Speaker 4: was not an introduction to programming. I'm still trying to
Speaker 4: learn which is the best approach to teach program And
Speaker 4: what I try to do is teach them how to
Speaker 4: write a program in Elixir, but also the fundamentals and
Speaker 4: papers about the actor model, and so it's kind of
Speaker 4: makes There is also this academic approach that I think
Speaker 4: that's what's different from your approach with your main keys.
Speaker 2: Yeah, it's been fun to actually have smaller classes where
Speaker 2: we can flip the keyboard, and I think that that
Speaker 2: has been an eye opener for me. Do you get
Speaker 2: a chance to actually invite the keys to get up
Speaker 2: in code ever? I know I never had that my person.
Speaker 4: Yes, yes, because I'm also a big fan of the
Speaker 4: coding those who technique. I have written some papers about it,
Speaker 4: and whenever I can, I invite my students to do
Speaker 4: a coding those with the whole class, and every five
Speaker 4: to seven minutes they first y they do programming so
Speaker 4: there's two persons using the computer, and one of them
Speaker 4: is the driver and the other is the audiency. I
Speaker 4: don't remember the name, but the one that's observing and navigator, yes, navgator.
Speaker 4: And after some time the navigators becomes a driver. The
Speaker 4: drives go back to the to his seat, and another
Speaker 4: students takes the place of the navigator. You have to
Speaker 4: be always paying attention to what's happening to be able
Speaker 4: to write some code in front of the class. That's
Speaker 4: something that I really like. I had a master's student
Speaker 4: who wrote actually the two masters students, they wrote their
Speaker 4: thesis on coding those who so I tried to practice
Speaker 4: these with 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
Speaker 1: it until 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 a elixir
Speaker 1: away was characterized by like writing a lot of really messy,
Speaker 1: sort of oh oh inflected Elixer code. And so one
Speaker 1: of the things I'm always curious about is, you know,
Speaker 1: what 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 4: Yes, the problem is that my students, when they come
Speaker 4: to this optional course, they already know how to problem.
Speaker 4: So I don't know how it is to teach functional
Speaker 4: programming first because they already know. The problem that they
Speaker 4: have is in that I tweeted a few days ago,
Speaker 4: was that they do what you said, They know how
Speaker 4: to do objective ranged program and they try to do
Speaker 4: something like that with Elixir and they have it's really
Speaker 4: difficult for them. For the few students that I had,
Speaker 4: tried to write some more ideomatic codes, some code that
Speaker 4: looks like elixure that makes use of pattern matching and
Speaker 4: small functions and lots of things that you can do
Speaker 4: in elixuir you can do in functional programming languages and
Speaker 4: it makes the code more readable, but you can't do it. Know. Also,
Speaker 4: at first, I'm not a professional programmer, so I program
Speaker 4: whenever I can. But I did my phddas is used
Speaker 4: in Java, so I can say that I could write
Speaker 4: some reasonably good Java codes. And when I started Elixir
Speaker 4: now and before Alix, I started closure, and it was
Speaker 4: difficult to say, now, how do I do that? How
Speaker 4: do I do a for loop? Here? There's no for loops,
Speaker 4: so I had to try to do things differently. So
Speaker 4: it's a problem that I still don't have. But I
Speaker 4: want to have one of my projects. I have many projects,
Speaker 4: not all of them I put them in practice, but
Speaker 4: one of them was to create a programming chorse or
Speaker 4: even write a book for complete beginners, people that can't
Speaker 4: program in any language and say, oh, now, let's learn
Speaker 4: Elixir without the telling them that it's Elixir. Let's because
Speaker 4: there are many productory books about Elixir that for for example,
Speaker 4: my friends police is all made that he wrote a
Speaker 4: great book about learning functional programming and with Elixer, but
Speaker 4: he kind of expects that people already know how to
Speaker 4: program with some other language. I believe Dave Thomas's book
Speaker 4: also expects and even more such a uric book. So
Speaker 4: there's no program no programming book or that teaches functional
Speaker 4: programming with Elixir for complete beginners. As far as yes, such.
Speaker 2: Such books do exist for the Haskell language, which is
Speaker 2: kind of a big step, right because you're you're not
Speaker 2: just grappling with the paradigm of you know, with an
Speaker 2: object and things, but you're also working into a completely
Speaker 2: different kind of type theory. And these these concepts are
Speaker 2: just pretty stunning to me. So another professor that that
Speaker 2: I really like is a man named John Hughes, one
Speaker 2: of the creators of Pascal, and he came to Chattanooga
Speaker 2: to attend our conference and I was fortunate to spend
Speaker 2: another couple of days with them. But he regularly taught
Speaker 2: students without any kind of mental corruption, right, and these
Speaker 2: are computer science students. So what's interesting to me is
Speaker 2: the students that I get that that are starting from
Speaker 2: scratch are normally professionals that have tried to make a
Speaker 2: go in something else, right, So they they have the
Speaker 2: benefit of not having some of the baggage of a
Speaker 2: different programming paradigm that we have to deconstruct, but they
Speaker 2: also don't have the experience with the tools that they
Speaker 2: need for basic fluency, how to navigate the command line,
Speaker 2: how to use source control, how to do things like that,
Speaker 2: and and that's that is a tremendous obstacle. So you
Speaker 2: find the same thing teaching at university.
Speaker 4: You mean.
Speaker 2: Basically a fluency with with the basic tools, you know,
Speaker 2: source control, editors, navigation of the command line.
Speaker 4: Things like that. Yes, the first year students here at
Speaker 4: the Universe, some of them don't have any fluence, so
Speaker 4: they learn. See the teachers that teach them in the
Speaker 4: first semester they teach them. See, so they learned their
Speaker 4: basically in the first semesters. When they arrive in my class,
Speaker 4: they or I don't know how to do that, but
Speaker 4: I see what I mean. In there there are some
Speaker 4: online ideas like I don't know rip tho dot it
Speaker 4: and also win the box where you don't have to
Speaker 4: learn everything that create a file and all those things
Speaker 4: to be able to write some basic programs in ELIKSU.
Speaker 5: Yeah, on the subject of just teaching absolute beginners, one
Speaker 5: of the best books I ever found for this was
Speaker 5: Chris Pines Learned a Program which is in Ruby. I
Speaker 5: have a friend who was sort of modely technically competent.
Speaker 5: He learned to program Ruby using that book. He's the
Speaker 5: CTO now have a startup. Really fun to watch that
Speaker 5: that actually can work.
Speaker 1: That's not a testimonial for chris Pine's book. I really
Speaker 1: don't know what it is. Yeah, it's really interesting to
Speaker 1: think about how to teach absolute beginners. And that's something
Speaker 1: that when Steven and I were teaching together at the
Speaker 1: Flanner School, that's exactly what we did and what we
Speaker 1: were teaching was Ruby. And I think, at least at
Speaker 1: the time when I was a student there, which I
Speaker 1: was for being a teacher there, Chris Pine's book was
Speaker 1: I don't know if it was required, but it was
Speaker 1: sort of recommended pre reading of starting the course. And
Speaker 1: I think one of the things that I love about
Speaker 1: teaching Ruby to absolute beginners, and one of the reasons
Speaker 1: why the school kind of touted it at such a
Speaker 1: great language for beginners, is because it's easy to see
Speaker 1: how it models the real world. Right. There's an early assignment,
Speaker 1: I think, where we have students build out like a
Speaker 1: pet store or something, right, and you have a dog
Speaker 1: and the characteristics of a dog, and then you Hadstanty
Speaker 1: a dog objects and you know, take them to the
Speaker 1: vet or something like that. And for a while I
Speaker 1: was really just totally sold on oh oh models the
Speaker 1: real world, like that is the mental model for writing
Speaker 1: code that models the world. But now that I'm working
Speaker 1: with Elixir and thinking about things more functionally, I'm kind
Speaker 1: of thinking like, does it isn't it that message passing
Speaker 1: models the world? And that's certainly what Joe Armstrong, you know,
Speaker 1: would argue, And isn't it that the actor model really
Speaker 1: models the world? So it still feels like these things
Speaker 1: are at odds, like can they both be accurate representations
Speaker 1: of the way that you know, people and objects move
Speaker 1: through the world.
Speaker 4: Well, I think that, As I said, I came from
Speaker 4: a large in computer science background, and there is one
Speaker 4: thing that's it's real in large given before in program
Speaker 4: is that there are many many models of the world.
Speaker 4: There is, for instance, loge. There is a classical propositional
Speaker 4: loge that we use mostly on programming is only one loge.
Speaker 4: There is multi valued loge. There is relevant loge into
Speaker 4: an is ki loge, there's miny lodge. I believe that
Speaker 4: depending on the problem, one model is going to be
Speaker 4: the best for other problems. There are two possible models
Speaker 4: and you can choose, So I don't think that's the problem.
Speaker 4: Maybe this book that teaches an absolute beginner how to
Speaker 4: program in Ruby is good for a person, and this
Speaker 4: other book that teaches how to program in Haskell is
Speaker 4: good for a mathematically inclined person, And so there there.
Speaker 4: I think that the great thing about all these programming
Speaker 4: languages that there are many options. So I know people
Speaker 4: love closure. I know people hate closure because there is
Speaker 4: so many a parentheses, and closure is even has less
Speaker 4: apparences than LESP. There's everything. It's made with perencies. So
Speaker 4: I don't think it's a problem. But I think here
Speaker 4: is that we have to provide options, and the students,
Speaker 4: the users, the persons, the people that want to learn programming,
Speaker 4: they choose what's best for them.
Speaker 2: I think that we're kind of entering a golden age
Speaker 2: of programming in some ways, because we've come out of
Speaker 2: a place when there was one true way right, there
Speaker 2: was the javaway and then the darkness find them right.
Speaker 2: So we were starting to get to the point where
Speaker 2: it's not just useful, but almost expected to have more
Speaker 2: than one tool in your tool back. And so for
Speaker 2: that reason. I think that probably the most important thing
Speaker 2: that we can learn is the skill of learning right.
Speaker 2: And so that's that's something that I've always really respected
Speaker 2: about you in your work, and especially this dojo approach
Speaker 2: where where you teach people to roll out their slaves
Speaker 2: and get their hands dirty first, really early in the process.
Speaker 4: Yes, and what's great about coding dozho it was created
Speaker 4: by two French guys. I believe that it was created
Speaker 4: in France. I can't remember the names of loh Bosavi
Speaker 4: and I don't remember the name of the other guy.
Speaker 4: But one of the goals when I learned the coding
Speaker 4: dojo from one of my students, it is one of
Speaker 4: the goals I know you you do during one two
Speaker 4: three hours, you solve a problem a code kata. And
Speaker 4: this concept of code kata was created by the great
Speaker 4: Dave Thomas, which you know well, and his idea was
Speaker 4: it was a small per all them that you'd solve
Speaker 4: several times with different techniques in different languages, and the
Speaker 4: s in there. It's it's the de seed for this
Speaker 4: idea that you for you to be a good programmer,
Speaker 4: you can't be just don't know. I'm going to become
Speaker 4: perfect with Java and forget all about the other language. No,
Speaker 4: you can learn product, you can learn list, you can
Speaker 4: learn of course, you have to decide. That's something that
Speaker 4: was happening at the Elixir World telegram group today is
Speaker 4: that sometimes you have to choose you cannot. I'm going
Speaker 4: to learn a bit of ELM, a bit of Elixir,
Speaker 4: a bit of Irland, a bit of Java, and and
Speaker 4: that being competent, nothing you have to choose. I'm going
Speaker 4: to be good in Elixir. I'm going to study other
Speaker 4: language so that I will be a better Elixir developer,
Speaker 4: a better developer in general, and maybe in the future again,
Speaker 4: Oh no, Now I don't have a job with Elix,
Speaker 4: but they have a Java job, so I can do
Speaker 4: Java too. And this this is sorry, this is a
Speaker 4: real case. A friend of mine she had an elixirve
Speaker 4: job and then she went to Sweden to be an
Speaker 4: airline developer, and then she found a Java job. 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, and
Speaker 3: the web standards and APIs. There are so many things,
Speaker 3: and every domain in programming is basically like that, and
Speaker 3: that 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 SQL 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 4: Okay?
Speaker 3: Yeah, If you know a few languages, picking up a
Speaker 3: new one, for example, is usually fairly straightforward, except when
Speaker 3: you run into 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 and I think I think people
Speaker 3: mistake what that should be and what that needs to be.
Speaker 3: I think you can be very experienced. You can be
Speaker 3: an expert. That doesn't mean that you know every detail
Speaker 3: of the language. It can, but then you're a language
Speaker 3: doctor or a language specialist. That's usually not the most
Speaker 3: useful value add for a particular endeavor in my experience,
Speaker 3: and I mean, it strikes me, Adolpho, that you are
Speaker 3: essentially starting to move people in this direction right with
Speaker 3: your functional programming course and with the way that the
Speaker 3: world is moving or needs to move. Maybe it's a
Speaker 3: movie there fast enough, but it strikes me that you've
Speaker 3: you've at some point you've made a decision and to
Speaker 3: take people in this direction. When when was that?
Speaker 2: When did you start to be more of kind of
Speaker 2: open up the blinders a little bit. In the United States,
Speaker 2: there are a whole lot of schools that are invested
Speaker 2: in teaching Java and teaching Microsoft because that's where the certification,
Speaker 2: and they've made investments in those places and they just
Speaker 2: came break away.
Speaker 4: I have a lot of freedom here in the public university,
Speaker 4: where the government owns the university and it's free for
Speaker 4: the students, so I can offer the course. I have
Speaker 4: some freedom to offer some courses, and I decided to
Speaker 4: start this functional programming course. And functional programming is getting
Speaker 4: more well known with Brazilian software developers because there is
Speaker 4: a big company called New Bank, which it's a kind
Speaker 4: of a banking, a digital banking company. They have a
Speaker 4: credit card and they bought platform Attack, which is the
Speaker 4: company where Giosefelin. Actually Giosefeline not only worked that, but
Speaker 4: he was one of the owners of the company. And
Speaker 4: after that, the same company bought Cognity Tact, which was
Speaker 4: the company is it still is the company behind Closure.
Speaker 4: So there was some kind of publicity for functional programming
Speaker 4: language here in Brazil because of these two companies that
Speaker 4: were bought. So I hope that in the near future
Speaker 4: I have more students for my functional programming plus. I
Speaker 4: tried to offer them this because they what they learn
Speaker 4: as mandatory courses is c C plus plus and job.
Speaker 4: That's what they have to learn. But if they want,
Speaker 4: 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 up 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 like make your students strategically uncomfortable,
Speaker 1: like kind of let let them suffer a little. And
Speaker 1: I'm gonna actually put Stephen in the hot seel a
Speaker 1: little bit because I think that this is if that's
Speaker 1: my teaching ploss. I think I probably stole that from.
Speaker 4: You a little bit.
Speaker 6: Yeah, I think that you know, there's they're sort of
Speaker 6: the thinking about learning that you learn through uncomfort the most.
Speaker 6: So the closer you can safely push people into being uncomfortable,
Speaker 6: the faster they'll sort of learn. I think everything is
Speaker 6: sort of theoretical until you've gotten to the point where
Speaker 6: you're like, oh, I have a deadline and have to
Speaker 6: build this project and I'm going to present in front
Speaker 6: of my entire class in two days. Oh my god,
Speaker 6: this is the end of the world if I do
Speaker 6: this wrong. But yeah, I think suffering is important, even
Speaker 6: if I sound a little low mean when I say
Speaker 6: I think that suffering and struggle is where you get
Speaker 6: the best learning and where it sticks.
Speaker 2: It's funny. There's a there's a man named Evan Miller,
Speaker 2: which we should definitely have on this this this podcast
Speaker 2: at some point. He's behind the Earling Project Chicago Boss
Speaker 2: and so Adulfo. We were doing this mental that you're
Speaker 2: part of, you know, long before you and I met.
Speaker 2: We were doing it in Chattanooga and everyone would show
Speaker 2: up right pre pandemic. But Evan would look up my
Speaker 2: shoulder when I was teaching somebody and someone would start
Speaker 2: to go off in the wrong direction and that kind
Speaker 2: of give them a general nudge, you know, kind of
Speaker 2: nuts the rudder every now and then, and you know,
Speaker 2: I turn around and if it will be shaking his
Speaker 2: head right, and then, you know, so I would try
Speaker 2: to explain harder and he would be shaking his head.
Speaker 4: And then so this one time I turned around, I said.
Speaker 2: What, Evan, what you know what? Everybody just turned around.
Speaker 2: I'm you know, usually pretty unflappable, right, but I was
Speaker 2: not that day. And he said, Bruce, it's all about
Speaker 2: the struggle. And so you know that's that's probably my
Speaker 2: great weakness in a classroom setting is building in enough struggle, right,
Speaker 2: So I teach a lot of technique, so what I
Speaker 2: should do is a lot mistakes to happen in the
Speaker 2: right context and be kind of a guide, be a
Speaker 2: guardrail so that when the struggles happen, you can leave
Speaker 2: opportunity to bring people back on course and then and
Speaker 2: then cast them into the wind again. But yeah, you
Speaker 2: saw that first.
Speaker 4: N Yes, yes, And it's important because it's related to
Speaker 4: that model that used the Drifus model. Of course, if
Speaker 4: someone is a beginner, he or she needs more the
Speaker 4: direct instruction. But if someone that has a little bit
Speaker 4: more of experience than you are, okay, right, go to
Speaker 4: the internet and try to find what's the solution. Because
Speaker 4: one thing that I also think that's important nowadays that
Speaker 4: wasn't important when that's important when when I started to
Speaker 4: learn program because when I started learning programing a long
Speaker 4: time ago, I started with basic there was no in
Speaker 4: so all I had was a book in the computer.
Speaker 4: But now we have lots of place where you can go.
Speaker 4: If you want to learn Elixir, you can go to
Speaker 4: Elixir School and there is also the Elixir Forum, Elixir
Speaker 4: on Slack, Elixir on discord and I have just created
Speaker 4: the Elixir World on in telegram and also tweetered. There's
Speaker 4: a lot of people tweeting about Elixir and so I
Speaker 4: think nowadays, if you want to learn a language, you
Speaker 4: have also to learn how to navigate all these opportunits
Speaker 4: to learn from others in the community.
Speaker 5: I wanted to class one alexir World on telegram. I'm
Speaker 5: a big fan of telegram and I joined it once
Speaker 5: I realized it existed and immediately scrolled up and saw
Speaker 5: interesting conversation.
Speaker 4: Thanks, I just started. My idea with Elixir road was
Speaker 4: exactly that. I'm part of the Elixir Vierzial telegram and
Speaker 4: there's there are many interesting conversations there in Portuguese, of
Speaker 4: course because it's our language, but there was no I
Speaker 4: think there's no group like that in English. So I'm
Speaker 4: going to create one for English speaking, of course, not
Speaker 4: English speaking. It's people from all over the world. I
Speaker 4: once I listed there are people from many countries and
Speaker 4: so don't expect perfect English there, but people that can
Speaker 4: understand and write based English.
Speaker 2: That's so important too. Also that that we don't all
Speaker 2: look alike or sound alike. I think that one of
Speaker 2: the things you get is different problem solving perspectives. And
Speaker 2: when when we have people who have come from different
Speaker 2: backgrounds and different skills and and you get different language
Speaker 2: approaches and you have justice, you know, make everything you know,
Speaker 2: I will steamroll any obstacle. You know, I'll you know,
Speaker 2: we write to the Linux kernel for nerves, and that
Speaker 2: you have Bruce Williams and his approach and his kind
Speaker 2: of zen like approach to making things beautiful and making
Speaker 2: 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 2: And I'm really glad that you don't see perfect English
Speaker 2: there right, that you see that you see such a
Speaker 2: variety not just words, but of thought structures and paradigms
Speaker 2: 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 and at Altho to create these resources and
Speaker 1: these channels and these spaces where people can come together
Speaker 1: and learn together, I think is really incredible and I
Speaker 1: would love to hear from you. What more do you
Speaker 1: want to see in the alexir community, Like what resource
Speaker 1: do you wish existed that doesn't Maybe it's that Alexa
Speaker 1: for absolute Beginner's book. You know, what kind of involvement
Speaker 1: or participation do you want to see from people in
Speaker 1: the group that you've created or or in other groups?
Speaker 1: You know, what can we all be doing to keep
Speaker 1: this community growing so we can keep educating and keep
Speaker 1: bringing in newcomers.
Speaker 4: Wow, that's a good question. Maybe I really like Exorcism
Speaker 4: and that's a resource that I think it's not there's
Speaker 4: no need to create another Exscism, but maybe people in
Speaker 4: the community that want to help others, they should go
Speaker 4: there and become a mentor. And the orders that want
Speaker 4: len should go there and become maintees and try to
Speaker 4: learn using research like that. And I mean, let me
Speaker 4: just say what I see in the Brazilian community a lot.
Speaker 4: It's a lot, know, some like coding with elixir when
Speaker 4: ont each some on YouTube. I would like to see
Speaker 4: these more in English. Maybe I don't see it because
Speaker 4: it has not arrived to me, but it's there, so
Speaker 4: I if you know someone doing that, please treat me
Speaker 4: and then you try to include that. I mean, I
Speaker 4: have a small bitthub project where I'm compiling. Maybe after
Speaker 4: some time I will give this information to the Airline
Speaker 4: Ecosystem Foundation, because that's one of the things that let
Speaker 4: me introduce this subject. I'm part of the Education Working
Speaker 4: Group of their Longe Ecosystem Foundation, and we are doing
Speaker 4: lots of things to try to make not on Elixir
Speaker 4: but also Airline and the other being language, make them
Speaker 4: more populars to allow more people that want to learn
Speaker 4: that the language to learn them. So for instance, we
Speaker 4: have had Elixir call you virtualo a few months ago
Speaker 4: and there is a professor and my students want to
Speaker 4: take part in the training. So the foundation and supported
Speaker 4: the students and we have a lot of initiatives going on.
Speaker 4: We had before the pandemic. We've had some meetings where
Speaker 4: we we di scutted. For instance, one of the initiatives
Speaker 4: initiatives was to try to find professors in many universities
Speaker 4: that are teaching either Airline or Elixure or other language,
Speaker 4: and to try to connect these professionals that use Elixure
Speaker 4: in production with these professors that teach Elixir or length,
Speaker 4: so that these professionals can give talks to their students.
Speaker 4: And I believe there is also I need, as I said,
Speaker 4: for a good introductory book. But I know that that's
Speaker 4: because I particularly love books. Maybe most of the people
Speaker 4: now theys don't love book as much as I do,
Speaker 4: so there's maybe no economic reason for an introductory book,
Speaker 4: but I love books. I would like to see a
Speaker 4: really introductory book on my leaks through and I think
Speaker 4: that's it.
Speaker 2: A Licture should be a good language to break into
Speaker 2: functional programming. And I say that because I think that
Speaker 2: a leixture can stand on its own when you just
Speaker 2: get into the core, just the kind of the peer functions,
Speaker 2: the exorcism size and shaped projects. And you can do
Speaker 2: that without absorbing a whole lot of functional algebra in
Speaker 2: terms of the of the type structures. But you still
Speaker 2: have the full power of functional programming that you can
Speaker 2: bring to bear.
Speaker 4: So it should be.
Speaker 2: And the other thing that I think it's critical is
Speaker 2: that with the pipe, you have this idea of glue
Speaker 2: between concepts, and that's the hard thing about teaching someone
Speaker 2: that's new, or teaching someone from an Auditctorian system where
Speaker 2: we say, okay, objects don't do that, inheritance don't do that.
Speaker 2: So there's a lot of things that we say not
Speaker 2: to do. But unless you replace that glue, it's difficult
Speaker 2: to get traction with a new programmer. But if you
Speaker 2: have this framework of hey, there's a module that collects things,
Speaker 2: and then that module surrounds this central type and then
Speaker 2: you can kind of chain things together with simple transformations,
Speaker 2: I think it should be I think you're definitely onto
Speaker 2: something that learning programming one oh one in the Lixir
Speaker 2: is definitely something that you could do.
Speaker 4: I would like to say something else about this learning
Speaker 4: the community. One thing that I noticed that it's really
Speaker 4: attracted me to the language and the larger communits in
Speaker 4: community because it's not only Elixir but also Aline. It's
Speaker 4: the podcasts. This podcast already has more than one hundred episodes,
Speaker 4: and there are other podcasts, and there is great podcast
Speaker 4: that it seems has already finished by It has a
Speaker 4: lot of great interviews there that you can if you
Speaker 4: want to listen to interviews with Joe Armstrong from the
Speaker 4: past that it's their own Elixir Fountain. So I think
Speaker 4: that this community. Of course, I I before Elixir, I
Speaker 4: was following the Closure community, which seems to be smaller.
Speaker 4: It has less resources for beginners. Maybe today it has
Speaker 4: the same, but at the time it had more less
Speaker 4: resources for beginners. So I think the idea of podcasts.
Speaker 4: I love podcasts because I can learn unexpected things. It's
Speaker 4: that that world that people use its certain deep ty, right,
Speaker 4: so you're not expecting to learn something. And I mean,
Speaker 4: of course, the learning that happens in a podcast is
Speaker 4: much It's at a much higher level than the learning
Speaker 4: that you learn when you, for instance, you go to
Speaker 4: that series in your channel, Bruce and they grow to
Speaker 4: your channel. Of course, you're going to learn some more
Speaker 4: technical things, technical details about how to write and alive
Speaker 4: view app. But it's also you can learn a lot
Speaker 4: of things and listening to people from the community and
Speaker 4: that's a great resource too. And I'm planning to do
Speaker 4: some research about this and the podcasts and how they
Speaker 4: are perceived by the community. I hope that when this
Speaker 4: episode goes on Earth, I will have a survey that
Speaker 4: to survey the community about how because I know there
Speaker 4: are some people that don't like podcasts, they won't listen
Speaker 4: to podcasts. But I know also that there is many
Speaker 4: people that listen to podcasts. But what do they get
Speaker 4: from the podcast? What do they expect from the podcasts?
Speaker 4: What do they value more a person because he or
Speaker 4: she was a guest on a podcast, or because of
Speaker 4: what he or she said on a podcast. There are
Speaker 4: some questions that I would like to see answer it.
Speaker 5: Yeah, so I used to listen to I've forgotten the
Speaker 5: name of it now, but the only airline podcast that
Speaker 5: existed back in the day with Brian Hunter and Zach
Speaker 5: But I would I would always get value from it
Speaker 5: from things like Bruce saying, hey, you should really focus
Speaker 5: on the transformations. And you know, it's a very pity
Speaker 5: statement in exactly the right meaning of the word, like
Speaker 5: learning hearing someone smart say that and go, huh, I
Speaker 5: wonder how I actually put that into practice and then
Speaker 5: figuring it out a month later. That's kind of the
Speaker 5: value I always got from programming podcasts.
Speaker 4: I believe the name of the podcast it was mostly Earlin.
Speaker 5: It was mostly Earl. Yeah, I listened to that while
Speaker 5: I was paying 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 elixir.
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 Lawn Order on TV. They pick up a
Speaker 1: Law and Order episode for you all day long, from
Speaker 1: like eight am to eight pm. Like, you didn't choose
Speaker 1: a Lawn Order episode. You're just watching whatever they put
Speaker 1: in front of your face. And that's fun, you know
Speaker 1: that kind of that's what I'm looking for. And I'm
Speaker 1: 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 going to take me.
Speaker 6: You don't like if you're more murder in your podcast,
Speaker 6: You're just I think I get it.
Speaker 4: Well.
Speaker 1: I'm also listening that'll be one of my picks. Actually,
Speaker 1: pretty good True Prime podcast that I was introduced 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 3: Yeah, I'm very curious to hear what comes out of
Speaker 3: the survey. And although because I do feel that the
Speaker 3: different podcasts that are available for the Lexi community, and
Speaker 3: we have a disproportionate amount compared to our community size,
Speaker 3: I think so we have a lot of them, and
Speaker 3: I find I find all of them interesting, and I
Speaker 3: feel like they we actually do manage to cover different
Speaker 3: focus points and have wildly different styles. The Outlaws are
Speaker 3: definitely a style into their own, and I feel like
Speaker 3: there's a lot of difference between the Wizards and us,
Speaker 3: even though we are both to some extent guest driven
Speaker 3: and yeah, the whole meta conversation of what podcasts are
Speaker 3: good for and yeah, very interesting. I hope to see
Speaker 3: 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 laurs we
Speaker 1: 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: r mey 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 being bloger
Speaker 3: stuff came where you can look around from my GitHub,
Speaker 3: but being blogger stuff call very cool.
Speaker 1: I'm very excited to pr that it includes my blog there.
Speaker 1: It'll inspire me to write more. Thank you for that.
Speaker 1: How about you birth.
Speaker 4: You've got a couple.
Speaker 2: Of course, the Garroxia course is going on now, the
Speaker 2: Lively course, and that's been a lot of fun. One
Speaker 2: of the things that I get to do is look
Speaker 2: at techniques that are kind of off the beaten path.
Speaker 2: And one of the things I really like is gamerless
Speaker 2: chain sets. So I've kind of been playing with where
Speaker 2: those live, right, It's an ecto thing, but it's something
Speaker 2: that likes to live in the view. So I'm working
Speaker 2: on a video this afternoon that'll go out with the
Speaker 2: fourth chapter that that'll come out probably about the same
Speaker 2: time as this episode is I'll post that. I'm also
Speaker 2: excited to be working on a new project. But just
Speaker 2: to give you a teaser, here's a keynote. There's a
Speaker 2: keynote on failure by guy named Brian Trotwine, and he's
Speaker 2: really just a fabulous speaker and an excellent person to
Speaker 2: you know. The kind of is the anti Bruce, right,
Speaker 2: So I'm optimist, happy path and Brian is how many
Speaker 2: ways can things fail? And so we're kind of kicking
Speaker 2: around the idea of putting together a video series of
Speaker 2: how things fail why they feel less of a programmer
Speaker 2: series and more of a kind of an exploration of failure. So,
Speaker 2: 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
Speaker 1: next Steven and he picks for us.
Speaker 6: Yeah, I guess a general pick. I'll give what I'm using.
Speaker 6: But find something that does this. I found an e
Speaker 6: like a PDF reader that does text the speech. I
Speaker 6: don't know why where this has been my entire life,
Speaker 6: but like I now walk the dog and I'm listening,
Speaker 6: I got Bruce in my ear while I have a
Speaker 6: robot in my ear saying Bruce's words.
Speaker 4: I've got, you know.
Speaker 6: Everything that I've been meaning to read and then kind
Speaker 6: of get around to is constantly going in my ears.
Speaker 6: Now I have androids, so I'm using eReader Prestigio. They
Speaker 6: have a couple of different services for reading. But when
Speaker 6: they ask you to select, if you scroll down, you
Speaker 6: can pick the local Android one, so you can get
Speaker 6: the generic Android voice doing Texas speech, which is good enough.
Speaker 6: But if you haven't done this, do this. You need
Speaker 6: this in your life. Being able to just throw a
Speaker 6: technical book, reading growing object or into word guided by
Speaker 6: tests in one ear.
Speaker 4: It's it's really really cool do that.
Speaker 1: Oh yeah, that's a good idea. Josh An picks.
Speaker 4: I have two picks.
Speaker 5: The first is the GitHub Arctic code vaults tech tree,
Speaker 5: which I've linked to, and it's just you mentioned curation
Speaker 5: in the context of cable television. While I basically hate
Speaker 5: cable television, I do like the concept of curation. And
Speaker 5: this is they've listed just a ridiculous number of books
Speaker 5: that Hey, if you want to know about how to
Speaker 5: do stuff on computers, whether it be networking or software
Speaker 5: development or whatever, here's a list of just really solid
Speaker 5: book choices. And then also, I quote I don't know
Speaker 5: who to attribute it to. My friend Michael Alvis sent
Speaker 5: it to me, but it wasn't his set. Running a
Speaker 5: successful open source project is just good will hunting in reverse,
Speaker 5: where you start out as a respected genius and end
Speaker 5: up being a janitor who gets into fights. And I
Speaker 5: just wanted to share.
Speaker 1: That that definitely roseate.
Speaker 3: Yeah.
Speaker 1: Interesting. All right, I'll run down to the mind and
Speaker 1: then we'll hand it off to our guest. I've got
Speaker 1: a few this time around. So we talked a little
Speaker 1: bit about being a generalist and how as engineers as programmers,
Speaker 1: it you know, is that's the way to go. I
Speaker 1: think a lot of us feel. So there's a great
Speaker 1: book by David Epstein called Let's See Range. How Generalists
Speaker 1: Triumph in a Specialized World. Really interesting book on this
Speaker 1: topic sort of more broadly speaking. And I was actually
Speaker 1: introduced to this book by my partner, who is an
Speaker 1: artist and who wrote what I thought was a very
Speaker 1: interesting post on the topic of being a generalist from
Speaker 1: the point of view of like an artist or a
Speaker 1: creative worker. So I'm going to share that link as well.
Speaker 1: Not quite shameless self promotion, shameless someone promotion. And then
Speaker 1: we've got a recent blog post from someone you may
Speaker 1: have heard of, Stephen Naniez, on the topic of managing
Speaker 1: rabbit m Q 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 arline 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 out 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: comf on the topic of working with Elixer and rabbit
Speaker 1: Queue and using it to bring in a green field
Speaker 1: of water app into your legacy technical ecosystem. So you have, 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 4: Yes, I have maybe too much, too many picks, but
Speaker 4: I have already sent you the links the Elixi World
Speaker 4: Telegram group, which is a telegram group for any people
Speaker 4: related to any being language. What I like about telegram
Speaker 4: groups is that I don't have the fear of missing
Speaker 4: out because when you go to when there is a
Speaker 4: telegram group which is reasonably large, and you go there
Speaker 4: and there is two hundred new messages and you can't
Speaker 4: keep up. You forget that you'll not be able to
Speaker 4: keep up with all the messages. So whenever you have time,
Speaker 4: you go there, you see what's happening, and then you
Speaker 4: go back to what you're doing. I have already sent
Speaker 4: other links related to tell but it's okay. I think
Speaker 4: it's parted to say that we have the Education Working
Speaker 4: Group of the ARLNG Ecosystem Foundation. We have a list
Speaker 4: of issues at our git hub page, so I think
Speaker 4: it's important if people want to help our group. There
Speaker 4: are many issues issues open and Elixir breds you two
Speaker 4: thousan twenty Elixir breads you twenty twenty. Is it going
Speaker 4: to happen? It would happen in May and Bruce would
Speaker 4: be here in San Paulo. But it seems it's going
Speaker 4: to happen physically, we hope only in twenty twenty one,
Speaker 4: but it's probably going to happen online. So that's what
Speaker 4: I would like to say. If people want to learn
Speaker 4: Elixir in Portuguese, the language of the creator of Elixir,
Speaker 4: it will be possible to learn it online. And my
Speaker 4: last piek is going to be a movie because I
Speaker 4: really like the I really enjoyed the Elixir Fountain podcast.
Speaker 4: The last part it was I think it was fire
Speaker 4: behind the code because I could get to know better
Speaker 4: the people that were part of the community and their
Speaker 4: For instance, I learned that Joe Armstrong loved to play
Speaker 4: the piano. I can't play the piano. But I love movies,
Speaker 4: and I love some Brazilian movies. The last time I
Speaker 4: was a guest here, I suggested people watch the movie Aquarius.
Speaker 4: Now I have another suggestion from the same director, It's
Speaker 4: Back with It's okay. Some people will not like this
Speaker 4: movie because it's kind of violent, but it has a
Speaker 4: very deep message about Brazil today and about actually about
Speaker 4: the world today. So it's it's a movie that I
Speaker 4: really like. It's 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 Yes all great. Thank you so much for joining
Speaker 1: us today at although this was a great conversation. And
Speaker 1: that's it for today's episode of a Listener Mix