سأجيب اليوم على أحد أسئلتك: ما هي الكتب التي أوصي بها لمعرفة المزيد عن البرمجة؟ قبل الانتقال إلى التوصيات، دعني أوضح شيئًا واحدًا. لم أقرأ كل الكتب المذكورة أدناه. ومع ذلك، فقد قرأت الكثير منها، وتلك التي لم أقرأها كانت توصيات حصلت عليها في الماضي أو كتب يوصي بها الآخرون في هذا المجال بشدة.
أريد أيضًا أن أوضح أن الكتب مهمة جدًا لتطوير المهارات والتعرف على أفضل الممارسات واكتساب المعرفة العامة. ومع ذلك، فإن أهم شيء يجب فعله عند تعلم البرمجة هو التدريب على الأشياء وبناءها بشكل مستقل. لذا اقرأ الكتب، ثم اجلس على جهاز الكمبيوتر الخاص بك واستخدم خيالك.
لنبدأ الآن بالتوصيات للمطورين.
Code Complete by Steve McConnell
هذا الكتاب هو تحفة ستدفع مهاراتك في هندسة البرمجيات إلى المستوى التالي. الكتاب مكتوب جيدًا ويغطي مجموعة متنوعة من الموضوعات التي ستختبر حدودك في الهندسة الأفضل.
يغطي الكتاب الأساليب والتقنيات التي تركز على تصميم الكود والروتين والجودة. أوصي بهذا الكتاب لكل مطور، على الرغم من أنه قد يكون مربكًا لأولئك الذين بدأوا للتو أو لديهم خبرة قليلة.
Cracking the Coding Interview by Gayle Laakmann McDowell
هل تخطط للحصول على وظيفة جديدة؟ هل تأخذ أو تخطط لإجراء مقابلات؟ هذا الكتاب من اجلك.
إنها مجموعة من الأسئلة المتداولة من قبل أفضل شركات التكنولوجيا التي تغطي موضوعات مثل تدوين Big O، وهياكل البيانات، والخوارزميات، والبرمجة الديناميكية، والبرمجة الموجهة للكائنات، من بين أشياء أخرى.
يروي مؤلف الكتاب قصته من خلال المقابلات، والعمل في شركات التكنولوجيا العملاقة مثل Microsoft و Apple و Google.
Algorithms by Robert Sedgewick & Kevin Wayne
الخوارزميات، الخوارزميات، الخوارزميات؟ نعلم جميعًا نوعًا من تعريف الكلمة مثل: "الخوارزمية هي مجموعة من التعليمات التي تؤدي مهمة محددة." لا يزال بإمكان العديد من المطورين قضاء أشهر في العمل على المشاريع دون فهم الخوارزميات وهياكل البيانات الأكثر شيوعًا. في بعض الأحيان لا نحتاجهم ببساطة، أو هكذا نعتقد. يمكن أن تساعد معرفة الخوارزميات المتقدمة في جعل شفرتك أكثر وضوحًا، ناهيك عن أنك ستكون قادرًا على إكمال مهام أكثر تعقيدًا، وأخيراً وليس آخراً، عادة ما يكون موضوعًا للمقابلات.
The Self-Taught Programmer by Cory Althoff
هذا واحد من أفضل الكتب في الوقت الحاضر لتطوير مهارات البرمجة. ويغطي ويقدم مقدمة موجزة لجميع جوانب مهارات الترميز. يتكون من خمسة أجزاء تغطي 27 فصلاً. يقدم هذا الكتاب دليلاً كاملاً للمفاهيم الأساسية للبرمجة (الحلقات، السلاسل، الوحدات، الملفات، إلخ)، البرمجة الشيئية، و BASH. كما يوفر إرشادات أساسية لمقابلة عمل البرمجة الأولى.
أوصيت بشدة بهذا الكتاب للمطورين الذين علموا أنفسهم بأنفسهم مثلي، على الرغم من أنه قراءة جيدة لأي مطور بشكل عام.
Coders at Work by Peter Seibel
يجمع هذا الكتاب قصة 15 مطورًا ممتازًا في شكل أسئلة مقابلة. تهدف جميع الأسئلة إلى حياتهم اليومية والتحديات كمهندسي برمجيات. هناك الكثير لنتعلمه من تجارب الآخرين، وهذا الكتاب يقوم بعمل رائع في ذلك. إن تغطية موضوعات مثل تطوير البرامج وتقنيات التصحيح ولغات البرمجة أمر لا يفكر فيه أي مطور.
Clean Code by Robert C. Martin
كتاب عن أفضل ممارسات الترميز. إذا كنت تكتب رمزًا غالبًا، فهذا بالتأكيد يناسبك. تغطية الموضوعات التي تجعلك تكتب كودًا أفضل في كل مرة، بغض النظر عن لغة البرمجة. على الرغم من أنها تركز على جافا، إلا أن المفاهيم تنطبق على العديد من لغات البرمجة الموجهة للكائنات.
The Pragmatic Programmer by David Thomas & Andrew Hunt
يجب قراءته لمطوري البرامج، خاصة للمبتدئين. يشبه الكتاب صندوق أدوات، مليء بالأدوات التي أثبتت جدارتها في المعركة والتي ستساعدك على أن تكون أفضل ما لديك عندما يتعلق الأمر بكتابة كود جميل وعملي.
لم أقرأ هذا بنفسي، لكنه يبدو واعدًا للغاية وأوصى به أصدقائي وزملائي بشدة.
The Clean Coder by Robert Martin
بمجرد النظر إلى المحتوى، يمكنك معرفة الكثير عن إمكانات هذا الكتاب. تغطية جميع جوانب هندسة البرمجيات، والتحدث عن الكود وكيفية تحسينه، وغيرها من المهارات الشخصية مثل التفاوض وإدارة الوقت والتقدير والتعاون وغير ذلك الكثير.
الكتاب ليس فقط الدليل النهائي لجعلك مطور برامج أفضل؛ ولكن أيضًا لجعلك مهندس برمجيات ورجل أعمال وعضو فريق أفضل.
Rework by Jason Fried & David Heinemeier Hansson
إذا قلت أن هذا الكتاب هو من أكثر الكتب مبيعًا في نيويورك تايمز، فربما تعتقد أنه ليس كتاب برمجة؛ ستكون على حق هذا الكتاب يدور حول الأعمال وريادة الأعمال، وأعتقد أن العديد من المطورين لديهم هذه الروح، لذا فإن معرفة شيء أو اثنين يمكن أن يكون عاملاً حاسمًا عند بناء شركتك الخاصة.
إذا كانت لديك فكرة بمليون دولار، جرب هذا الكتاب؛ مع جميع الكتب السابقة، لديك معرفة كافية لبناء أي منتج تريده.
Hooked: How to Build Habit-Forming Products by Nir Eyal
أعلم أننا مطورو برامج ولسنا مصممين، لكن صدقوني أن امتلاك بعض المعرفة بالتصميم وتجربة المستخدم سيعزز إنتاجيتك كمطور، خاصة عند العمل في فرق مع المصممين وخبراء تجربة المستخدم أو بناء منتجك.