This is a recap of the Twitter #eggheadChat Q&A with @kyleshevlin from Dec. 11th, 2019.
Q1: What’s top on your list of things to learn for 2020? #eggheadChat
How to build a product of my own and ship it, it’s one thing to build web apps, another to have the courage to make your own and get it out there
Habit formation? I need some better habits😅
Woodworking, starting that house hunt this month, ready to build some stuff
Q2: I’ve seen you do some great talks. What tips do you have for tech speakers? #eggheadchat
A2: Get years of practice in front kids as a church camp counselor and then a pastor?!
Real tips: remember people want you to succeed, they are rooting for you to succeed, not against you. Practice, in front of a mirror, with friends…
1/ Record it, seriously, you might hate it, but you learn a lot about yourself by seeing yourself. Lastly, have some passion in what you’re talking about. If you don’t care, the audience will know. If you care, they’ll know too.
Try your best to know your topic well enough you can talk about it casually in case you drift off your intended words. I find that helps you get back on track, or improvise when someone maybe asks a question or a demo doesn’t work
Lastly, I think it helps if you can get a little bit of an attitude about it. You don’t need to show others, but a little internal, “Fuck yeah, I got this” goes a long way. Just a little bit of cockiness to overcome the nerves. Works for me at least.
Q3: How do you prioritize what to learn and/or teach next? #eggheadChat
A3: In all honesty, it’s mostly based on what I’m interested in. Doing the work of content needs to be compelling for me (cause it’s not a habit yet), and finding stuff that I like makes me far more likely to succeed.
As far as learning goes, I love everything. I just love knowing as much as I can, there was a show as a kid I loved called the Pretender, child prodigy grows up to be any job he wants on any day, I wanted to be that smart (minus being exploited by an evil corp).
Q4: When do you decide to reach for xstate? Is there a certain size of project where you start thinking you need it? #eggheadChat
A4: I think it’s one of those tools that once you learn it, becomes a hammer and everything is your state machine nail, because while it seems like overkill, you can’t screw it up. It’s essentially bullet proof.
I reach for it when it’s clear what I’m doing is stateful with defined transitions. I use a lot of enums (objects or Maps) for patterns in my code to begin with, expanding it to be a machine is just a natural progression.
I’ll say this, if people would learn to enumerate, instead of imperatively mutating and conditional branching every where, they’d quickly find they are able to simplify their code quite a bit. One of the lessons of the new course kinda goes into this, but it deserves more lessons
Q5: What have you learned from playing golf that applies to being a web developer as well? #eggheadChat
A5: Golf, as well as other sports, taught me that life isn’t about enjoying every moment, it’s about the process of improvement and the gains that come from it. It also taught me the closer to the top you get, the harder it is to get to that next level.
It also taught me to be humble. I put my 10K hours into that game, I busted my ass at it, and i’m still not as good as I wanted to be. I needed to be top .1% in the world to make a living at golf, I can be a bogey-golfer web dev and still make a good living
Q6: What got you interested in algorithms and data structures? Especially as a 2nd career dev. #eggheadChat
A6: 2 things, credit definitely goes to @holtbt and his 4 semesters of CS in 6 hours course on @FrontendMasters It taught me that DS&A isn’t scary. Second, I was getting my butt kicked in so many interviews it was embarrassing.
I wrote pretty much only Rails templates and Sass my first two years as a dev and was woefully unprepared when I was trying to move into JS. I failed a lot, but learning some fundamental DS&A helped me learn how to succeed and made me a better dev I think.
you know, I’ve actually used graph algorithms and tree traversal algorithms in my real work for @webflow so I think it’s been worth it to learn ha.
Q7: CSS #eggheadChat
A7: I love CSS. My first two years as a dev were pretty much all HTML CSS/Sass. I worked at an agency and had to build everything from scratch, all custom stuff, crazy as grids (with floats, no flexbox or grid). I even wrote a few Sass libraries. I feel fortunate I started that way.
've never really understood people’s loathing of it. It’s got quirks, sure, but more often it’s a misunderstanding of what you’re trying to accomplish. That said, I love CSS-in-JS, emotion is my jam, that css prop, YASSS love it.
Actually, to this day, I have never used Bootstrap, Foundation, Material Design, any open source public style system thing-a-ma-bob. It’s never been the kind of work I do, and i’m pretty fast with styles for my own projects too.
Q8: What was your css guide #eggheadChat
A8: Ummm, the designers? I’d get these crazy designs and just had to build it, pretty much no matter what. It took me a while to have the knowledge and clout to say “Hey, we can’t do that, it’s currently impossible”
I’d say in the beginning I read a ton of @css and @codrops and just other sites that were more CSS focused. Frontend at the time really meant more that, markup and styles, now Frontend really means Client-side
Q9: What’s your content creation process look like and what types of things do you use to inspire your “teaching style”. I’ve always enjoyed how welcoming and clear you are.
A9: My content creation process is honestly pretty off the cuff. I constantly am seeking inputs from lots of sources, podcasts, blogs, books, people, and things just start to strike me as compelling to write about. So most of the time it’s that.
1/Now, as I’ve gotten into teaching, I try and take more of the problems I face in my work and boil them down into something teachable, like the tweets I do with the little code snippets and stuff. All of those are based on something real I’ve dealt with.
As far as welcoming goes, I’m just trying to be a good person. I think that’s what we all should do. I don’t understand people that would gatekeep others, or shun them. Literally, none of us are getting out of this life alive, might as well be good to each other.
Lastly, as far as teaching style goes, I actually don’t keep complex things in my brain super well without breaking them down into their simplest forms. Lucky for me, I’m kinda good at that, and I think it resonates with people that I’m able to distill and simplify things well.
Q10: Meta! How to teach? When are you ready to teach something?
A10: Teach before you’re ready. Seriously. The way to really know something is to teach it, and as you teach it, you become more aware of what you don’t know. Teaching over time eliminates unknowns and leads to better mastery.
Q10.1: Thank you!
What about the nay-sayers? What about the downvotes, what about the hackertwitstagrambookers that go “well-actually”, and what about the criticisms that end up being actually techincally correct? Are those pieces of proof that one should not be teaching?
A10.1: Pardon my French, but fuck 'em. Seriously, fuck every hater out there.
There’s a difference between being wrong and corrected. You grow, everyone gets better. That’s fine.
I ain’t got no time or energy for someone just being mean. You shouldn’t either.
Also, there is no proof you shouldn’t be teaching. Teach because you want to share, not because you are or aren’t naturally gifted at it. Because guess what, you’ll get better the more you do it. You know how practice pays off
Q10.2: “There is no proof you shouldn’t be teaching” is quite different from the (assumed? implicit?) status quo of “teachers are people who are experts at the matter” combined with the (assumed, implicit?) “experts make zero mistakes at the matter”. And sir, do i like that attitude.
A10.2: I think there’s a difference between instructors and professors. Haven’t you met profs who were bad teachers? They’re experts but don’t know how to convey that information. Where as an instructor practices effective transmission of knowledge. Be an instructor.
Q11: What’s something outside of web dev that you would like to learn? #eggheadChat
A11: I really want to become a really solid wood worker. I spent an inordinate amount of time watching woodworkers on YouTube and I draw up sketches of furniture I want to build for our home. I could see myself making videos about it and doing that in the future.
*spend, like seriously I follow like 50 wood workers on YouTube. I remember geeking out with some people about our favorite ones at a conference this summer. Was a blast.
Q12: What is a topic that you don’t teach today, and would love to be able to teach in the future? (and why) #eggheadChat
A12: One of the ones I’m most excited to teach is some combo of Refactoring and Working with Legacy Code in a course form. I don’t know about others, but I work in code all the time that I don’t fully understand or find difficult to change. Those books have helped me grow a lot!
I’m always drawn to ideas and concepts that help me do my work better that are language agnostic, and I think that topic fits that mold. Can you imagine 1000s of devs getting better at refactoring, or writing good tests? I think that would be awesome.
Q13: Have you been in a position where you needed to hire someone? If so, what qualities do you look for when hiring? #eggheadChat
A13: I’ve never hired someone, I’ve done some interviewing, and truthfully, I think I’m a pretty average interviewer. I’m good at facilitating conversation, I’m naturally skilled at that, but I’m not some keenly insightful person on first meeting.
I’m also hesitant to give strong yes’s and no’s. I will say this, doing code review back and forth has helped me a lot. If i’m reviewing a take home, how they interact with me, especially when I offer feedback, that makes a big difference.
I will also say this, a part of me has wondered what it would be like if you could hire your “dream team” of devs. What would it be like? What product do you think you could come up with. Might be a fun mental exercise to do sometime.
Q14: How do you deal with deadlines given some solution might require initial time investment? #eggheadChat
A14: Rip out scope ruthlessly. I’m a notoriously bad estimator, think most of us are. But, from day one, you should be prioritizing what is most essential to what you’re building. Be ready to divide a feature into stages, and explain it well to your project manager.
Q14.1: How you phrase the discussion with manager/team it’s hard to predict when change is very fundamental in terms of overall process & team estimation thinking … given one has POC
Also u can’t predict how well this will work…
A14.1: I mean, no one can predict the future, learning to talk about it is important. I recognize there might be some cultural differences at play here, but that’s what I do. I talk with my PMs frequently, I push back on things they want and we can’t do right away.
Q14.2: Well said thanks how do you respond manager saying it’s out my hands (something around the lines) or we will have to re-estimate stories but no objection fundamental change/POC u proposed
A14.2: Sometimes you just gotta bite the bullet and try. In those situations, there was a failure far earlier in the project than when it got to you. You gotta start figuring out how to fix that problem to change what happens in the future.
Q15: Do you typically teach things you already know or do you learn-to-teach? #eggheadChat
A15: With State Machines it was definitely learn to teach because I wanted to know them and wasn’t getting a chance to do them at work. Now I know enough to be persuasive and might get them into work. The other two courses have been mostly guided by my own interests.
A16: No, but they are in my tech spec for an upcoming feature as an option and since I’ll likely build most of the feature, there’s a good chance it’ll make its way in