‏إظهار الرسائل ذات التسميات software. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات software. إظهار كافة الرسائل

الأحد، 21 يناير 2018

٥ كتب أي مبرمج لازم يقراها

مساء الخير
ازيكم

لو فاكرين في الفيديو اللي فات, اتكلمنا عن انك محتاج تستثمر في نفسك, و واحد من أفضل الوسائل للاستثمار في نفسك هي انك تقرا كثير
فحبيت اتكلم معاكم النهاردة عن 5 كتب مفيدة لأي مبرمج, الكتب دي تحديداً مش مرتبطة بلغة برمجة أو تقنية بعينها, و ده يمكن واحد من أهم الأسباب اللي خلتني آختارها, حتى لو الكتاب بيستخدم لغة برمجة لتوصيل المعلومة, لغة البرمجة مش هدف, بل وسيلة للايضاح, و المبادئ المطروحة في الكتب دي مبادئ مفيدة لأي حد عاوز يطور من مستواه التقني.

الكتاب الأول معانا هو كتاب يعتبر علامة في الكتب اللي بتتكلم في ال Software Engineering من واحد من أفضل الكتاب و الخبراء في المجال, الكتاب هو Code Complete 2nd Edition للكاتب Steve McConnell
الكتاب بيتعرض لمجموعة من المبادئ المهمة لأي مبرمج, زي التعامل مع ال Complexity و ازاي تهزمها, بوسائل كثير زي ال Modularization و ال Abstraction و ال Discipline
بيتعرض بالتفصيل لعملية بناء السوفتوير و المراحل المختلفة فيها, مع التركيز على مراحل ال Construction اللي هي ال Requirements, Design, Coding
الكتاب حيعلمك يعني ايه Software Engineering بالمعنى الحقيقي, و ازاي انت تبقى Software Engineer, واحد من أفضل الفصول في الكتاب هو الفصل 33 و اللي بيتكلم عن Personal Character و ازاي تبني شخصيتك و مبادءك كمهندس برمجيات.
https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670

الكتاب التاني معانا هو كتاب بيتكلم في يعني ايه كود نظيف, زي ما اسم الكتاب بيقول Clean Code, بيناقش مواضيع كثيرة تصب كلها في جودة الكود كمنتج لعملية السوفتوير من أول المبادئ الأولية زي البساطة و البعد عن الكلاكيع و اتباع الأساليب القياسية, مروراً بازاي تصمم بشكل يقلل ال Complexity و يعزلها اذا لزم الأمر,  و ازاي تبقى Consistent أو متسق مع نفسك طول الوقت, يعني لو عملت حاجة باسلوب معين مرة, و جيت تعمل حاجة شبها بعدين, اعملها بنفس الطريقة, مش بطريقة مختلفة تماماً, علشان تسهل على غيرك انه يستغل الخبرات اللي اكتسبها من تعامله مع الكود, ازاي تسمي الحاجات, و ده شئ يبان عبيط لكنه في الحقيقة من اول ابواب التعقيد, هو ازاي تسمي حاجة اسم معبر و في نفس الوقت تبقى متوقعة و مفهومة, و فيه مثل مشهور في ال Computer Science هو The two hardest things in computer science are Cache invalidation and Naming Things, طبعاً الكتاب فيه تفاصيل كثير عن كل حاحة في الكود زي ازاي تكتب functions, comments, tests ازاي تقسم الكود و قدم مفهوم Code Smell  و هي الحاجات اللي لو شفتها في أي كود بتبقى علامة انه كود مش Clean
الكتاب جزء من سلسلة كتب, منها Clean Coder و مؤخراً صدر Clean Architecture و اللي ان شاء الله حعمل عنه فيديو لما أقراه بالكامل.
https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882


الكتاب الثالث معانا هو كتاب بيتكلم في مشكلة بتقابل اي مبرمج في الدنيا و هي التعامل مع ال Legacy Code و اسم الكتاب واضح Working Effectively with legacy Code, و الكتاب طبعاً بيبتدي بتعريف يعني ايه Legacy Code و ليه بيحصل, و ليه الناس كلها بتعاني منه, و ايه الاخطاء اللي اغلب المبرمجين بيعملوها لما بيقعوا في الموقف ده, زي انهم اول فكرة تيجي في بالهم هو Rewrite, و طبعاً ده بيبقى 90% من الوقت اقتصادياً مستحيل, و لو بشكل ما اقنعت الناس انها تعمله, بنسبه كبيرة الموضوع بينتج عنه حاجة أسوأ من اللي كان موجود بالفعل قبل كده زائد طبعاً وقت ضايع من غير اضافة أي شئ جديد. فالكتاب مبدئياً بيعرف ال Legacy Code  بانه ال Code  اللي مالوش Unit Tests و مش مبني من الأول انه يبقى Testable و ده طبعاً موضوع كبير, ممكن نبقى نفردله فيديو بحاله, لكن عموماً المشكلة في ان الكود علشان مش Testable فده بيخليه عرضة للمشاكل بمجرد انك تعمل اي تغيير, اللي هو نظام جيت اضبط البنطلون الجاكتة ضربت, و الكتاب تقريباً كله بيتكلم في نصائح و وسائل في ازاي تبتدي تبني Unit Tests لكود من النوع ده, بطريقة آمنة من غير ما تحتاج تعمل أي تغييرات جذرية في الأول, علشان تكسر ال Catch 22 اللي هو You need uni tests to refactor, and you need to refactor to unit tests.
https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052


