$30 off During Our Annual Pro Sale. View Details »

The Effective Developer

The Effective Developer

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