S11E03 Learning a Language with Yohana Tesfazgi & Wes Bos Intro: Welcome to another episode of Elixir Wizards. A podcast brought to you by Smart Logic, a custom web and mobile development shop. This is Season 11, where we're branching out from Elixir to compare notes with experts from other communities. Sundi: Hey everyone, I'm Sundi Myint, Engineering Manager at cars. com. Owen: And I'm Owen Bickford, Senior Developer at SmartLogic, are your host for today's episode. Sundi: For episode three, we're joined by Yohana Tesfazgi, Software Developer, and Wes Bos, renowned web developer and educator who offers online courses at wesbos. com and podcasts at syntax. fm. In this episode, we're comparing the education experience for new engineers with Elixir and JavaScript. Welcome to both Johanna and Wes. Thank you for being here. Yohana: Thank you for having me. Wes: Yeah, thanks a lot. Stoked to be here. Owen: So I think we'll start by kind of getting introductions. You know, this season we're branching out from Elixir. We're talking to folks outside the Elixir community. So let's start with Yohana. Can you tell us your background? I know we talked a little bit at ElixirConf, just a few months ago. But for everyone else who wasn't part of that conversation, who are you? Where are you from? Yohana: I'm Yohana. I am from Jacksonville, Florida, software developer. Prior to software development, I was working in the film industry. I was like a crew member doing grip work and gaff work, basically setting up lights and, fastening things, that sort of deal. And so, transitioning to a software development job has been pretty interesting. I had to learn pretty fast during the lockdowns. Everybody is working remotely and so it was just the best time to do it and it's actually pretty interesting I got into elixir because the first company I worked at was an elixir company. So it was unusual because I was expecting to I guess go with the more common language I got roped into this. It wasn't intentional, but I think i've been having such a great time Yeah, I want to stick with the community Owen: Awesome. And, Wes. Wes: Yeah, my name is Wes Bos I'm a full stack JavaScript dev from Hamilton, Canada. I build online courses, teaching people how to learn JavaScript and take on these frameworks and CSS and all that good stuff. I also have a podcast myself, it's called Syntax, it's available at Syntax. fm, and we crank out three episodes a week, it's primarily focused on, um, front end dev, it's, it's full stack, but it's like full stack JavaScript, you know, so HTML, CSS, frameworks, React, Svelte, all that good stuff that comes along with it. Sundi: If we were in an, in person panel conference kind of situation, I would probably ask the audience who's done one of your courses, Wes? Because I feel like that's a half the room situation, because I have. Owen has. Owen's raising his hand. Owen: half the room here? Wes: yeah, there we go a quarter of the room at least I've taken my courses. So there we go half the room. Sundi: Yeah, perfect. I guess to give everyone here, the lay of the land, I was also somebody who started in JavaScript and then transitioned to Elixir, and then Owen, you had a similar but not quite front end heavy entrance, yeah? Owen: It was a little bit more random. Well, yeah, I wasn't working professionally in front end, but, you know, I think I picked up some CSS back in the MySpace days. It's like a broken record now. So CSS through MySpace, MySpace, HTML through random stuff, middle school stuff, and then I guess about five or six years ago, maybe a little bit longer than that, started picking up JavaScript and then taking courses and it took a few before I started to actually connect the dots and understand what I was hearing. Sundi: Yeah, and professionally I've been in Elixir for about four or five years now, and it's like, I don't even, like, I remember taking your course, Wes. I don't remember anything about it, because it feels like a different life. So this, I'm very excited to get into this conversation, especially Johanna, because you recently did, like, an apprenticeship, situation, right? So can you talk about that a little bit and what that model looked like? Yohana: At the apprenticeship, I basically, I'm on wheels, right? So they know that not quite a junior yet. So it was very nice. Basically, I was first given like even material, pragmatic studio courses to just go through the courses really at least initiate myself with the Elixir language, Phoenix framework. And from there I would start working on projects. The first thing I actually got to work on was pretty cool. I got to work on a discord bot. I'm sure you guys know Discord, the social media, voice and, messaging platform. So yeah, I, I got to, uh, work on a bot that was for server moderation. And it really familiarized myself with Elixir, just his language. It wasn't Phoenix 2, which is kind of unique, uh, to just be working on, uh, this thing that was, Yeah, and I, it was in production immediately, so I got to... See people, use the chat commands in real time, got to implement a couple of features. It was even using like OTP, handling state. Basically it gave a pretty good overview of the Elixir language, even though it was a real production thing and he wasn't like planning this out as a course, but it did work out that way. With all the things that as users would request features for the bot. So, from there I started working on like, you know, it's a software consultancy. So there's real projects that need to be worked on. And, yeah, basically easing, an apprentice into more challenging, work based on what they already know. So there is like a, an element of planning whenever you're introducing new things to somebody. I guess my boss in particular, he even does educational content. So he's particularly talented, was able to, you know, shape my development in a way that I think, it was really, you know, lightning in a bottle. I think I couldn't have asked for a better apprenticeship. Sundi: That's fun. It actually just occurred to me, Wes, how, are you familar at all with Elixir and Phoenix? Or, you know, you're just kind of here for the ride. Wes: not not really No, like I like I know I kind of know about it But I have never written a line of it or or could even tell you like what it's what kind of apps it's popular in Owen: we should do an elevator pitch for all the syntax listeners who are like, what is this? Wes: Yeah, well, yeah, tell me what do you use it for? Why do you like it? Owen: So let's see. Let's see how I do. All right. And Yohana, you've been learning. So tell me how much I get wrong here. But so I'm writing Elixir full time. , and I think. At the base level. Elixir is typically used as a backend language for like writing web applications. It's kind of like the most popular use case. It's over the past few years expanded beyond just web servers, and it's gone into like embedded devices, machine learning. There's some, some new frameworks for that. And our web framework, you'll hear Phoenix, Phoenix come up. That's our de facto standard web framework for web apps. It traditionally was MVC ish. And then now, groundbreaking. technology kind of upgrades in Phoenix are around LiveView, which builds on web sockets and allows you to, write Elixir code that updates the browser through JavaScript using morph DOM and some other stuff. The reason the Elixir works really well for this is that, everything in Elixir becomes a process, hand waving some things here, but like, you can have a persistent connection from the client to the browser, through Elixir because it can manage all these processes and handle their failures gracefully, which is a little bit tricky in some other languages. Sundi: the underlying joke too amongst the community is that LiveView is there so we don't have to write JavaScript. There's a lot of us that don't like it. So this is kind of a fun conversation to have. Wes, in particular, thank you, Owen, because I really wanted to make sure we're on the same playing field here. But, um, Wes, since you've been teaching for like 20 something years, right, just like in the web development scene, now that you have heard a little bit about our, language and our, kind of our scene, I'm curious what you think of, folks learning other languages, as a first language, what are your thoughts on that? Wes: Yeah, I think it really depends , I think other languages are really interesting because , the best ideas in JavaScript did not come from JavaScript developers, they came from people who were great at other languages and are thinking like, oh, you know what? We need these features but in JavaScript. I don't really know a whole lot about Phoenix or Elixir But like HTML CSS a little bit of JavaScript you can you can get something on the page You can make it work. You can make something animate back and forth pretty easy without a whole lot of setup or anything like that you just open the HTML page and put it in the browser and you're up and running so That like time to Enlightenment time to a smile is really important to me when people are getting into web development Because if you jump in one of the first things I ever wrote was C and that was awful And if you jump in too deep then you can say you know what this kind of thing is not for me And the reality is maybe you just picked up something a little bit funky and it's a little bit past you. So, I don't know about starting with that, with something that is different than that. But, I highly recommend dipping into other languages once you are comfortable in, in your first. Owen: Yeah, that's, that's probably the most beautiful thing about JavaScript is you can just open dev tools if you know how to do that. And you're up and running, you can like start just trying things out and changing things on the page, trying out math functions or whatever is built into the browser. But that is, that is one trade off, like Elixir is very powerful, there's so much you can do with it. It does have a slightly higher threshold of like you do need to like open a terminal. Install brew, you know, get a couple of dependencies in your system. I'm kind of curious, Yohana, since you were doing this within the past couple of years, what was that process like? Had you ever touched the terminal before you started trying to learn Elixir or programming? Yohana: Prior to the apprenticeship? was pretty much self taught. Had help with people that were there to, you know, basically, walk me through the baby steps. , how do you set your terminal? What is Git? How do you do a PR? All that jazz. Yeah, I think those are all the, indirect, technical skills that you need to learn in order to be a developer anywhere. I think it's always a headache for everyone, right? This is just the growing pains. Everybody has to suffer for a little bit. They do , a commit that they didn't really want to do and now they can't go back and they're panicking and they have to reach out to, a more senior developer to help them out. So yeah, for me, I think I ran into those pains. It's just, I think something that is just unavoidable. I think everybody just has to do it or else, um, you don't learn it. It's, it's just through experience. Owen: Yeah, I think the, like we do have Livebook. So Livebook is kind of like, if you've worked in Python, it's kind of like, uh, what's it called? Not journals, but, um, Sundi: Notebooks? Jupyter Owen: notebooks. Yeah. Kind of like notebooks. But maybe better in some ways, uh, you can, you can just install an executable and start writing Elixir code without going through brew and the terminal and everything. So that, that is kind of a nice, uh, kind of on ramp I think into the language. Uh, but you also have to know about it and know that it's available. Cause I'm looking at the Elixir page and I think you'd have to like find it by clicking around, you know, unless someone told you to go install live book. Uh, but you know, I do think you're right. Like there is some degree of like, you do need to have, especially if you're going to be working, you're going to have to be comfortable with the terminal in the first place and get, it gets a big one, you know, it's, it doesn't necessarily make sense, you know, until you've used it maybe for a couple of years in my experience, it was like, these words don't mean anything to me. So. Are they mean the opposite sometimes that from what you think, but, uh, yeah, Sunday, like, I don't know, like what were some pain points you remember from the time you were starting to code? Sundi: I mean, like, actually learning to code? Taking calculus at the same time? It's too much for my brain. I don't think I really approached it like I was learning language. I had taken language classes, you know, I studied French growing up, , I didn't think that programming was literally like a way to communicate to some degree, and I think that was interesting. Something that's important when you're learning programming that I found is that you really have to know how you learn. And I don't think you really learn that in the school because they teach you one way. They don't give you the opportunity really to approach your learning and different ways. So, Wes, you create online courses, video format, blog posts, listening to the podcast too, that your podcast is helpful for folks who are audio listeners. Just number one, I want to say general feedback I've heard over the years, whenever we talk about your courses are just that you do a very good job of like approaching learning for very different minded folks. So thank you for doing that. Number one, but also just how do you, craft that course? I'm, I'm curious also what Yohana thinks of that too. Wes: How do I craft it? People always ask me like, what are your teaching techniques and whatnot? And it's like, I literally, I don't know. I just, I know how it makes sense in my head and I spit it out. And explain it, how it makes, how it makes sense in my head, and I think people like that because it's not a very technical answer, it's not a very, academic answer, I'm not, giving you all the gotchas that come along with, every single thing, of course, there's gotchas with everything, We'll go through that, but when I'm building a course, I really focus on, how do you take something that is not linear learning to program is not a linear thing, right? You sit down and I'm going to learn step one today and step two. And a course has to be linear, right? But sometimes frustrating because like, sometimes you just want to dive in headfirst into like a already built app. Yeah. And just fuss around with it and that's how you can learn with that type of stuff. So I try to do a good mix of, it depends on the course, but a good mix of actually explaining how it works and then showing how it, when you would use that in real life. a lot of people ask, okay, but when would I ever use that? Every time I post any new API that's being proposed, you always get a million, like what's the point of that? That's stupid. And they go, well. Here's a good example. And they go, oh, okay. I can, I can understand that. So applicable real world situations is pretty high on my list of making sure it's understandable and people seem to enjoy that at least the people that take my courses, I always say that as well you might not like the way I teach, you know, you might not like watching videos. You might not listen to audio. You might want to read a book and. And that's fine. Like you said, you gotta figure out how you learn. Sundi: So Yohana, how do you learn? What were some, recent. Materials or courses that you were doing that were helpful for you. Yohana: The first thing I did at the apprenticeship, they gave me, the pragmatic studio courses one for elixir and one for, Phoenix. Going through those is pretty helpful. They do have is video course. You go through, watch the videos, you copy what they do. They have extra little, steps they add in like, Hey, can you do this one? Can you add this feature? Can you add this button? As you're doing it. going through that is pretty helpful. Videos are actually a major challenge for me. I, end up pausing so much, which, to be fair, is part of the process. I think they expect you to pause a video when you're watching some coding. always enjoyed articles. There's lots of places that have articles, I think. Was it, fly. io, elixir school is also really good. I think they provide like almost, I don't want to say simplify, simplify documentation. Like it's pretty clear read, especially as a beginner is extremely approachable. Yeah, reading those materials, helped me a lot. Making sure, I guess, that I was code literate. If I could read the elixir, and like at least look at some way, and to a varying degree, depending on how complicated it is, but basically if you, can read it, then you're good, but if you can't read it, then you don't know what's happening, and that's what's, the real symptom you need to be addressing, above all, my goal all the time was to be able to read other people's code. And then if I could do that, then I could at least feel happy that, I could ask the right questions when I didn't understand something. Yeah. I think it is getting a good, , overview. Owen: Yeah. What's really fun is once you've learned your first language, a lot of the same patterns. Even like naming conventions will carry over to your next language. So, starting with JavaScript, I started with some OOP, some object oriented programming paradigms. But, I think at the time I was learning the ES6 stuff, I was watching Wes's courses. And I, probably had to watch the MapReduce. Map, filter, reduce videos a few times before everything started to really, click, but even whenever I went into my first professional job writing PHP it had all the same type of functions that arguments and the way they worked was a little bit different, but having that understanding helped me get up to speed really fast and work very efficiently without having to like feel like I was learning something completely new New again, you know, so built up with JavaScript extended that knowledge with PHP and then even during that time I was Building up my elixir knowledge, at the same time. So and it's all Been a mix of here's where the arguments go in this language versus the other language And that kind of thing, but the ideas and the concepts Carry over pretty well, Sundi: Wes, I'm curious, if you come across like a group of students and they've gone through your courses and they're like how do you recommend I get employed? Or like, how do I go about finding a job in this? What is your advice to them usually? Wes: it's a question we get all the time. If I take your course, will I get a job? And the answer to that is no. unfortunately not. You can't just take a course. It's the same thing with , people that go to school and expect to get a job right out of it. you kind of need to put in more, you do need to put in a lot more work with that type of thing. So, I always tell people before you get really good at this type of stuff and part of getting decently good at it is you're going to get a job. But, to get really good at it, you need to build a thousand things. You just need to build lots and lots of little things. You need to have those little successes, so that you win. And that motivation will say, Okay, well, I did that. Now I have ideas. I realize what is possible. Now I have ideas of different applications that can go out and build. And part of getting a job, I think, is it put that stuff online, share what you're doing, make video, make a blog post, do a tweet, put it up on GitHub, whatever your comfort level is with putting yourself out there, or maybe even push yourself a little bit past that comfort level. And when an employer is looking at possible people that they could hire, the person that has put their stuff online, maybe wrote a few blog posts, maybe helped out a couple people on Stack Overflow understand something, that's going to look way better than the other person that just has their to do list on their GitHub from eight months ago and then nothing else since then. Sundi: Yeah. And you know what's interesting also is like, this comes up a lot. What language should be my first language if I'm transitioning into this field and I want a job? A lot of people will say JavaScript. A lot of people will say that. And you know, even it's, even as an elixir enthusiast, as somebody who's been employed in the elixir space for four and a half years or whatever, I have a hard time sometimes recommending Elixir because yeah, there's a limited amount of jobs, right? If you think about the scale of things. More people will hire in JavaScript. Or so they say, but I'm actually curious to throw this question back on Yohana as somebody in the Elixir job space. how's it looking out there? Yohana: It's looking a little rough if you're at least very new, which is my challenge I have to overcome, basically most people that are elixirists are not beginner programmers. Most people who are elixirists, , have been programming at least in one other language before they got into it. Usually it is out of some, enthusiasm. They liked the language. They heard about it. And then they decided to jump into it, or maybe they already worked into their functional language for whatever reason, but it's always. One of the highest, most pleasurable languages to write in. , same with, like, Phoenix Framework. So, usually people, did not start off being an elixir. They have the mindset that I guess you just described of, like, I need to learn JavaScript. One, because, you know, I think any web development job, you're going to even know JavaScript. But two, , there's more jobs available. And so the real challenge is. One, there's more jobs available, but you're also competing in a bigger pool versus with Elixir. I'm competing in a smaller pool, there's fewer people to compete against, but also fewer positions. Yeah, been a real challenge, but I think as long as I, dig my heels in, it shouldn't be too big of a challenge. Sundi: I like the attitude. Appreciate it. Owen: I'm thinking back to, you know, a few years ago, like before I found my first job, I also found it very frustrating. How am I ever going to get someone to pay me to write code? I was working, phones and doing customer service and tech support, which I enjoyed, but it's not going to last forever. at the time I thought, well, you know, the only way to become visible or get my name out there without knowing anybody was to start creating content. I think the changes that we've seen in the last year or two with social media has made that maybe a little bit harder, especially newcomers to get an audience. Wes, are you seeing successful patterns with people who've either taken your courses or just people, you know, who have started programming and then found a job, maybe within, Say six months or a year after getting up to speed. Wes: I, know it has significantly changed, so much. I used to teach a bootcamp and that bootcamp is now closed. I hadn't taught there for eight years. Not my fault, but, the whole job industry is, is certainly changing. , we have seen, we even had one of the guys on the podcast who did that. Go listen to that one as well, his name is Stuart Bloxham and he basically quit his job. He had a, mortgage, had a baby, not like a, oh yeah, 18 year old kid, learns to code and has nothing to worry about in life. It's a little bit different when you're trying to make a bit of a jump. That was a really good one. He explains how he did it and squeezed it in. But yeah, it's really just a mix of pushing yourself past where you think you're comfortable, and putting yourself out there, past that. I don't know if I have too many clear, concise stories of. Yes, here's how you get a job from this type of thing. Sundi: Yeah, it's a little tough. One of the upsides of Elixir, if you know where to look specifically which is To actually get yourself to a conference and a network in person. The community is pretty tight knit. It's a small, like Yohana said, smaller pool. So you might be competing against less people. I don't know. I haven't been in the JavaScript job market. Uh, well, it feels like another lifetime, I don't really want to be there again either. I do think the Elixir community helps out where they can. So, you've got job openings out there, just make sure you're making them available and people are seeing them because like Johanna said, it's a rough world out there Yohana: Yeah. Send them to me actually, if you can. Owen: right. Yeah, I think for, a long time, you know, there were just so many software jobs that we could float above the rest of the economy. There was infinite startups, hiring developers nearly. And then, with the big crypto crash a year or two ago, the aI thing that's happening now, I don't know if it's peaking or cresting or if it will ramp up even further, but the types of jobs that are open shift as well as the economy changes in the industry. You know, 10, 15, 20 years ago, , it'd be easy to find a WordPress job. Now those are mostly like people generating Wix and Squarespace sites. Right. There's so many other factors aside from like, just, I know how to code someone pay me, Wes: Yeah, add on to that those intro gravy jobs like the Customizing a WordPress for like that's what I got started with right I would crank out a WordPress theme for five grand I think those days are either gone or limited and that's not just because, like, it is because Squarespace and Wix and whatever, the, the client rather just pay a hundred bucks a month and be able to edit the content themselves than have to come up with a custom theme that might not even be as good, right? You gotta pay a designer and then you gotta find a developer. but I think that the starting bar has moved, you know, it's pretty easy to go grab a full stack framework off the shelf and you can start building apps on that thing, you know, like you had to be a pretty advanced dev to build a full stack rest API with Auth and all of that stuff. And now it's a lot easier. So the same with the AI stuff. I just think like , the beginner bar is moving. If anyone's listening and there's like, I'm, I'm in that like WordPress space, first, yeah, you're, you're probably going to have to learn JavaScript, but I think you're going to be surprised at what you can do given how good the tools have gotten. Owen: all right, I think I've got some ideas here. So we're going to pivot the podcast now to be an advice podcast, at least for the next few minutes for the remainder of the episode, because I'm thinking, all right, now how, what's, how did I do this? Like, how did I get my job? So I think part of it was, just building my own site and like buying a domain name, 15 bucks or whatever it was on hover. com or whatever, building even without Elixir, just a basic, uh, what was it? Netlify I handwrote the HTML, handwrote the CSS and JavaScript. And like, that's something that like was amusing, at least to look at. , so I'm thinking Yohana, how do we get you your, next job? If there's like concrete steps, maybe it's like, get your domain name, make it something cool and memorable, polish up the landing page, and then like, if you really want to write Elixir and Phoenix, make it a Phoenix app. And if you're reading fly, like you'll see how to deploy. You're kind of killing two birds with one stone. Building something people can see while brushing up your skills and having work that you can show for it. Sundi: Yeah. Wes was talking about the bar being like easy entry, like mixPhoenixNew, mixPhoenixAuth or genAuth or whatever to generate your authentication and then whatever the fly. io steps are to deploy that after you own your first name, last name. com, which I think everyone probably should try to go get if they can anyways, and then you're good. I never miss an opportunity to shout out my favorite, resume website, which is quinnwilton. com. That is Quinn2NsWilton. com one of our friends in the Elixir space and it is peak 2000s perfect. I love everything about it. We're going to have to send this episode to Quinn for sure. Owen: Oh, yeah gifts. Nice. Sundi: Yep. Owen: I Was got the marquee. Okay. All right. I'll check that out later So I guess that's the answer like make sure you have gifs a marquee a couple animations. All right, Sundi: People get very overwhelmed with like, oh, resume website, I have to do so much. , even just to learn what that is, just to create a new Phoenix app and just deploy it, you don't have to change one line of code. You could just deploy the MixedPhoenix new just to learn what it's like to deploy. And I think that gets you 80 percent of the way there in that 80 20 rule thing. Owen: 100 Sundi: Alright, Owen. We can get off this advice train thing now. Um, but yeah, it's kind of useful to chat about a little bit. One of the things also, Wes, that I was interested in talking to you about is, when we talk about Elixir being... Less overwhelming to look at. It's kind of because JavaScript's like huge. The ecosystem is huge. I remember trying to like get a library to do something and I had 11 options. The first three were out of date. The next two were weirdly named and hard to read. And then there was the one that everyone used and promised would work but was not working. And I would give up. So, I guess, how do you, let people know how to navigate that landscape? Wes: That's a very frustrating part of our ecosystem is that everybody, we always say we want rails for JavaScript and then, someone tries to give us rails for JavaScript. I'm like, Oh, but no, we want to be able to pick all the parts ourselves and put them together, you know? And that's kind of frustrating. Cause it gets out of date. People, myself included, just want to be told. What to use and how to use it, you know, don't give me a million different design options. Don't give me a million different Oh, you could do like classes this way and you could do it this way It's just tell me like the the blessed way and and that I want to go about that And obviously you can have like opinions and there will probably be a framework for you But most people don't necessarily care that much and they just want to have a single way to do something so Yeah, how do I tell people to guide it? Basically, just go with what is popular, you're probably not doing something so crazy that you need a library or a framework that doesn't do what you want. , there's probably other people doing the same thing that you're doing, and go with the, popular one. Don't get super distracted by, All of the new shiny frameworks. I'll try them all out and you'll probably know when it's time to actually pick up a new framework because you've been hearing about it for a couple of years, right? the old saying is no one ever got fired for choosing IBM. Which is like. Yeah, you can go with the old faithful, and in fact, in the JavaScript world is really shifting in the last couple of years, and we're seeing ourselves go way back, we're seeing frameworks that do it all, we're seeing server rendering, instead of client rendering, and they just, just rehydrates kind of like the elixir stuff, so, um, We're starting to see a lot, I, I feel like it's a little bit more stability in the, the ecosystem. Sundi: You do often go out there into the ecosystem, hex packages, and pick out libraries for you to use. How do you make a decision on what you pick up? Wes: Yeah, I like to try everything, right? You can, you can see how, how you like it and whatnot. And then I also have an incredible resource, which is a lot of Twitter followers. And most of those people are way smarter than I am, you know? So. , it's this constant water cooler where you can bounce things off of people's heads. So, hey, what do you think about approaching routing in XYZ way? And, you'll get lots of replies and you can distill down the major opinions and the ups and downs. And some people are jerks and are very aggressive with their opinions. But a lot of people have, . Very insightful thoughts. And I value those opinions a lot. So that's been big for me is, just being able to talk with people in the industry. And , if you don't have a large Twitter following, then, just read the replies. There's lots of really good threads out there where you can just dip into the replies and see what do people think about these types of things. Owen: My thought process is can I build it? Do I have time and energy to build the thing I need? , and then has someone else already built this thing? Right. I'm not building web framework anytime soon. I'm so happy we have Phoenix. I don't have to like start fresh with that. It's not like, flask where you are picking out every kind of. Not in Bolt that you want to put in the system. And trying to think of another example, like job processing, parallel data processing stuff, we've got excellent tools for that, that are built on not just Elixir fundamentals, but decades of experience of people who built those tools that, know, how things will go wrong and how to manage that kind of, uh, chaos that might unfold in your system. Whenever I'm, I'm reaching out for a package, that's usually what I'm looking for is a, is it well documented? And maintained, , even if it's not been updated in a couple of years, but it's very small and narrow and and the source code makes sense. So Ecto is our kind of not ORM. Abstraction layer for databases and Sundi: Not ORM Owen: yeah, I don't know what to call it, but it's not exactly an ORM, but you can implement custom types and frequently there's a custom type that I need to convert something from an atom to a string and back and forth, just for example, and there may be a library out there that's never, hasn't been touched in six years, but it still works because the fundamentals haven't changed, in six years. So. Yeah. As far as like picking libraries, that's kind of where, where I go. I'm kind of curious, Yohana, if we're thinking about like new developers or like, I don't know if you have any friends or, or family who have also made the jump into programming and if they've had either horror stories or, uh, success stories of, doing that either in Elixir or some other languages and kind of, if you can let your ear to the ground, what do you hear? Yohana: I would say within the last, , couple years, I've had friends, , who have, , switched careers. I've had multiple people I know, who have essentially, I know, so one person used to have a healthcare job, , someone else used to work in, sales. For like a tech company. , I know me personally came from film industry, so I know multiple people who have gone an unconventional path to arriving at a web developer career.. I think right now within the last few months, literally things have changed. It is harder to get hired right now than normal. So, I'm hesitant to predict the future. What should we await to see? Hopefully, things are expected, that there is more VC money, being, dealt out. I, I believe, we are going to be. Getting hired more often. But, I went to Elixir Conf 2023 when I was there, most of the booths there were saying, Hey, we're going to be hiring in like six to nine months. They did not say we're here to hire right now, which was, , I think unusual. Even when I told my friends, when I came back, they're like, huh, okay. Um, so, I think it is difficult for me, especially as a beginner, to, to give advice, on this particular topic, you know? I think it is just a difficult time right now. I expect all these things, the ebb and flow that, hiring will probably pick up soon. Owen: I think we've hinted at this a little bit. Most of us come, we've worked other jobs before we started writing code and getting paid to do that. So yeah, again, like I worked in tech support and many other jobs over the years before I saw the writing on the wall and said, you know what, I should probably be writing code now. Sundi, what were some of your jobs you did before pivoting into software? Sundi: Well, see, you were saying that, and I was like, uh uh, I went to school for this. Owen: Oh, you did. Okay. Okay. Sundi: No, but, no, I mean, I did, but then I quit, right? So, like, computer science. A major was not a good fit for me, so I was an art major, but I was coding through school and in, internships and stuff. When I graduated from school, I went from an internship to a full time job at the place I was interning at. So if you ask, the last time I worked in a non tech environment was probably in high school when I worked in a music store. Owen: Music store. Nice. Wes, Well, that's what WordPress first, was that your first job? Like slinging WordPress code or Wes: well, I've similar upbringing to you as I've, I was slingin my spaces back in the day. So I was making money in my grade school, Sundi: Oh my god, stop. Wes: Making my space or is more I guess when I was probably high school. Yeah, making my spaces designing t shirts I did album art for bands things like that and then all through university. I Sort of transitioned out of the like graphic design and more into the the coding thing I didn't I went to school for a business degree So I didn't learn coding in school, but, , by the time I graduated, I was already running my own show as a freelancer. So, I like to tell people I've never had a job, which is kind of true because I worked at, Tim Hortons, which is like a Dunkin Donuts here in Canada, and then I went from that to university at a bunch of like co ops in banking and oil and gas and whatnot. And then I. Went whole hog building, building websites. Owen: So I also like to think, you know, it wasn't a pure waste of time, right? I picked up a lot of skills that I would not have picked up from programming necessarily. And I think they've been hugely helpful to me. Communicating with non technical users over a phone and like walking them through where to plug things in, just for example, I think , has given me a really strong set of communication skills. Generally speaking, Yohana, are there some things you might see valuable from your career in film? You're not probably going to use some literal duct tape, but maybe like virtual duct tape to hold things together. . Are there skills you think you might be able to apply from your past work in software development? Yohana: I think communication skills, honestly, it's one of the things is yeah, soft skills, but I'm pretty, , used to like being able to convey what I'm trying to get the other person to do move stuff around if we want to set up something, you know, telling somebody to. Put a light here, what you're trying to convey, basically being able to read other people, what they're actually saying, not explicitly what words they've said, you know, what somebody says directly, you know, Oh, I'm just, I'm trying to stop it. Stopping something. Does that mean like turn it off or unplug it or what? Just different examples, but, , I think, yeah, there are certain skills like that, that I think are pretty universal that, , I've helped in programming. basically thinking through the problem and understanding, what somebody says is the problem isn't necessarily the problem that might just be a symptom. That type of thinking, , is I think incredibly useful for programming for, making sure that you're truly thinking through and, able to communicate, and identify what is wrong. Owen: Well said. Yeah. So we're, we're almost out of time. I think we want to wrap up. Sundi: Yeah, Wes, do you have any, uh, plugs or ask for the audience? Wes: My courses. So, , if you do want to learn JavaScript, you decide it's, it's for you. Get out of this whole elixir thing. , go to wesbos.. com forward slash courses. I've got a whole bunch there, but specifically if you're new, check out beginnerjavascript. com. And I have a free course as well, it's called Javascript 30. if you're kind of getting on Javascript already, you know the fundamentals, but like, you really want to , solidify your knowledge, I have one that's called javascript30. com. And it's just 30 days of building stuff to get you that practice. That one is, that one's been super popular. People love that one. Sundi: I wonder how I would fare now. Oh. Wes: Well, do them, do it, do all the exercises, but do them in Elixir. I would like to see how you do it. Like I've, I've seen people do all the exercises, but in like, I've done them in TypeScript, right. But you can do them in other languages, but building the same thing. Owen: It looks are 30. Sundi: This is, it sounds like a diet pill. Wes: Well, it's, I, I, I jacked the whole idea off of like a. green smoothie 30 day challenge. I was listening to a podcast and someone had wild success with like a 30 day juice challenge. And I was like, I need to do that. But with JavaScript, Owen: If we, if we do it an elixir, does that mean we have to have alcohol or potions involved of some kind? Sundi: Oh gosh. yeah, ideally both. before we get down that rabbit hole, Yohana, do you have any plugs or ask for the audience? Yohana: so unfortunately, I don't have any products to sell to the audience, so it's a little awkward, but, I basically will plug the things I actually use real life, useful things, websites that I went to, I think I already mentioned, Pragmatic Studio. Their courses are actually good. They are worth, , going through. They pretty much go through every, thing that you're going to be doing in Elixir. And then they go through pretty much most of the stuff, , all the crud, and, it goes through the Phoenix, , Phoenix Live View, Elixir Casts were very useful, if you go to, uh, Elixir Casts website, they have videos on basically a lot of the individual, small challenges, related to, pretty specific OTP problems I ran into, , CRUD problems, adding buttons, , front end, back end, it was just ElixirCast in general. They have like a, you know, free tier and a paid tier and honestly it was a very useful, very targeted answers that they would provide in video format. I also went through, Bruce Tate's, grox.Io, he teaches a course on, LiveView. I went through that. That was, personal, , like a video call you do with him for a couple days. Those are, some pretty useful, um, my plugs. Oh, and of course, , LiveView Mastery, YouTube channel that, my old boss, runs, He, yeah, educational content. A lot of it was actual problems, that I ran into working on the discord bot and, you know, real work that we did. So that, that YouTube channel is very useful for, teaching a lot of stuff, uh, live you mastery. And yeah, I think I plugged everything I know. So there you go. Sundi: Well, you did, you missed, you missed exactly one. If, uh, If, folks are looking to hire you, where might they reach you, Yohana? Yohana: Of course, yeah. I forgot to sell myself. Yeah, if you're looking for a junior Elixir developer, if that's the type of thing you're into, I suggest you send an email to yytesfazgi at gmail. com. I'll spell that out. Y Y T E S F A Z G I at gmail. com and you will be sure to receive a response in a, I don't know, what's the short? Unit of time Sundi: Timely manner. Yohana: timely manner. I wanted something like a jiffy. I couldn't think of that time. But yeah, anyways, Thank you very much Sundi: Awesome. Well, thank you both Wes and Johanna for, for joining us today. really appreciate this kind of interesting, somebody who's teaching, somebody who's learning. I mean, we're all learning, but you know, it's just really interesting to get you both in a room and kind of chat about also the differences JavaScript for sure. Wes: Okay. Thanks so much for having me on. Owen: Sundi, we're missing one thing. yeah, we're missing one thing. it's time to Pokemon Go. Sundi: Oh my God. No. Oh Oh Owen: We had to get our Pokemon in there somehow. So this is a desperate measure. So All right, that's it folks. Yohana: Pokemon go Sundi: We're not even gonna explain it. We're just gonna, I think this is it. We'll see you next Owen: slow fade out. Here we go. Bye. Outro: Elixir Wizards is a production of SmartLogic. You can find us online at smartlogic. io, and we're at SmartLogic on Twitter. Don't forget to like, subscribe, and leave a review. This episode was produced and edited by Paloma Pechenik for SmartLogic. We'll see you next week as we branch out from Elixir.