Podcast: Play in new window | Download
Subscribe: Apple Podcasts | Spotify | TuneIn | RSS
It’s time for more cowbell as we have a special guest in the studio, Will Madison (@IAmWillMadison), join us as Allen finally gets tripped up trying to pronounce a name, Joe teaches us the value of practice, and Michael evacuates in a rainbow colored straight line.
Sponsors
- Airbrake.io/CodingBlocks – Try Airbrake *free* for 30 days _and_ get 50% off the next 3 months!
Survey Says
This episode we ask: Do you pay attention to 3rd party licenses?
News
- We say thanks to everyone that took the time to leave us a review
- iTunes: peteoshea, NOpcBuzzwords, Montimur, BusterInDallas, MrBimble, Haydxn, oran0007, ChannelZ13, Ram Kasyap, VirtuaBoza, Sravan Kumar Kilaru
- Stitcher: IikkaO. LeanWebStart, mains, TacticalPenguin, SuperGoodDave
- CloudFlare takes advantage of haveibeenpwned‘s API to let _your_ users know if they’re using credentials that have been compromised. (Security Now episode 652)
- Windows Server 2019 to feature Kubernetes and Linux support – (VentureBeat)
- Not to mention Docker on Windows now supports Linux containers on Windows side by side
- Think you know everything about blockchain. Listen to some use cases you might not have thought of – (MS Dev Show)
Practice Makes Perfect
What does it mean to be “good”?
The myth of the myth of the 10x developer
- Are you familiar with the notion of the “10x developer”?
- Looked at things like program size, time to complete, code performance speed
- Are those accurate measures? What’s missing?
- Original study was 12 devs with 7 years xp over a couple hours – what would have been sufficient?
- Original study is 50 years old, is it still relevant?
- Can one dev really be 10x more productive than another?
- Books like Peak, https://www.codingblocks.net/outliersOutliers separate knowledge from skill
- Knowledge is what you know (understand) and skill is the application of that knowledge
- You can’t have skill without knowledge
- Difference between knowing the SOLID principles, and being able to apply them
- Hot topics: 10x Developer, Hiring practices, 4 year degree vs Bootcamp
- Knowledge is easy to find on the internet, what about skills?
Be careful with side projects
- Side projects are great for learning, and for the cv but…
- Side projects require knowledge, skill, time
- Mixed incentives can encourage and codify bad habits
- Inefficient (Scrimmage vs Drills)
A little more on habits…
- Have you ever cussed in front of your grandma?
- Brains love short cuts, they don’t remember the algorithm for FizzBuzz – the remember the rules and re-generate the algorithm
- This is good, because it’s expressive – bad because of negative stereotypes, biases, and bad habits
- Want to break a bad habit? Recognize the cue or Change your scenery
- Books like “Blink” and “The Power of Habit”
Deliberate Practice
- Deliberate practice is a results driven feedback loop that requires focused attention.
- Researchers say it’s the best
- Playing your favorite song on guitar is not deliberate practice. Recording yourself playing your favorite song, grading yourself on the various skills involved, and then devising, executing, and measuring practices that specifically target those areas over time is deliberate practice
- Do you have 10 years experience? Or do you have the same year of experience 10 times?
- 5 rules:
- Intentional
- Improving and Appropriate
- Responsive
- Repetitive
- Not fun
How software engineers can practice
Do X for Y
Soft Skills
- Toastmasters, writing group, peer reviews, hackathons
Tools
- Static Analysis, peer programming, reviews
Coaching
- Interviewing.io
- Architecture Diagrams / Setup
- But before you jump in…you should really design your exercise around your you
- 0. Identify your goals
- 1. Map the relevant skills
- 2. Assess skills independently
- 3. Identify a high value target
- 4. Design an exercise
- 5. Do the exercise
- 6. GOTO: 2
Tips for practicing
- Beware of “flow” – nice way to get through the work week but skills can stagnate
- Should see things moving up and to the right immediately
- What about the things that are hard to measure?
- Software Engineering is not unique in this!
- How do other fields do it? (Coaching, Mentoring, Peer Review)
- Deliberate practice is specific, don’t ask me how your code “is” – ask how your variable names are, or if your architecture is scalable
- Book “Practice Perfect” has 42 great tips
Mentoring tips
- Make a plan, stick to it
- Call your shots
- Encode success
- “Get a whistle”
- Come up with a name “SOLID” or common design patterns
- Save the discussion till later
- Don’t forget to measure and utilize
Resources We Like
- https://www.codingblocks.net/practice
- Peak: Secrets from the New Science of Expertise
- Outliers: The Story of Success
Practice Perfect: 42 Rules for Getting Better at Getting Better- Blink: The Power of Thinking Without Thinking
- Grit: The Power of Passion and Perseverance
- The 6 Figure Developer
Tip of the Week
- Krypton – Store your SSH and PGP private keys on your phone
- Sourcegraph for GitHub Chrome extension (Chrome Webstore)
- Will Gant talks about the benefits of learning other programming languages on Junior Dev Podcast episode 11
- unpkg – A CDN for everything on NPM
- Example uses of unpkg on GitHub
- Titan Fitness A2 – an affordable motorized sit/stand desk (Amazon)
- Azure Cloud Shell – A browser-based shell experience to manage your Azure resources