الكتاب الرابع معانا هو كتاب Writing Secure Code 2nd Edition و ده برضه من أهم الكتب اللي لازم أي مبرمج يقراها, لأنها بتفتح عينه على أهمية التفكير في ال Security في كل مراحل بناء النظام, و الكتاب ده تحديداً كان كتاب رائد في المجال, و قصته جت من Microsoft للناس الكبيرة اللي زينا فاكرة مشاكل الأمن اللي كانت في منتجات مايكروسوفت زمان في التسعينات و اللي تسببت في مشاكل كثير في العالم, و كان جزء من المشكلة طبعاً ان عملية بناء سوفتوير آمن ما كانتش اتطورت, و كان ده الدافع الأساسي ل Bill Gates انه يكتب ال Memo الشهيرة بتاعة Trustworthy Computing سنة 2002 و اللي على أساسها تم انشاء فريق بنفس الاسم في الشركة, بهدف البحث و التطوير في مجال أمن البرمجيات, و الكتاب ده كان واحد من نتائج ابحاثهم.
الكتاب ده بيجمع حاجات كثير مهمة لأي مبرمج علشان يفكر و يكتب كود آمن, لكن في رأيي أفضل اسهامات الكتاب ده هو تقديمه لفكرة ال Threat Modeling و صدر بعد كده كتاب منفصل عن ال Threat Modeling ممكن تلاقوه في الروابط تحت, ال Threat Modeling يمكن هو من أهم الحاجات اللي ممكن أي فريق أو شركة تستخدمها في تحليل النظام أثناء عملية التصميم و تستخدمه في ايجاد المشاكل الأمنية و متابعة ال mitigations او طرق تفاديها.
https://www.amazon.com/Writing-Secure-Second-Developer-Practices/dp/0735617228

الكتاب الخامس معانا هو كتاب Head First Design Patterns, و ده يمكن الكتاب الأخف و الأمتع في قراءته, و اللي يمكن أفضل كتاب في سلسلة Head First من وجهة نظري, الكتاب طبعاً واضح من اسمه انه بيتكلم عن ال Design Patterns و بيقسمها لأنواع و بيتكلم عن كل Pattern بالكود و الأمثلة, أنا عن نفسي بستمتع جداً بقراءة الكتاب ده, و ساعات بقلب فيه حتى من باب اني اتفرج على الصور لأنه شبه كتب الحضانة كده, بس ده لا يمنع من انه بيشرح المادة العلمية بشكل كاف جداً.
https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124


دي كانت 5 كتب حبيت اشاركها معاكم النهاردة, لو فيه كتب كنت تحب تشوفها في القائمة دي, يا ريت تكتبها في التعليقات, الكتب دي طبعاً مش أفضل كتب في الدنيا, لكن دي الكتب اللي من رأيي لازم أي مبرمج يقراها أو على الأقل يقرا عن المواضيع اللي بتتكلم فيها الكتب دي.

شكراً جزيلاً لمتابعتكم و نشوفكم المرة الجاية.

سلام


السبت، 11 يناير 2014

Ask Developer Hangout - 36 - Software Development Events in 2013

اللقاء الأسبوعي السادس و الثلاثون لمجموعة اسأل مطور, في هذا الأسبوع نناقش أهم التغيرات و التطورات في مجال تطوير البرمجيات التي حدثت في عام 2013

Looking back to 2013 what happened in the developers world, what technologies, practices, wins and losses.

الجمعة، 18 أكتوبر 2013

السبت، 28 سبتمبر 2013

Ask Developer Hangout - 26 - Software Internationalization\Globalization with Tarek Dawood

اللقاء السادس و العشرون مع مجموعة اسأل مطور, في هذا اللقاء نتعرض لموضوع عولمة البرمجيات Software Globalization و هو من المواضيع الهامة و التي من شأنها أن ترفع من مستوى احترافية البرمجيات اذا تم الاهتمام بها, كما أنها أحد أهم بوابات الأسواق العالمية.
هذا اللقاء من تحضير و تقديم المهندس طارق داوود المهندس بشركة مايكروسوفت العالمية.

