مغز شما زمانی که با کارهای جدید یا دشوار روبرو میشود به روشی قابل پیش بینی پاسخ میدهد. درک عملکردهای شناختی که بر نحوه تفکر مغز شما در مورد کدنویسی حاکم است به شما کمک میکند تا هوشمندتر کار کنید و نه سخت تر. شما با کمک این کتاب بهره وری خود را بهبود خواهید بخشید، نیاز خود را به بازنویسیهای مداوم کاهش خواهید داد و به گذراندن شبها تا دیروقت برای سر کله زدن با زبانهای جدید خداحافظی خواهید کرد.
کتاب The Programmer’s Brain (مغز برنامه نویس)، به شما تکنیکهای واقعی میآموزد که ریشه در علوم شناختی دارند و نحوه یادگیری و تفکرتان در مورد کد را بهبود میبخشد. شما به روشهای عملی برای بکارگیری این اصول شناختی در زندگی روزمره برنامه نویسی خودتان، مسلط خواهید شد. شما با تبدیل سردرگمی به یک ابزار یادگیری، درک کد خود را بهبود میبخشید و تکنیکهای عالی برای خواندن کد و به خاطر سپردن سریع نحو را انتخاب میکنید. این راهنمای عملی شامل نکاتی برای ایجاد فلش کارتها و منابع مطالعاتی است که میتواند برای هر زبان جدیدی که میخواهید به آن مسلط شوید، بکار گرفته شود. زمانی که این کتاب را به پایان رساندید، نه تنها در آموزش خود بهتر خواهید بود، بلکه در راه انداختن همکاران جدید و برنامه نویسان جوان نیز متخصص خواهید بود.
مطالبی که در کتاب The Programmer’s Brain: What every programmer needs to know about cognition، (مغز برنامه نویس: آنچه که هر برنامه نویسی باید در مورد شناخت بداند) خواهید آموخت:
- راههای سریع و موثر برای تسلط بر زبانهای برنامه نویسی جدید
- مهارتهای تندخوانی برای درک سریع کدهای جدید
- تکنیک هایی برای کشف معنای کدهای پیچیده
- راه هایی برای یادگیری نحو جدید و حفظ آن
- نوشتن کدی که خواندن آن برای دیگران آسان باشد
- انتخاب نام مناسب برای متغیرهای خود
- قابل درکتر کردن کدهایتان برای تازه واردان
- آشنا کردن توسعه دهندگان جدید با تیمتان
Table of Contents:
- Part 1: On reading code better
- Chapter 1: Decoding your confusion while coding
- 1.1 Different kinds of confusion in code
- 1.2 Different cognitive processes that affect coding
- 1.3 Cognitive processes in collaboration
- Chapter 2: Speed reading for code
- 2.1 Quickly reading code
- 2.2 Overcoming size limits in your memory
- 2.3 You see more code than you can read
- Chapter 3: How to learn programming syntax quickly
- 3.1 Tips for remembering syntax
- 3.2 How to learn syntax quickly with flashcards
- 3.3 How to not forget things
- 3.4 How to remember syntax longer
- Chapter 4: How to read complex code
- 4.1 Why it’s hard to understand complex code
- 4.2 Techniques to reduce cognitive load
- 4.3 Memory aids to use when your working memory is overloaded
- Part 2: On thinking about code
- Chapter 5: Reaching a deeper understanding of code
- 5.1 Roles of variables framework
- 5.2 Roles and paradigms
- 5.3 Gaining a deeper knowledge of programs
- 5.4 Reading text is similar to reading code
- 5.5 Text comprehension strategies applied to code
- Chapter 6: Getting better at solving programming problems
- 6.1 Using models to think about code
- 6.2 Mental models
- 6.3 Notional machines
- 6.4 Notional machines and language
- 6.5 Notional machines and schemata
- Chapter 7: Misconceptions: Bugs in thinking
- 7.1 Why learning a second programming language is easier than learning the first one
- 7.2 Misconceptions: Bugs in thinking
- Part 3: On writing better code
- Chapter 8: How to get better at naming things
- 8.1 Why naming matters
- 8.2 Cognitive aspects of naming
- 8.3 What types of names are easier to understand?
- 8.4 The influence of names on bugs
- 8.5 How to choose better names
- Chapter 9: Avoiding bad code and cognitive load: Two frameworks
- 9.1 Why code with code smells creates a lot of cognitive load
- 9.2 The influence of bad names on cognitive load
- Chapter 10: Getting better at solving complex problems
- 10.1 What is problem solving?
- 10.2 What is the role of the LTM when you solve programming problems?
- 10.3 Automatization: Creating implicit memories
- 10.4 Learning from code and its explanation
- Part 4: On collaborating on code
- Chapter 11: The act of writing code
- 11.1 Different activities while programming
- 11.2 Programmer interrupted
- Chapter 12: Designing and improving larger systems
- 12.1 Examining the properties of codebases
- 12.2 Dimensions and activities
- Chapter 13: How to onboard new developers
- 13.1 Issues in the onboarding process
- 13.2 Differences between experts and novices
- 13.3 Activities for a better onboarding process