エピソード

  • The path of teaching yourself to code isn't for the faint of heart. It takes consistency, discipline, and the ability to recognize you're actually making progress. Tutorials are an excellent tool, but they are also a trap.

    If all you do are tutorials, retaining the skills you learn is going to be extremely difficult. Without applying those skills they aren't going to become ingrained, and you aren't going to see how they're used in context. You also won't make progress if you aren't being consistent. Without consistency, your skills will fade and when you start coding again you'll have to relearn things instead of advancing on to more advanced topics.

    In this episode, Tiger Abrodi chats about how he uses projects, habits, and self-assessment to consistently advance his skills as a programmer.

    HomeworkTake 20 minutes to do a little self-evaluation and assess how well your professional growth as a developer is going.Write down some specific habits that you want to develop to help you with your goalsGuest: Tiger AbrodiTwitter: @TAbrodiGitHub: @tigerabrodiWebsite: tigerabrodi.techHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • It's easy to become entrenched in what you already know how to do. You might have a fun project idea that requires creating really awesome CSS animations, and it might seem out of reach if you haven't done anything like that before. But getting through that mental block is an extremely rewarding experience. You gain technical skills and improve your general problem-solving abilities.

    If you've ever struggled with side-projects, check out this episode where you'll learn how Jhey Tompkins never seems to run out of things to build and get his expert advice on how he problem solves.

    HomeworkStart keeping a list of every random idea that you have. Use the list for project inspirationResources@beesandbombs - cool animationsGuest: Jhey TompkinsTwitter: @jh3yyGitHub: @jh3yWebsite: jhey.devHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • エピソードを見逃しましたか?

    フィードを更新するにはここをクリックしてください。

  • Scott Moss is a retired Navy Veteran who made the career change into software engineering after becoming a father. His journey wasn't an easy one, and as a dad, he had to learn many lessons in work-life balance.

    For us developers who have kids, his struggle is one that almost all of us can relate to. This industry has an extremely high ceiling, and there is a culture of grinding every day after work in order to make it big. It's easy to fall into the trap of thinking "this is what is best for my family", you have to ask yourself is it worth the sacrifice of losing that time with your kids, and are you doing it for them or are you doing it for yourself?

    Though it doesn't have to be all or nothing in either direction. There are strategies you can put into place that will allow you to reach your goals in both your work and family life. But it's going to require self-awareness, emotional availability, and good time management.

    So check out this episode If you want to hear more about Scott's story and get advice on making family life work while still succeeding in your career!

    HomeworkSit down and record every single minute of your day for the next week. At the end of the week review and see the time that you wasted on things that add no value to the goals.Guest: Scott MossTwitter: @scotupsGitHub: @HendrixerHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • There is a diverse range of philosophies when it comes to CSS. Settling on something that fits the needs of your team and application can be a real challenge. Mark Dalgleish, the co-creator of CSS Modules, has been working on an option that might make that choice less of a challenge!

    Vanilla Extract is kind of like "CSS-modules in TypeScript", allowing you to write CSS in your TypeScript, with locally scoped variables, and generate static CSS files on runtime. If you're interested in getting a deeper look, as well hear more about design systems, CSS in JS, and CSS Modules, check out this episode!

    HomeworkFollow along with this blog post - Use CSS Variables instead of React ContextCheck out Vanilla ExtractResourcesVanilla ExtractPlayroomBraidA Unified Styling LanguageGuest: Mark DalgleishTwitter: @markdalgleishGitHub: @markdalgleishHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Whether you know it or not, we all have a "personal brand". It's the summary of the part of yourself that you present to the public. And while there are negative connotations to the term, it doesn't have to be that way.

    Building a personal brand for yourself is a very useful tool for cultivating a community of like-minded people. But it's not a quick process, and it's not something that you can hack if you want the real thing. In this episode, Josh Comeau chats about how he grew a community and reputation around CSS, and how the lessons he learned can apply to you.

    HomeworkTake an hour to draft a blog post in markdown without worrying about how you are going to build your website.ResourcesHow I am so productive001 jsAir - Learning and Developing JavaScript with Ashley G. Williams and Kyle SimpsonGuest: Josh ComeauTwitter: @JoshWComeauGitHub: @joshwcomeauWebsite: joshwcomeau.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Constantly learning is something that we all have to do as developers. If you're a JavaScript developer then chances are CSS is something that hasn't been easy to learn for you. It doesn't have the error messages JS does and when things go wrong you can have no idea what's even happening.

    Well in this episode Josh Comeau gives us some effective strategies to not only learn CSS, but to learn any library, language, framework, etc that you might want to know!

    HomeworkAfter solving a problem you were stuck on, take about 10 minutes to dive in deeper to understand why it worked the way it did and why your solution fixed itResourcesCSS for JavaScript DevelopersJosh's BlogHow To Learn Stuff QuicklyWhat the heck, z-index??Guest: Josh ComeauTwitter: @JoshWComeauGitHub: @joshwcomeauWebsite: joshwcomeau.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Side projects are important in our line of work. They sharpen our skills and sometimes they can even take off and lead our career in a new direction. But seeing people create these amazing projects over a weekend can be demotivating as a junior developer. "How can they do that when I'm five days deep into a todo app? What do they have that I'm missing?"

    The answer might be a disappointment to some, but often it is because they have 10+ years more experience than you do. But don't let this demotivate you! You don't lack intelligence, you just have more experience.

    If you want more advice on side projects and dealing with the influence of others, then listen to this episode where Stephan Meijer chats about how he switched from an architecture career into tech, side projects, and how to be true to yourself and your goals.

    HomeworkTake 10 minutes to think about how the advice that you've given to somebody recently may have influenced the direction that they're going in their life.Take 10 minutes to think about how the advice that other people have given you has influenced your own direction and consider whether you're happy with that directionResourcesMy Career and Lessons Learned in a NutshellGuest: Stephan MeijerTwitter: @meijer_sGitHub: @smeijerWebsite: meijer.wsHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • We have to remember that we are all human beings with social and emotional needs. Our career suffers when we fall into a pit of negativity or when we put up mental barriers that prevent us from interacting with people we might've wanted to talk to.

    In this episode, Tracy Lee chats about the importance of remembering that everyone, even the awesome people speaking at the conference are all human. When we idolize people it's easy to fall into the trap of thinking they're "better" than we are. We might miss out on opportunities to speak with them out of self-consciousness.

    Tracy also addresses how general negativity can impact our careers. She cautions against doom scrolling on Twitter and gives us some great strategies on how to surround ourselves with positivity, without burying our heads in the sand to the problems in our world.

    HomeworkThing of a specific positive thing and share it with somebody!ResourcesThis Dot Labs is hiringThis Dot Labs meetupsThe Power Of BadGuest: Tracy LeeTwitter: @ladyleetGitHub: @ladyleetWebsite: thisdot.coHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Building our apps to be accessible is absolutely necessary, but building a great a11y friendly experience is extremely challenging when we ourselves aren't in a situation that requires the use of a screenreader is keyboard-only navigation.

    We can't fully rely on tools to audit the a11y score of our apps. With the challenge being distinctly human, computers aren't able to get a complete picture.

    That's why it's necessary for you to use these alternative methods for web navigation yourself. Try navigating your app's pages blindfolded while using a screen reader, or trying to just use the keyboard. If you find your website is unusable, consider it a bug. Accessibility is not an enhancement.

    So if you're curious about what you can do to make your apps more accessible, check out this episode where Sandrina chats about methods that you can start using today.

    HomeworkImplement one of the following options in your app:Disable all of the CSS and see if your app still makes sense visuallyUse your app in direct sunlight. Spot any contrast issuesNavigate your app with only a keyboardBlindfold yourself and try using your app with a screen-readerResourcesWeb Content Accessibility Guidlines (WCAG)a11ysupport.ioContrast CheckerGuest: Sandrina PereiraTwitter: @a_sandrina_pGitHub: @sandrina-pWebsite: sandrina-p.netHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Everything that developers do is DX (Developer Experience). But, it can be hard to know when it is appropriate to spend the time to improve the DX at your workplace. You also might be curious about what you can do to enhance the DX.

    Repetitive tasks are an easy one to look out for. If you find yourself doing something again and again it's probably worth automating. This could come in the form of tests, scripts, generators, and snippets! For example, if you find yourself having to test some state that takes multiple steps to reach on your website, try using Cypress to automate reaching that state!

    If improving your DX sounds interesting to you, check out this episode where Ian Sutherland chats about a variety of practical things you could be doing to enhance it.

    HomeworkAutomate a tedious task that you have to do oftenResourcesXKCD Automation ChartGuest: Ian SutherlandTwitter: @iansuGitHub: @iansuWebsite: iansutherland.caHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • "I should really get more involved in open-source" is something that's always on the back of our minds. You are fully aware of how rewarding it could be but that perfect opportunity to contribute never comes up.

    Ian Sutherland, a maintainer of Create React App and contributor to NodeJS, used to be in that position. He had always struggled with getting into open source, he wanted to do something substantial but nothing ever came up. One day, he noticed a tiny bug in create react app. Ian quickly fixed it and put in a PR. Once he was past the first PR barrier, making additional ones was so much easier.

    Fear is a big barrier to entry. People are maybe afraid they're going to do something silly, make a silly mistake and look foolish, but you really have to get over that as well. To get over it try to start small. When you start small, what was once a mountain to climb is now a hill. The stakes are much lower and success is still extremely rewarding!

    Sometimes, getting involved can happen organically through opportunities from people you meet. Ian got involved with Node randomly at the Vancouver Node Interactive Conference during a collaborator summit. And an open-source raid group was formed in Kent's discord where they collaborate on helping out with various open-source projects. So remember that you don't have to do it alone, and look out for opportunities with others.

    HomeworkNext time you are hesitant to try something new, try starting smaller!ResourcesHow to get experience as a software engineerNodeJS Tooling GroupKCD DiscordGuest: Ian SutherlandTwitter: @iansuGitHub: @iansuWebsite: iansutherland.caHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Vlad Magdalin is the founder of Webflow, a powerful visual development tool that enables people to create professional websites without writing code. Webflow is on a much lower level of abstraction than something like Squarespace, and users still need to understand the core fundamentals of web development.

    You might think that tools like these are going to take jobs away from developers, but it actually does the opposite! When innovative technologies allow more people to do work that was once restricted to experts, it benefits everybody. That's what the no-code movement is about. Removing barriers, and giving development power to non-experts.

    As developers, we'll be able to collaborate better with designers and other team members. And with the increased output of surface-level webpages, there will be more demand for developers with a deeper skillset.

    HomeworkTeach a non-coder one coding related topic without using codeResourceswebflowGuest: Vlad MagdalinTwitter: @callmevladGitHub: @callmevladHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Teaching what you know is a great way to give back to your community, grow your reputation as an expert, and to even make some extra income. But, just because you're an expert doesn't automatically mean you'll be able to effectively transfer your knowledge and skills to others.

    Taylor Bell works for egghead, and one of his main focuses is helping instructors plan courses through an academic discipline known as "instructional design". Specifically, the "Understanding by Design" methodology is used. This process ensures that instructors are able to effectively teach what they know and be confident in learners retaining the knowledge.

    From a high level, it's a three stage process of determining the desired results, determining the evidence that proves the learner is achieving those results, and developing a plan that results in the learner being able to apply what they've learned to other scenarios.

    So if you're interested in writing better instructional blog posts, recording better videos, and just becoming a more effective teacher in general, check out this episode!

    HomeworkThink of something that you could teach to somebody else, and try to frame it in the three stages of UBD. Email Taylor your homework - [email protected] by DesignMake It StickGuest: Taylor BellTwitter: @taylorbellGitHub: @tayiorbeiiWebsite: taylorbell.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • TypeScript has been taking over, and for good reason. Have you ever had good end-to-end or integration tests that ended up being invaluable during some refactoring? You can think of TypeScript in the same way. It's amazing when it's done well, but when done poorly it's misleading and a huge headache.

    Because of this, migrating to TypeScript is not a magic bullet. When converting large pieces of code from JavaScript to TypeScript you need to be cautious about typing things correctly, don't be afraid of using unknown and moving on if you're unsure.

    In this episode, you'll learn more about these realities of working with TypeScript and why it's all totally worth it!

    HomeworkTypeScript Users: Take a look at five interfaces you wrote recently and see if you can refactor them to make them easier to read for the next person.Non-TypeScript Users: Think about the last complex code that you had to interface with and whether it would have been easier to interface with if it had types.Guest: Daria CarawayTwitter: @dariacarawayGitHub: @darcar31Website: dariacaraway.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Software development has always been a fast-paced sector. New and better technologies are constantly coming out and if companies don't keep up they'll soon be out of date.

    Daria has experience with multiple teams who were upgrading their stack, and through that has discovered joy in being a generalist who is capable of working with a variety of technologies and able to see the big picture.

    She has found having a generalist skillset both keeps her interested and gives her the ability to communicate with the front and backend teams in ways they both understand. With her ability to understand the different levels and keep everyone on the same page she is on the path to becoming an effective engineering manager in the coming years.

    "Generalist" doesn't just mean full-stack developer, there are many more skill areas than front and back end. Maybe you could work on the CI pipeline, or maybe automated testing. There is a lot of value in choosing this path instead of building the deep knowledge of a specialist. They can't work in isolation, someone has to be able to coordinate and "be the glue" between the different parts of the stack.

    HomeworkTake five minutes to think about whether you want to be a generalist or a specialist, and then write down the three things you can do to get your career to go in that directionTalk to your manager about your career goalsGuest: Daria CarawayTwitter: @dariacarawayGitHub: @darcar31Website: dariacaraway.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Twitter and Instagram had a problem that would ordinarily be simple on smaller scales. They needed to be able to generate IDs on the order of millions per second. Twitter used a brute force method of having a triple-redundant service that generates the IDs. However, Instagram had the elegant solution of inserting a little script that could generate thousands of IDs per second but was sharded across 256 nodes.

    This illustrates that with the right abstraction for the job, you'll be saved a ton of time and resources. This has been Remix's philosophy.

    There was a lot of stuff that we have built in the current generation of web frameworks where the browser actually has a really good primitive already for that solution. In the same way that the spirit of React is "just use JavaScript", the spirit of Remix is just use the web. And in the process of using Remix, you are going to learn more about the web.

    So give Remix a try! And see for yourself the power that the browser gives you.

    HomeworkGo through this Remix tutorial - Super Simple Start to RemixResourcesunpkg: An open source CDN for npmremix.runDon't Solve Problems, Eliminate ThemGuest: Michael JacksonTwitter: @mjacksonGitHub: @mjacksonWebsite: mjackson.meHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • The JavaScript ecosystem is vast and solves a wide array of problems. Because of this, it is key that you have a foundational understanding of JavaScript if you want to be able to work across the JS spectrum.

    It is also helpful to know the layers of abstraction that are going on. Become familiar with what comes with the browser like the navigator API and what comes with Node like file system or assert. If you can understand these parts then it becomes easier to know how to use JavaScript in whatever context you are in.

    Inspiration is the most important thing when learning to code. Do what excites you. Without that fire, you are going to burn out when things get difficult. Try to build whatever sounds fun to you, and see how you can incorporate what you're trying to learn into that. Afterward, you can learn a lot by trying to optimize your project!

    Always strive to gain a deeper understanding of your tools beyond their applications. When you read specs and source code you'll become more familiar and be able to write much better code.

    HomeworkTake 30 minutes to dive deeper and try to understand how a tool you use works under the hood.ResourcesAdvice From A 19 Year Old Girl & Software DeveloperGuest: Lydia HallieTwitter: @lydiahallieGitHub: @lydiahallieWebsite: lydiahallie.ioGuest: Evan BaconTwitter: @BaconbrixGitHub: @EvanBaconWebsite: evanbacon.devHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • It's time to embrace ESM (ECMAScript Module). NodeJS is providing support for ESM out of the box. With ESM modules coming out of the experimental stage we're going to see a lot of packages begin to embrace it.

    ESM provides superior organization of your code by allowing you to more easily create smaller, reusable chunks of code. ESM gives you a "module scope" where not only are functions and variables available to each other in the same module but also allows you to explicitly make them available to other modules. There is also the Loader API that is currently in its experimental stages.

    In this episode, you'll also learn about more differences between ESM and CommonJS, and some of the challenges and potential problems of using native ESM today.

    HomeworkFollow along with one of the following blog posts:Super Simple Start to ESModules in Node.jsSuper Simple Start to ESModules in the BrowserResourcesMisunderstanding ES6 Modules, Upgrading Babel, Tears, and a SolutionGet Ready For ESMGuest: Titus WormerTwitter: @wooormGitHub: @wooormWebsite: wooorm.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Titus Wormer does a lot of work with natural language processing. He is the creator of Retext, Remark, and many many more open-source projects.

    In this episode Titus chats about his extensive open-source work, and goes a bit deeper into his ecosystem of natural language processing tools and plugins. You'll also learn about abstract state trees and their practical applications!

    HomeworkPlay around on astexplorer.netFollow along with Kent's blog post - Write Your Own Code Transform for fun and profitResourcesSponser Titus on GithubGuest: Titus WormerTwitter: @wooormGitHub: @wooormWebsite: wooorm.comHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev
  • Will Johnson used to work for call centers and factories, but he managed to make the daunting career change into tech. This especially isn't easy when you're clocking in 12 hour days. To make time to grow Will was waking up early, staying up late, and doing stuff on weekends.

    "It was very, very time consuming, but it was one of those things where like I knew if I got that one chance that all of this would be worth it."

    In addition to building up technical skills, networking is absolutely critical for landing a roll.

    "I knew that I had to network and meet people in the industry to advocate for me, because I knew that my resume wasn't going to have anyone beating out the door saying, 'Let's hire him.' Right? But as far as the process of building relationships was completely organic. There's not any strategy or networking books I've read. I just knew that taking people's advice, sharing things with them that they might find interesting, and following up with them was a good way to nurture a relationship with someone."

    "Growth hacking" style networking is disingenuous and suboptimal. It's about building genuine trust and relationships with people. When you have real trust, there won't be fear when they take the risk of referring or hiring you. To build those relationships just help people out without an expectation of something in return. Chances are you might be the person they think of when they need a podcast guest, a role needs filling at their work, etc.

    HomeworkFind somebody who has a need, and try to fill that need, whether it's on Discord or Twitter or wherever, without any expectation of reciprocation.ResourcesHow I Switched Careers Into Tech With No Degree In My Mid 30'sGuest: Will JohnsonTwitter: @willjohnsonioGitHub: @wjohnson85Website: williamjohnson.devHost: Kent C. DoddsWebsite: kentcdodds.comTwitter: @kentcdoddsGitHub: @kentcdoddsYouTube: Kent C. DoddsEpic React: epicreact.dev