Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
The Pragmatic Programmer

The Pragmatic Programmer

From Journeyman to Master
توسط Dave Thomas 1999 321 صفحات
4.33
22k+ امتیازها
گوش دادن
گوش دادن

نکات کلیدی

1. فلسفه‌ی عملی را در آغوش بگیرید

"برنامه‌نویسان عملی به مشکلات با ذهنی پرسشگر نزدیک می‌شوند."

ذهنیت پرسشگر در برنامه‌نویسی عملی به معنای بررسی مداوم اطلاعات و چالش فرضیات است. این رویکرد به برنامه‌نویسان کمک می‌کند تا درک عمیق‌تری از زمینه‌ی کار خود و تأثیرات آن داشته باشند. به‌عنوان مثال، یک برنامه‌نویس می‌تواند با بررسی دقیق نیازهای کاربران و چالش‌های موجود، راه‌حل‌های بهتری ارائه دهد. همچنین، با پذیرش فناوری‌های جدید و روش‌های نوین، می‌توانند به‌سرعت به تغییرات بازار پاسخ دهند.

2. در دانش خود سرمایه‌گذاری کنید

"سرمایه‌گذاری در دانش همیشه بهترین سود را به همراه دارد."

مدیریت دانش به‌عنوان یک سرمایه‌گذاری مهم در دنیای فناوری اطلاعات شناخته می‌شود. با یادگیری مداوم زبان‌های برنامه‌نویسی جدید و شرکت در کارگاه‌ها و کنفرانس‌ها، می‌توان مهارت‌های خود را گسترش داد. به‌عنوان مثال، یادگیری یک زبان برنامه‌نویسی جدید در هر سال می‌تواند به شما کمک کند تا در بازار کار رقابتی باقی بمانید و به‌راحتی با تغییرات فناوری سازگار شوید.

3. ارتباط مؤثر برقرار کنید

"این هم به آنچه می‌گویید و هم به نحوه‌ی گفتن آن بستگی دارد."

ارتباط مؤثر در تیم‌های برنامه‌نویسی به معنای درک نیازها و انتظارات دیگران است. با تنظیم زبان و سطح جزئیات فنی بر اساس مخاطب، می‌توان مفاهیم پیچیده را به‌راحتی منتقل کرد. به‌عنوان مثال، استفاده از تشبیهات و استعاره‌ها می‌تواند به توضیح مفاهیم فنی برای ذینفعان غیر فنی کمک کند و در نتیجه، همکاری بهتری را در تیم ایجاد کند.

4. کد تمیز و انعطاف‌پذیر بنویسید

"طراحی خوب تغییر آن آسان‌تر از طراحی بد است."

مدولار بودن و جداسازی در طراحی کد به شما این امکان را می‌دهد که به‌راحتی تغییرات را اعمال کنید. با ایجاد ماژول‌های کوچک و متمرکز، می‌توان مسئولیت‌ها را به‌وضوح تعریف کرد و وابستگی‌ها را کاهش داد. این کار نه‌تنها نگهداری کد را آسان‌تر می‌کند، بلکه به شما این امکان را می‌دهد که به‌سرعت به نیازهای جدید پاسخ دهید.

5. مشکلات را از طریق بازخورد حل کنید

"از گلوله‌های ردیاب برای پیدا کردن هدف استفاده کنید."

رویکرد تکراری در حل مشکلات به شما این امکان را می‌دهد که با ایجاد یک راه‌حل ساده و ابتدایی، درک بهتری از مشکل پیدا کنید. این روش به شما کمک می‌کند تا بازخوردهای لازم را از ذینفعان دریافت کنید و بر اساس آن، توسعه را ادامه دهید. به‌عنوان مثال، با تقسیم یک مشکل بزرگ به بخش‌های کوچک‌تر، می‌توان به‌راحتی بر روی هر بخش تمرکز کرد و آن را بهبود بخشید.

6. ابزارهای خود را به‌خوبی بشناسید

"از قدرت شل‌های دستوری استفاده کنید."

آشنایی با ابزارها به شما این امکان را می‌دهد که بهره‌وری خود را افزایش دهید. با یادگیری و تسلط بر ویرایشگرهای متنی و سیستم‌های کنترل نسخه، می‌توانید کارایی خود را به‌طور چشمگیری افزایش دهید. به‌عنوان مثال، استفاده از شل‌های دستوری برای انجام عملیات پیچیده می‌تواند زمان و تلاش شما را به‌طور قابل توجهی کاهش دهد.

7. به‌طور مداوم تست کنید

"از رویه‌های دستی استفاده نکنید."

