If you're going to work with Laravel -- or any tech stack -- you need to find the best way to learn it, and then you need to find the best way to stay up to date over time. Eric Barnes has been a member of the Laravel community since the earliest days; he worked at UserScape with Taylor when Taylor was building out Laravel 2, 3, and 4; and he runs Laravel-News.com, the largest and most comprehensive aggregator (and one of the larger creators) of Laravel-related content.
Transcription Sponsored by Larajobs
Editing Sponsored by Tighten
Matt Stauffer:
All right. Welcome back to Season Four of the Laravel Podcast. I'm your host Matt Stauffer and today I will be joined by Eric Barnes, the Founder of Laravel News and the OG Laravel programmer. Stay tuned. Welcome back to Season Four of the Laravel Podcast. This is the season where every single episode is going to be about a specific topic, about what you can learn or what you can do or just something that's going to be help... especially helpful for people who are new to the framework but also hopefully, relatively interesting helpful for people who've been around for a while. Just like last season you learn about people you thought you knew. The goal here is for you to learn something about every topic, even if you thought you were a total pro there already.
Matt Stauffer:
Today's topic is going to be about learning Laravel for the first time and keeping up to date. Whether keeping up to date means just learning the new stuff or continuing to learn even as you're a programmer. Lots of us have learned new stuff about Laravel even after we've been using it for quite a while. So before I give all the context about our guests, I would like for him to just say hi. So Eric, would you introduce yourself?
Eric L. Barnes:
Yes, I'm Eric Barnes. I am the creator of Laravel News, I work at UserScape and we make HelpSpot, partners and Lara jobs, Laracon online and basically just everywhere in Laravel ecosystem that I can find a place to fit in.
Matt Stauffer:
Absolutely everywhere. You fit in everywhere. It's funny you said it because I actually just wrote the tweet or the description of this episode, I said, he works at HelpSpot and I just... I always mix up UserScape versus HelpSpot. For those who don't know, UserScape is the company that Ian Landsman founded and it has a primary product, which is HelpSpot and that's actually, Taylor worked there as he was developing, I think it was versions two, three, four of the framework. So Eric has been around for ages and has worked with Taylor since the earliest days. He's been running Laravel. How long have you been running Laravel News?
Eric L. Barnes:
I actually started in, man, '09 I want to say. Is that-
Matt Stauffer:
Oh my goodness.
Eric L. Barnes:
No, that's too late. I don't know, it was-
Matt Stauffer:
Yeah, because I think it came out in like 2011 or something like that.
Eric L. Barnes:
Okay. So, me and Taylor got hired at UserScape at the same time, the same January of that year.
Matt Stauffer:
Oh, really? I didn't know that.
Eric L. Barnes:
So, sort of the backstory, Laravel News was really... I was just going to troll him on Twitter and I created Laravel News and where like tweet, like retweet stuff about Laravel and I was like-
Matt Stauffer:
Really?
Eric L. Barnes:
So then I just kept doing it and then eventually I was like, well, this is kind of dumb just tweeting it because nobody can ever find anything that you tweet, you know, in two weeks. So I was like, well, I'll just put this on a website and then that's how it all got started. It was just random.
Matt Stauffer:
What powered the first version? Was it WordPress?
Eric L. Barnes:
No, it was... they got bought out by WordPress, really popular back in the day, like way back in the day?
Matt Stauffer:
Movable type?
Eric L. Barnes:
No.
Matt Stauffer:
Man. Okay. I'm curious.
Eric L. Barnes:
It's the guy who was one of the early founders, actually they sold to Yahoo and then Yahoo sold it to like WordPress. Tumblr. Tumblr. That's it.
Matt Stauffer:
Oh, it was on Tumblr? Interesting.
Eric L. Barnes:
Yeah, it was on Tumblr. Yes.
Matt Stauffer:
Okay.
Eric L. Barnes:
So, I actually... Tumblr is the best. I love Tumblr-
Matt Stauffer:
Yeah, I love Tumblr. Yeah.
Eric L. Barnes:
... because it had the four styles. You could do a link post, a description, a photo or whatever. It was just like the first social media sort of app or whatever. So I was on it originally and then from there I moved to something Home Grown I believe and then I switched to WordPress eventually. That's where it is now until... the front end is on Laravel, the back ends on WordPress.
Matt Stauffer:
Okay. You do... are you consuming a REST API or are you hitting the eloquent directory or the table directory?
Eric L. Barnes:
I am doing web hooks from WordPress. When I publish a post, it get... pushes a web hook and then pull it in through the API and add it to my own normal Laravel database.
Matt Stauffer:
Love it. We could do a whole episode about that. But, sorry, I'm thinking out loud.
Eric L. Barnes:
Yes.
Matt Stauffer:
So, Eric has been around, he's an OG Laravel guy and he has always just been friendly and helpful. He's a teacher. He is a friendly networker and connector and Laravel News now is one, probably the best place to get consistent updates about what's going on. So I thought, man, if I want to talk about how to stay updated about Laravel, this is the guy, right? This is the space. Not only are they collecting together other content from other folks, they're also now, as of a couple of years ago, writing their own content.
Matt Stauffer:
So he's got a couple of authors who work with him and they're creating their own content and it's consistent and it's good and I love it. So definitely check out Laravel-news.com and the Twitter account is /LaravelNews. So, that's Eric. Of course, he also works at HelpSpot or at UserScape, see I did it again and Lara jobs and all these things. So he has tons of experience in the community, he's always been around the conferences.
Matt Stauffer:
So, I just wanted to get Eric on to talk about two things. Now there's two aspects of this and in some ways they're the same and there're some ways they're different. So before we even get into talking about how other people should think about learning and keeping up to date, I just want to ask you, how did you learn Laravel? What was that process like?
Eric L. Barnes:
It was actually funny because back then it was, man level three I guess, because one and two came out within like two weeks of each other I believe. So, it was level three when I came on and I first found it and I was coming from CodeIgniter. So a lot of the things blended together but it was really just a lot of trial and error for me. But it was so, so small at the time. I could just ping Taylor and be like, "Yo, what am I supposed to do here?" So that was really helpful back in the day but now it's kind of, Laravel has gotten so huge and so much training materials is out on the internet now so it's a whole different world from when I first started. But yeah, it was just a lot of trial and error back then and just trying to figure out how to do things or whatever.
Matt Stauffer:
Yup. So you, obviously you haven't learned Laravel today, but as you interact with the people around you who are learning Laravel, friends or people you're talking to on Twitter, what is your sense of what the sources that most people use to learn Laravel today?
Eric L. Barnes:
I guess it depends on the person more than anything. Some people can just read the user guide and, or the documentation and they can pick it up pretty well. Then other people like the visual, so they'll go to Laracast or go watch people like you streaming on Twitch and just follow along as they're doing it that way. For me... or even books, I know you've got your book and then of course online tutorials and all the other stuff. For me, when I first start learning something brand new, I just like to build something. I'll figure out a problem and I'm like, this is what I'm going to do. Then I just start building it and then when I get stuck, then I go try to find what I'm stuck about.
Eric L. Barnes:
When other people like to learn all at once and then they're good to go, we're on the complete opposite. I remember even first learning like PHP, I rebuilt an app like four times, just over and over and over, just trying to get better and coming up with new ideas and stuff. But that's the way I always pick it up. So I guess it really depends on your learning style is how each person does it.
Matt Stauffer:
Yeah, that's a great point. I think... you mentioned books, you mentioned articles, you mentioned videos, you mentioned the documentation and I think that those are really good. I lost count on my fingers. That's a really good list. I love that list. I'm trying to think if there's anything else, I mean, streams and interestingly YouTube, there's a growing number of people who are doing free content on YouTube, teaching new video stuff too. So if let's say somebody wanted video, I mean, Laracast has been the economical source for videos.
Matt Stauffer:
If you want to pay, you go to Laracast, if you want free, there's a couple of popular teachers on YouTube who do... to do Laravel stuff. If you want to do articles, if you like reading tutorials and stuff like that, Laravel News, I'm just going to say, Laravel News is absolutely the best place to go. Do you have a second or a third after that? Ae there places you've really consistently seen high quality articles?
Eric L. Barnes:
Usually the way I find them is... my own dog food. There is... we have that link section where community can submit stuff. So I'll find content through there more than really like one specific spot. Usually, as far as me learning, I just try to Google for whatever problem I'm having and then find something semi-related or whatever and then go from there. But yeah, I don't have a dedicated spot for written tutorials that's coming... I'm sort of drawing blanks on that right now actually.
Matt Stauffer:
Well, I could share a few, but I do think that in the early days there was a few key blogs where all the good stuff was.
Eric L. Barnes:
Yes.
Matt Stauffer:
I don't think it's like that anymore. I think that you will see something you've never heard of before, right? A really rich and robust tutorial and I'm glad for your links team because we wouldn't know about them in the past, right? Because they weren't from those few key blogs. So, I mean, Tighten has been having a blog, my company Tighten and I've had a blog for a while. I dropped off the blogging for a while. I picked it up again recently but it's no longer in a space where I feel like, oh, I've got to blog every single feature because you guys are covering them and a lot of other people are.
Matt Stauffer:
Spotsie, I think they have a blog, but I know that individual people at Spotsie have blogs and a lot of those are really high quality and a few individual people at Tighten have blogs too. So, I would definitely check out anybody connected to one of the ones that you understand by name and beyond code. A lot of the people who are known in the Laravel Twitter and Laravel Podcast spaces are there because they have good personal blogs. I would definitely check those people. But it's interesting like, it doesn't seem like there's one place to know, who should I follow on Twitter about Laravel stuff.
Matt Stauffer:
There's not just a single place for that and I've thought about creating in the past, but it feels like by doing that I'm making value judgments about people, and I don't want to be the person who decides if you're good enough to get on that list or not. So it just... it's this kind of like, we're not really sure. But I do think that the Laravel News is a good place, not just to find good content, but to find creators of good content. Because if something gets featured on there, there's a really good chance that you're going to go to their blog and see other good stuff. So that's... I think that's a good one. Okay, so that's for written content.
Matt Stauffer:
In terms of video content, you got Laracast, you got the YouTube folks and a few people who put out individual like groups of tutorials, like we frequently talk about Adam Wathan's tutorials. He's got one about testing, he's got one about using the collection pipeline and then a few other people have started putting out really great video series. Then, I guess podcast, let's talk podcast for a second. Podcasts aren't always a learning resource, but sometimes they're a learning resource but they're definitely a good keeping up resource. Right? So the Laravel News Podcast is by far the best way to keep up with releases. They talk about packages, they talk about pull requests to the new features that came out and stuff like that. I think it's the best structured place to find updates on new packages and new features in the Laravel world, I'm just going to say that straight up.
Matt Stauffer:
I think the Laravel Podcasts that you're on is very cool, but I think it's more like broad, high level. You're not keeping up to date with it as much as maybe in the past. What other podcasts do you think there are? Are there any that really focus on the Laravel community and people could use to like follow up with things or learn things. Do you think there are any or all of the rest are a little bit broader kind of scope?
Eric L. Barnes:
I think they are broader. The only other one I think you missed was Taylor's.
Matt Stauffer:
Oh, right. Laracast Snippet and Laravel Snippet.
Eric L. Barnes:
Yeah. Both of those are pretty good. I know some of the Laracast Snippets are more of like-
Matt Stauffer:
That's true, they're not the Laravel related.
Eric L. Barnes:
... more personal, general stuff. It's not really Laravel specific.
Matt Stauffer:
True.
Eric L. Barnes:
I mean, like Taylor does try to be Laravel specific.
Matt Stauffer:
Yeah.
Eric L. Barnes:
But, yeah, I'll... Michael and Jacob, they do an awesome job on our podcast. So yes, I definitely give them the thumbs up.
Matt Stauffer:
You know what? If anybody listens to this podcast episode and we're trying... a lot of this isn't going to be just about lists of resources, but if you say, oh, you're totally missing this blog, you're totally missing this podcast, great. Let us know. We want to discover these things. I would say the best way to do it is to find the Laravel Podcast Twitter account and find the tweet where I put this thing live and respond to that tweet so that it can all be together in one place. I'll make sure that both Eric and I can see those and I see other people and the rest of you all, if you're looking for more things to learn, hopefully you go check out that link and in the next couple of days after this releases, you'll see people sharing a lot of really good resources there. So definitely please use that spot to share your resources. Yes.
Eric L. Barnes:
The same way too, my door's always open. My email is in my Twitter bio. If you've created something, just email me and let me know and maybe we'll do our best to try to share it out or whatever.
Matt Stauffer:
Yeah.
Eric L. Barnes:
Try to get people coming your way.
Matt Stauffer:
One of the things I love about Laravel News, and I didn't mean for this to be a Laravel News session, but I just think it's so good that when I'm talking about what's good, I'm going to talk about it a lot. I love... in the last episode with Taylor, we were talking about... he said, "What's your goal for this year?" He said, "One of the big things I'd want is to see there'd be more people become Laravel, you know, "Laravel famous". In my talk at Laracon last year, I said, that's my biggest goal, is to bring more people to the community and bring more people to prominence in the community who aren't right now.
Matt Stauffer:
One of the things I love about Laravel News is, I learn about people and I learn about packages and I learn about blog posts, I never would have otherwise because I don't know who those people are and I've never once felt, oh, only certain people get like top billing there. When's there's something good, you guys put it up and I love that. So yeah, I encourage everybody, don't feel imposter syndrome about writing for or submitting your content to or submitting packages to Laravel News because there is so much diversity of thought and opinion and everything like that there. So definitely check it out.
Matt Stauffer:
So my next question for you, Eric, was how do you recommend people learn today? It's interesting because you have already mentioned that you think that everyone learns a little bit differently. So, maybe it's... part of how you recommend is to learn how you learn and then find what makes the most sense for you. Is there anything else other... I just sort of answered for you. Outside of what I just said, are there any other aspects if somebody said, you know what? I really want to become a Laravel programmer. Where would you send them? Or would you have a conversation with them first learning about their learning style?
Eric L. Barnes:
I would actually... yeah, I would probably do that first, would be the learning style. It's sort of interesting, this is off topic a little bit, but-
Matt Stauffer:
Do it.
Eric L. Barnes:
... when you first approached me about this, I started really trying to pay attention to how my kids are learning. So, my one daughter loves music, she's loves listening to all the songs and what she does, she'll listen to them over and over and then she'll do the little show the lyrics and then she'll listen to it while reading the lyrics and then she'll actually take it and go write the lyrics down and then after she does that like two or three times, then she has it, the song memorized for the rest of her life. I just think that's fascinating-
Matt Stauffer:
That's really fascinating.
Eric L. Barnes:
... because I would never do that at all and it just goes with how, I guess her learning style and how she likes to pick up things. The other daughter is totally opposite. She doesn't learn that way, but a lot of it's just... for her, it's more repetition and just keep doing something and then you finally learn it and pick it up. But yes, and that is what I was leading to in the beginning. That's sort of my style is, the repetition. That's why I rebuild something four times is because each time I do it, I'm learning a little bit different, but I'm also reinforcing what I've already picked up-
Matt Stauffer:
I love that.
Eric L. Barnes:
... and sort of putting it into practice I guess is the right word. Because-
Matt Stauffer:
Next time you might have to Google that one thing a little bit less because you've now done it a couple times.
Eric L. Barnes:
Right. Yes, yes. But you're always Googling.
Matt Stauffer:
Yeah, no kidding. I love that. I hadn't realized this, but right now there's a thing I'm doing where I'm going through my blog and maybe a couple of Tighten sites and I'm doing the hyper optimization on the front end delivery, trying to speed it up and optimize it or whatever. At some point, Dave, our production manager said, are you working from a checklist? I said, no, I'm doing this over and over so I get good at it so I can write the checklist. It's that same thing. I'm like you, I learn by doing the thing. The way I best learned Laravel at the beginning was to build a whole bunch of apps that were sort of poorly built.
Matt Stauffer:
Then the problem is, I'm not the type to rebuild them like you, so they're still there poorly built and thankfully I've been able to get other people, but if you want to see me writing bad code, go look at the original commits of symposium because that's old. But the next app I built after that was better, the next app after that was better. So it's like you, I'm learning each time and it's that building process. Obviously, not everybody's like that. Some people say, give me a book, I'll read 550 pages before I write a line of code. So yeah, I love that idea of figuring out how you learn. That's really good.
Eric L. Barnes:
The same way with videos too, I can't jump in and watch... so, even take like Jeffrey Way, Laracast, they're super highly polished and quick and easy, but it's like he'll just do one little thing that I glance over and then I get stuck and then I have to go back and re-watch a whole bunch of times and then I'm like, oh yeah, now I see how he did that. But it's just like, I don't know, it's just my learning style is not more of the video, it's more of the just do it on your own type still.
Matt Stauffer:
I'm totally the same way.
Eric L. Barnes:
Yeah, and the same way with books, it really depends on what I'm learning. Right now I'm trying to get better at golf. So, if I see somebody mention a book on golf, I'll just go buy it and hopefully something in there is worth the price of the book.
Matt Stauffer:
Yeah. I love that.
Eric L. Barnes:
It's just so interesting.
Matt Stauffer:
Yeah. So one of the things I was wanting to think about is, this particular episode is about two things, learning Laravel in the first place and then keeping up to date and keeping up to date means two... it's really about three things actually. It's about learning Laravel for the first time. It's about continual learning, when you're building apps and you feel like you're professional, but you still have things you got to try that are new. Then it's also keeping up to date, like knowing what's changed, knowing what's introduced and that kind of stuff. As you think about those different ones, do you have a sense that doing one versus the other is a little different? Is it likely that people will use one medium for one and another medium for another or whatever? Or is it all just a continual learning process and there's really no big difference?
Eric L. Barnes:
I would lean more to a continual learning process. Once you've understood the basics of Laravel and you can build your apps and stuff like that, then keeping up to date with all the packages and all this, the community might not be important to you at all and it might... if you don't want to be in the community then, they doesn't matter. You just... you learn on demand when you need it, go find whatever. That's what we try to do with Laravel News is try to pick up, so you've learned the basics and now we just want to try to get you involved and seeing everything that's being created and maybe you can find a package where that'll help you out or it inspires you to build your own and then you can give that back to the community.
Matt Stauffer:
Yeah.
Eric L. Barnes:
I feel like I'm rambling off the actual question. Can you repeat if I didn't answer it right?
Matt Stauffer:
Yeah, yeah. No, I think you answered it well and I think that... I'll chip in here too. I think that keeping up to date with Laravel often has a little bit less to do with learning how to use each new thing that comes out and it has a little bit more to do with learning what there is. Then ongoing learning has a little bit more to do with learning the things that are new. So, let's imagine Sanctum, Sally learned Laravel, let's say she's a Laracast person. She learned Laravel through Laracast and now she's got a job as a Laravel programmer. So that's learning Laravel. Keeping up to date with Laravel, she might be listening to the Laravel News Podcast so that she can know when new packages come out and the Laravel Snippet, those two.
Matt Stauffer:
She knows when new packages come out, she knows that Sanctum was released originally named Airlock now it's named Sanctum and it's an API thing. So she's up to date. She knows it's there. But then there's also this continual learning aspect where she knows it's there but she doesn't know how to use it yet. Then she hits her first project where she needs to use Sanctum. At that point, she might open up the Sanctum Laracast video or she might try to install it or she might look at the docs. So, it seems like, I think that you're right, a continual learning when it comes to learning the code and learning new code that comes out later.
Matt Stauffer:
Really I think the only aspect that's really different is just keeping up to date in terms of knowing what's new. I mean, there is a really great change log, although I think that's probably going to be tough for the average person to follow along with, but I do think that yeah, Laravel News Podcast and the Laravel Snippet are probably the best ways to keep up to date just knowing broadly. Do you agree with that?
Eric L. Barnes:
I do, yes. I think you also mentioned a good point right there. When you've got a full time job and family and everything else, it's really impossible to keep up with every single thing. So you have to pick and choose and to me, you transition into more of a learn on demand like you mentioned with the Sanctum, you get a high level overview of what it is and you just keep it in the back of your mind so in the future, six months or a year from now when you start on something new, you're like, oh yeah, I remember they have this, let's go check it out and then... so it's more about just reinforcing what all is out there so that way when it is actually time, then you can just jump right in and you don't waste a week or two building something that's already been done.
Matt Stauffer:
Yeah. I think that's really key is that the number of times that we've come into somebody who says, hey, I've got this Laravel code base a couple of years old, can you update it for us and then add these features? The number of times where I've said, you have handwritten things that have been in Laravel for years, is really high. So I'm realizing that even if not all of us have the ability to go sit and do a toy app with Sanctum or whatever else is new, it'd be helpful for all Laravel developers in my opinion, to at least know what's out there. I do think that like combination of Laravel News/Laravel News Podcasts/Laravel Snippet is a good way to at least just have a sense of what's going on. It's funny because my next question there actually was what are the best ways to keep up to day with Laravel ongoing? I think we just kind of shared that. So let's-
Eric L. Barnes:
Yes. Well, I was going to say, let's add the newsletter because every-
Matt Stauffer:
Yeah, absolutely.
Eric L. Barnes:
... Sunday I do a weekly... it's basically like a, I call it the Laravel Newsletter. It comes out every Sunday at 8:00 AM Eastern Standard Time. What I do is recap the entire week of every post that we've made, all the Laravel jobs, all the community links, all the upcoming events and I just try to kind of wrap everything up that happened within that week into that newsletter. Then that way you can... if you don't want to follow along every single day, you can just scan that on Sunday and be done with it.
Matt Stauffer:
That's what I do actually. I love your blog, but when I see something on your Twitter, what I do is tuck into my brain that that Sunday I need to remember to pull that thing up. Then the newsletter, every single Sunday I sit down, or maybe Monday morning I sit down, I click through to a whole bunch of them, and then I also share a ton of them in Tighten Slack. I'm like, "Hey, make sure you all take a look at this one or whatever." That's definitely a highlight, so. All right, so as you think about the process of learning Laravel, what do you think some of the things are that get people stuck. What are some of the challenges? Some things that are hard or that get people stuck and they don't know how to solve it or anything like that. What gets in the way of people learning Laravel well?
Eric L. Barnes:
That's interesting. I'm going to say maybe like eloquent, just because it's wrapping your head around... it's different than just writing sequel so you got to change your mindset a little bit. So I think that might be one of the first stumbling blocks when you're very first learning. I'm trying to think of anything else. That was the hardest part for me was figuring out the relationships and just wrapping my head around this belongs to, this is, whatever. But from there, I don't know. How about you when you started, what was tricky for you?
Matt Stauffer:
That's a great question. I know that I had a lot of trouble learning object oriented programming, but I think that was pre-Laravel. I think that was CodeIgniter when I had the most trouble. I think the hardest part for me learning Laravel and I think this is true for a lot of people, is just knowing what the idiomatic Laravel way as to do something. I think that's another big thing our clients ask us. They're like, "Hey, we're talented programmers but we just don't know the right Laravel way to do it and we know that we're doing it not the Laravel way. Sometimes we'll end up accidentally fighting against the framework."
Matt Stauffer:
So, it's interesting because talking with Taylor, we said, well, it's not like Laravel has an ideology, you don't have to do D-D-D, but there are some things that are like, if you do it in a hyper dependency injection way, in a certain way, Laravel is going to play really nicely along with you. If you do hyper dependency injection in a different way, sometimes you're going to have to recreate things that the framework already provides to you and so knowing those little things. So, I think learning what idiomatic Laravel code is like is a challenge. What would be the best way to do that? Like to learn that. I mean is the open... isn't the code for one of Taylor's projects, Open Source? Is the cloud one I think?
Eric L. Barnes:
It was.
Matt Stauffer:
Or it's not anymore? Okay.
Eric L. Barnes:
I think he took it down. Yeah, he took it down. Yeah, too many people complained.
Matt Stauffer:
I'm trying to think what else is there that you think that people could look to, to learn what idiomatic Laravel looks like?
Eric L. Barnes:
There is... actually, you could probably just follow the To Do app that he created as part of the documentation in Laravel. It actually came out with Laravel five, I believe but I think it's still part of the documentation. I want to say he did it like the way he would do any app.
Matt Stauffer:
I don't actually know whether I remembered that that existed. So, yeah. So Eric and I just took a moment Googling and we discovered that there is a basic task lists that you can see as a tutorial in the docs for Laravel 5.1 and 5.2, we'll link it in the show notes but it's not in the docs anymore. We're not sure why. We'll have to go learn. I'm glad that you mentioned that. There's tons of people on the internet who have written getting started once. But sometimes I do think that basic app list is good because it's from Taylor. But I do think that sometimes one of the best ways to look is to see actual functioning applications because so many tutorials are the same task apps. So, I mean, there's definitely... I'll try and make a list of... and I'll put a note here, make a list of open source Laravel apps. There might even... do you know a list anywhere? If not, I'll make one real quick.
Eric L. Barnes:
Not that I can think of.
Matt Stauffer:
Well, I'll either find one, I'll ask on Twitter, I'll either find one or make one of open source Laravel apps. I mean, just to give you a quick example, Tighten has, so just go to github.com/tightenco. We have quite a few of our apps public there. Not to say that every one of them is great. Like I said, Symposium probably still has stuff embedded in it from my battle days. Nova packages we were experiencing with some things that didn't quite always work out, but you can at least just take a look at those. Again, we'll link other ones to just show you what a normal, not perfect, but a normal Laravel project looks like and especially... oh, and Onramp. I also have this project On-ramp, which I should make sure to talk about later. That's up there.
Matt Stauffer:
So yeah, I do think that one way to think about learning, how to write idiomatic Laravel is just to look at how people who've been running Laravel for five plus years write it. Not everybody has internalized it, but definitely, at least at Tighten, we do everything we can to not fight the framework. So I do think that it... so anyway, your question was what got stuck with me? I think it's learning what idiomatic Laravel looks like.
Eric L. Barnes:
Yeah. That's interesting. I was going to say... I was going to mention, you brought up another idea as far as looking at open source apps, another good thing that I've found is to reverse engineer packages. So if you're going to... if you're looking for something and you find a package, go back, go through its code and just figure out how it works. Duplicate it on your own or pull it in whatever you feel like, but at least go through it and see how it works and try to get your head around how they're doing things. I found that really beneficial.
Matt Stauffer:
Yeah. I do think that leveling up on Laravel is just not an initial learning step, but if you want to level up, go source dive Laravel itself. Some people do that by reading through one file at a time. That's overwhelming to me, it's not how my brain works, but what I do is, I'll open up an IDE that has like click to see the function definition in it, and I'll open up a file that I was working with and say, I wonder how that cash remember method works? So I'll control click on the remember method and then I just... from there, not from top to bottom, from there I'll work through the entire cash source. I go, oh, interesting. So it's doing this and it's cashing up and it cash this thing and, okay, cool. So I feel like that's a really fun way to learn just a little bits and blips and you also learn more about idomatic Laravel because in theory, all the code in the larval source should be the way Laravel code should be written in general. Right? So yeah, that's-
Eric L. Barnes:
Interesting. I rarely do that. That's kind of funny.
Matt Stauffer:
Oh yeah. I've always done it a little bit. Then I did it... basically it became an embedded practice when I wrote the book. I was just telling somebody yesterday, I used to blog all the time because every time I learned something new, I'd blog it. Then I wrote the book and I had to learn everything and then there's like, oh, well nothing's new anymore. So now I have to actually come up with interesting ideas to blog, so. All right. So if you think about the way that people learn Laravel for the first time and keep up to date about Laravel, is there any one change that you would make where you think that there should be an asset, a resource out there that isn't... or you wish people were thinking about it differently because it would help them out?
Eric L. Barnes:
That's interesting. I don't know if this is a... if everybody would agree with this, but speaking of the idiomatic Laravel, I would like, at least for me, if I stay true to the documentation and the Laravel way, I found everything easy. It's when I've branched off into these other ideas and it ends up always bitting me in the butt where, all that sounds good but as soon as I branch off, then I end up having trouble.
Matt Stauffer:
Yeah. It's interesting because it's not just that you're fighting the framework, but also you're fighting the framework can often mean like losing the opportunity to use other conveniences that you haven't tapped into yet. When you decide that you're just going to forego this one aspect of, for example, the authorization system, then all of a sudden you might not get that password controller the way you want or you might not be able to use Sanctum the way you want or something because you decided in this one small spot, you know better and you can do on your own, but all of a sudden your thing doesn't integrate with the rest.
Matt Stauffer:
That's not always true. Some of the best systems in Laravel allow you to write your own driver for a thing so that you can still get the benefit of the connectivity. But I would just say maybe like be wary, be aware of what the recommended Laravel way of doing it is not necessarily because it's definitively right or you can't ever change but straying off that path could potentially incur some costs of later things not playing together as nicely. So, it's kind of sounded like we're saying it's super restrictive, it's not that restrictive. You can program, you can do D-D-D, you can do all sorts of different events sourcing, but know what you're doing when you're doing those things and those things aren't like non-Laravel, it's just plenty of Laravel people doing those things and other things.
Matt Stauffer:
But I think it's most often when something that is specified by Laravel. Laravel doesn't have anti DDD or whatever encoded into it, but it does have an auth system. Right? It's mostly when people are deciding that the things that do come out of the box in Laravel aren't right, just know that whatever you're building to replace it might not play as nicely with the other pieces. I guess that's a better way of thinking about it.
Eric L. Barnes:
And too, and think about five years from now, when you come back to this project and you're like, what in the world? Where is... what did I do here? If you had just kept with the standard then you'd been like, oh yeah this is... I don't know. I've been bitten by that so many times because I work on long lived apps. We have a few secondary apps, we build them, we deploy them and then it'll be four or five years you come back to it, they kind of just sit there because there's just not enough time for everything in the world to do.
Matt Stauffer:
Yeah. Yeah. You're sitting there wishing not only that you had used the way that you use now, but also that you could really easily do the upgrades. But those upgrades are going to be tough when you have to upgrade your own code. I think one of the things I love about a framework in general is, reducing the amount of code that I have the responsibility for managing, right? The lest code I have to write and manage ongoing, the faster I can produce the work, sure, but also the more I can maintain it well in the long term. So, I love that thinking. You're saying like, don't make me have to remember five years down the road why I did this thing different, just let Laravel handle that thing.
Eric L. Barnes:
Yes. That's the way I look at it. That's the way I like to program things.
Matt Stauffer:
I like that.
Eric L. Barnes:
Yeah. I mean, and too, it depends on how you look at programming in general. Programming is, to me, is a way for me to build apps. Other people like to, what do you call it? Study it. That's like their passion. Where my passion is the product, not the-
Matt Stauffer:
Code process.
Eric L. Barnes:
... code that gets me to the product.
Matt Stauffer:
I think... yeah, that's different, the process. Yeah. I mean that's you and me too. Taylor and I did definitely talk in the last episode about being productive and useful and practical are really high values in the Laravel community. I definitely agree. I do like learning about how to code well and learning about new code, but I'm with you. For me, it is for the goal of the output rather than for the goal of being ideologically pure or architecturally pure or correct or whatever. So yeah, I'm very much with you there.
Matt Stauffer:
So, you know what? This, is a ton of fun and I ran out of questions and none of my follow-ups... you answered half of my questions in the followup. So, is there anything else that you think that we should talk about when you think about what it's like for people to learn Laravel and for people to keep up to date with what's new and then to learn new things ongoing. Is there anything else you think we should say or think about or you want to bring up today?
Eric L. Barnes:
No.
Matt Stauffer:
Okay, cool. We got-
Eric L. Barnes:
Actually I would like to ask you a question.
Matt Stauffer:
Yeah, go ahead.
Eric L. Barnes:
... now that you think about that. So, the Laravel book, up and running.
Matt Stauffer:
Yeah.
Eric L. Barnes:
Are you coming up... are you going to start coming up with another version in another year or...what's the...?
Matt Stauffer:
I'm thinking about it. So switching... so what the story of the book real quick for anybody who doesn't know, I was contacted by O'Reilly to write the book. It was supposed to be an up and running book, which is supposed to be like 150 pages. As I got to writing it and I said, oh, I really want this canonical book and end up writing a 500 page book. Took forever, but I just said, if you finish this book, you're going to know what it takes to be a Laravel programmer. Because it was so much work, keeping up to date was difficult and it got a couple of years in and I was just really having a lot of trouble keeping up to date.
Matt Stauffer:
I said, let's call it the New Edition. So, second edition and I revitalized everything, rewrote the testing chapter to other work and I brought in a research assistant, Wilbur Powery, and the research assistant basically kept up to date on the change logs and said, here's the things you need to update. So sometimes he would just tell me, "Hey, update this thing." Sometimes he would even find where that thing was in the code or in the... because the book itself is powered by AsciiDoc, which is basically marked down. So he would actually go into the repo and say, here's a note here, change this here. So all I had to do was just show up and write about that stuff, which was super, super helpful.
Matt Stauffer:
So when I got out of that process, that was exhausting. I was probably hundreds more hours to do the second edition and just you know, I'm not making much money off this book. Working with a traditional publisher, especially now that they sell everything through Amazon and so I'd make even less, I'm making like a couple dollars on each sale of the book. So the book is really a resource, not a moneymaker. So what I just realized was, why don't we just always keep it up to date. So I'm just paying Wilbur to constantly... I'm not paying him a ton, thank you Wilbur, but I'm paying him to constantly watch the change logs and to just give me... now what he does is for each version, each major version of that comes out, he gives me a pull request and it's basically, if it's a tiny code change, he just changes it in the code and if it needs writing, he just gives me a note, write about this or change writing about this.
Matt Stauffer:
Then I go through sit down at once and just say, all right, I'm going to do all the updates. So I did all the 5.8 updates couple of weeks ago. I'm going to do all the 6.0 updates this weekend and he's going to give me the pull requests for all the 7.0 updates really soon. So, the upside of that is, we don't have to worry about pushing out new additions. The downside of that is I just learned that unlike O'Reilly, who is who I recommend you use in the past for eBooks, O'Reilly doesn't sell eBooks anymore, they made a big change because of the... the industry was changing and now the only way to get the eBooks is through, I think ebooks.com in Amazon and neither of those give you updates. So if you bought the book for Laravel 5.7, you don't get those updates.
Matt Stauffer:
I'm sitting here thinking everyone is getting these updates pushed to them and they're not. I'm really frustrated. So I have to come up with a solution, I really appreciate you asking this, I have to come up with the solution, but anyone who buys it knew whether print or ebook, we'll get the latest version. So right now you're going to get 5.8. In a couple of weeks, if you buy it new, you're going to get 6.0 and if you buy it a couple weeks after that, you'll get 7.0. But I'm going to have a chat with O'Reilly to figure this out because I need some distribution channel where people don't have to buy a new version every six months. The good news is very little changes in those versions. If you got the 5.8 version, don't worry about buying the 6.0 version, almost nothing's different. 7.0 has got some changes that might make it worth it.
Matt Stauffer:
So I'm just going to try to keep being open and honest with people about when it's worth getting a new version. But the goal with the... not making a different edition was both saving me time and energy, you're not wasting time and all that the just the rote stuff that comes with a new edition because it's basically a new book in their catalog. But also trying to get to the point where people were constantly getting updates. So when I learned that's not happening, I've got a task on my plate to fix that. I'm glad you mentioned that because actually... I'm sorry, there's one more thing I want to talk about. I was going to write another book that was a hundred page quick start to Laravel and publish it myself so I could do that updating thing and I realized it was better instead of a book to make a learning resource.
Matt Stauffer:
So, I announced it at Laracon last year, it's called Onramp. It's still in process, but if you go to onramp.dev right now, you can actually see a ton of learning resources follow along with them. It points to a lot of free resources like videos and stuff like that. It says, here's the things you should learn in order and for each thing that you're learning, it says, here's the skills you should learn here and here's places to go learn those things right now. You sign in with an account, it's a free account, we're not going to spam you or anything. You can check off each thing as you learn it. We're still building it and it's still needs work, we're still... we're almost done with implementing an actual real design instead of a template.
Matt Stauffer:
But I do think that that was kind of the direction I was trying to go is, can we find the canonical place to learn and then can we have the canonical place to keep up to date? I always have thought of Laravel News as the canonical place up to date and I was like, can I make Onramp the canonical place to learn for people who learn using either articles or videos. So anyway, sorry that was a long answer to a short question, but thanks for asking.
Eric L. Barnes:
No, that's great. That's great. Yeah. So yeah, so Onramp, I actually forgot about that. I was at that conference and I remember writing it down but I didn't cover it because I was waiting on the official release. So I think that's why I actually haven't even put it on the... because I just checked the site and it's not on there.
Matt Stauffer:
Yeah. Why don't I tell you to do the official release once we've got the design out because that's going to make a big difference in the perception of quality, I think. So the design, I'm hoping it's a couple of weeks away from done, it might even be done... alive by the time this podcast comes out. So, I'll ping you and then you listeners, I'll put a tweet out about it the moment we have the design implemented and we'll still keep working on it, but I think it's at least going to be good enough to really push out to people then, so yeah. Yeah, that'd be awesome. All right.
Eric L. Barnes:
The more learning and resources you know we have as a community, the better off everybody is just because you pull in new people, you train everybody. It's good for everybody. So that's what's really great.
Matt Stauffer:
Love it. I totally agree with you. All right, so I've got one last thing. It's the last moment that we do and every single episode of this season of the podcast, I've got a fun thing. So I always see you mountain biking in your photos. Can you tell me a little bit about biking? How did you get into biking originally? What's your backstory? Why do you like it so much? How often you get to go biking and maybe like what's a cool story or an accomplishment or a win or something that you've had with mountain biking.
Eric L. Barnes:
Oh wow. Okay. So I'll try not to get too long and drawn out on this one. I'll give you the high level overview.
Matt Stauffer:
All right. Got it.
Eric L. Barnes:
So, my grandpa, my grandfather had a motorcycle dealership, started in 1979 and of course I had my first motorcycle at two years old. Race motorcycles, race motocross, street bikes, just everything. They ended up selling the business in the early 2000s, but I ended up getting hurt a bunch, breaking a lot of bones and I just... so I quit riding the motorcycles and moved to mountain biking just for the exercise really and I love being on two wheels, basically more than anything. So, the mountain biking is great because it gets you outside, it gets you exercise and it's really hard to do at times until you get trained to do it. The other part that's great, if you ride... when you first get started, you might go ride out in the woods for four miles. Well, the only way back is to ride four miles back. So, you're doubling your workout because you're out in the middle of nowhere and the only way home is either to walk or to ride.
Matt Stauffer:
Right.
Eric L. Barnes:
But yeah. So, I've been mountain biking for 10 years-
Matt Stauffer:
Nice.
Eric L. Barnes:
No, I've been mountain biking since I was 20, and then I quit for about 10 years in between there somewhere.
Matt Stauffer:
Got it.
Eric L. Barnes:
Then now I've started back in the last probably four years. I try to go two or three times a week and-
Matt Stauffer:
Oh, awesome.
Eric L. Barnes:
Just kind of... obvious I put my AirPods in, put my ebook on and just ride through the woods.
Matt Stauffer:
The only people I know who can wear AirPods and then they stay in when they're exercising.
Eric L. Barnes:
Yes. They're awesome. Yes. They're the best thing ever. I always listen to like not old fiction, but more of like... I don't know, like people... I'm drawing a blank on the genre. It's a biographies.
Matt Stauffer:
Yeah. Yeah. The people, people books.
Eric L. Barnes:
Yeah.
Matt Stauffer:
I listen to people. Yes. It's cool.
Eric L. Barnes:
So, I don't know it's just great to me. So, yeah. So I've been doing that forever and a fun story, I broke my hand two years ago.
Matt Stauffer:
Oof yeah, I remember that.
Eric L. Barnes:
Yeah. I did a boxer fracture, I-
Matt Stauffer:
What were you doing?
Eric L. Barnes:
I was mountain biking in a race. It was like a teammate race and it had been raining for weeks. Normally they close the trails when it rains that much, but because it was a race and everybody paid the money, they left it open and we come down this hill and at the bottom is a wooden bridge and you hit it at a little bit of an angle and for whatever reason it was just like slick as like black glass or black ice and it was just instantly I just crashed and I hit my hand on the wooden bridge and it did a... what they call boxer fracture. So, it pushed the two bones back and had to get through surgeries and-
Matt Stauffer:
It was just-
Eric L. Barnes:
... six months.
Matt Stauffer:
... you were going so fast that it just hit the deck so hard. It didn't like crush or anything, it just hit the bridge so hard?
Eric L. Barnes:
Right Yeah. Yeah. So yes, I was going so fast when it fell over my hand. My hand was actually still on the handlebar when it hit.
Matt Stauffer:
Really?
Eric L. Barnes:
Just the way it hit it, it popped it back. Yeah. So, yeah, that was not fun.
Matt Stauffer:
If you go check out Eric's history in Twitter, you'll see videos of him working from an iPad one handed and all that kind of stuff. I was super impressed with how much work you were able to get done during that time.
Eric L. Barnes:
Yes. So I switched to an iPad because the keyboard was small and I could do it with one hand where the bigger keyboards I would struggle because my hands are... I'm only like, what? 5'3 so I have small hands anyway. So, having the bigger keyboard, I couldn't actually type one-handed very well. So I switched everything to the iPad and it worked really well. I liked it. The only thing bad was Vim on using remote servers and using Vim because Vim is terrible. Don't at me, Vim is terrible, don't at me.
Matt Stauffer:
Being forced to learn Vim in order to do your job. I'm sure it's a faster learning curve, but it also probably makes you not love Vim in that context. So yes. But, well-
Eric L. Barnes:
I'm hoping they'll get VS code, set up on the-
Matt Stauffer:
I heard something saying that they're going to have that with a server version and you can SSH in or whatever, so.
Eric L. Barnes:
Yeah, I'm excited for that.
Matt Stauffer:
Well, thanks for sharing that. So that is it for today. Before we cut it, can you tell people how to follow you, how to follow Laravel News and anything else you think they should do.
Eric L. Barnes:
Yes. So I'm Eric L. Barnes, pretty much everywhere on the internet, always with the L because there's another Eric Barnes that's an author and stole my name. But you can follow me basically anywhere with that. Then Laravel News is Laravel-News.com. Join the newsletter, it comes out every Sunday. Listen to the podcast and just stay up to date. Let me know, if you ever... same way, I'm very approachable. If you've found something that we could do better, just let me know. I'll take it into consideration.
Matt Stauffer:
I love it.
Eric L. Barnes:
Yeah. I think that's about it.
Matt Stauffer:
Eric, dude, it has been a ton of fun talking to you and I want to thank you both for hanging out with me today and also just for all the work you do for our community. You are a tireless contributor to the community and a tireless positive face. So, I appreciate you so much and thank you so much for everything you do and for hanging out with me today.
Eric L. Barnes:
Yes, sir and I appreciate it. This was fun, better than I thought. I don't usually-
Matt Stauffer:
Good.
Eric L. Barnes:
... do podcasts. I love it. I love it.
Matt Stauffer:
So, future guests, Eric didn't want to do it and he enjoyed it, so don't worry. It's going to be easy, so. All right. Well, thank you all so much. All this stuff will be in the show notes and we'll see you next time.