Elixir Mix is a weekly show focused on the Elixir programming community. Our panel discusses topics around functional programming, the Elixir ecosystem, and building real world apps with Elixir based tools and frameworks.
Episode 22: EMx 022: “Adopting Elixir at Flatiron School and Pattern Matching” with Kate Travers
Panel:
- Charles Max Wood
- Mark Ericksen
- Josh Adams
Special Guest: Kate Travers
In this episode of Elixir Mix, the panel talks to Kate Travers who was a student/apprentice with the Flatiron School and now is on staff as a software engineer. The panel and Kate talk about adopting Elixir at the Flatiron School and Pattern Matching. Watch Kate’s talks about the topic; links to these talks can be found below.
Show Topics:
1:08– Hi from Kate Travers.
1:16 – Chuck: Background?
2:20 – Kate gives her background.
2:30 – Chuck: We had another Flatiron alum from an extra show.
2:44 – Kate: Yeah – she’s great!
2:48 – Chuck: Flatiron mostly focused on Ruby and JavaScript. Has that changed or?
3:02 – Kate: For the students we are teaching the Rails focus on the backend and React on the frontend. Times might be changing. What else is out there for functional curriculum? Our lead engineer is super motivated introducing some Elixir. Our engineering team might be the first to go in that arena. It would be absolutely fantastic to
4:02 – Chuck: Awesome! I would like to see the boot camps take on Elixir.
4:15 – Kate: Yeah, there are many benefits of doing that.
4:57 – Chuck: You see some Reactive, some...
It is interesting to see how it comes together and
5:16 – Kate: Yeah we see this as a support – delivery of curriculum. When you start out you are writing in a functional style. You are essentially writing TLI scripts – functional manner. Now in the curriculum we are training people to think, and to get away from that script-way, and think in terms of objects.
6:11 – Panelist: I think that is interesting.
Some of the difficulty of teaching Elixir is to UNLEARN some of their past education. Start teaching people FUNCTIONAL, might help.
7:04 – Chuck: I have been starting a new project...
What is going on here? Oh yeah I have to think about it.
7:20 – Kate: Yes. We have spun up – we have one core Elixir project. We have been on that for a year. We have spun up some smaller projects. On these projects this is the first time these people have used Elixir. It is interesting to see the difficulties that they are seeing for the first time.
8:09 – Chuck: I want to talk to adoption for a bit. So as your school has made this transition, where are you seeing the (first of all) where is it easy to get buy in. How did Elixir get into Flatiron?
9:06 – Kate: It is not apart of the school’s curriculum. How we started using Elixir was because our technical lead he is super loud / elegant voice for this language. Elixir might solve some of the problems that we were facing. When we adopt new tech it’s because we have thought about it heavily. We don’t adopt new technologies “just because”. The perfect opportunity came up, so this lead into why and how Flatiron started using Elixir.
Kate goes into more detail.
15:24 – Chuck: Learn.io – check out outside of the school?
15:35 – Kate: Yep! There is even some interview prep; also, intro to Ruby, intro to JavaScript, and someday intro to Elixir?
16:06 – Chuck: As you brining people into this how do you transfer them to Ruby to Elixir? Do you throw them into the deep end?
16:26 – Kate: Sure! If someone is interested we will. It is something our team tries to prioritize.
Kate goes into more detail.
18:43 – Kate: We didn’t expect for these book clubs to keep going. We will do a little workshop as part of book club.
19:18 – Panelist: Question to Kate.
19:25 – Kate: Yes, so everyone has a NEW lead each week. Folks of ALL different experience levels. What is different about our team is that we have tons of people who LOVE to blog. If you check-it out as they are learning Elixir they are writing posts.
20:21 – Question.
20:29 – Kate answers the question.
20:49 – Chuck.
20:55 – Kate: Steven suggested a new way to cement the things you are learning.
21:28 – Chuck: Yeah – Flatiron labs. Now that I have been playing with Elixir with pattern matching. At first it’s scary stuff.
21:49 – Kate: It is a head-trip.
22:00 – Chuck: ...wait...wait...
22:10 – Kate: Multiple binding?
22:16 – Panelist: My first introduction to outer matching was seeing a...
22:39 – Kate: Great first introduction. Not the textbook example, you will get to see the real-world situation. Yeah that is a really, really good example.
23:05 – Panelist: Pattern matching for me became a superpower! It was my first real love of the language; before concurrency, and others. Pattern matching helped with a lot of the pains that I wouldn’t have to encounter. You are poking this big object to figure it out. Then it’s easier because if the shape matches, then it matches. Mental flip – and I get it! It felt like a superpower. I liked your talk, Kate, about pattern matching.
24:41 – Kate: Yeah, totally. Pattern matching.
Like learning a musical instrument like a guitar. When you start learning something like this you have these high ambitions. You are learning to be a rock star and you want to be David Bowie. But when you start you couldn’t be further away from that goal. At the beginning you are learning chords and it’s so easy to think: “I am terrible, I suck...” you quit and never keep going. To prevent this you need a hook to keep you going. You just need to learn that really sick rift. Oh yeah, NOW I can start seeing my rock star abilities; same thing for Elixir. Pattern matching was my really sick rift.
27:38 – Panelist chimes-in.
You have that excitement about the new language. But they get frustrated because they are a beginner. I do think that you nailed it there. If people can latch onto something fairly quickly, then it gives them a reason to keep coming back to learn more and more.
28:25 – Kate continues this conversation.
28:48 – Panelist.
28:54 – Advertisement – Code Badges!
29:32 – Chuck: Most important / interesting thing you’ve learned about pattern matching?
29:48 – Kate: It was the different things you can do with...
30:23 – Kate: The concept is that Elixir provides...
31:42 – Chuck: I didn’t know that you could do that!
31:56 – Kate: The benefit only comes from legibility.
32:13 – Panelist: Guard clauses and pattern matching. I think it would be a mess if I weren’t use Elixir.
32:31 – Kate: Yes, definitely.
33:10 – Panelist: Yes, my first project with Elixir...
34:47 – People should go and see your talk and it’s in the links.
35:00 – Kate: Thanks!
Kate talks about dodging bullets and code.
36:04 – Chuck: have you seen other languages using/trying to use Pattern matching?
36:10 – Kate: Yeah, there are talks about Ruby and JavaScript for introducing proper pattern matching in BOTH languages. Ruby is interesting. I don’t know how much traction we have on these, but people seem really into program matching.
36:36 – Panelist: Yeah, I think people come to Elixir and see pattern matching and they get excited.
36:55 – Kate: Yeah, I would be interested to see if the proposals go through or not. There is a conference on my WATCH LIST and I want to see more about it.
37:26 – Panelist: It started off as a prologue that’s what you need.
37:37 – Kate: If it wasn’t designed that way in the beginning it will be a problem. If it’s not apart of the system in the beginning then it could be a problem.
38:14 – Chuck: Yeah, the flipside is...
38:34 – Panelists: I don’t know.
38:44 – Panelist: One of my concerns is object oriented programming. I imagine (nightmare) pattern matching in Ruby and all match onto this object – after it’s there – it’s inside my function – runs another thread – comes back to me – that object is modified and now it’s there, and not be completely invalid. It’s not RUBY anymore.
39:36 – Panelist: Pattern matching could bring them over and bring them over the gap. I am worried that if this is more widespread then we will hit a much worse.
40:06 – Kate and Panel: Yep!
40:12 – Chuck: Anything else about pattern matching and/or adopting Elixir?
40:18 – Kate: I don’t want to rush into this too quickly, but if we are on the topic of bringing people to Elixir. It came up at this conference. Ruby Rails coming over – RR refugees. The question that they post: People are hyped about Elixir about Phoenix. What is going to be the thing that brings people over?
41:15 – Panelist answers Kate’s question.
41:29 – You can’t do live Vue in other languages. If you are really experienced...
42:08 – Chuck: You have to learn 2 technologies. You can adopt a frontend and backend technology and you can get SOME of that. I know a lot of people are invested in the frontend technology or the backend. I think that is how you are going to convert.
42:43: Panelist chimes-in.
Panelist’s friend asks: Is it an appropriate tool?
43:30 – Kate: Our team is super excited about it. Our team has mostly been working on the backend. We need to deliver on the frontend with updates. What if we had it – out of the box with Phoenix? Yeah people are over the moon.
44:06 – Chuck talks about what he is using.
What if I didn’t have to do any of that garbage?
44:23 – Panelist: It is a NICE experience when you have to do it.
44:38 – Chuck: If you need a killer feature for React or Vue – why can’t you build a frontend...
45:00 – Panelist adds in his comments/thoughts.
45:30 – Chuck: Anything else?
45:38 – Picks!
Links:
- Flatiron School
- Our Courses – Flatiron School
- How We Built the Learn IDE in Browser – Medium
- Flatiron Labs
- Elixir – Flatiron Labs
- Elixir – Guards
- Kate Travers
- Kate Travers’ “Pattern Matching in Elixir” (3/14/18)
- Kate Travers’ Dev.to
- Kate Travers’ Twitter
- Kate Travers’ Talk on YouTube: “Pattern Matching: The Gateway to Loving Elixir – Code Elixir LDN 2018”
- Kate Travers’ Code Sync
- Ruby
- Elixir
- JavaScript
- Vue
- React
Sponsors:
Picks:
Mark Ericksen
- Value
- Teach something to someone else. It helps you grow.
- Book - Leadership and Self Deception
Josh Adams
Charles
Kate