توسعه مبتنی بر تست به شما این امکان را می‌دهد که قبل از پیاده‌سازی ویژگی‌ها، تست‌ها را بنویسید. این کار نه‌تنها به شفاف‌سازی نیازها کمک می‌کند، بلکه اطمینان حاصل می‌کند که کد شما از ابتدا قابل تست است. به‌عنوان مثال، با استفاده از تست‌های خودکار، می‌توانید مشکلات را در مراحل اولیه شناسایی کنید و از بروز خطاهای بزرگ جلوگیری کنید.

8. برنامه‌نویسی دفاعی را تمرین کنید

"هرگز به ورودی اعتماد نکنید."

اعتبارسنجی ورودی‌ها یکی از اصول کلیدی در برنامه‌نویسی دفاعی است. با استفاده از روش‌های مناسب برای اعتبارسنجی داده‌ها، می‌توان از آسیب‌پذیری‌های امنیتی و فساد داده‌ها جلوگیری کرد. به‌عنوان مثال، استفاده از کتابخانه‌های اعتبارسنجی ورودی و پرس‌وجوهای پارامتری می‌تواند به‌طور قابل توجهی امنیت برنامه را افزایش دهد.

9. منابع را به‌طور مؤثر مدیریت کنید

"شما نمی‌توانید نرم‌افزار کاملاً بی‌نقصی بنویسید."

مدیریت منابع به معنای توجه به استفاده بهینه از منابع سیستم است. با استفاده از ساختارهای داده و الگوریتم‌های مناسب، می‌توان عملکرد را بهبود بخشید. به‌عنوان مثال، استفاده از کشینگ و پردازش ناهمزمان می‌تواند به بهینه‌سازی عملکرد برنامه کمک کند و در عین حال، کد را قابل نگهداری نگه دارد.

10. تیم‌سازی و بهبود مستمر را ترویج دهید

"یک بار باگ‌ها را پیدا کنید."

تیم‌های همبسته به شما این امکان را می‌دهند که روابط کاری قوی‌تری ایجاد کنید و در نتیجه، ارتباطات مؤثرتری داشته باشید. با ایجاد فرهنگی از یادگیری و بهبود مستمر، می‌توان به‌طور مداوم فرآیندها را ارزیابی و بهبود بخشید. به‌عنوان مثال، برگزاری جلسات بازخورد و مرور کد می‌تواند به بهبود کیفیت کد و افزایش همکاری در تیم کمک کند.

آخرین به‌روزرسانی::

FAQ

What's The Pragmatic Programmer about?

  • Software Craftsmanship Focus: The book emphasizes the importance of being a skilled craftsman in software development, encouraging programmers to take responsibility for their work.
  • Pragmatic Philosophy: It introduces a philosophy that encourages critical thinking, embracing change, and adapting to new technologies and methodologies.
  • Practical Advice: Offers practical guidance on design principles, debugging, version control, and communication, making it a comprehensive guide for developers.

Why should I read The Pragmatic Programmer?

  • Timeless Principles: The book provides principles that remain relevant despite technological changes, helping developers understand core software development concepts.
  • Improves Problem-Solving Skills: It enhances problem-solving abilities and encourages a pragmatic mindset, crucial in the tech landscape.
  • Inspiration for Growth: Serves as inspiration for programmers to take ownership of their careers and seek continuous improvement.

What are the key takeaways of The Pragmatic Programmer?

  • Embrace Change: Encourages developers to take control of their careers and adapt to technological changes.
  • DRY Principle: Highlights "Don’t Repeat Yourself" to avoid knowledge duplication and improve maintainability.
  • Design by Contract: Introduces clear expectations and responsibilities between software components to enhance reliability.

What are the best quotes from The Pragmatic Programmer and what do they mean?

  • "You have agency": Emphasizes that developers can change their circumstances and should improve their work environment and skills.
  • "Fix the problem, not the blame": Encourages focusing on solutions rather than assigning blame, fostering a constructive work culture.
  • "Take small steps—always": Advises incremental project approaches, allowing for feedback-based adjustments and reducing failure risks.

What is the DRY principle in The Pragmatic Programmer?

  • Avoid Duplication: Advocates for a single, authoritative representation of knowledge within a system to prevent inconsistencies.
  • Enhances Maintainability: Systems become easier to maintain and evolve, as changes are made in only one place.
  • Applies Beyond Code: The principle applies to documentation, design, and any aspect of software development where knowledge is represented.

What is Design by Contract as described in The Pragmatic Programmer?

  • Clear Expectations: Defines the rights and responsibilities of software components, ensuring each part knows what to expect from others.
  • Preconditions and Postconditions: Involves specifying requirements before a function is called and guarantees after it completes.
  • Improves Reliability: Enforces a clear agreement on component interactions, reducing the likelihood of errors.