بعض الروابط التي تم ذكرها في اللقاء.
  1. Planning World-Ready Applications
  2. Designing a World-Ready Program
  3. Organizing a Product Team
  4. Globalization Testing
  5. Localizability Testing
  6. Localization Testing
  7. How to use the Multilingual App Toolkit
  8. Pseudo Localization Goals and Checklist
  9. Globalization Step-by-Step
 

السبت، 29 يونيو 2013

Ask Developer Hangout - 18 - Service Oriented Architecture [SOA]

اللقاء الثامن عشر لمجموعة اسأل مطور في هذا اللقاء نتحدث عن الService Oriented Architecture و نناقش تاريخ تطور البرمجيات حتى هذه اللحظة و مميزات و عيوب هذا النوع من التصميم, ايضاً نتعرض ببعض التفصيل لمبادئ الSOA و نشرح أهمية كل منهم و أمثلة عليها.
Welcome to the Ask Developer Hangout 18, in this week we discuss the SOA principles with discussion about the history of SOA and pros and cons of this type of architecture

الأحد، 16 يونيو 2013

Ask Developer Hangout - 16 - Big Data

اللقاء الاسبوعي السادس عشر, في هذا اللقاء نتحدث عن موضوع الBig Data و نتعرف على المقصود بهذا المصطلح و الهدف منه و نتعرف عن بعض تفاصيله بالاضافة الى مناقشة التقنيات الأكثر انتشاراً في هذا المجال مثل Hadoop Technologies.

السبت، 20 أبريل 2013

Ask Developer Hangout - 8 - Massive Online Open Courses



اللقاء الأسبوعي لمجموعة أسأل مطور على الانترنت, لقاء الأسبوع الثامن, في هذا الأسبوع نناقش موضوع الكورسات الأكاديمية المتاحة على الانترنت مجاناً و كيف تستفيد منها
Welcome to the 8th week of the Ask Developer weekly hangout, in this week we discuss the topic of the Massive Online Open Courses (MOOC) and how to make the best use of it.

Links
Coursera http://www.coursera.com
Academic Earth http://www.academicearth.org
Khan Academy https://www.khanacademy.org/
Class2Go Standord University http://class2go.stanford.edu/
MIT Open Course Ware http://ocw.mit.edu/index.htm
YouTube Education http://www.youtube.com/education
iTunes U http://www.apple.com/education/itunes-u/
Learners TV CS Courses http://www.learnerstv.com/Free-Computer-Science-video-lecture-courses.htm


الاثنين، 18 مارس 2013

AskDeveloper TV - EP02 - Advanced Debugging

Welcome back to the 2nd episode of ADTV, in this episode the AskDeveloper community chose the topic through the poll we posted on our Facebook page, which is Advanced Debugging using WinDbg.
In the video we are first discussing the basics of debugging, and why sometimes we need to use debuggers like WinDbg instead of the debuggers integrated inside editors like Visual Studio, we also show how to configure ADPlus to automatically take a crash dump of the process at the moment it crashed, so we can analyze it later using Windbg.

To download the debugging tools for Windows, follow the instrcutions here

مرحباً بكم في الحلقة الثانية من تليفزيون اسأل مطور, في هذه الحلقة نتحدث عن بعض المواضيع المتقدمة في عملية ايجاد المشاكل في البرمجيات, بالاضافة الى مقدمة في أسس تحليل المشاكل و ايجادها.

الاثنين، 11 مارس 2013

EP02 - Software Quality (Contd)


Welcome to the second episode of the AskDeveloper podcast, in this episode we are excited to announce a new host +Ahmed ElMalt  who joined us this week to give us his perspective and experience with software quality.
This week, the hosts are discussing in more details the subjects of Test Automation & Coding Standards.
Some links and tools mentioned in the episode.
  1. Selenium a tool to automate web UI testing
  2. Jenkins a cross platform Continuous Integration tool that can be used to automate the whole process from the Build to running tests to running analysis tools and have a good plugin ecosystem.
  3. Team City a continuous integration tool from JetBrains, the tool has a free limited version
  4. Clean Code  One of the best books in market discussing the modern coding standards, and how to refactor and adopt the right practices for keeping the good state of code.

مرحباً بكم في الحلقة الثانية من راديو اسأل مطور, في هذه الحلقة نكمل حديثنا عن رفع معايير الجودة في كتابة الأكواد, و كيف يمكنك  تحقيق هذا عن طريق أتمتة عملية الاختبار و التجريب.

Our theme music is provided by www.podcastthemes.com

Don't forget to follow us on Facebook and SoundCloud


Podcast Powered By Podbean