I think you'll find that intermediate-level developers tend to be the most passionate and rigid of the entire community. It is at this stage of your learning when you are most susceptible and attracted to programming "rules," or instructions from above that, when followed, lead us to clean code. But that's okay. While we all eventually realize that rules are meant to be broken, in certain phases of our training, rules very much serve an important purpose, and we'll talk about it in this episode.
Too often, we hear politicians spew the tired "learn to code" slogan in response to difficult questions related to disappearing jobs in remote America. Let's talk about the logistics and practicality of a middle-aged coal miner making this switch.
I've thought quite a bit about types in the last year or two. I know - borrring - but I find it interesting to observe how intensely talented developers can disagree with one another on this particular issue.
Developers passionately disagree with one another on most programming issues. For every tutorial on class inheritance, duck-typing, naming conventions, and mutability, I'll show you another resource that argues vehemently in the opposite direction.
One of the more frustrating aspects of front-end development stems from the fact that even the smallest of alterations has the potential to derail your entire week. In this episode, we'll discuss how to track browser-specific CSS performance issues.
That simple rule we all learned years ago in school may not have stuck properly. Why else would we, decade after decade, incorrectly and constantly draw "cause-and-effect" lines from one variable to another?
Traditionally, there are three primary locations when most friendships are formed: school, the workplace, and church. But what if you're unable to tick any of these boxes, as is increasingly the case for remote workers.
A recent study found that a small percentage of individuals are largely responsible for the widespread sense that online interactions are hostile and toxic. Assuming this is true, is it possible that muting a handful of people will instantly remove the negativity in your feed?
In this episode, we'll discuss a series of performance improvements that you can apply to your own projects right now. You'll learn about everything from image lazy loading to inspecting the cost of an NPM package.
In the last few years, I've noticed that my eyes simply aren't as resilient as they used to be. After staring at a computer screen for so many years, the daily eye strain and headaches have been getting worse. Much worse. In this episode, I discuss the steps I've recently taken to improve my situation. If you're in the same boat, have a listen!
Today, I have four completely unrelated topics to discuss with you today. As a (cheesy) way to connect the dots between them, we'll call this episode the four P's: Personal, Professional, Political, and Parental.
As part of managing Laracasts, I've been lucky enough to speak with countless developers. Whether newcomers or seasoned veterans, they too often seem to share the same insecurity: sooner or later, they'll be found out.
Are you as annoyed as I am that there are five different points of entry, if you want to watch a movie you own? Is it a Blu-ray? Is it on your DVR? Did you buy it on iTunes? Or was it Amazon Prime? Recently, I've been trying to consolidate all of my purchased media to a Plex server I set up. If you're in the same boat, here are some things to watch out for.
I recently spent an entire day making a small, but tricky Vue component for the Laracasts forum. There's no doubt that it took longer than I would have liked. But, the fact remains: at the start of the day, I had no clue how to build it. When I clocked out that evening, it was finished and deployed. Let's talk about why this is my favorite aspect of programming, and how it can overflow into the rest of your life.
Lately, I've been thinking about the importance of providing examples. Whether you're writing new code, or preparing documentation, or even discussing code, I'm always left with the same thought: "Give me an example."
In the last year - after breaking a few of my personal rules - I've become incredibly sensitive to lifestyle creep. In this episode, we discuss why, eight months ago, I asked my pregnant wife to help me slash our lifestyle in half. We'll also talk about important considerations for your own life.
I've focused a great deal on discipline this year. I'm not sure why, but it might be related to the fact that I now have two increasingly time-consuming children that I'm responsible for. While, in the past, I'd often find myself edging toward the "I'll do it tomorrow" path, this year, I've worked hard to sprint in the opposite direction. Or, in other words, even when you're desperate to avoid it, deal with your shit.
It's been over two years since Laracasts last received a fresh coat of paint. For those who know me (Jeffrey), that's two years too long. In this episode, I discuss every facet of the redesign process.
In the United States (and surely many other countries), financial literacy is not taught in schools. You might think that basic investing and a review of compound interest would be profoundly important learning material. But according to the school board, you'd be wrong. Perhaps it's only natural then that those living in the US are deeper in debt than ever in our history.
While most episodes generally focus on one central idea, today is more a stream of consciousness. We'll discuss everything from the struggles of running a business, to Metroid, to social media addiction, to Cobra Kai. Grab a drink and let's hang out.
I've begun to find that, in so many cases, the basic, boring path - for learning a skill or achieving some result - ends up being the correct one. It's not the fancy twelve-point program that costs $899 to unlock. Nope, not even close.
It's time for another Q&A. This week, we'll discuss everything from how I'd build Laracasts differently today, which controversial ideas I subscribe to, reflections on having a two year old child, and, of course, code editors...
Too many ideas and practices in programming are accepted as basic truths. "Don't do it like that! It's dirty." What I'm concerned with is who gets to determine what is and isn't acceptable code to write. Today, I'd like to share four common practices and ideas that I tend to disagree with.
You've seen the same headline all over the web: "This one technique can triple your income overnight." Really? And I only have to click through your article, split into fifteen pages full of ads? Where do I sign up!? But what if there was a simple technique to drastically improve your chances in the job market?
In this episode, we'll begin with a five minute discussion of Home Alone, because I know my audience - and that's what you're truly craving from me. Then, we'll move on to a variety of realizations I've come to 2017 - and they're not all related to code.
From time to time, I'll come across discussions related to the best approach for teaching aspiring developers. And it never fails: there will always be those who recommend the driest possible introduction. Forget excitement and curiosity, as they see it. They don't factor into the equation. Wait, what??
When exactly did developers get it in their heads that to colors outside of the lines is an offense worthy of banishment? And who invented these lines in the first place? They don't exist. They never did.
We all have the tendency to reach for our pitchforks upon hearing information that doesn't line up with what we've decided to be true. How does this affect the coding tools and practices that we defend so vigorously?
In the previous Laracasts Snippet, we discussed social media and how it tends to have a draining effect on me. Let's continue that conversation today, but more from the point of view of solving the problem. What specifically am I doing to increase my mental/physical energy levels?
I've been noticing lately that I feel mentally drained at the end of most days. But strangely enough, it's not the code I write that causes this. No, instead it's the day-to-day social media interaction that drains me. Why again are we participating in platforms that actively encourage addiction and negativity? And why are we okay with checking our phones a hundred times a day?
Developers have come to dread interviews. What sort of silly, gotcha question that has nothing to do with building web apps whatsoever will I have to stress about this time? If I were hiring a new coder, I'd asking them an almost laughably simple question...
I noticed something this morning: the developers I most frequently disagree with on Twitter place code acronyms in their bio. SOLID, DDD, etc. On the flip side, the coders I most respect nearly 100% of the time never do. How come? Let's talk about what this might indicate about the type of developer you are.
I recently published a short video on what I refer to as "visual debt." Shortly after, the critical tweets began to roll in. How dare you propose that all of these keywords and types and interfaces add noise, they declared. Well, let's talk about it...
The Single Responsibility is both simple and complex to comprehend at the exact same time. In fact, many people find it to be so vague to the point of being worthless. Let's talk about that in this episode, while reviewing how I personally interpret the advice for my own projects.
Moving to a new server while upgrading to the latest version of a framework is always a scary thing. Even the smallest change can send you down a two hour rabbit hole, as you search for a solution. In this episode, I discuss my basic process, as well as the tools I prefer.
Today, we're discussing my personal workflow, when planning a new conference talk. Unfortunately, it's never quite as simple as opening your presentation app of choice, and typing away. Any typical conference talk likely took months to prepare.
"Don't use tools," they say. "It won't exist in a few years, but these design patterns will." Of course, the argument is that, if you dedicate any time at all to embracing libraries and frameworks that actually allow you to get the job done, you're somehow, as a result, doing yourself a huge disservice.
In the last six months, it has been made very clear to me that, for better or worse, we're all parrots. Whether tech, or politics, or religion, or programming, this can't be denied. How do we fix this?
Let's take a break from code this week, and talk about the person behind the code. When I found out my wife was pregnant last year, a million different thoughts and concerns went through my head all at once. Having your first child is like nothing you've ever experienced before. If you have one on the way, here's what to expect...from a male's point of view.
Over the years, I've come to realize that, what folks advertise and say they do, often bears no resemblance to what they actually do. Consider the broke financial advisor, or the event sourcing evangelist who sticks to basic CRUD and Active Record for their own projects, or the TDD expert who secretly doesn't TDD. The truth is that folks advertise what they're excited by. And, too often, what excites us is what's new and undiscovered.
At all times on social media, we are surrounded by folks at the top of their game. With so much genius and success circling us like hawks, sometimes it can get you down. Even worse, around this time of year, there's so much talk about "crushing it" and "10x'ing" it.
When it comes to open source code, how exactly should you decide what to build? Will anyone even care or want to use it? Who knows! But, maybe, a secret gold mine will reveal itself, once you ask a simple question.
Today, we're exclusively discussing the new Laracasts refresh. I talk about what I've learned in the 3-month process, interesting techniques - both front-end and back-end - that I leveraged, as well as why I spent more time simplifying, rather than complicating.
We're all over the place today. If you're walking the dog or on your way home, tune in as I discuss everything from Turbolinks, to my annoying, broken bank. I also provide a few updates on the Laracasts refresh that I've been working on for the last few months.
My favorite sorts of people are the ones who allow themselves to get carried away over simple things. It's contagious. I dare you to listen to an incredibly passionate fan, of any possible thing, and not be pulled in and inspired by their excitement. Society refers to this as nerd culture, which I find a bit dismissive and critical. If "nerdy" translates to "someone who can't help but get excited," then count me in.
Lately, I've been making more of an effort to focus on my energy levels, and how to maximize them. If your energy levels aren't where they should be, then any desire you might have had to finish up that side project goes out the window. This is paramount to our financial and happiness goals, so why isn't it at the top of our priority list?
Lately, I've been forcing myself to journal tiny dev realizations I have, as I work on various projects. How often have you hit a roadblock, switched to Stack Overflow, found a fix....only to completely forget it six months later, when you encounter the same problem again?
When you have a full-time job, it's far too easy to ignore that side project or business that you've had your eye on. Think about it: most projects never come to completion. How come? And, more importantly, what little steps can we take to ensure that we don't fall into that same trap.
A few nights ago, I was fast asleep when, all of the sudden, the building's fire alarm went off. It definitely woke me up, but I didn't respond in the way you might think. My instinct was to ignore it entirely. How come? And why is this also often true for the tests you write?
A decade ago, I was taught that the beauty of CSS is its ability to completely alter the presentation of a website without touching your HTML. Yeah... "you never have to touch your HTML again." Sounds great, right? Too bad it's BS.
Sometimes, the appropriate and responsible thing is to throw it all out and start again. Now, of course, not everyone has this luxury. Business requirements and deadlines often make these sorts of things impossible. However, is this true for your own business, or your own open source projects? Sometimes, that muddy code or CSS you wrote three years ago is begging to be deleted. How much better could you write it, knowing what you know now?
Recently, I've been updating a book I wrote a number of years ago. Over and over again, I found myself hitting the delete key. References to bad practices and SRP were laced throughout every chapter. How could I have been so arrogant?
Today, we're discussing the importance of building little projects for yourself. Whether it's a podcast, or book, or web app, pick something and force yourself to see it through to completion. Along the way, I'll tell you about my completely rewritten book, and why I'm so excited to share it this time around.
Last week, we talked about development trends - and how they sometimes have a tendency to make developers feel as if they're falling behind. "These are the new trends of 2016! Get to the mall, stat!" Today, let's continue the discussion a bit more. Will this new trending architecture bring you closer to launching the project of yours that's been sitting at 90% complete for a year now? Maybe...but maybe not.
If you think about it, every single year, certain development trends take the community by storm. Whether repositories, or service classes, or the command bus, this is undeniably true. Let's talk about it.
We have enough data to show that the typical 9-5 work day schedule is entirely arbitrary. The reality is that humans simply aren't good at holding their attention for such long spans of time. So - with a two-week-old baby in my house, I've begun re-thinking my work schedule. Is it possible that we can get the same amount of output from two hours of work, two times a day?
If I were to pick my most favorite aspect of programming, it's this: no matter how difficult or confusing a bug/feature/refactor may be, if you stick with it long enough, you will figure it out. Every single time.
I'm a big fan of the tv show, "30 Days." I even apply it, at a lower level, to things in my own life. Whether it's contributing to open source every day for a month, or working out six days a week for a month, I've done a bunch of them.
Whether we like it or not, humans have a tendency to insert themselves into small communities or factions. In the coding world, it's certainly no different. And that's specifically why it's so important that we think long and hard about which tribes we choose for ourselves. That single choice can have huge ramifications, when it comes to how we approach and think about code.
I use task apps religiously for, mostly, two specific reasons: I want permission to forget about it, and I believe the process of checking off items gets you in the habit of being productive for the day. Listen to me ramble, if you'd like to hear more.
We forget that there was a time when the terms "introvert" and "extrovert" didn't mean anything to the common person. Naturally, the internet has shined a huge spotlight on these personality types, but, yeah, a decade or so ago, things were a bit different. Some of us thought we simply awkward, detached individuals.
The vocal consensus in the PHP community seems to be that, unless a class is perfectly unit-testable in isolation, it's inherently poor code - and in need of refactoring. But are we sure this is true? Let's talk about it.
If you're a developer launching your first product, it sometimes easy to forget that it's now exclusively your job to tell the world. Luckily, you don't have to reach into your pocket and spend thousands of dollars to get the word out; there are free - and more effective - alternatives.
In the early days of my coding career, I had a tendency to spike things out. Go fast, toy around, get it to work, and then hit deploy...all while quietly saying to myself, "I'll go back and clean this up later." But I rarely actually did...
What do "PostRepository", "TooManyMembersException" and "StaticallyTriggeredHydratorFactoryInterface" all have in common? The suffix! Are you sure that you really need to tack on the name of the pattern to each class?
The topic of discussion for this episode is a pet peeve of mine: treating developers like children. "Bobby, you're likely to cut yourself, so, no, you may not use sharp knives." Is that really the type of community we wish to foster? I hope not.
So you're a developer planning to launch your first SaaS or subscription site? The business side of things get really complicated... really fast, right? In this episode, I rattle off ten tips and notes to be aware of, as you prepare for launch.
One of the things I've been tinkering with these last few days is a mechanism for performing Russian-Doll caching in Laravel. In addition to determining if I can even make it work, I've been pondering whether this truly has a place in your future projects, or if there simply isn't enough value to warrant its usage. Who knows - let's talk about it.
An interesting question popped up recently. Should college be mandatory for your children? We all bring our own pasts and experiences to the table, when a question like that pops up. Here's what I think...
Remember, back in high school, when your English teacher prescribed countless rules and techniques for writing well? Remember how we all quietly applied these rules? Why not? Who are we to disagree at that age? However, fast forward a half-decade or so, and you start to realize that so many of these "rules" are simply...gibberish. Does that remind you of any other industry?
Even a site as innocent and helpful as Laracasts has had its fair share of malicious users. It's a simple fact of the business. Are you lucky enough to have built a relatively popular product? Excellent! Now, get ready for the attacks.
Particularly when building open source tools, I think it's important to remember that the 100% goal is wrong. Or, in other words, when you repeatedly make compromises to make everyone happy, it might just turn out that you've made no one happy.
Rather than big New Year's Resolutions, I prefer to make three simple lists. Prioritize the things you love to do, incentivize the things you need to do, and optimize the things you hate to do. It's cheesy as hell, but stay with me...
There's no two ways about it: taking things too far is simply a rite of passage. Whether it's developers over-evangelizing microservices and command-oriented architecture, or guitar players forcing newly learned modes into their solos, we all take it too far...before finally pulling back.
So my wife and I recently took a trip into Nashville to see Amy Schumer perform. And wouldn't you know it: the moment we arrived, Bugsnag began sending me error reports. No laptop, and two hours from home. ...Crap.
90% of developers don't test their code. Made up percentages aside, I think you'll find that this is fairly accurate, when you gather the entire development community. How come? With so much evangelism across the board, what's the reason behind this hesitation?
The concept of mental debt is something that developers never talk about. We're obsessed with pointing out technical debt, but isn't there value in worrying about our limited mental energy? There's only so much complexity we can take in.
Making the transition from employee to business owner is, to be frank, scary as hell. If you're not careful, you'll freeze. The "what ifs" will quickly assume command, and you'll once again fall back to the safe path. But, if you can fight it, there just might be something better on the other side.