كتب برمجة
23 كتاب
-
أتمتة المهام المملة عبر بايثون
بواسطة أكاديميّة حسوب
تقع البرمجيات في صلب العديد من الأدوات التي نستعملها يوميًا، فتقريبًا كلنا يستعمل الشبكات الاجتماعية للتواصل، ولدينا هواتف ذكية في جيوبنا طوال الوقت، وأغلبية الأعمال المكتبية تتطلب تفاعلًا بشكلٍ أو بآخر مع الحواسيب، ونتيجةً لذلك زادت الحاجة إلى الأشخاص الذين يستطيعون البرمجة ازديادًا عظيمًا أخيرًا، وظهر عدد كبير من الكتب والمقالات والدورات التي تعد المبتدئين أن يصبحوا مهندسي برمجيات برواتب عالية.
هذا الكتاب ليس لتلكم الفئة، بل لجميع الفئات الأخرى! إن كنت تعمل عملًا مكتبيًا أو كنت مديرًا للأنظمة أو كنت أكاديميًا أو كنت تحب أن تمرح مع حاسوبك فهذا الكتاب لك، وستتعلم فيه أساسيات البرمجة لكي تتمكن من أتمتة المهام التي تأخذ وقتًا طويلًا من وقتك في العادة، وتكون إما بسيطة أو مخصصة جدًا فلا يوجد برنامج متاح لإنجازها، لكن بعد تعلمك لأساسيات البرمجة فيمكنك أن تجعل حاسوبك يقوم بها بدلًا منك.
هذا الكتاب هو ترجمة لكتاب Automate the Boring Stuff with Python لصاحبه Al Sweigart، وترجمة عبد اللطيف ايمش وعلا عباس، ويعد دليلًا مهمًا للمبتدئين في البرمجة أو الراغبين في دخول المجال والاستفادة من البرمجة حتى لتبسيط الأعمال المكتبية وتسريعها.
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، صفحة التصنيف أتمتة المهام ببايثون، أو مباشرة مما يلي:
تهيئة بيئة العمل في بايثون Python أساسيات لغة بايثون Python بنى التحكم في لغة بايثون الدوال في لغة بايثون القوائم Lists في لغة بايثون القواميس وهيكلة البيانات في بايثون معالجة النصوص باستخدام لغة بايثون التعابير النمطية في لغة بايثون التحقق من المدخلات عبر بايثون قراءة وكتابة الملفات باستخدام لغة بايثون تنظيم الملفات باستخدام بايثون تنقيح أخطاء Debugging شيفرتك البرمجية باستخدام لغة بايثون استخراج البيانات من الويب عبر لغة بايثون Python قراءة مستندات جداول إكسل باستخدام لغة بايثون Python الكتابة في مستندات إكسل باستخدام لغة بايثون Python العمل مع جداول بيانات جوجل Google Sheets باستخدام بايثون العمل مع مستندات PDF ومستندات Word باستخدام بايثون العمل مع ملفات CSV وبيانات JSON باستخدام لغة بايثون استخراج الوقت باستخدام الوحدتين time و datetime في لغة بايثون جدولة المهام وتشغيل برامج أخرى باستخدام لغة بايثون إرسال رسائل البريد الإلكتروني باستخدام لغة بايثون إرسال الرسائل النصية القصيرة باستخدام لغة بايثون معالجة الصور باستخدام لغة بايثون التحكم في لوحة المفاتيح والفأرة عبر أتمتة واجهة الاستخدام الرسومية GUI في بايثون5513 تنزيل
آخر تحديث
-
تعلم البرمجة للمبتدئين
بواسطة أكاديميّة حسوب
لا يزال تعلم البرمجة نفسه مفيدًا لكثير من مستخدمي الحواسيب حتى لو كانوا لن يكتبوا برامج بأنفسهم، ذلك أن فهم كيفية تفكير الحواسيب معين على جعل التطبيقات أكثر منطقية وصديقة للمستخدم، فكثير من البرامج تسمح بتخصيصها أو تعديلها عن طريق كتابة بعض البريمجات الصغيرة التي تسمى بالشيفرات الجامعة أو الماكرو macro، وتلك يكتبها المستخدم حتى لو لم يكن مبرمجًا. إضافة إلى أن لدينا الويب بما فيه من فرص لإنشاء موقعك الخاص الشخصي أو التجاري، وإن فعلت ستجد أنك محتاج في مرحلة ما إلى إضافة بعض الخصائص الديناميكية لصفحاتك، وهذا من البرمجة لا شك، ثم إن الإنترنت والويب يحفزان المرء على الاهتمام العام بالحواسيب، وسيقود ذلك الاهتمام لا محالة إلى الرغبة في التحكم والسيطرة على ما يراه المرء فيهما، وما ذلك مرة أخرى إلا برمجة!
هذا الكتاب مترجم عن الكتاب Learning to Program لكاتبه Alan Gauld وهو مبرمج شبه متقاعد بخبرة تصل إلى أربعين عامًا في البرمجة، ويُعد الكتاب من أفضل المراجع وأوضحها لتعلم البرمجة وقد اختارته أكاديمية حسوب بعناية لنقله للعربية.
سنتحدث في الكتاب عن النظرية الأساسية التي بنيت عليها برمجة الحواسيب، وبعض من تاريخها، والتقنيات الأساسية المطلوبة لحل المشاكل التي تواجهنا كمبرمجين، لكن لن نتعمق بحيث نشرح تقنيات أو تفاصيل خاصة بلغة برمجة بعينها، بل سنستخدم عدة لغات برمجة كي ترى بنفسك أن كل لغة تمتاز عن غيرها في مجال بعينه أو مهام بعينها، لكن مع هذا فأغلب محتوى الكتاب سيكون بلغة اسمها بايثون Python، وكذلك سنذكر في الكتاب لغتي برمجة إضافيتين للغة بايثون منهما لغة اسمها جافاسكربت JavaScript كلغات بديلة، وذلك لبيان أن المفاهيم والتقنيات الأساسية ستعمل بغض النظر عن اللغة التي تستخدمها، وبمجرد أن تتقن الكتابة بلغة ما تستطيع الانتقال إلى غيرها بسهولة في بضعة أيام.
وإن سبب اختيارنا للغة بايثون والتركيز عليها في شرح هذا الكتاب أنها سهلة التعلم، فبنيتها اللغوية بسيطة وبها مزايا قوية مدمجة فيها بنفس الوقت، كما تدعم كثيرًا من أنماط البرمجة، بداية من تلك البسيطة إلى المتقدمة، إضافة إلى أنها تعمل على المنصات على اختلافها، من يونكس إلى ويندوز إلى ماك وغيرها، وأخيرًا فإن لها مجتمعًا لطيفًا ومستعد للمساعدة من مستخدميها، وكل ذلك مهم للمبتدئ الراغب في تعلم البرمجة.
يستهدف الكتاب القارئ الذي يعلم كيف يستخدم نظام التشغيل الذي لديه سواء كان ويندوز أو ماك أو لينكس أو غيرها رغم أن غير المحترفين لتلك النظم سيتمكنون من التعلم أيضًا وإن كان بوتيرة أبطأ قليلًا، كما نتوقع أن يفهم القارئ بعض المفاهيم الرياضية الأساسية مثل حساب الأشكال البسيطة والإحداثيات الهندسية والمجموعات وبعض الجبر، أي في مستوى طالب الصف الثاني الثانوي مثلًا.
يمكنك قراءة الكتاب على شكل فصول منشورة على موقع أكاديمية حسوب مباشرةً إن كنت تحب القراءة على المتصفح مباشرة، وتجد الفصول مجمعة تحت وسم "تعلم البرمجة" وإليك روابطها تاليًا:
ما هي البرمجة ومتطلبات تعلمها؟ بداية رحلة تعلم البرمجة التسلسلات البسيطة في البرمجة مدخل إلى البيانات وأنواعها: أنواع البيانات الأساسية مدخل إلى البيانات وأنواعها: التجميعات Collections بعض التسلسلات النصية المهمة لتعلم البرمجة الحلقات التكرارية في البرمجة أسلوب كتابة الشيفرات البرمجية وتحقيق سهولة قراءتها كيفية قراءة البرامج لمدخلات المستخدم مقدمة في البرمجة الشرطية البرمجة باستخدام الوحدات التعامل مع الملفات في البرمجة كيفية التعامل مع النصوص في البرمجة كيفية التعامل مع الأخطاء البرمجية فضاءات الأسماء Namespaces في البرمجة التعابير النمطية RegEx في البرمجة البرمجة كائنية التوجه object oriented programming البرمجة الحدثية Event Driven Programming المساقة بالأحداث برمجة الواجهات الرسومية باستخدام Tkinter مفهوم التعاودية Recursion مقدمة إلى البرمجة الوظيفية Functional Programming دراسة حالة برمجية التعامل مع قواعد البيانات التواصل مع نظام التشغيل عبر بايثون التواصل بين العمليات في البرمجة تواصل البرامج والعمليات البرمجية عبر الشبكة كيفية التعامل مع الويب برمجة عملاء ويب باستخدام بايثون كيفية كتابة تطبيقات الويب استخدام أطر العمل في برمجة تطبيقات الويب: فلاسك نموذجا البرمجة المتزامنة وفائدتها في برمجة التطبيقات14823 تنزيل
آخر تحديث
-
دليلك إلى Node.js
بواسطة أكاديميّة حسوب
يشرح هذا الكتاب أساسيات التعامل مع بيئة نود جي إس Node.js وهي بيئة تشغيل مفتوحة المصدر ومتعددة المنصات لتنفيذ شيفرات جافاسكربت JavaScript دون الحاجة إلى متصفح ويب، ويعلمك كيفية الاستفادة منها في بناء تطبيقات فعالة من الصفر ودون الحاجة لوجود خبرة مسبقة، إذ يبدأ الكتاب بتوضيح مميزات بيئة التشغيل Node.js، مثل السرعة والبساطة، ويوضح لك كيفية تثبيتها على جهازك وتشغيل التطبيقات من خلالها، ويوضح لك أبرز الفروقات بين لغة جافا سكريبت في بيئة Node.js وفي المتصفح.
كما يغطي الكتاب أساسيات التعامل مع مدير الحزم npm، وطريقة تثبيت وتحديث الحزم وإدارة الاعتماديات من خلاله، ويوضح كيفية استخدام الوضع التفاعلي REPL لكتابة واختبار التعليمات البرمجية في الوقت الفعلي. ثم يشرح لك مفاهيم أكثر تقدمًا مثل البرمجة غير المتزامنة واستخدام دوال رد النداء والوعود، وصيغة async/await والتعامل مع طلبيات الشبكة، وإنشاء خوادم HTTP، واستخدام مكتبة Axios وطريقة التعامل مع الملفات وغيرها من المفاهيم الضرورية لك كمطور.
وأخيرًا يوضح لك كيفية استخدام وحدات Node.js الأساسية مثل الوحدات الخاصة بنظام التشغيل كوحدة os ووحدة fs ووحدة الأحداث events والوحدة HTTP ويعرفك على أهم الخاصيات والتوابع التي توفرها كل منها وطريقة الاستفادة المثلى منها في تطبيقاتك.
هذا الكتاب هو ترجمة لكتاب The Node.js handbook لصاحبه Flavio Copes وفرته لك أكاديمية حسوب باللغة العربية، ونرجو أن تجد فيه المعلومات الوافية التي تحتاجها للبدء بتطوير مشاريعك البرمجية سواء على الجانبين الأمامي أو الخلفي من التطبيق بلغة جافا سكريبت دون الحاجة لتعلم لغة جديدة بالكامل، ابدأ الآن بتطوير تطبيقاتك باستخدام Node.js واستفد من إمكانياتها المميزة، ونذكرك بأن باب المُساهمة في أكاديمية حسوب مفتوح لكل من يرى في نفسه القدرة على توفير مقالات أو كتب أو مسارات عالية الجودة.
يمكنك قراءة فصول الكتاب على شكل مقالات مجتمعة تحت الوسم "مقدمة إلى node.js" وتجد روابطها تاليًا:
مقدمة إلى Node.js استخدام الوضع التفاعلي والتعامل مع سطر الأوامر في Node.js دليلك الشامل إلى مدير الحزم npm في Node.js كيفية تنفيذ الدوال داخليا ضمن Node.js البرمجة غير المتزامنة في Node.js التعامل مع الطلبيات الشبكية في Node.js التعامل مع الملفات في Node.js تعرف على وحدات Node.js الأساسية3556 تنزيل
آخر تحديث
-
تعلم البرمجة بلغة Go
بواسطة أكاديميّة حسوب
نقدم لكم كتاب "تعلم البرمجة بلغة Go" للمهتمين بتعلم البرمجة جو Go المعروفة أيضًا بلغة GoLang والتي تتميز بكونها لغة برمجة حديثة عالية المستوى وسهلة التعلم طوّرتها شركة جوجل Google لتكون ملائمةً لنوعية احتياجات جوجل الحسابية من حيث التصريف السريع وسهولة البرمجة والتنفيذ الفعّال.
تعد لغة جو لغة برمجة متعددة الاستخدامات وتصلح للعديد من المشاريع، إلا أنها مناسبة بصورة خاصة لبرامج الشبكات والأنظمة الموزعة وتطبيقات الخدمات المصغرة، ومن هذا المُنطلق اكتسبت لقب "لغة السحابة"، كما تركز لغة جو Go على مساعدة المبرمجين وتوفر لهم مجموعة مميزة من الأدوات التي تسهل عليهم كتابة ونشر البرامج وتحويلها إلى ملفات تنفيذية.
هذا الكتاب مترجم عن سلسلة How To Code in Go لمجموعة من المؤلفين المساهمين في شركة جوفر جايدس Gopher Guides، والمرخص بموجب رخصة المشاع الإبداعي CC BY-NC-SA 4.0، والذي يشرح لك بالتفصيل كل ما تحتاجه لكتابة البرامج بلغة البرمجة Go وتطوير أدوات وتطبيقات مفيدة يمكن تشغيلها على خوادم بعيدة أو حواسيب محلية.
يتكون هذا الكتاب من عدة فصول ويفترض أنك لا تمتلك أي خبرة مسبقة في لغة جو Go حيث يبدأ معك من إعداد بيئة التطوير ويشرح بالتفصيل خطوات تثبيت وإعداد بيئة تطوير Go على جهاز محلي يعمل على نظام تشغيلك وصولًا لمواضيع متقدمة تساعدك في كتابة تطبيقات متقدمة عالية الكفاءة.
يمكنك قراءة فصول الكتاب على شكل مقالات مجتمعة تحت الوسم "البرمجة بلغة go" وتجد روابطها تاليًا:
تثبيت لغة جو وإعداد بيئة برمجة محلية على أبونتو تثبيت لغة جو وإعداد بيئة برمجة محلية على نظام ماك macOS تثبيت لغة جو وإعداد بيئة برمجة محلية على ويندوز كتابة برنامجك الأول في جو Go التعرف على GOPATH في لغة جو Go كتابة التعليقات في لغة جو Go تعرف على أنواع البيانات في لغة جو Go التعامل مع السلاسل في لغة جو Go استخدام المتغيرات والثوابت في لغة جو Go تحويل أنواع البيانات في لغة جو Go العمليات الحسابية في لغة جو Go البيانات المنطقية Boolean في لغة جو Go التعرف على الخرائط Maps في لغة جو Go المصفوفات Arrays والشرائح Slices في جو Go معالجة الأخطاء في لغة جو Go معالجة حالات الانهيار في لغة جو Go استيراد الحزم في لغة جو Go إنشاء الحزم في لغة جو Go فهم مجال رؤية الحزم Visibility في لغة جو Go كيفية كتابة التعليمات الشرطية if في لغة جو Go التعامل مع تعليمة التبديل Switch في لغة جو Go التعامل مع حلقة التكرار For في لغة جو Go كيفية تعريف واستدعاء الدوال في لغة جو Go التعليمة defer في لغة جو Go تعرف على دالة التهيئة init واستخدامها في لغة جو Go استخدام وسوم البناء لتخصيص الملفات التنفيذية Binaries في لغة جو Go المؤشرات Pointers في لغة جو Go البنى Structs في لغة جو Go تعريف التوابع Methods في لغة جو Go بناء البرامج المكتوبة بلغة جو Go وتثبيتها استخدام وسوم البنية Struct Tags في لغة جو Go كيفية استخدام الواجهات Interfaces في لغة جو Go بناء تطبيقات لغة Go على أنظمة التشغيل والمعماريات المختلفة استخدام الراية ldflags لضبط معلومات الإصدار لتطبيقات لغة جو Go كيفية استخدام الحزمة Flag في لغة جو Go كيفية استخدام الوحدات Modules في لغة Go توزيع الوحدات Modules المكتوبة بلغة Go كيفية استخدام وحدة خاصة Private Module ضمن مشروعك بلغة Go كيفية تنفيذ عدة دوال عبر ميزة التساير Concurrency في لغة جو كيفية إرفاق معلومات إضافية عن الأخطاء في لغة جو استخدام التاريخ والوقت في لغة جو استخدام السياقات Contexts في لغة Go كيفية استخدام صيغة JSON في لغة Go كيفية إنشاء خادم HTTP في لغة Go كيفية إنشاء طلبات HTTP في لغة جو Go كيفية استخدام الأنواع المعممة Generics في لغة جو Go كيفية استخدام القوالب Templates في لغة جو Go1677 تنزيل
آخر تحديث
-
علوم الحاسوب من الألف إلى الياء
بواسطة أكاديميّة حسوب
يوفر كتاب (علوم الحاسوب من الألف إلى الياء) معلومات شاملة حول علوم الحاسوب، ويشرح المواضيع الأساسية لفهم آلية عمل عتاد الحاسوب ونظام تشغيله بأسلوب تصاعدي يبدأ من شرح التفاصيل ذات المستوى المنخفض، ثم ينتقل تدريجيًا إلى مفاهيم أكثر تقدمًا كي يساعدك على فهمها بسهولة أكبر.
هذا الكتاب هو ترجمة لكتاب Computer Science from the Bottom Up لكاتبه إيان ويناند Ian Wienand ويوضح كافة المفاهيم التي يحتاج القارئ لمعرفتها حول عتاد وبرمجيات الحاسوب ونظام تشغيله وطريقة عمله بالتفصيل من المستوى المبتدئ للمتقدم، وهذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». لا تحتاج إلى أن تكون مبرمجًا خبيرًا لفهم المواضيع الواردة في هذا الكتاب، لكنك تحتاج لامتلاك معرفة أساسية بأجهزة الحاسوب ومكوناته ومفهوم نظام التشغيل Operating System ومعرفة بأساسيات البرمجة.
يبدأ الكتاب بشرح المفاهيم الأساسية التي تبنى عليها أجهزة الحاسوب مثل طريقة تمثيل البيانات باستخدام النظام الثنائي والست عشري ويشرح أهم العمليات البوليانية التي تنفذ عليها، ثم يتعمق في الفصول اللاجقة في موضوعات ومفاهيم متقدمة كشرح الذاكرة الوهمية virtual memory وآلية عملها وطريقة عمل أنظمة التشغيل وتنظيمها وطريقة إدارتها لعتاد الحاسوب وبرامجه.كما يشرح الكتاب العديد من المواضيع التي تهم المبرمجين ويوضح طريقة عمل سلسلة الأدوات Toolchain التي تتعامل مع البرامج الحاسوبية، وأهم الاختلافات بين اللغات المُصرَّفة compiled واللغات المُفسَّرة interpreted إلى جانب توضيح مجموعة واسعة من المفاهيم الأخرى المتعلقة بعلوم الحاسوب والمفيدة للمبتدئين والمحترفين على حد سواء.
يوفر الفصل الأول عن نظرة متقدمة على نظام التشغيل يونكس ولغة C ويشرح بالأمثلة العملية طريقة استخدام صدفة يونكس، ثم ينتقل الفصل الثاني لشرح طريقة تمثيل البيانات في الحاسوب من خلال نظام العد الثنائي ويوضح مفاهيم البتات والبايتات والتكافؤ وأنظمة البت المختلفة والعمليات البوليانية مثل NOT و AND و OR و XOR. كما يتناول النظام الست عشري ويشرح طريقة التحويل بين الأنظمة العددية واستخدامها في الشيفرات البرمجية، كما يناقش طريقة تمثيل الأعداد مثل الأعداد العشرية والسالبة بهذه الأنظمة.
أما الفصل الفصل الثالث فيتناول معمارية الحاسوب الداخلية، ويوضح وظيفة وحدة المعالجة المركزية CPU والعمليات الأساسية التي تقوم بها وأنواع معماريات وحدة المعالجة المركزية وآلية عمل ذاكرة الحاسوب وتسلسل الذواكر الهرمي والذاكرة المخبئية وطريقة عنونتها وغيرها من المفاهيم المنوعة المرتبطة بالأجهزة الطرفية وأنظمة المعالجات.
وينتقل الفصل الرابع لشرح آلية عمل نظام التشغيل ودوره في الحاسوب وتنظيمه الذي يشمل نواة نظام التشغيل ومجالات المستخدم والوحدات والافتراضية واستدعاءات النظام وطريقة إدارة الصلاحيات في نظام التشغيل باستخدام الأمثلة حيث يوضح على سبيل المثال كيف يستطيع نظام التشغيل منع برنامج ما من الوصول إلى بيانات برنامج آخر. ويتوسع الفصل الخامس في شرح مفهوم العمليات ودورها في تمكين نظام التشغيل من تشغيل عدة برامج في نفس الوقت ويوضح عناصر العملية وتسلسل العمليات الهرمي وكيفية ارتباط العمليات ببعضها البعض، ويناقش بعد ذلك استدعاءات النظام fork و exec المستخدمة لإنشاء عمليات جديدة وتنفيذ ملفات جديدة كما يوضح مفهوم الجدولة Scheduling التي تمكن نظام التشغيل من تحديد ما هي العملية التي ستنفذ في وقت معين.
يتناول الفصل السادس طريقة عمل الذاكرة الوهمية ويناقش بعض المفاهيم الأخرى المتعلقة بالذاكرة الوهمية مثل فضاءات العناوين والحماية والتبديل ومشاركة الذاكرة والذاكرة المخبيئة للقرص الصلب ودعم العتاد للذاكرة الوهمية. ويتطرق الفصل السابع لشرح مفهوم سلسلة الأدوات Toolchain، وهي مجموعة من البرامج التي تعمل معًا لتحويل شيفرة المصدر إلى برنامج قابل للتنفيذ ويعرفك على نوعين رئيسيين من البرامج في سلسلة الأدوات هما البرامج المُصَرَّفة compiled programs والبرامج المُفَسَّرة interpreted programs ويشرح آلية تحويل شيفرة مصدرية بلغة C إلى برنامج تنفيذي.
يتوسع الفصل الثامن في شرح طريقة تمثيل الملفات القابلة للتنفيذ والصيغ المختلفة لهذه الملفات وأبرزها ملفات ELF ويعرفك على مفهوم واجهات ABI وأنواعها، كما يناقش مفهوم المكتبات وأنواعها ويوضح الفرق بين المكتبات الساكنة والمكتبات المشتركة، وأخيرًا يشرح الفصل التاسع مفهوم الربط الديناميكي ويوضح بعض المفاهيم المتقدمة المتعلقة بالربط الديناميكي مثل الانتقالات وجدول الإزاحة العام وجدول البحث عن الإجراءات ودورها في تسهيل مشاركة الشيفرة وكتابة برامج أكثر فعالية وكفاءة.
عند انتهائك من فصول هذا الكتاب ستكون قادرًا على فهم كيفية عمل الحاسوب من المستوى المبتدئ إلى المستوى المتقدم وتفهم بتفصيل أكبر كيفية عمل نظام التشغيل و إدارة الذاكرة وطريقة إنشاء البرامج، وكيفية بدء العمليات وستكون قادرًا على فهم معمارية الحاسوب والتعامل معه بكفاءة أكبر.
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «أساسيات علوم الحاسوب»، أو مباشرة مما يلي:
الفصل الأول: نظرة متقدمة على يونكس ولغة سي مفهوم التجريد abstraction في أنظمة التشغيل وأهميته للمبرمجين مفهوم واصفات الملفات File Descriptors وارتباطها بعملية التجريد في أنظمة التشغيل الفصل الثاني: تمثيل الأعداد والنظام الثنائي تعرف على نظام العد الثنائي Binary أساس الحوسبة تمثيل الأنواع والأعداد في الأنظمة الحاسوبية الفصل الثالث: معمارية الحاسوب تعرف على وحدة المعالجة المركزية وعملياتها في معمارية الحاسوب نظرة عميقة على تسلسل الذواكر الهرمي والذاكرة المخبئية في معمارية الحاسوب الأجهزة الطرفية Peripherals ونواقلها Buses في معمارية الحاسوب أنظمة المعالجات في معمارية الحاسوب الفصل الرابع: نظام التشغيل دور نظام التشغيل وتنظيمه في معمارية الحاسوب استدعاءات النظام والصلاحيات في نظام التشغيل الفصل الخامس: العمليات في نظام تشغيل الحاسوب العمليات وعناصرها في نظام تشغيل الحاسوب تسلسل العمليات الهرمي واستدعاءات النظام Fork و Exec في نظام تشغيل الحاسوب أهم المفاهيم التي تنظم العمليات وتعالجها في معمارية الحاسوب الحديثة الفصل السادس: الذاكرة الوهمية Virtual Memory الذاكرة الوهمية والذاكرة الحقيقية في معمارية الحاسوب دعم عتاد الحاسوب للذاكرة الوهمية Virtual Memory الفصل السابع: سلسلة الأدوات Toolchain كيف تنشئ ملفا قابلا للتنفيذ Executable File من شيفرة برمجية مصدرية الفصل الثامن: ما وراء العملية تطبيق عملي لبناء برنامج تنفيذي من شيفرة مصدرية بلغة C الملفات القابلة للتنفيذ في نظام التشغيل وتمثيلها باستخدام الصيغة ELF مفاهيم متقدمة متعلقة بصيغة ملفات ELF القابلة للتنفيذ الفصل التاسع: مفهوم الربط الديناميكي مفهوم الربط الديناميكي Dynamic Linking في معمارية الحاسوب المكتبات وكيفية استدعاء دوالها ديناميكيا في معمارية الحاسوب طريقة عمل الرابط الديناميكي مع المكتبات في معمارية الحاسوب15108 تنزيل
آخر تحديث
-
أساسيات إطار العمل Vue.js
بواسطة أكاديميّة حسوب
إطار العمل Vue.js هو أحد إطارات جافاسكربت المخصصة لبناء تطبيقات ويب والواجهات الأمامية يتميز بأنه إطار شامل واعد سريع الأداء ذاع الصيت يتميز بالكثير من الخصائص القوية ويستحق تعلمه لبناء واجهات مواقع وتطبيقات ويب متميزة وقوية خصوصًا تطبيقات الويب ذات الصفحة الواحدة SPA، توجهت أنظارنا لإضافة محتوى عربي مميز يشمله في خطة لإضافة مصادر تعليمية عالية الجودة تشرح أشهر أطر لغة جافاسكربت لبناء الواجهات الأمامية للمواقع وتطبيقات الويب.
يبدأ الكتاب فصوله الأولى بشرح مفهوم إطار العمل والتعرف على Vue.js وأخذك سريعًا وباختصار لبدء استعماله ببناء أول تطبيق عبره. ستبدأ من الفصل الثاني في Vue.js بالتعرف على إطار العمل Vue.js عن قرب وعن آلية عمله وكيفية استعماله في بناء الوجهات الأمامية ثم تنتقل بعدها إلى التعرف على الموجهات الشرطية والتكرارية واستعمالها في قوالب الواجهة الأمامية، يليها الدخول إلى عالم مكونات Vue.js وتعلم كيفية بناءها. ستبدأ بعدها في الفصل السابع الأمور المتقدمة إذ ستتعلم التعامل مع سطر أوامر Vue.js لبناء المشاريع والتطبيقات بسهولة ويسر ثم ستتعرف بعد ذلك على مفاهيم متقدمة في Vue.js وكيفية بناء تطبيقات ذات صفحة واحدة. ستتعلم في الفصول الأخيرة من الكتاب كيفية ربط تطبيقك بالإنترنت وإضافة قاعدة بيانات له وإطلاق إلى العالم الخارجي متحرين استعمال أشهر منصات النشر وأيسرها تعاملًا.
حتى تستفيد أكبر استفادة من الكتاب، يجب أن تملك معرفة أساسية مسبقة بلغة HTML ولغة CSS ومعرفة جيدة بلغة جافاسكربت، إذ يركز الكتاب على إطار العمل Vue.js الذي هو أحد أطر عمل جافاسكربت ولن يتطرق الكتاب إلى شرح لغة جافاسكربت، وقد تجد صعوبة في فهم أجزاء الشيفرات والاستفادة من الكتاب دون تلك المعرفة المسبقة.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «مقدمة إلى vuejs»، أو تجدها مسردة بالترتيب التالي:
مقدمة إلى Vue.js استخدام Vue.js للتعامل مع DOM الموجهات الشرطية والتكرارية في Vue.js التعرف بالتفصيل على كائن Vue.js مدخل إلى التعامل مع المكونات في Vue.js المزيد حول المكونات في Vue.js إنشاء مشاريع Vue.js باستخدام Vue CLI التعامل مع دخل المستخدم عن طريق نماذج الإدخال في Vue.js المرشحات Filters والـمخاليط Mixins في Vue.js استخدام Vue.js للاتصال بالإنترنت بناء تطبيقات ذات صفحة واحدة باستخدام التوجيه Routing في Vue.js نشر تطبيق Vue.js إلى الإنترنت8413 تنزيل
آخر تحديث
-
دليل الأمان الرقمي
بواسطة أكاديميّة حسوب
مع الغياب شبه التام لأي مصادر مفيدة باللغة العربية عن مجالات الخصوصية والحماية والأمان الرقمي وتأمين الأجهزة الشخصية، جاء هذا الكتاب ليكون شارحًا لمفاهيم الحماية والأمان التي يحتاج إليها كل من يعيش في هذا العصر الرقمي ويستعمل مختلف الأجهزة الرقمية في شتى مجالات الحياة وذلك لتأمين نفسه وحماية بياناته التي يضعها في تلك الأجهزة. إنّ الأمان الرقمي موضوعٌ مهم للحديث عنه وليس شيئًا رفاهيًا أو تكميليًا، خصوصًا مع اطّراد عدد المستخدمين الجدد مع عدد انتهاكات واختراقات الأمان والخصوصية التي تحصل كلّ يوم.
إنّ هذا الكتاب موجّهٌ بالدرجة الأولى إلى عموم من يستخدم الحواسيب والأجهزة الذكية ويهدف إلى توعيتهم بأهم المسائل المتعلقة بالأمان الرقمي، ولا يخلو من مواضيع ومعلومات مفيدة ومتقدمة حتّى للخبراء والمتخصصين في المجال، إذ أنّ هذا الكتاب ما هو إلّا محاولة لتحصين المستخدمين ولفت انتباههم إلى مجال الأمان الرقمي وطرق حماية أنفسهم في العالم الرقمي، ولا يعد الكتاب مرجعًا شاملًا لكلّ شيء في المجال.
يبدأ الكتاب بعرض المفاهيم الأساسية التي يجب أن يمتلكها أيّ قارئ للكتاب، وهي مفاهيمٌ تعتمد عليها الكثير من الفصول الأخرى في الكتاب فلا غنى عنها بحالٍ من الأحوال، ثم ينتقل الكتاب إلى الحديث عن الوعي وأهميته، وقد قدّمنا موضوع الوعي على غيره لأنّه مبدأٌ عام يُمكن تطبيقه في مختلف مجالات الحماية الرقمية وليس شرحًا لطريقة تثبيت برنامج أو إضافة مثلًا، كما أنّه أهم طريقة لحماية المُستخدم نفسَه. ويأتي بعد هذين الفصلين مختلف الفصول التي تشرح اختيار خدماتٍ معينة أو طريقة تأمين أجهزة وأنظمة معينة. يجد القارئ في كلّ فصلٍ من هذه الفصول شرحًا للمفهوم المُراد تأمينه قبل الشروع بطريقة حمايته وتأمينه ولذلك يمكنك قراءة هذه المفاهيم بالترتيب الذي تريد بحسب حاجتك إن أردت ذلك رغم أنه ينصح بقراءتها وفق ترتيبها المتسلسل.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «الأمان الرقمي»، أو مباشرة مما يلي:
الفصل الأول: لماذا يجب أن نحافظ على أماننا الرقمي؟ الفصل الثاني: مفاهيم تأسيسية عن الأمان الرقمي الفصل الثالث: الوعي في العالم الرقمي الفصل الرابع: اختيار العتاد والبرامج في العالم الرقمي الفصل الخامس: اختيار الخدمات والمزودات في العالم الرقمي الفصل السادس: تأمين الأشياء الأساسية المحيطة بك في العالم الرقمي الفصل السابع: النسخ الاحتياطي وحفظ البيانات في العالم الرقمي الفصل الثامن: التشفير واستعمالاته في العالم الرقمي الفصل التاسع: كلمات المرور: كيفية حفظها واستعمالها في العالم الرقمي الفصل العاشر: تأمين متصفحات الويب في العالم الرقمي الفصل الحادي عشر: الحماية من مواقع الإنترنت في العالم الرقمي الفصل الثاني عشر: ما يلزم معرفته عند الشراء والدفع عبر الإنترنت الفصل الثالث عشر: تأمين الهاتف المحمول في العالم الرقمي الفصل الرابع عشر: كيف تعرف أنك اخترقت في العالم الرقمي وماذا تفعل حيال ذلك؟ الفصل الخامس عشر: مواضيع متقدمة في الأمان الرقمي13411 تنزيل
آخر تحديث
-
تصميم قواعد البيانات
بواسطة أكاديميّة حسوب
تسبق كل عملية تنفيذية عملية تصميمية تخطيطية مثل عملية تخطيط أي بناء ودراسته وتحليله ورسمه على المخططات قبل البدء ببنائه وتنفيذه على الأرض وكذلك الحال مع قواعد البيانات فقبل تنفيذها برمجيًا، يكون هنالك مرحلة تصميمية يجري فيها تصميم قواعد البيانات وتخطيط جداولها والأعمدة التي تحتويها وأنواع البيانات فيها والروابط الرابطة بينها والقيود المقيدة لها وهكذا، فلعملية التصميم تلك أهمية كبيرة لأي قاعدة بيانات، ولا يكاد يخلو أي نظام برمجي يتعامل مع البيانات من قاعدة بيانات لذا لابد من إجراء تصميم متين مناسب لقاعدة البيانات التي سيُبنى عليها النظام.
يعد موضوع تصميم قواعد البيانات مادة أساسية تدرَّس في السنوات الأولى من تخصص علوم الحاسوب والتخصصات المتعلقة بهندسة الحاسوب والبرمجيات في الجامعة ولابد من تعلم الموضوع ودراسته قبل البدء بتعلم كيفية تنفيذ قاعدة بيانات برمجيًا، فلا يمكن بناء قاعدة بيانات قوية متينة الارتباطات سليمة القيود موحَّدة عديمة التكرارات دون دراسة موضوع التصميم نظريًا وإتقانه عمليًا وذلك بتصميم قواعد بيانات نموذجية والإطلاع على تصميمات أخرى لقواعد بيانات صممها مهندسون أكفَّاء.
يشرح هذا الكتاب عملية تصميم قاعدة بيانات شرحًا موجزًا غير مخل، إذ يبدأ أولًا بتغطية كل المفاهيم المتعلقة بقواعد البيانات بدءًا من فكرة قاعدة البيانات بالأصل واختلافها عن أي نظام تخزين بيانات، وحتى العملية التصميمية وعمليات نمذجة البيانات وتمثيلها وعمليات الربط بين جداول البيانات وما يقوم عليها ثم يبني بعدها على ذلك كله شارحًا عملية تصميم قواعد البيانات وتطويرها حتى رسم مخطط ER النهائي لجداول قاعدة البيانات، وهو مخطط نموذج الكيان والعلاقة الواصف لقاعدة البيانات وجداولها وكل تفصيلة فيها، ثم يشرح بعدها كيفية تنفيذ المخطط الناتج عبر لغة SQL ولا يغيب عنه التطرق إلى أنظمة إدارة قواعد البيانات DBMS مع ذكر أشهرها.
هذا الكتاب مترجم عن كتاب Database Design - 2nd Edition "تصميم قاعدة بيانات - الإصدار الثاني" لصاحبيه إيدرين وات Adrienne Watt ونيلسون إنج Nelson Eng وهو مبني في الأصل على عدة مصادر ركيزتها كتاب Database Design للمؤلف الأول إيدرين وات، فالمصادر المبني عليها كل فصل مدرجة في نهايته ويمكنك الرجوع إلى الكتاب الأجنبي الأصل إن أردت الإطلاع عليها، كما أن هذا الكتاب الأجنبي يُعتمد في بعض الجامعات لتدريس مادة تصميم قواعد البيانات في فصول قسم علوم الحاسوب وتصميم البرمجيات.
انتبه إلى أن هذا الكتاب لا يركز على عملية تنفيذ قواعد البيانات وبرمجتها بل يركز على عملية تصميم قاعدة بيانات وكيفية نمذجتها وإن كان يتطرق إلى لغة SQL سريعًا شارحًا باقتضاب كيفية إنشاء قاعدة بيانات والعمليات الأساسية للتعديل عليها، أما إذا أردت الاستزادة والتعمق في هذا الموضوع، فننصحك بالرجوع إلى كتاب ملاحظات للعاملين بلغة SQL وكتاب الدليل العملي إلى قواعد بيانات PostgreSQL وتوثيق لغة SQL من موسوعة حسوب.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات مجموعة ضمن وسم «تصميم قواعد البيانات» وتجد روابطها تاليًا:
تحليل نظام الملفات لإدارة البيانات وتخزينها واختلافه عن نظام قاعدة البيانات المفاهيم الأساسية في قواعد البيانات وتصميمها خصائص قواعد البيانات والمزايا التي تقدمها نمذجة البيانات وأنواعها في عملية تصميم قواعد البيانات مفاهيم نموذج البيانات العلائقية RDM الأساسية المهمة في تصميم قواعد البيانات نموذج الكيان والعلاقة ER لتمثيل البيانات وتخزينها في قاعدة البيانات قواعد السلامة وقيودها لضمان سلامة البيانات في قواعد البيانات نمذجة الكيان العلاقي ER عند تصميم قواعد البيانات الاعتماديات الوظيفية المستخدمة في تصميم قواعد البيانات فهم عملية التوحيد Normalization المستخدمة عند تصميم قاعدة البيانات عملية تطوير قواعد البيانات Database Development نظرة سريعة على لغة الاستعلامات الهيكلية SQL لغة معالجة البيانات DML الخاصة بلغة SQL أمثلة عملية عن كيفية تصميم قواعد البيانات24937 تنزيل
آخر تحديث
-
البرمجة بلغة جافاسكربت
بواسطة أكاديميّة حسوب
يشرح هذا الكتاب كيفية كتابة تعليمات ووصفات يفهمها الحاسوب، ومن المعلوم أن الحواسيب شائعة ومنتشرة بحيث لا يخفى ذلك على ذي عقل وشأنها مثل شأن مفكات البراغي، غير أنها أعقد قليلًا وليس من السهل جعلها تنفذ ما تريد منها بالضبط، إلا إذا كانت المهمة التي تريد للحاسوب تنفيذها سهلة الفهم مثل عرض رسائلك البريدية أو تشغيل برنامج الحاسبة، فحينها ما عليك سوى فتح البرنامج المخصص لذلك، لكن حين تكون المهمة التي لديك فريدةً وأبعادها غير معرفة، فلن تجد تطبيقًا متاحًا لها.
يأتي هنا دور البرمجة، فهي الفعل الذي يصف بناء برنامج يتكون من مجموعة أوامر محدَّدة جدًا لتخبر الحاسوب بما يجب فعله، وتُعَدّ الحواسيب بصفتها آلات غبية لا تستطيع فهم البرمجة ولا استيعابها، لكن إذا غضضت النظر عن هذا ورأيت أنه من الممتع والمسلِّي التفكير بمنطق يشبه ذاك الذي تفهمه تلك الآلات فستجد البرمجة أمرًا مسلِّيًا جدًا ونافعًا، فهي تتيح لنا اختصار زمن الأشياء التي ننفذها يدويًا وتستغرق أوقاتًا طويلةً إلى ثواني معدودة، وعليه يمكن النظر إليها على أنها طريقة تجعل حاسوبك يقوم بأمور لم يكن يستطيعها من قبل، وهي في ذاتها -أي البرمجة- بهذا الفهم تكون تدريبًا ممتازًا على التفكير النظري المجرَّد.
دورة تطوير التطبيقات باستخدام لغة JavaScript
تعلم البرمجة بلغة جافا سكريبت انطلاقًا من أبسط المفاهيم وحتى بناء تطبيقات حقيقية.
اشترك الآن كما نوجه هذه الآلات لما نريده من خلال إعطائها أوامر محدَّدة كما ذكرنا، وتكون هذه الأوامر أو البرامج من خلال لغات خاصة بالبرمجة، وهي لغات أُنشئت عمدًا لتُستخدَم في برمجة الحواسيب، ومما يعجب المرء له أن البشر في تطويرهم للأسلوب الذي يتعاملون به مع الحاسوب لم يجدوا أفضل من الطريقة التي يتواصلون بها مع بعضهم بعضًا، فلغات البرمجة الحوسبية تشبه لغات البشر في إمكانية استخدام الكلمات والجمل في صور مختلفة لكتابة تعليمات جديدة في كل مرة تكتب برنامجًا فيها.
كانت لغة بيزيك Basic ونظام دوس DOS في الثمانينيات والتسعينيات من القرن الماضي هما الطريقتان الأساسيتان في التعامل مع الحواسيب، وهما أنظمة نصية بالكامل من غير واجهة رسومية مثل التي تراها الآن أمامك على الشاشة، وقد استبدلنا الواجهات المرئية بهما منذ ذلك الحين بما أنها أسهل في التعلم للمستخدِم رغم أنها محدودة الإمكانيات موازنة بالواجهات النصية، لكن لا زالت لغات الحاسوب موجودةً، فإذا أمعنت النظر فسترى أنّ لغةً مثل جافاسكربت JavaScript موجودة في كل متصفح تستخدِمه أنت وهي في كل حاسوب تقريبًا، وإنّ مراد هذا الكتاب الذي بين يديك هو جعلك تألف التعامل مع هذه اللغة لتستخدِمها في صنع برامج نافعة لك ولعملائك.
هذا الكتاب هو النسخة العربية المترجمة عن كتاب Eloquent JavaScript الشهير لصاحبه مارين هافربيك Marijn Haverbeke، ويقع في ثلاثة أجزاء، إذ يناقش أول جزء فيها لغة جافاسكربت في اثني عشر فصلًا؛ أما الفصول السبعة التالية فهي عن متصفحات الويب والأسلوب الذي تُستخدَم لغة جافاسكربت به لبرمجتها، ثم في النهاية فصلين آخرين مخصصين لبيئة أخرى لتشغيل جافاسكربت فيها وهي Node.js، كما سيكون في هذا الكتاب خمسة فصول عملية بها مشاريع تصف برامج كبيرة لتعطيك لمحةً عن البرمجة الحقيقية، وهي بناء روبوت توصيل ولغة برمجة ولعبة وبرنامج رسم بالبكسلات وموقعًا ديناميكيًا.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات مجموعة ضمن وسم «إِلِكوَنت جافاسكريبت» وتجد روابطها تاليًا:
القيم والأنواع والعوامل في جافاسكريبت (الجزء الأول: اللغة) هيكل البرنامج في جافاسكريبت الدوال في جافاسكريبت هياكل البيانات: الكائنات والمصفوفات في جافاسكريبت الدوال العليا في جافاسكريبت الحياة السرية للكائنات في جافاسكريبت مشروع تطبيقي لبناء رجل آلي (روبوت) عبر جافاسكريبت الزلات البرمجية والأخطاء في جافاسكريبت التعابير النمطية Regular Expressions في جافاسكريبت الوحدات Modules في جافاسكريبت البرمجة غير المتزامنة في جافاسكريبت مشروع بناء لغة برمجة خاصة علاقة جافاسكريبت بتطور الإنترنت والمتصفحات (الجزء الثاني: المتصفح) نموذج كائن المستند في جافاسكريبت معالجة الأحداث في جافسكربت مشروع لعبة منصة باستخدام جافاسكربت الرسم على لوحة في جافاسكربت HTTP والاستمارات في جافاسكربت إنجاز مشروع محرر رسوم نقطية باستخدام جافاسكربت بيئة Node.js: استخدام جافاسكربت خارج المتصفح (الجزء الثالث: بيئة Node) مشروع بناء موقع لمشاركة المهارات باستعمال Node.js28595 تنزيل
آخر تحديث
-
الدليل العملي إلى قواعد بيانات PostgreSQL
بواسطة أكاديميّة حسوب
يأخذ هذا الكتاب بيدك في أمثلة عملية ومتنوعة تغطي أساسيات SQL وأساسيات إدارة قواعد بيانات Postgres، وتمر على مزايا مهمة في Postgres تزيد من فاعلية الاستعلامات ووضوح عبارتها، ويصل هذا الكتاب إلى مواضيع متقدمة في إدارة قواعد البيانات كالنسخ الاحتياطي وتتبع استخدام الذاكرة، وبذلك يتميز بأنه مناسب للمبتدئ والمتوسط ويضع قدمك على سكة المستوى المتقدم في قواعد بيانات Postgres.
بني هذا الكتاب بدايةً على دليل PostgresGuide لمؤلفه Craig Kerstiens المرخص تحت رخصة CC BY-NC أي كان ترجمةً لذلك الدليل فقط، ولكن لمَّا وجدنا الإصدار المستعمل فيه من Postgres قديمًا وينقص الدليل عدة مواضيع إضافية، آثرنا البناء عليه وتحسينه وإضافة كل ما نراه ناقصًا ليحقق الكتاب مبدأ 80/20.
فيما يميزه عن غيره، فهو أننا اتبعنا في بداية العمل على هذا الكتاب قاعدة باريتو 80/20، حيث حرصنا على تغطية 20% من مواضيع PostgreSQL التي تُستخدَم في 80% من الحالات في الواقع والمجال العملي، إذ حاولنا الابتعاد عن التفاصيل غير العملية أو قليلة الاستخدام، أي أن هذا الكتاب لا يتطرق إلى شرح أو استخدام الأدوات المتقدمة والتي قد يندر استخدام بعضها، فلم نرد عرض شيء لا يستخدم إلا في حالات قليلة (تكون قد نسيتها إلى حين استعمالها ;-) ).
ساهم بالعمل على هذا الكتاب، مصطفى عطا العايش تأليفًا، وجميل بيلوني تحريرًا وإشرافًا، وأخرجه فنيًا فرج الشامي. نرجو أن نكون قد وفقنا في هذا العمل بتوفير دليل عملي نافع يثري المكتبة العربية.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «المرجع الشامل إلى تعلم PostgreSQL»، أو من هنا مباشرةً مما يلي:
الفصل الأول: نظرة عامة على Postgres وتاريخها الفصل الثاني: تثبيت Postgres والتعرف على أساسيات إدارتها لقواعد البيانات الفصل الثالث: أساسيات استخدام صدفة psql الفصل الرابع: استخدام أساسيات SQL في Postgres الفصل الخامس: مزايا متقدمة في Postgres الفصل السادس: أنواع بيانات خاصة في قواعد بيانات Postgres الفصل السابع: إدارة النسخ الاحتياطي في قواعد بيانات Postgres الفصل الثامن: أساسيات إدارة الذاكرة في قواعد بيانات Postgres الفصل التاسع: كيفية إدارة الأداء في قواعد بيانات Postgres الفصل العاشر: أوامر متقدمة في صدفة psql13474 تنزيل
آخر تحديث
-
أنظمة التشغيل للمبرمجين
بواسطة أكاديميّة حسوب
تُعد أنظمة التشغيل موضوعًا متقدمًا في العديد من برامج علوم الحاسوب، حيث يتعرف المتعلم على كيفية البرمجة بلغة C بحلول الوقت الذي يتعرف فيه على أنظمة التشغيل، وربما يأخذ المتعلم فصلًا دراسيًا في معمارية الحاسوب Computer Architecture قبل ذلك، فيصبح الهدف من تقديم هذا الموضوع عادةً هو عرض تصميم وتنفيذ أنظمة التشغيل للطلاب مع افتراض ضمني أن بعضهم سيجري بحثًا في هذا المجال، أو يكتب جزءًا من نظام تشغيل.
هذا الكتاب مترجم عن الكتاب Think OS لكاتبه آلن داوني Allen B. Downey والذي يعد مسودة أولية لم تكتمل بصورة نهائية بعد إذ طُوّر لفصلٍ دراسي في كلية أولين Olin College يدعى أنظمة البرمجيات Software Systems.
لا يفترض هذا الكتاب أنك قد درست معمارية الحاسوب، فيجب أن يمنحك فهمًا أفضل أثناء قراءته عن الحاسوب ومعماريته وكيف يعمل المعالج والذاكرة فيه وكيف تُدار العمليات وتُخزَّن الملفات وما يحدث عند تشغيل البرامج، وما يمكنك القيام به لجعل البرامج تعمل بصورة أفضل وأسرع بوصفك مبرمجًا.
يشرح الفصل الأول بعض الاختلافات بين اللغات المُصرَّفة compiled واللغات المُفسَّرة interpreted، مع بعض الأفكار حول كيفية عمل المصرِّفات compilers، ويشرح الفصل الثاني كيف يستخدم نظام التشغيل العمليات لحماية البرامج قيد التشغيل من التداخل مع بعضها البعض. ويشرح الفصل الثالث الذاكرة الوهمية virtual memory وترجمة العناوين، ويتحدث الفصل الرابع عن أنظمة الملفات ومجرى البيانات، ويصف الفصل الخامس كيفية تشفير الأرقام والأحرف والقيم الأخرى، ويشرح أيضًا العامِلات الثنائية bitwise operators.
أما الفصل السادس، فيشرح كيفية استخدام إدارة الذاكرة الديناميكية وكيفية عملها، ويدور الفصل السابع حول التخبئة caching وهرمية الذاكرة. ويشرح الفصل الثامن تعدد المهام multitasking والجدولة scheduling. ويدور الفصل التاسع حول خيوط POSIX وكائنات المزامنة mutexes، ويشرح الفصل العاشر المتغيرات الشرطية POSIX ومشكلة المنتج / المستهلك، ويدور الفصل الحادي عشر حول استخدام متغيرات تقييد الوصول POSIX وتطبيقها في لغة C.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «مدخل إلى أنظمة التشغيل»، أو تجدها مسردة بالترتيب التالي:
الفصل الأول: مفهوم التصريف Compilation في لغات البرمجة الفصل الثاني: العمليات Processes في أنظمة التشغيل الفصل الثالث: الذاكرة الوهمية Virtual memory في نظام التشغيل الفصل الرابع: فهم الملفات Files وأنظمة الملفات file systems الفصل الخامس: تمثيل الأعداد والنصوص بالبتات وإجراء العمليات على مستوى البت الفصل السادس: إدارة الذاكرة Memory management في لغة C الفصل السابع: فهم عملية التخبئة Caching في معمارية الحاسوب الفصل الثامن: تعدد المهام Multitasking في الحواسيب الفصل التاسع: مفهوم الخيوط Threads في عملية المعالجة الفصل العاشر: المتغيرات الشرطية وحلها مشاكل التزامن بين العمليات في لغة C الفصل الحادي عشر: متغيرات تقييد الوصول Semaphores في لغة البرمجة سي C10360 تنزيل
آخر تحديث
-
البرمجة بلغة سي
بواسطة أكاديميّة حسوب
كانت لغة سي C الاستثنائية نتاج عمل رجلٌ واحدٍ يعمل في مختبرات بيل AT&T Bell Laboratories يدعى "دينيس ريتشي Dennis Ritchie"، وشهدت هذه اللغة شعبيةً متزايدةً منذ وقت ظهورها، وينظر إليها البعض بكونها أكثر لغات البرمجة استخدامًا حول العالم. لا يوجد عامل أساسي في نجاح لغة سي، بل هناك مجموعةٌ من العوامل المختلفة الملائمة، ولعل أبرزها هو تطوير اللغة على يد ممارسين للبرمجة (مبرمجين) يوميًا بهدف استخدامها عمليًّا وليس بغرض الاستعراض النظري، وكانت متعددة الاستخدامات وتؤدي العديد من الأغراض، إذ ركزت على تزويد المبرمج بالقوة والتحكم بدلًا من احتوائها على حدودٍ وقواعد صارمة تحدّ من حريته.
ساهم هذا السبب الكبير في جعل لغة سي مناسبةً للمحترفين أكثر من المبتدئين، إذ يتطلب تعلُّم البرمجة في البداية بيئةً آمنةً ومبسطة، تعطيك استجابةً لأخطائك وكيفية حلّها بسرعة. بمعنى آخر، برامج تعمل حتى لو لم تنفذ ما تريده -بسبب خطأ من طرفك- ولكن لغة سي لا تعمل بهذه الطريقة. الأمر مماثل لاستخدام حطاب محترف للمنشار الآلي لقطع الأشجار، فهو يعي جيّدًا خطورة الأداة هذه إن لمس شفراتها بينما تعمل، ولكنه يستطيع استخدامها بثقة وبمهارة. تعمل لغة سي C بصورةٍ مشابهة، وعلى الرغم من أن مصرِّف Compiler لغة سي قد ينبِّه المبرمج عند حدوث بعض الأخطاء ويزوده بإرشاداتٍ محدودة تدلُّه على سبب الخطأ، إلا أن المبرمج يملك خيار تجاهل تحذيرات المصرِّف وإجباره على استخدام التعليمات التي كتبها، وبفرض أنك أردت الحصول على البرنامج الذي كتبته فعلًا، فستحصل عليه دون أيّ قيود.
ازدادت شعبية لغة C أيضًا بفضل نمو سوق أجهزة الحواسيب الشخصية، فقد صُممت لغة سي خصيصًا لتطوير البرمجيات عليها، إذ تمنح هذه اللغة عالية المستوى القدرة للمبرمجين على كتابة برنامج سهل القراءة والكتابة، والقوة للتحكم بمختلف موارد الحاسوب ومعماريته دون اللجوء لاستخدام شيفرةٍ تجميعية Assembly Code.
تُعرف لغة سي بقدرتها الفريدة على الجمع بين مستويين من البرمجة في وقتٍ واحد، مع المحافظة على قدرة التحكم بالتدفق وهياكل البيانات data structures والإجراءات procedures -وهي جميع الأمور التي تتوقعها من أي لغة حديثة عالية المستوى-، كما تسمح لمبرمجي الأنظمة بالتعامل والتلاعب بخانات الآلة bits، لضمان الوصول الأقرب للعتاد الصلب في حال الحاجة. مجموعة الخصائص هذه مرغوبة جدًا في سوق برمجيات الحواسيب التنافسي، ونتيجة لذلك اتخذ العديد من مطوري البرمجيات لغة سي أداتهم الأساسية.
هذا الكتاب مترجم عن الإصدار الثاني من الكتاب The C Book للمؤلفين Mike Banahan - Declan Brady - Mark Doran الذي نُشر أول إصدار منه عام 1991 وقد نفدت كل الإصدارات المطبوعة منه وبقيت النسخة المنشورة على الإنترنت والتي ترجمناها إلى العربية. ورغم قِدمه، إلا أن محتواه متوافق مع لغة سي المستقرة والتي تُستعمل في مجال هندسة البرمجيات بكثرة خصوصًا في مجال الأنظمة والأنظمة المدمجة embedded programming وتعلمها يعطي فهمًا واسعًا عن عملية البرمجة لذلك تجد أن أغلب الجامعات ودورات البرمجة المتوسعة والشاملة تبدأ بتعليم البرمجة بلغة سي.
الكتاب موجّهٌ لفئتين من الأشخاص، الأشخاص المبتدئين في لغة سي C الذين يريدون تعلُّمها من البداية، والفئة التي تعرف التعامل مع لغة سي مسبقًا بمعيارها القديم وتريد التعرُّف على الإضافات الجديدة في المعيار الجديد. نتمنى أن يكون هذا الكتاب مفيدًا وممتعًا لك في نفس الوقت.
يمكنك قراءة فصول الكتاب على شكل مقالات مجتمعة تحت الوسم "تعلم لغة سي" وتجد روابطها تاليًا:
الفصل الأول: مقدمة إلى لغة سي بنية برنامج لغة سي بعض البرامج البسيطة بلغة سي C: المصفوفات والعمليات الحسابية الفصل الثاني: المتغيرات والعمليات الحسابية المحارف المستخدمة في لغة سي البنية النصية لبرامج سي الأنواع الحقيقية والصحيحة في لغة سي التحويلات ما بين الأنواع في تعابير لغة سي العوامل في لغة سي الثوابت وسلاسل الهروب في لغة سي الفصل الثالث: التحكم بالتدفق والتعابير المنطقية التعابير المنطقية والتحكم بالتدفق في برنامج C العوامل المنطقية في لغة سي C وعوامل أخرى الفصل الرابع: الدوال Functions الدوال في لغة C مفهوم التعاود Recursion وتمرير الوسطاء إلى الدوال في لغة سي مفهوم النطاق Scope والربط Linkage على مستوى الدوال في لغة C الفصل الخامس: المصفوفات Arrays والمؤشرات Pointers مدخل إلى المصفوفات في لغة سي المؤشرات Pointers في لغة سي التعامل مع المحارف والسلاسل النصية في لغة سي عامل sizeof وحجز مساحات التخزين في لغة سي التعامل مع المؤشرات Pointers في لغة سي الفصل السادس: هياكل البيانات هياكل البيانات: القوائم المترابطة Linked lists والأشجار Trees في لغة سي هياكل البيانات: الاتحادات Unions وحقول البتات Bitfields والمعددات Eums في لغة سي تهيئة المتغيرات وأنواع البيانات في لغة سي الفصل السابع: المعالج المسبق Preprocessor الماكرو Macro والمعالج المسبق Preprocessor في لغة سي الفصل الثامن: مواضيع مخصصة عن لغة سي التصاريح declarations والتعاريف definitions وإمكانية الوصول accessibility في لغة سي معرفات النوع typedef والمؤهلات qualifiers ونقاط التسلسل sequence points في لغة الفصل التاسع: المكتبات Libraries مقدمة إلى مكتبات لغة سي التعامل مع المحارف وضبط إعدادات التوطين localization في لغة سي القيم الحدية والدوال الرياضية في لغة سي التعامل مع المكتبات في لغة سي مقدمة عن التعامل مع الدخل والخرج I/O في لغة سي التعامل مع الدخل والخرج I/O وتنسيقه في لغة سي أدوات مكتبة stdlib في لغة سي دوال التعامل مع السلاسل النصية والوقت والتاريخ في لغة سي الفصل العاشر: تطبيقات عملية تطبيقات عملية في لغة سي5174 تنزيل
آخر تحديث
-
البرمجة بلغة رست
بواسطة أكاديميّة حسوب
أهلًا بك إلى لغة البرمجة رست، كتاب تمهيدي حول رست. تساعدك لغة رست في كتابة برمجيات أسرع وأكثر وثوقيّة، وعادةً ما يكون كل من أريحية استخدام مستوى مرتفع والتحكم الذي يقدمه لك المستوى المنخفض طريقان مختلفان يجب عليك الاختيار بينهما إلا أن رست تغير من ذلك الواقع عن طريق الموازنة بين القدرة التقنية الهائلة لها وتجربة المطوّر الجيدة، إذ تعطيك رست خيار التحكم بالتفاصيل منخفضة المستوى (مثل استخدام الذاكرة) دون أن يترتب على ذلك الاختيار أي شيء إضافي تجده عادةً.
هذا الكتاب مترجم عن الكتاب The Rust Programming Language من مساهمة ستيف كلابنيك Steve Klabnik وكارول نيكلز Carol Nichols ومساهمات من مجتمع لغة رست، ويعد مرجعًا شاملًا إلى لغة رست بكل تفاصيلها واستخداماتها.
يشدد هذا الكتاب على إمكانية لغة رست لتمكين مستخدمها، فهو كتابٌ سهل القراءة بلغة بسيطة وموجّهٌ لمساعدتك، ليس فقط في معرفتك بلغة رست فحسب، بل للوصول إلى مبرمج بمستوًى عالٍ من الثقة عمومًا.
تُعد رست لغة برمجة مثالية للعديد من الأشخاص لعدة أسباب. لنلقي نظرةً على بعض مجموعات المستخدمين وأهمها:
فرق المطورين الطلاب الشركات مطورو المصادر المفتوحة المهتمون بالسرعة والاستقرار يفترض هذا الكتاب أنك كتبت شيفرة برمجية مسبقًا بإحدى اللغات الأخرى، إلا أنه لا يفترض أي لغة برمجة كانت تلك، وحاولنا جعل المحتوى قابل للفهم عمومًا قدر الإمكان بغض النظر عن نوع خلفية القارئ في البرمجة. لن نتكلم كثيرًا عن ماهية البرمجة أو كيف تستطيع التفكير بها، فإذا كنت جديدًا إلى البرمجة، فمن الأفضل قراءة كتاب تمهيدي حول البرمجة على وجه الخصوص ونرشح لك كتاب تعلم البرمجة للمبتدئين لتبدأ به.
يفترض هذا الكتاب عمومًا أنك تقرأه تسلسليًا من البداية إلى النهاية، إذ نقدم مفاهيمًا concept في الفصول اللاحقة بناءً على مفاهيم تكلمنا عنها في الفصول التي سبقتها، وإذا لم نوضّح بصورةٍ مفصلة المفاهيم المقدمة في الفصول الأولى، فهذا يعني أننا سنخوض في تفاصيل أكثر عمقًا في فصول لاحقة.
ستجد نوعين من الفصول في هذا الكتاب، هما: الفصول التي تتناول المفاهيم النظرية، والفصول التي تتناول المشاريع العملية؛ إذ سنتعلم في الفصول النظرية عن جانب معين من لغة رست، بينما سنبني في فصول المشاريع برامج بسيطة سويًّا بتطبيق ما تعلمناه إلى حد تلك النقطة. فصول المشاريع هي الفصل الأول والثاني عشر والعشرين والفصول الأخرى هي فصول نظرية.
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، صفحة التصنيف «البرمجة بلغة رست»، أو مباشرة مما يلي:
تعلم لغة رست Rust: البدايات تعلم لغة رست: البدايات برمجة لعبة تخمين أعداد برمجة لعبة تخمين الأرقام بلغة رست Rust مبادئ البرمجة الأساسية المتغيرات والتعديل عليها في لغة رست أنواع البيانات Data Types في لغة رست كيفية كتابة الدوال Functions والتعليقات Comments في لغة راست التحكم بسير تنفيذ برامج راست الملكية Ownership الملكية Ownership في لغة رست المراجع References والاستعارة Borrowing والشرائح Slices في لغة رست استخدام الهياكل لتنظيم البيانات استخدام الهياكل structs لتنظيم البيانات في لغة رست استخدام التوابع methods ضمن الهياكل structs في لغة رست التعدادات Enums التعدادات enums في لغة رست بنية match للتحكم بسير برامج لغة رست إدارة المشاريع الكبيرة عبر الحزم والوحدات والوحدات المصرفة الحزم packages والوحدات المصرفة crates في لغة رست المسارات paths وشجرة الوحدة module tree في رست المسارات paths والنطاق الخاص بها في لغة رست التجميعات الشائعة تخزين لائحة من القيم باستخدام الأشعة Vectors في لغة رست تخزين النصوص بترميز UTF-8 داخل السلاسل النصية في لغة رست كيفية استخدام النوع HashMap لتخزين البيانات في رست الأخطاء والتعامل معها الأخطاء والتعامل معها في لغة رست الاختيار ما بين الماكرو panic! والنوع Result للتعامل مع الأخطاء في لغة Rust الأنواع المعممة Generic Types والسمات Traits ودورات الحياة Lifetimes مقدمة إلى مفهوم الأنواع المعممة Generic Types في لغة Rust كيفية استخدام أنواع البيانات المعممة Generic Data Types في لغة Rust السمات Traits في لغة رست التحقق من المراجع References عبر دورات الحياة Lifetimes في لغة رست كتابة الاختبارات الآلية كتابة الاختبارات في لغة رست التحكم بتنفيذ الاختبارات في لغة رست تنظيم الاختبارات Tests في لغة رست التعامل مع الدخل والخرج: كتابة برنامج سطر أوامر Command Line التعامل مع الدخل والخرج إعادة بناء التعليمات البرمجية لتحسين النمطية Modularity والتعامل مع الأخطاء اختبار البرنامج التعامل مع متغيرات البيئة وطباعة الأخطاء في لغة رست ميزات البرمجة الوظيفية: المكررات والمنغلقات المغلفات closures في لغة رست معالجة سلسلة من العناصر باستخدام المكررات iterators في لغة رست استخدام المكررات Iterators في تطبيق سطر أوامر بلغة رست الاختيار بين الحلقات Loops والمكررات Iterators في لغة رست نظرة مفصلة عن كارجو Cargo تخصيص نسخ مشروع بلغة رست ونشرها على crates.io مساحة عمل كارجو Cargo Workspaces في لغة رست وتحميل حزمة من crates.io المؤشرات الذكية Smart Pointers المؤشرات الذكية Smart Pointers معاملة المؤشرات الذكية Smart Pointers مثل مراجع نمطية Regular References باستخدام سمة Deref في لغة رست تنفيذ شيفرة برمجية عند تحرير الذاكرة cleanup باستخدام السمة Drop في لغة رست المؤشر Rc الذكي واستخدامه للإشارة إلى عدد المراجع في لغة رست Rust المؤشر الذكي Refcell ونمط قابلية التغيير الداخلي interior mutability في لغة رست Rust حلقات المرجع Reference Cycles وتسببها بتسريب الذاكرة Memory Leak في لغة رست Rust البرمجة المتزامنة الآمنة استخدام الخيوط Threads لتنفيذ شيفرات رست بصورة متزامنة آنيًا البرمجة بلغة رست استخدام ميزة تمرير الرسائل Message Passing لنقل البيانات بين الخيوط Threads في لغة رست تزامن الحالة المشتركة Shared-State Concurrency في لغة رست وتوسيع التزامن مع Send و Sync مزايا البرمجة كائنية التوجه Object-Oriented Programming البرمجة كائنية التوجه OOP في لغة رست استخدام كائنات السمة Object Trait في لغة رست تنفيذ نمط تصميمي Design Pattern كائني التوجه Object-Oriented في لغة رست الأنماط والمطابقات الأنماط Patterns واستخداماتها وقابليتها للدحض Refutability في لغة رست صياغة أنماط التصميم الصحيحة Pattern Syntax في لغة رست ميزات متقدمة لغة رست غير الآمنة Unsafe Rust مفاهيم متقدمة عن السمات Trait في لغة رست الأنواع والدوال المتقدمة في لغة رست الماكرو Macros في لغة رست بناء خادم ويب متعدد مهام المعالجة بناء خادم ويب متعدد مهام المعالجة بلغة رست - الجزء الأول بناء خادم ويب متعدد مهام المعالجة بلغة رست - الجزء الثاني بناء خادم ويب متعدد مهام المعالجة بلغة رست - الجزء الثالث3500 تنزيل
آخر تحديث
-
دليل JavaScript الشامل - الجزء الأول
بواسطة أكاديميّة حسوب
لغة جافاسكربت JavaScript هي لغة برمجة شهيرة موجودة حيث وجدت متصفحات الويب فهي أحد الركائز الثلاثية لتطوير الويب مع لغة HTML ولغة CSS فبها مجتمعة تُبنى واجهات الويب وبذلك لا غنى للغة جافاسكربت في مجال الويب إذ تساهم في إضفاء التفاعلية على صفحات الويب وبدونها تصبح الصفحات جامدة، كما أنها تُنجز أي عمليات برمجية ومنطقية في الصفحات مثل التحقق من مدخلات المستخدم وسلامة البيانات.
استخدام جافاسكربت لا ينحصر في المتصفح بل يمتد إلى تطبيقات أوسع إذ تُشغل شيفرات لغة جافاسكربت خارج المتصفح في بيئة Node.js وبذلك يمكن استخدام لغة جافاسكربت في بناء مختلف التطبيقات أشهرها حاليًا بناء خوادم الويب وهنا أصبح بالإمكان استعمال لغة جافاسربت في تطوير الواجهات الأمامية والواجهات الخلفية لصفحات الويب بمختلف أنواعها والحديث عن اللغة وميزاتها يطول لذا لن أتوسع في التمهيد بالتحدث عن اللغة لأن الكتاب كله عنها وخصوصًا باب المقدمة.
هذا الكتاب مترجم عن الكتاب The JavaScript Language: Part 1 الجزء الأول لكاتبه إيليا كانتور Ilya Kantor وهو بحجم 1000 صفحة وفيه يشرح لغة جافاسكربت شرحًا كاملًا لكل ميزاتها وتفاصيلها ويعد أفضل وأول مرجع تعليمي أجنبي لتعلم لغة جافاسكربت.
ويوجد جزء ثان للكتاب يتحدث عن استعمال جافاسكربت في المتصفحات تحديدًا وجزء ثالث يتحدث عن مواضيع متفرقة ومتقدمة عن جافاسكربت يكمل فيها الجزأين السابقين ويتمم الحديث عن لغة جافاسكربت ليكون الكتاب بأجزائه الثلاثة مرجعًا كاملًا عن لغة جافاسكربت.
دورة تطوير التطبيقات باستخدام لغة JavaScript
تعلم البرمجة بلغة جافا سكريبت انطلاقًا من أبسط المفاهيم وحتى بناء تطبيقات حقيقية.
اشترك الآن يُقسم الكتاب إلى 14 فصلًا أو بابًا كل منها مقسوم إلى فصول فرعية أصغر تتحدث عن موضوع محدد من اللغة ولكل قسم مقدمة وخاتمة وتمارين منفصلة، والفصول مرتبة ترتيبًا متدرجًا بدءًا من المواضيع الأساسية وحتى المواضيع المتقدمة بما يناسب المتعلم الجديد الذي يريد تعلم لغة جافاسكربت من الصفر دون خبرة مسبقة، وأما إن كنت تملك خبرة مسبقة بلغة جافاسكربت فيمكنك قراءة الفصول وفق الترتيب الذي تريد والرجوع إليها وفقًا لأبوابه وفصولها الفرعية.
الكتاب مدعوم بشيفرات عملية كثيرة وهي جاهزة للتجريب في المتصفح لذا تجدها تعتمد على دالة المتصفح alert التي تعرض رسالة على شكل مربع منبثق في صفحة المتصفح وبالتالي يمكنك تجريب الشيفرات بنسخها ولصقها في طرفية المتصفح console وسيدلك فصل أدوات المطور على كيفية استخدام هذه الأداة إن لم تكن تعرفها من قبل.
تجد في نهاية كل قسم تمارين ننصح بالتدرّب عليها بعد قراءة القسم قبل الاطلاع على الحل ثم الرجوع إلى الحل وموازنته مع حلك الناتج، وهذا يحقق أقصى استفادة أثناء تعلمك لغة جافاسكربت، وضع في بالك أن حل هذه التمارين يساعدك على تعلم لغة جافاسكربت من جهة وعلى حل الأسئلة البرمجية التي تُسأل في مقابلات العمل لذا لا تهملها.
يمكنك قراءة الكتاب على شكل فصول منشورة على موقع أكاديمية حسوب مباشرةً إن كنت تحب القراءة على المتصفح مباشرة أو إن كنت تجد صعوبة في نسخ الشيفرات أو تجريبها، وتجد روابط الفصول تاليًا مجموعة ضمن وسم "دليل تعلم جافاسكربت":
الباب الأول: مقدمة
مقدمة إلى لغة JavaScript محررات الشيفرة البرمجية أدوات المطور DevTools الباب الثاني: أساسيات جافاسكربت
المثال الأول: أهلًا بالعالم! بنية الشيفرة البرمجية الوضع الصارم: النمط الحديث لكتابة الشيفرة المتغيرات variables أنواع البيانات Data Types الدوال التفاعلية: confirm ،prompt ،alert التحويل بين الأنواع العاملات operators عاملات الموازنة العاملات الشرطية العاملات المنطقية عامل الاستبدال اللاغي ?? حلقتا التكرار while و for التعليمة switch الدوال في JavaScript تعابير الدوال أساسيات الدوال السهمية مراجعة لما سبق الباب الثالث: الاعتناء بجودة الشيفرة
تنقيح الأخطاء في chrome نمط كتابة الشيفرة التعليقات شيفرة النينجا البرمجية الاختبار الآلي باستخدام mocha تعويض نقص دعم المتصفحات الباب الرابع: الكائنات: تأسيس المفاهيم
الكائناتَ Objects نسخ الكائن: الفرق بين القيمة والمرجع كنس البيانات المهملة الدول في الكائنات واستعمالها this الباني والعامل new التسلسل الاختياري .? النوع الرمزي Symbol التحويل بين نوع كائن إلى نوع أولي الباب الخامس: أنواع البيانات
توابع الأنواع الأولي النوع number: الأعداد النوع string: السلاسل النصية المصفوفات Arrays توابِع المصفوفات المُكرَّرات Iterables النوع Map الخرائط والنوع Set الأطقم النوع WeakMap والنوع WeakSet مفاتيح الكائنات وقيمها ومدخلاتها الإسناد بالتفكيك النوع Date: التاريخ والوقت صيغة JSON وتوابعها الباب السادس: التعامل المتقدم مع الدوال
التعاود Rescursion والمكدس Stack المعاملات «البقية» ومعامل التوزيع المنغلقات Closure ومجال المتغيرات إفادة «var» القديمة الكائن العمومي Global object كائنات الدوال وتعابير الدوال المسمّاة NFE صياغة «الدالة الجديدة» new Function المُهلة setTimeout والفترة setInterval المزخرفات والتمرير: التابعان call وapply ربط الدوال Function binding الحديث عن الدوال السهمية مرة أخرى الباب السابع: ضبط خاصيات الكائنات
رايات الخاصيات وواصِفاتها جالبات الخاصيات Getters وضابطاتها Setters الباب الثامن: الوراثة النموذجية
الوراثة النموذجية Prototypal inheritance الوراثة النموذجية بتعمق F.prototype النماذج الأولية الأصيلة Native prototypes توابِع النماذج الأولية والكائنات بلا proto الباب التاسع: الأصناف Classes
صياغة الأصناف الأساسية وراثة الأصناف Class inheritance الخاصيات والتوابع الثابتة الخاصيات والتوابع الخاصة والمحمية توسعة الأصناف المضمنة في اللغة فحص الأصناف عبر instanceof المخاليط Mixins الباب العاشر: التعامل مع الأخطاء
التعامل مع الأخطاء: جرب... التقط try..catch الأخطاء المخصصة وتوسعة صنف Error الباب الحادي عشر: الوعود واللاتزامن والانتظار
مقدمة إلى ردود النداء callbacks الوعود Promise سَلسلة الوعود Promises chaining التعامل مع الأخطاء: then وcatch واجهة الوعود البرمجية الدوال الواعدة: تحويل الدوال إلى وعود المهام السريعة مقابل الوعد لتنفيذ المهام لاحقًا اللاتزامن والانتظار async/await الباب الثاني عشر: المولدات والمكررات المتقدمة
المولدات Generators المكررات والمولدات غير المتزامنة الباب الثالث عشر: الوحدات Modules
مقدمة إلى الوحدات Modules تصدير الوحدات واستيرادها استيراد الوحدات ديناميكيًا الباب الرابع عشر: مواضيع متفرقة
الوسيط Proxy والمنعكس Reflect الدالة "Eval" لتنفيذ الشيفرة البرمجية تقنية Currying النوع المرجعي Reference الأعداد الكبيرة BigInt8244 تنزيل
آخر تحديث
-
البرمجة باستخدام Node.js
بواسطة أكاديميّة حسوب
تعد Node.js بيئة تشغيل مفتوحة المصدر يمكن خلالها تنفيذ شيفرات مكتوبة بلغة جافاسكربت JavaScript دون الحاجة إلى متصفح ويب، وبذلك لم يعد المتصفح المشغل الوحيد والحصري لها ما فتح الآفاق لاستخدام جافاسكربت في مختلف المجالات وليس فقط في تطوير الواجهات الأمامية front-end لصفحات ومواقع الويب وإضافة الفاعلية عليها مع لغة HTML ولغة CSS، وتُستعمل Node.js عادةً في تطوير الواجهات الخلفية لتطبيقات ومواقع الويب عبر بناء خوادم ويب خلفية كما يمكن استعمالها لتطوير أدوات وبرامج تعمل من سطر الأوامر.
ستتعلم في هذا الكتاب أساسيات البرمجة باستخدام Node.js بأسلوب عملي تطبيقي إذ ستبني خلال هذا الكتاب عدة تطبيقات وخوادم ويب مختلفة، وستصبح قادرًا في نهايته على كتابة برامج تستخدم مختلف ميزات Node.js منها التنفيذ الغير متزامن والتعامل مع الأحداث والتحكم بالعمليات وإدارة الوحدات.
كما سيتطرق الكتاب إلى بعض المواضيع المتقدمة في البرمجة منها كيفية تنقيح تطبيقات Node.js وتصحيح الأخطاء فيها باستخدام الأدوات المتوفرة سواءً في نود نفسها أو في المتصفح عبر أدوات التطوير DevTools، وأيضًا كيفية كتابة وحدات اختبار unite tests لوظائف التطبيق للتأكد من عملها وفق المطلوب.
الكتاب موجه لمن يريد تعلم مجال تطوير الواجهات الخلفية back-end أو مجال التطوير الشامل full stack كما يتطلب أن تملك خبرة أساسية على الأقل بلغة جافاسكربت إذ سيركز الكتاب على شرح بيئة Node.js وميزاتها واستخدامها ولن يشرح لغة جافاسكربت التي ستُستعمل في كل الكتاب، فإن لم يكن لديك خبرة بهذه اللغة، ننصحك بقراءة كتاب البرمجة بلغة جافاسكربت أولًا ثم هذا الكتاب.
هذا الكتاب مُترجم عن كتاب How To Code in Node.js بواسطة موقع DigitalOcean وقد ساهم به مجموعة مؤلفين من فريق Stack Abuse وهو مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «دليل تعلم Node.js»، أو مباشرة مما يلي:
كتابة أول برنامج في بيئة Node.js وتنفيذه استخدام الوضع التفاعلي REPL في Node.js إدارة الوحدات البرمجية في Node.js باستخدام npm وملف package.json إنشاء وحدات برمجية Modules في Node.js طرق كتابة شيفرات غير متزامنة التنفيذ في Node.js اختبار الوحدات البرمجية باستخدام Mocha و Assert في Node.js إنشاء خادم ويب في Node.js باستخدام الوحدة HTTP استخدام المخازن المؤقتة Buffers في Node.js استخدام مرسل الأحداث Event emitter في Node.js تنقيح أخطاء Node.js باستخدام المنقح debugger وأدوات المطور DevTools التعامل مع العمليات الأبناء Child Process في Node.js التعامل مع الملفات باستخدام الوحدة fs في Node.js التعامل مع طلبات HTTP في Node.js6171 تنزيل
آخر تحديث
-
مدخل إلى الذكاء الاصطناعي وتعلم الآلة
بواسطة أكاديميّة حسوب
لا يخفى على أي متعلم لمجال علوم الحاسوب كثرة الاهتمام بمجال الذكاء الاصطناعي وتعلم الآلة، وكذلك الأمر بالنسبة لمستخدم التقنية العادي الذي بات يرى تطورًا كبيرًا في الآلات والتقنيات التي تحيط به بدءًا من المساعد الصوتي الآلي في جواله وحتى سيارته وبقية الأشياء الذكية المحيطة به. تتوالى الاختراعات والاكتشافات يومًا بعد يوم وتتنافس كبرى الشركات حول من يحرز أكبر تقدم ليخطف الأضواء من غيره. ونظرًا لهذا الاهتمام، ولضعف المحتوى العربي وسطحيته في هذا المجال أيضًا، قررنا توفير مصدر عربي دسم لشرح مجال الذكاء الاصطناعي وتعلم الآلة نظريًا وعمليًا لذا وضعنا فهرس المحتوى آنذاك وبدأنا العمل.
هذا الكتاب هو الجزء الأول النظري التأسيسي من أصل جزآن عن الذكاء الاصطناعي وتعلم الآلة، ويبدأ بعرض أهمية الذكاء الاصطناعي وتعلم الآلة عبر الإشارة إلى المشاريع والإنجازات التي قدَّمها هذا المجال إلى البشرية حتى يومنا هذا وكيف أثرت على كل مجالات حياتنا اليومية. ينتقل بعدها إلى لمحة تاريخية عن المجال وكيفية ولادته ومراحل حياته حتى يومنا الحالي. ستجد بعدئذٍ المعلومات الدسمة في الفصل الثالث الذي يشرح المصطلحات المتعلقة بمجال تعلم الآلة ويشرح أساليب تعليم الإنسان للآلة والأسس التي بنيت عليها عمليات تعليم الآلة (منها شرح طرائق تعلم الآلة التقليدية ثم التجميع والتعلم المعزز وحتى الشبكات العصبية والتعلم العميق). يعرض الفصل الأخير تحديات عملية تعليم الآلة وما علاقة البيانات فيها، ثم أخيرًا عرض خارطة طريق لأهم المفاهيم التي يجب أن تتقنها في حال أردت التوسع في المجال وإتقانه.
بعد الانتهاء من الجزء الأول في هذا الكتاب وتأسيس المفاهيم والمصطلحات التي يقوم عليها مجال الذكاء الاصطناعي وتعلم الآلة، يمكنك الانتقال إلى الجزء الثاني وهو كتاب عشرة مشاريع عملية عن الذكاء الاصطناعي لبدء تطبيق مشاريع عملية تطبيقية مبنية على بيانات واقعية وتنفيذ أفكار مشاريع من الحياة العملية باستخدام الذكاء الاصطناعي.
ساهم بالعمل على هذا الكتاب، محمد لحلح تأليفًا، وجميل بيلوني تحريرًا وإشرافًا، وأخرجه فنيًا فرج الشامي. أرجو أن نكون قد وُفقنَا في هذا العمل لسد ثغرةً كبيرةً في المحتوى العربي -كما خططنا لذلك- الذي يفتقر أشد الافتقار إلى محتوى جيد ورصين في مجال الذكاء الاصطناعي وتعلم الآلة.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «الذكاء الاصطناعي: أهم الإنجازات والاختراعات وكيف أثرت في حياتنا اليومية»، أو من مباشرةً من الآتي:
الفصل الأول: الذكاء الاصطناعي: أهم الإنجازات والاختراعات وكيف أثرت في حياتنا اليومية الفصل الثاني: الذكاء الاصطناعي: مراحل البدء والتطور والأسس التي نشأ عليها الفصل الثالث: المفاهيم الأساسية لتعلم الآلة الفصل الرابع: تعلم الآلة: التحديات الرئيسية وكيفية التوسع في المجال63314 تنزيل
آخر تحديث
-
هياكل البيانات للمبرمجين
بواسطة أكاديميّة حسوب
تُعدّ هياكل البيانات data structures والخوارزميات algorithms واحدةً من أهم الاختراعات التي وقعت بالخمسين عامًا الأخيرة، وهي من الأدوات الأساسية التي لابُدّ أن يدرسها مهندسي البرمجيات. غالبًا ما تكون الكتب المتناولة لتلك الموضوعات -وفقًا للكاتب- ضخمةً للغاية، كما أنها عادةً ما تُركزّ على الجانب النظري، وتُقدِّم هذه المادة العلمية بدون سياق واضح وبدون أي حافز، فتَعرِض الهياكل البيانية واحدةً تلو الأخرى.
هذا الكتاب مترجم عن الكتاب الشهير Think Data Structures لمؤلفه Allen B. Downey والذي يعد مرجعًا عمليًا في شرح موضوعي هياكل البيانات والخوارزميات اللذين يحتاج إلى تعلمهما كل مبرمج ومهندس برمجيات يتطلع إلى احتراف مهنته وصقل عمله ورفع مستواه.
يحاول هذا الكتاب تنظيم الموضوعات نوعًا ما من خلال التركيز على برمجة تطبيق -برمجة محرك بحث-، ويَستخدِم هذا التطبيق هياكل البيانات بشكل مكثف، وهو في الواقع موضوع مهم وشيق بحد ذاته. في الحقيقة، سيدفعنا هذا التطبيق إلى دراسة بعض الموضوعات التي ربما لن تتعرَّض لها ببعض الفصول الدراسية التمهيدية الخاصة بمادة هياكل البيانات، حيث سنتعرَّض هنا مثلًا، لحفظ هياكل البيانات persistent data structure مثل ريدس Redis.
يُقدِّم الكتاب أيضًا بعض الأساسيات التي تُمارَس عادةً بهندسة البرمجيات، بما في ذلك نظم التحكُّم بالإصدار version control، واختبار الوحدات unit testing. تتضمَّن غالبية فصول الكتاب تمرينًا يَسمَح للقراء بتطبيق ما تعلموه خلال الفصل، حيث يُوفِّر كل تمرين اختبارات أوتوماتيكية لفحص الحل، وبالإضافة إلى ذلك، يُوفِّر الكاتب حلًا لغالبية التمارين ببداية الفصل التالي.
هذا الكتاب مُخصَّص لطلبة الجامعات بمجال علوم الحاسوب والمجالات المرتبطة به، ولمهندسي البرمجيات المحترفين، وللمتدربين بمجال هندسة البرمجيات، وكذلك للأشخاص الذين يستعدون لمقابلات العمل التقنية.
ينبغي أن تكون على معرفة جيدة بلغة البرمجة جافا قبل أن تبدأ بقراءة هذا الكتاب. وبالتحديد، لابُدّ أن تَعرِف كيف تُعرِّف صنفًا class جديدًا يمتدّ extend أو يرث من صنف آخر موجود، إلى جانب إمكانية تعريف صنف يُنفِّذ واجهة interface. إذا لم تكن لديك تلك المعرفة، فيُمكِنك البدء بسلسلة مدخل إلى جافا فهي مترجمة عن كتاب شهير يشرح لغة البرمجة جافا.
يمكنك قراءة الكتاب على شكل فصول منشورة على موقع أكاديمية حسوب مباشرةً إن كنت تحب القراءة على المتصفح مباشرة، وتجد الفصول مجمعة تحت وسم "هياكل البيانات 101" وإليك روابطها تاليًا:
طريقة عمل الواجهات في لغة جافا مدخل إلى تحليل الخوارزميات تحليل زمن تشغيل القوائم المنفذة باستخدام مصفوفة تحليل زمن تشغيل القوائم المنفذة باستخدام قائمة مترابطة تحليل زمن تشغيل القوائم المنفذة باستخدام قائمة ازدواجية الترابط تنفيذ أسلوب البحث بالعمق أولا باستخدام طريقتي التعاود والتكرار في جافا تنفيذ أسلوب البحث بالعمق أولا باستخدام الواجهتين Iterables وIterators استخدام خريطة ومجموعة لبناء مفهرس Indexer تحليل زمن تشغيل الخرائط المنفذة باستخدام مصفوفة في جافا تنفيذ الخرائط باستخدام التعمية hashing في جافا تحسين أداء الخرائط المنفذة باستخدام التعمية HashMap في جافا تحليل زمن تشغيل الخرائط المنفذة باستخدام شجرة بحث ثنائية TreeMap في جافا استخدام أشجار البحث الثنائية والأشجار المتزنة balanced trees لتنفيذ الخرائط استخدام قاعدة بيانات Redis لحفظ البيانات فهرسة الصفحات وتحليل زمن تشغيلها باستخدام قاعدة بيانات Redis البحث الثنائي Boolean search ودمج نتائج البحث وترتيبها نظرة سريعة على بعض خوارزميات الترتيب6405 تنزيل
آخر تحديث
-
ملاحظات للعاملين بلغة CSS
بواسطة أكاديميّة حسوب
لغة CSS هي لغة توصيف شهيرة ذائعة الصيت تُستخدم في تنسيق صفحات HTML لمواقع الويب وإضفاء رونق جميل عليها وهي الركيزة الثانية الأساسية من ركائز بناء صفحات ومواقع الويب بعد لغة HTML ولغة جافاسكربت JavaScript فلا تخفى على أي مطور ويب أو مطلع على مجال الويب عمومًا.
تعد لغة CSS بسيطة سهلة التعلم لكن في الوقت نفسه احترافها ليس بالسهل ويحتاج إلى خبرة وتعامل طويل معها، إذ تنسيق صندوق أو نص أو صفحة بسيطة بلغة CSS أمر شديد السهولة لكن عندما تطول الصفحة وتكثر عناصرها وتتشابك مع بعضها تبدأ الصعوبة والخروج عن النمط المألوف وحتى ظهور تعارضات وتداخلات بالتنسيق قد يأخذ حلها الدقائق وحتى الساعات.
أمرٌ إضافيٌ وهو أن لغة CSS تحتاج إلى بيئة لتنفيذها وعادة ما تكون البيئة هي متصفح الويب، ومتصفحات الويب تعمل بمحركات داخلية مسؤولة عن تفسير اللغات وتنفيذها ومنها لغة CSS وهنا تظهر مشكلة التوافقية مع تلك المحركات والحاجة إلى توحيد التنسيق على جميع المتصفحات وهذا أمر آخر يحتاج مطور الويب إلى تعلمه ومعالجته.
انطلاقًا من ذلك، جاء هذا الكتاب والذي يحمل عنوان "نصائح للعاملين بلغة CSS" وذلك لينقل مطور الويب من مرحلة المعرفة بأساسيات لغة CSS إلى الاحتراف ويختصر عليك الوقت الطويل ويغنيك عن التجريب والوقوع في الخطأ نفسه والتعلم منه، ويأتي الكتاب على شكل نصائح ومقتطفات من مطورين خبروا اللغة واستعملوها مرارًا وتكرارًا في مختلف المشاريع.
هذا الكتاب مترجم عن كتاب "CSS Notes For Professionals" المبني على توثيق موقع StackOverflow وقد ساهم في إعداده عدد كبير من المساهمين على شبكة StackOverflow الشهيرة لحل المشاكل البرمجية. وإن أردت الاطلاع على قائمة المساهمين الكاملة، ارجع إلى قسم "Credits" في نهاية الكتاب الأصلي.
انتبه إلى أن هذا الكتاب ليس مثل غيره من الكتب والشروحات التي تشرح لغة CSS من البداية شرحًا مُبسَّطًا ومتسلسلًا وإنَّما يعتمد على مبدأ خير الكلام ما قل ودل في الشرح وترك الشيفرة تشرح نفسها بنفسها، فيحوي على كم كبير من الشيفرات بالموازنة مع الشرح. وُجِّه هذا الكتاب لمن لديه معرفة بلغة CSS، لذا يفضَّل أن تمتلك خبرة بلغة SQL لتستفيد أكبر استفادة من هذا الكتاب وتقرأ الشيفرات وتفهمها وتتعلَّم منها. في هذه الحالة، سيساهم هذا الكتاب في رفع مستواك في لغة CSS وسيُملِّكك مهارات متقدمة في استعمالها بالإضافة إلى بعض الخدع والالتفافات المتقدمة أيضًا.
قد تسأل نفسك، هل ينفع أن أقرأ الكتاب دون معرفة مسبقة بلغة CSS؟ سأقول، نعم، ولكن يجب أن تتحلى بالصبر في قراءة الشيفرة وتحليلها وفهمها والبحث عن أي موضوع لم تفهمه والسؤال عن شرح لأي شيفرة غامضة، إذ لن تجد كلامًا وشرحًا كبيرًا للمواضيع التي يتحدث عنها الكتاب، كما أن تسلسل المواضيع في الكتاب لا تراعي عدم امتلاك القارئ معرفة بلغة CSS.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». أنشئ العمل الأصلي من هذا الكتاب لأغراض تعليمية ولا يتبع إلى أي شركة أو مجموعة رسمية متعلقة بلغة SQL ولا حتى شبكة Stack Overflow، كما أن جميع العلامات التجارية المذكورة في هذا الكتاب تتبع إلى الشركات المالكة لها.
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «ملاحظات للعاملين بلغة CSS»، أو مباشرة مما يلي:
أساسيات استعمال لغة CSS التحكم في تخطيط الصفحة وضبط محاذاة العناصر في CSS النموذج الصندوقي Box Model في CSS التحكم في تموضع العناصر في CSS تنسيق القوائم وإضافة الظلال ورسم الأشكال في CSS التنسيقات الأساسية للعناصر في CSS تنسيق الخلفيات Backgrounds في CSS تنسيق الصور في CSS العناصر العائمة Floats في CSS الانتقالات Transitions والحركات Animations في CSS استعلامات الوسائط Media Queries في CSS مواضيع متقدمة في CSS تنسيقات المتصفحات المخصصة ودعمها وأداءها في CSS5710 تنزيل
آخر تحديث
-
عشرة مشاريع عملية عن الذكاء الاصطناعي
بواسطة أكاديميّة حسوب
تزداد الأنظمة الحاسوبية المحيطة بنا ذكاءً يومًا بعد يوم -بعد تزويدها بأدوات تعلم صنعية- وامتد تطبيق الذكاء الاصطناعي وتعلم الآلة إلى أغلب الأنظمة والتطبيقات المحيطة بنا فقلما تجد تطبيقًا شائعًا لا يتصف بشيء من الذكاء مثل لوحة الكتابة على الجوال التي تقترح عليك كلمات تالية عند كتابة كلمة معينة أو تصحح لك كلمة إن أخطأت بها وأيضًا مثل محركات البحث والمتاجر الإلكترونية التي تقترح على المستخدم اقتراحات توافق ما يطلبه وكأنها تقرأ أفكاره، وهذا بالنسبة للمستخدم النهائي أما بالنسبة لأصحاب العمل فالتطبيقات كبيرة منها أنظمة مراقبة المعاملات المشبوهة في المصارف والحوالات المالية وأنظمة تحليل العملاء وتصنيفهم وأنظمة التنبؤ وغيرها، هذا لم أذكر ما يتعلق بالروبوتات والسيارات وأنظمة الطيران والملاحة ذاتية القيادة وغيرها الكثير مما لا يتسع حصره وذكره. كل ذلك لم يأت من فراغ بل يقف خلفه جيوش من المهندسين والخبراء وبذلك اعتني بعلم الذكاء الاصطناعي وتعلم الآلة أيما اعتناء وألفت فيه مئات الكتب ونشرت آلاف المقالات والأبحاث ومنها هذا الكتاب الذي بين يديك!
دورة تطوير التطبيقات باستخدام لغة Python
احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة
اشترك الآن هذا الكتاب هو الجزء الثاني من كتاب مدخل إلى الذكاء الاصطناعي وتعلم الآلة فبعد تأسيس المفاهيم والمصطلحات التي يقوم عليها مجال الذكاء الاصطناعي وتعلم الآلة في الجزء الأول، ننطلق في الجزء الثاني بتطبيق مشاريع عملية تطبيقية مبنية على بيانات واقعية ويناقش أفكار قابلة للتطبيق في الحياة العملية.
فصول هذا الكتاب مبنية على عدة مساهمات ساهم بها كل مؤلف:
الفصول الأربعة الأولى تعتمد على كتاب Python Machine Learning Projects لكاتبه Michelle Morales ونقله للعربية بتصرف محمد لحلح المؤلف للجزء الأول والدكتور باسل الخطيب. الفصل الخامس والسادس وهو من كتابة خالد شمعة أثرى بها الكتاب من خبرته الكبيرة في المجال. الفصل الحادي عشر مبني على ترجمة سلسلة A Complete Machine Learning Project Walk-Through in Python لكاتبه Will Koehrsen ونقلها للعربية بتصرف الدكتور باسل الخطيب. الفصول المتبقية هي من كتابة الدكتور باسل الخطيب المختص في مجال الذكاء الاصطناعي وتعلم الآلة والأستاذ في جامعات عدة مرموقة منها جامعة دمشق. ما يميز هذا الكتاب قربه من القارئ العربي، إذ لم يقتصر على الترجمة ونقل تطبيقات أجنبية جاهزة أو تعتمد على نصوص أجنبية بل يعرض تطبيقات على نصوص باللغة العربية وهذا ما يفتقر إليه المحتوى العربي في هذا المجال.
مستوى هذا الكتاب متقدم لذا يجب أن تملك معرفة أساسية بمجال الذكاء الاصطناعي وتعلم الآلة وخبرة بلغة بايثون فالمشاريع كلها مطبقة فيها، فإن كنت مبتدئًا فننصح قبل هذا الكتاب قراءة الكتابيين التاليين:
البرمجة بلغة بايثون مدخل إلى الذكاء الاصطناعي وتعلم الآلة ترتيب القراءة الأمثل للكتاب يكون من أوله لآخره وفق ما رتبناه لك ولكن يمكنك قراءة الكتاب بأي ترتيب ففصوله لا تعتمد على بعضها باستثناء الفصل الأول الذي يشرح كيفية إعداد بيئة العمل لسائر المشاريع والفصل الأخير الذي يختتم الكتاب بمناقشة مسألة تقييم نماذج تعلم الآلة وحساب مجموعة من مقاييس تقييم الأداء والتي تخبرنا بأداء نموذج التعلم المبني ودرجة تعلمه.
يمكنك تطبيق المشاريع محليًا على حاسوبك مباشرةً أثناء قراءة المشروع وتعلمه وستجد غالبًا في بداية أو نهاية المشروع رابط لتنزيل شيفرته ومقارنتها مع الشيفرة التي كتبتها ولتكون لك مرجعًا، كما يمكنك الاستعانة بمنصة Google Colab لتنفيذ المشاريع واختصار وقت التنفيذ وإعداد البيئة وقد وفرنا لبعض المشاريع رابطًا على تلك المنصة.
يمكنك قراءة فصول الكتاب على شكل مقالات وتجد روابطها تاليًا:
إعداد بيئة العمل للمشاريع مع بايثون بناء مصنف بالاعتماد على طرق تعلم الآلة بلغة البايثون باستخدام مكتبة Scikit-Learn بناء شبكة عصبية للتعرف على الأرقام المكتوبة بخط اليد باستخدام مكتبة TensorFlow بناء روبوتات للعب الألعاب باستخدام طريقة التعلم المعزز ومشتقاتها باستخدام مكتبة TensorFlow تصنيف الصور والتعرف على الوجه في مجال الذكاء الاصطناعي إعداد شبكة عصبية صنعية وتدريبها للتعرف على الوجوه تحليل المشاعر في اللغة العربية باستخدام التعلّم العميق استخدام خوارزميات العنقدة لتجزئة الزبائن تصنيف الشخصيات بالاعتماد على تغريداتهم العربية باستخدام التعلم العميق استكشاف قواعد الترابط في مبيعات المتاجر باستخدام تقنيات تعلم الآلة تحليل بيانات الطاقة لمدينة نيويورك الجزء الأول الجزء الثاني الجزء الثالث تقييم واختيار نماذج تعلم الآلة7722 تنزيل
آخر تحديث
-
ملاحظات للعاملين بلغة SQL
بواسطة أكاديميّة حسوب
لا يخفى على أحد شهرة لغة SQL أو لغة الاستعلامات البنيوية (Structured Query Language) سواءً للمبرمجين أو الداخلين الجدد إلى عالم البرمجة وعلوم الحاسوب، فهي لغة برمجة متُخصِّصة في مجال واحد وهو معالجة وإدارة قواعد البيانات، وتعد اللغة القياسية لأنظمة إدارة قواعد البيانات (RDBMS)؛ وتُستخدم تعليمات وأوامر SQL -لمن لا يعرفها- لإجراء عمليات مباشرة على البيانات، مثل تخزينها في قاعدة بيانات، وجلبها منها والتعديل عليها بالإضافة إلى إنجاز مهام إدارية على قواعد البيانات من تأمين ونسخ احتياطي وإدارة للمستخدمين.
ونظرًا لأهمية SQL سواءً للمبرمجين، وحتى لغير المبرمجين من العاملين في القطاعات التقنية أو للمهتمين بقواعد البيانات عمومًا، نضع بين يديك هذا الكتاب المبني على أحد أفضل الكتب الإنجليزية المتقدمة عن SQL، وهو كتاب "SQL Notes For Professionals" من موقع GoalKicker المبني بدوره على توثيق موقع StackOverflow وقد ساهم في إعداده عدد كبير من المساهمين على شبكة StackOverflow الشهيرة (إن أردت الاطلاع على قائمة المساهمين الكاملة، ارجع إلى قسم "Credits" في نهاية الكتاب الأصلي، SQL Notes For Professionals).
يغطِّي هذا الكتاب المفاهيم الأساسية للغة SQL، مثل العمليات الأولية، وإدراج البيانات وحذفها واستخلاصها وتحديثها، وأنواع البيانات، وتصميم الجداول وتنفيذ الاستعلامات، إضافة إلى مفاهيم متقدمة، مثل المعارض views والدوال، وإدارة المستخدمين، وكيفية تأمين الشيفرة وغيرها من المواضيع. كما أنّ الكتاب غني بالأمثلة التطبيقية التي تشرح كل هذه المواضيع لترسيخ فهمها.
هذا الكتاب ليس مثل غيره من الكتب والشروحات التي تشرح لغة SQL من البداية شرحًا مُبسَّطًا ومتسلسلًا وإنَّما يعتمد على مبدأ خير الكلام ما قل ودل في الشرح وترك الشيفرة تشرح نفسها بنفسها، فيحوي على كم كبير من الشيفرات والأمثلة العملية بالموازنة مع الشرح النظري ووُجِّه لمن يريد اتقان لغة SQL وصقل مهاراته فيها إذ سيساهم هذا الكتاب في رفع مستواك في لغة SQL وسيُملِّكك مهارات متقدمة في استعمال لغة SQL بالإضافة إلى بعض الخدع والالتفافات المتقدمة أيضًا.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». أنشئ العمل الأصلي من هذا الكتاب لأغراض تعليمية ولا يتبع إلى أي شركة أو مجموعة رسمية متعلقة بلغة SQL ولا حتى شبكة Stack Overflow، كما أن جميع العلامات التجارية المذكورة في هذا الكتاب تتبع إلى الشركات المالكة لها.
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «المرجع المتقدم إلى لغة SQL»، أو مباشرة مما يلي:
المقال الأول: مدخل إلى SQL المقال الثاني: جلب الاستعلامات عبر SELECT في SQL المقال الثالث: التجميع والترتيب في SQL المقال الرابع: تنفيذ تعليمات شرطية عبر CASE في SQL المقال الخامس: البحث والتنقيب والترشيح في SQL المقال السادس: الدمج بين الجداول في SQL المقال السابع: تحديث الجداول في SQL المقال الثامن: معالجة الأخطاء والتعديل على قواعد البيانات في SQL المقال التاسع: حذف الجداول وقواعد البيانات في SQL المقال العاشر: مواضيع متقدمة في SQL المقال الحادي عشر: دوال التعامل مع البيانات في SQL المقال الثاني عشر: دوال التعامل مع النصوص في SQL المقال الثالث عشر: التعبيرات الجدولية الشائعة Common Table Expressions المقال الرابع عشر: مواضيع متفرقة في SQL المقال الخامس عشر: الاستعلامات الفرعية والإجراءات في SQL المقال السادس عشر: تصميم الجداول وترتيب تنفيذ الاستعلامات ومعلومات المخطط في SQL المقال السابع عشر: تنظيم وتأمين شيفرات SQL18434 تنزيل
آخر تحديث
-
التحريك عبر CSS
بواسطة أكاديميّة حسوب
لا يخفى على أي مطور ويب خصوصًا مطوري واجهة المستخدم الأمامية (front end developers) أهمية إضفاء بعض الحيوية على المواقع التي يصممونها عبر الحركات، إذ هنالك عدة فوائد يمكن تحصليها من إضافة الحركات إلى صفحات الموقع أهمها الابتعاد عن السكون الممل، ولفت الانتباه، وتحسين التواصل مع الزائر أو المستخدم وغيرها؛ لذلك، أصبحت الحركات أمرًا جوهريًا في مواقع الويب لا يمكن الاستغناء عنها.
جاء هذا الكتاب لشرح مفهوم الحركة وكيفية تحريك العناصر باستخدام CSS فقط بدءًا من الحركات البسيطة وحتى الحركات المعقَّدة المُتقدِّمة بالإضافة إلى التَطرُّق إلى مناقشة مسألة متى يجب إضافة الحركات ومتى يجب الابتعاد عنها.
هذا الكتاب مترجم عن كتاب «CSS Animation 101» لصاحبه Donovan Hutchinson، ونأمل أن يكون إضافةً نافعةً للمكتبة العربيَّة وأن يفيد القارئ العربي في الإلمام بموضوع التحريك عبر CSS.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «المرجع الشامل إلى التحريك عبر CSS»، أو من مباشرةً من الآتي:
الفصل الأول: ما هي استخدامات الحركات؟ الفصل الثاني: تجهيز بيئة العمل لإنشاء الحركات الفصل الثالث: مدخل إلى الإنتقالات: التنقل بين الحالات الفصل الرابع: مدخل إلى الحركات: مفهوم الحركة القصل الخامس: تطبيق عملي: الانتقالات الفصل السادس: خاصيات الانتقالات الفصل السابع: دوال التوقيت الفصل الثامن: الانتقالات المتعددة الفصل التاسع: الانتقالات وجافاسكربت الفصل العاشر: تطبيق عملي: التحريكات الفصل الحادي عشر: خاصيات الحركات الفصل الثاني عشر: تطبيق عملي: الإطارات المفتاحية الفصل الثالث عشر: الحركات المتعددة المتزامنة الفصل الرابع عشر: موجز الحركات الفصل الخامس عشر: رواية القصص عبر الحركات الفصل السادس عشر: حرب النجوم (Star War) الفصل السابع عشر: إظهار المحتوى أثناء التمرير الفصل الثامن عشر: سهولة الوصول الفصل التاسع عشر: نهاية الرحلة19216 تنزيل
آخر تحديث
-
البرمجة بلغة بايثون
بواسطة أكاديميّة حسوب
سطع نجم لغة البرمجة بايثون في الآونة الأخيرة حتى بدأت تزاحم أقوى لغات البرمجة في الصدارة وذاك لمزايا هذه اللغة التي لا تنحصر أولها سهولة كتابة وقراءة شيفراتها حتى أصبحت الخيار الأول بين يدي المؤسسات الأكاديمية والتدريبية لتدريسها للطلاب الجدد الراغبين في الدخول إلى مجال علوم الحاسوب والبرمجة. أضف إلى ذلك أن بايثون لغةً متعدَّدة الأغراض والاستخدامات، لذا فهي دومًا الخيار الأول في شتى مجالات علوم الحاسوب الصاعدة مثل الذكاء الصنعي وتعلم الآلة وعلوم البيانات وغيرها، كما أنَّها مطلوبة بشدة في سوق العمل وتعتمدها كبرى الشركات التقنية.
دورة تطوير التطبيقات باستخدام لغة Python
احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة
اشترك الآن بني هذا العمل على كتاب «How to code in Python» لصاحبته ليزا تاغليفيري (Lisa Tagliaferri) وترجمه إلى العربية محمد بغات وعبد اللطيف ايمش، وحرره جميل بيلوني، ويأتي شارحًا المفاهيم البرمجية الأساسية بلغة بايثون، ونأمل في أكاديمية حسوب أن يكون إضافةً نافعةً للمكتبة العربيَّة وأن يفيد القارئ العربي في أن يكون منطلقًا للدخول إلى عالم البرمجة من أوسع أبوابه. رُبط هذا الكتاب مع توثيق لغة بايثون في موسوعة حسوب لتسهيل عملية الاطلاع على أي جزء من اللغة مباشرة وقراءة التفاصيل باللغة العربية.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».
يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «المرجع الشامل إلى تعلم لغة بايثون»، أو مباشرةً من الآتي:
المقال الأول: دليل تعلم بايثون اعتبارات عملية للاختيار ما بين بايثون 2 و بايثون 3 المقال الثاني: تثبيت بايثون 3 وإعداد بيئتها البرمجية المقال الثالث: كيف تكتب أول برنامج لك المقال الرابع: كيفية استخدام سطر أوامر بايثون التفاعلي المقال الخامس: كيفية كتابة التعليقات المقال السادس: فهم أنواع البيانات المقال السابع: مدخل إلى التعامل مع السلاسل النصية المقال الثامن: كيفية تنسيق النصوص المقال التاسع: مقدمة إلى دوال التعامل مع السلاسل النصية المقال العاشر: آلية فهرسة السلاسل النصية وطريقة تقسيمها المقال الحادي عشر: كيفية التحويل بين أنواع البيانات المقال الثاني عشر: كيفية استخدام المتغيرات المقال الثالث عشر: كيفية استخدام آلية تنسيق السلاسل النصية المقال الرابع عشر: كيفية إجراء العمليات الحسابية المقال الخامس عشر: الدوال الرياضية المضمنة المقال السادس عشر: فهم العمليات المنطقية المقال السابع عشر: مدخل إلى القوائم المقال الثامن عشر: كيفية استخدام توابع القوائم المقال التاسع عشر: فهم كيفية استعمال List Comprehensions المقال العشرون: فهم نوع البيانات Tuples المقال الحادي والعشرين: فهم القواميس المقال الثاني والعشرين: كيفية استيراد الوحدات المقال الثالث والعشرين: كيفية كتابة الوحدات المقال الرابع والعشرين: كيفية كتابة التعليمات الشرطية المقال الخامس والعشرين: كيفية إنشاء حلقات تكرار while المقال السادس والعشرين: كيفية إنشاء حلقات تكرار for المقال السابع والعشرين: كيفية استخدام تعابير break وcontinue وpass عند التعامل مع حلقات التكرار المقال الثامن والعشرين: كيفية تعريف الدوال المقال التاسع والعشرين: كيفية استخدام *args و**kwargs المقال الثلاثين: كيفية إنشاء الأصناف وتعريف الكائنات المقال الحادي والثلاثين: فهم متغيرات الأصناف والنسخ المقال الثاني والثلاثين: وراثة الأصناف المقال الثالث والثلاثين: كيفية تطبيق التعددية الشكلية (Polymorphism) على الأصناف المقال الرابع والثلاثين: كيف تستخدم منقح بايثون المقال الخامس والثلاثين: كيفية تنقيح شيفرات بايثون من سطر الأوامر التفاعلي المقال السادس والثلاثين: كيف تستخدم التسجيل Logging المقال السابع والثلاثين: كيفية ترحيل شيفرة بايثون 2 إلى بايثون 3116818 تنزيل
آخر تحديث
-
نحو فهم أعمق لتقنيات HTML5
بواسطة أكاديميّة حسوب
لا يخفى على أحدٍ سطوع نجم لغة HTML5 وانتشار تطبيقاتها انتشارًا كبيرًا، إذ ذاع صيتها وأصبحت حديث الكثيرين لما تحتويه من تقنياتٍ مهمةٍ لتطبيقات الويب، فهي تتضمن كل ما يتعلق بتشغيل مقاطع الفيديو على صفحات الويب، وتوليد الرسوميات ديناميكيًا، وتحديد الموقع الجغرافي للمستخدم، وإتاحة استعمل تطبيقات الويب دون اتصال، إضافةً إلى تنظيمها لبنية المستند الهيكلية تنظيمًا دقيقًا يسهِّل تفسيرها من المتصفحات والبرمجيات الأخرى، والمزيد…
لذا جاء هذا الكتاب محاولًا تقديم مفاهيم HTML5 وتقنياتها وطرائق استخدامها إلى القارئ العربي، مدعمًا بأمثلة علميةٍ تسهّل توضيح الأفكار، وحاولتُ فيه توفير أحدث المعلومات عن دعم تلك التقنيات قدر المستطاع، وأعدت النظر في بعض الفصول لتناسب التغييرات التي طرأت حديثًا.
هذا الكتاب مترجمٌ عن كتاب Dive Into HTML5 للمؤلف Mark Pilgrim المرخّص برخصة المشاع الإبداعي CC BY 3.0، والذي نشرته O’Reilly لاحقًا باسم HTML5: Up and Running.
هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي نسب المُصنَّف - الترخيص بالمثل 4.0 (CC BY-SA 4.0). شعار HTML5 والشعارات البقية مرخصة برخصة المشاع الإبداعي CC BY 3.0.
وفي النهاية، أحمد الله على توفيقه لي بإتمام العمل على الكتاب، وأرجو أن يكون إضافةً مفيدةً للمكتبة العربية، والله ولي التوفيق.
يمكنك قراءة فصول الكتاب في صورة مقالات مما يلي:
المقال الأول: خمسة أشياء عليك معرفتها عن HTML5 المقال الثاني: نظرة على تاريخ HTML - الجزء الأول المقال الثالث: نظرة على تاريخ HTML - الجزء الثاني المقال الرابع: اكتشاف دعم المتصفحات لميزات HTML5 المقال الخامس: الرسم عبر عنصر canvas في HTML5 المقال السادس: صيغ ترميز الفيديو والصوت وحاوياتها وكيفية عملها في الويب المقال السابع: ترميز مقاطع الفيديو بعدة صيغ المقال الثامن: إضافة مقاطع الفيديو عبر العنصر <video> في HTML5 المقال التاسع: التعامل مع التأريخ في HTML5 المقال العاشر: تحديد الموقع الجغرافي (GeoLocation) في HTML5 المقال الحادي عشر: التخزين المحلي (Local Storage) في HTML5 المقال الثاني عشر: تطبيقات الويب التي تعمل دون اتصال – الجزء الأول المقال الثالث عشر: تطبيقات الويب التي تعمل دون اتصال – الجزء الثاني المقال الرابع عشر: النماذج (Forms) في HTML5 المقال الخامس عشر: مدخل إلى البيانات الوصفية (microdata) في HTML5 المقال السادس عشر: توصيف الأشخاص باستخدام metadata في HTML5 المقال السابع عشر: توصيف المنظمات/الشّركات باستخدام microdata في HTML5 المقال الثامن عشر: كيفية توصيف الأحداث والمراجعات باستخدام microdata على HTML545542 تنزيل
آخر تحديث