How does The Pragmatic Programmer address debugging?

  • Mindset for Debugging: Emphasizes adopting a calm and analytical mindset, encouraging developers to focus on problem-solving.
  • Reproduce Bugs: Advises making bugs reproducible to understand the conditions leading to the issue.
  • Use Assertions: Recommends using assertions to catch errors early and improve code reliability.

What is the significance of version control in The Pragmatic Programmer?

  • Essential for Collaboration: Crucial for managing code changes, preventing conflicts, and maintaining a history of changes.
  • Rollback Capabilities: Acts as a "giant undo key," allowing developers to revert to previous code states if issues arise.
  • Facilitates Experimentation: Encourages experimentation by allowing developers to create branches for new features or fixes.

How does The Pragmatic Programmer suggest handling resources?

  • Finish What You Start: Advises that the function or object allocating a resource should also deallocate it, ensuring clear ownership.
  • Use Scoping: Recommends using scoping mechanisms to manage resource lifetimes, reducing the risk of leaks.
  • Balance Resource Usage: Encourages considering long-term implications of resource usage to maintain a clean system.

How does The Pragmatic Programmer address team dynamics?

  • Small, Stable Teams: Advocates for maintaining small, stable teams to enhance communication and collaboration.
  • Quality as a Team Issue: Emphasizes that quality should be a collective responsibility, with all team members contributing.
  • Encouraging Open Communication: Encourages effective communication, sharing knowledge to improve project outcomes.

What is the Pragmatic Starter Kit mentioned in The Pragmatic Programmer?

  • Foundation for Projects: Consists of version control, regression testing, and full automation, essential for successful projects.
  • Version Control Importance: Emphasizes using version control to manage code changes and enable collaboration.
  • Automated Testing and Deployment: Advocates for automated processes to ensure consistency and reliability in software delivery.

What is the Principle of Least Privilege discussed in The Pragmatic Programmer?

  • Minimizing Access Rights: Users and systems should operate with the least privilege necessary to perform tasks, reducing unauthorized access risks.
  • Temporary Privileges: Higher privileges should be granted temporarily and revoked as soon as possible.
  • Security Enhancement: Enhances application and system security by minimizing potential vulnerabilities.

نقد و بررسی

4.33 از 5
میانگین از 22k+ امتیازات از Goodreads و Amazon.

کتاب برنامه‌نویس عمل‌گرا به عنوان یک مطالعه ضروری برای توسعه‌دهندگان نرم‌افزار شناخته می‌شود و بینش‌های ارزشمند و بهترین روش‌ها را ارائه می‌دهد. خوانندگان از توصیه‌های بی‌زمان، نکات عملی و تمرکز بر هنر و مهارت آن قدردانی می‌کنند. در حالی که برخی از توسعه‌دهندگان با تجربه ممکن است محتوای آن را آشنا بیابند، بسیاری از توانایی آن در ایجاد ایده‌ها و تقویت عادت‌های خوب تمجید می‌کنند. این کتاب موضوعات گسترده‌ای را پوشش می‌دهد، از تکنیک‌های کدنویسی تا مدیریت پروژه. برخی انتقادات شامل مثال‌های قدیمی و گاهی ابهام است، اما به طور کلی، به عنوان یک مطالعه ضروری برای برنامه‌نویسان در مراحل مختلف حرفه‌ای‌شان محسوب می‌شود.

درباره نویسنده

دیوید توماس یک توسعه‌دهنده نرم‌افزار و نویسنده‌ی برجسته است که بیشتر به خاطر هم‌نویسندگی کتاب "برنامه‌نویس عمل‌گرا" با اندی هانت شناخته می‌شود. او تجربه‌ی گسترده‌ای در صنعت نرم‌افزار دارد و به خاطر مشارکت‌هایش در روش‌ها و شیوه‌های برنامه‌نویسی مورد تقدیر قرار گرفته است. توماس از طرفداران توسعه‌ی چابک است و چندین کتاب دیگر در زمینه‌ی موضوعات برنامه‌نویسی نوشته است. او همچنین در توسعه‌ی زبان‌های برنامه‌نویسی، به‌ویژه با روبی، مشارکت دارد. کارهای توماس بر رویکردهای عملی و کارآمد در توسعه‌ی نرم‌افزار تأکید دارد و او همچنان از طریق نوشته‌ها، سخنرانی‌ها و مشارکت در جامعه‌ی برنامه‌نویسی به تأثیرگذاری در این حوزه ادامه می‌دهد.

Other books by Dave Thomas

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Feb 27,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
50,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →