Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Effective Developer

The Effective Developer

Avatar for Radoslav Stankov

Radoslav Stankov

June 21, 2023
Tweet

More Decks by Radoslav Stankov

Other Decks in Technology

Transcript

  1. “It is better to be a good programmer with great

    habits, than a great programmer.” - Kent Beck
  2. “Process is automatic decisions for trivial questions and framework for

    making decisions for all other questions.” - Rado What is process
  3. “Flow state, also known as being in the zone, is

    the mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity.” - WikipediA Flow
  4. “Task switching is an executive function that involves the ability

    to shift attention between one task and another unconsciously.” - WikipediA Task switching
  5. “In cognitive psychology, cognitive load refers to the used amount

    of working memory resources. ” - WikipediA Cognitive load
  6. “Ego depletion refers to the idea that self- control or

    willpower draws upon a limited pool of mental resources that can be used up.” - WikipediA Ego depletion
  7. “Process is automatic decisions for trivial questions and framework for

    making decisions for all other questions.” - Rado What is process
  8. “Process is automatic decisions for trivial questions and framework for

    making decisions for all other questions.” - Rado What is process
  9. export function useEffect( create: () => (() => void) |

    void, deps: Array<mixed> | void | null, ): void { const dispatcher = resolveDispatcher(); return dispatcher.useEffect(create, deps); } https://github.com/facebook/react/blob/main/packages/react/src/ReactHooks.js
  10. https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberHooks.new.js 🤔 const HooksDispatcherOnMount: Dispatcher = { // ... useRef:

    mountRef, // ... }; const HooksDispatcherOnUpdate: Dispatcher = { // ... useRef: updateRef, // ... }; const HooksDispatcherOnRerender: Dispatcher = { // ... useRef: updateRef, // ... }; const ContextOnlyDispatcher: Dispatcher = { // ... useRef: throwInvalidHookError, // ... };
  11. function updateWorkInProgressHook(): Hook { // This function is used both

    for updates and for re-renders triggered by a // render phase update. It assumes there is either a current hook we can // clone, or a work-in-progress hook from a previous render pass that we can // use as a base. When we reach the end of the base list, we must switch to // the dispatcher used for mounts. let nextCurrentHook: null | Hook; if (currentHook === null) { const current = currentlyRenderingFiber.alternate; if (current !== null) { nextCurrentHook = current.memoizedState; } else { nextCurrentHook = null; } } else { nextCurrentHook = currentHook.next; } let nextWorkInProgressHook: null | Hook; if (workInProgressHook === null) { nextWorkInProgressHook = currentlyRenderingFiber.memoizedState; } else { nextWorkInProgressHook = workInProgressHook.next; } if (nextWorkInProgressHook !== null) { // There's already a work-in-progress. Reuse it.
  12. function updateWorkInProgressHook(): Hook { // This function is used both

    for updates and for re-renders triggered by a // render phase update. It assumes there is either a current hook we can // clone, or a work-in-progress hook from a previous render pass that we can // use as a base. When we reach the end of the base list, we must switch to // the dispatcher used for mounts. let nextCurrentHook: null | Hook; if (currentHook === null) { const current = currentlyRenderingFiber.alternate; if (current !== null) { nextCurrentHook = current.memoizedState; } else { nextCurrentHook = null; } } else { nextCurrentHook = currentHook.next; } let nextWorkInProgressHook: null | Hook; if (workInProgressHook === null) { nextWorkInProgressHook = currentlyRenderingFiber.memoizedState; } else { nextWorkInProgressHook = workInProgressHook.next; } if (nextWorkInProgressHook !== null) { // There's already a work-in-progress. Reuse it.
  13. 🏃 Run a test 🔎 Search in codebase ✈ Jump

    across fi les 🧱 Refactoring - moving code around 📚 Search documentation 💻 Writing new code ⛩ Common operations
  14. 🚫 Fear of Failure / Perfectionism 🤫 Lack of Motivation

    / Feeling Overwhelmed 
 📱 Poor Time Management Skills 🙉 Procrastination
  15. 😎 Personal Goals ✈ Travel to Japan 🇯🇵 🏃 Weight

    90kg 
 💻 Work Goals 📈 Ship claiming of Product Hub 📚 Learn PostgreSQL internals 
 🛹 Baseline 🚶 10k steps per day 🏋 Train 3 days a week 🛌 Sleep 8 hours a night
  16. 1⃣ Top priority 🥇 2⃣ Second priority 🥈 3⃣ Third

    priority 🥉 ⏺ Something else 
 ⏺ Something else 
 ⏺ Something else 🥇 Priority
  17. 1⃣ Top priority 🥇 2⃣ Second priority 🥈 3⃣ Third

    priority 🥉 ⏺ Something else 
 ⏺ Something else 
 ⏺ Something else 🥇 Priority
  18. 1⃣ Status of goals 2⃣ What went well? 3⃣ What

    could have been done better? 4⃣ What are the goals and plans for next week? 👨🏫 Weekly Review
  19. “Think about your own work fl ows and improve them

    one step of the time💡” - Rado