The Pragmatic Programmer (Sept/Oct 2021) #305
Replies: 4 comments
-
Chapter 1Respond in this comment thread (if we can) and lead your answers with T1, T2, etc. Topic 1 (T1) It's Your LifeHow do you keep yourself open to change and growth within our industry? Topic 2 (T2) The Cate Ate My Source CodeWhen you take responsibility for an error, how many corrective options do you like to provide? Topic 3 (T3) Software Entropy"Software Rot" or "Technical Debt", which term do you like better and why? Topic 4 (T4) Stone Soup and Boiled FrogsHow can you stay motivated (and motivate others) to make small changes that can help keep code "viable"? Topic 5 (T5) Good-Enough SoftwareWhat does good-enough software mean to you? How can your users keep you in check? Topic 6 (T6) Your Knowledge PortfolioWhat new coding skills are you learning now? Are you learning something relevant to your day-to-day work or expanding to different horizons? Topic 7 (T7) Communicate!Are you more proficient at verbal or written communications? How could you improve your weaker skill? |
Beta Was this translation helpful? Give feedback.
-
Chapter 2 - A Pragmatic ApproachCh 2 T8 - The Essence of Good Design - Is your code easy to change (ETC) or are there side effects to your code fixes? The key is to modularize your code so that a change remains scoped to that one module. Ch 2 T9 - DRY (Don't Repeat Yourself), the Evils of Duplication - Have you run into duplication in your code, APIs, or data sources? Would regular and open communication within your development team help to avoid some of the duplications? Ch 2 T10 - Orthogonality (modularization) - The independence or decoupling of code (UI does not rely on Database and vice-versa the Database does not rely on the UI). What are some of the benefits of modularization? Ch 2 T11 - Reversibility - How can relying on third-party products or a specific type of database schema can make your code too rigid to change? What other "roadblocks" might cause this issue? How can you use modularized code to prevent this issue? Ch 2 T12 - Tracer Bullets - How can tracer code provide you immediate feedback during development? This one stumped me. (Is tracer code ?= minimum viable product.) Here are some links that might give a clearer view:
Ch 2 T13 - Prototypes and Post-It Notes - What is the main benefit of prototyping? What can you learn by prototyping one small piece/functionality/UI at a time? Ch 2 T14 - Domain Languages - Would you prefer to work on an internal coding language or use an external language to compile to your codebase's language? Ch 2 T15 - Estimating- Do you keep a formal log of your project estimates? Do you keep estimates vague or do you outline parameters that would change your estimate? |
Beta Was this translation helpful? Give feedback.
-
Chapter 3 - The Basic ToolsCh3 T16 - The Power of Plain Text- How do you like to store/write your knowledge? Ch3 T17 - Shell Games - Do you feel more comfortable in a GUI or the shell? Are there times when you turn to the shell over a GUI? Are there times you prefer the focus of the GUI over the expanded functionality of the shell? Ch3 T18 - Power Editing - Have you learned any new quick-keys in your IDE of choice lately? Is there a functionality that you need on a regular basis that has no quick-key or do you have a hard time recalling it? Ch3 T19 - Version Control - Besides code, is there anything else you use version control for? Of GitHub's services (issues, pull requests, projects, discussions, actions, wikis, insights, gists, books...) which do you use currently, and which would you like to add to your development process? If you use a different version control system, what services do they offer beyond just a code repository? Ch3 T20 - Debugging - Process: reproduce the bug, use binary chop to pin-point the "culprit", review logs, rubber duck, testing code and expand boundary conditions. Which of these steps do you consider yourself strong at and which of these would you like to strengthen? Ch3 T21- Text Manipulation - Have you had a chance to use a text manipulation language? Which language did you use and what did you have it do? Ch3 T22 - Engineering Daybooks -Do you currently use an engineering daybook or something similar? What have you found it most useful for? If not already doing so, would you accept a challenge to keep a daybook starting today till we finish reading this book? |
Beta Was this translation helpful? Give feedback.
-
Chapter 4 - Pragmatic ParanoiaCh4 T23 - Design By Contract (DBC) - How can you document and verify your code to make sure it does no more or no less than it claims? Ch4 T24 - Dead Programs Tell No Lies - What methods do you use to make sure your bug fixes do no damage? Ch4 T25 - Assertive Programming - How can you verify your assumptions as you are coding? How can your assertions test for those "should never happen" cases? Make sure your inputs are what is expected. Ch4 T26 - How to Balance Resources - What can you do to make sure that you open and close resources? Can you compartmentalize your code by isolating the opening and closing of resources in its own module l, calling additional functionality from other modules (separation of powers)? Ch4 T27 - Don't Outrun Your Headlights - How far ahead are you willing to "look", one sprint (two weeks) or farther? How often does your development cycle get "interrupted" with changes or with unexpected changes to the project scope? |
Beta Was this translation helpful? Give feedback.
-
Schedule:
Beta Was this translation helpful? Give feedback.
All reactions