Tag

programming – IT Solutions

كل ما تريد معرفته عن هياكل البيانات

هياكل البيانات هي عملية تخزين و ترتيب البيانات على جهاز الكمبيوتر بحيث يمكن الوصول إليها وتحديثها بكفاءة .

هناك عدة أنواع أساسية من هياكل البيانات ، وكلها مصممة لترتيب البيانات لتناسب غرضًا محدد. والأهم من ذلك ، أن هياكل البيانات يتم من خلالها تنظيم المعلومات و البيانات بحيث يمكن للآلات والاشخاص فهمها بشكل أفضل.

ما هي استخدامات هياكل البيانات ؟

في علوم الحاسوب والبرمجة ، يمكن تصميم او برمجة هياكل البيانات لتخزين البيانات بغرض استخدامها مع خوارزميات مختلفة.

في بعض الحالات ، ترتبط العمليات الأساسية للخوارزمية ارتباطًا وثيقًا بتصميم هياكل البيانات.

تحتوي هياكل بيانات على معلومات حول قيم البيانات والعلاقات بين البيانات – وفي بعض الحالات – الوظائف التي يمكن تطبيقها على البيانات.

ما أهمية هياكل البيانات ؟

ليس من المهم فقط استخدام هياكل البيانات ، ولكن من المهم أيضًا اختيار هياكل البيانات المناسبة لكل مهمة.

قد يؤدي اختيار هياكل بيانات غير مناسبة إلى بطئ مهمة الكود البرمجي اثناء التشغيل .

ما هي أنواع هياكل البيانات ؟

هنالك نوعان لهياكل البيانات :

أولا هياكل البيانات البدائية (Primitive Data structure) هي أنواع بيانات بدائية . وهي هياكل البيانات التي يمكن أن تحتوي على قيمة واحدة.

مثال على ذلك :

int

char

float

double

ثانيا هياكل البيانات غير البدائية (Non-Primitive Data structure) و هي نوعان :

هياكل البيانات الخطية ( Linear data structure ) :

وهي التي يتم فيها ترتيب قيم أو عناصر البيانات بشكل تسلسلي أو خطي ، حيث يتم إرفاق أو ربط كل عنصر بالعنصر الذي يسبقة و العنصر الذي يليه.

أمثله لهياكل البيانات الخطية :

array

stack

queue

linked list

هياكل البيانات الغير خطية (Non-linear data structure) :

و هي هياكل بيانات حيث لا يتم بها وضع او ترتيب عناصر البيانات بشكل تسلسلي أو خطي .

أمثله لهياكل البيانات الغير الخطية :

trees

graphs

ما هي الإستخدامات الرئيسية لهياكل البيانات ؟

البحث : يمكننا البحث عن اي عنصر في هياكل البيانات.

التصنيف : يمكننا تصنيف عناصر هياكل البيانات بشكل تصاعدي او تنازلي .

الإدخال : يمكننا ايضا ادخال عنصر او عناصر جديدة الى هيكلية البيانات .

التحديث : يمكننا أيضًا تحديث العنصر ، أي يمكننا استبدال العنصر بعنصر آخر.

الحذف: يمكننا أيضًا إجراء عملية الحذف لإزالة العنصر من هيكل البيانات.

كل ما تريد معرفته عن لغة بايثون Python

لغة Python هي لغة برمجة عالية المستوى تدعم البرمجة كائنية التوجيه (OOP)؛ وهي لغة مفسرة ومتعددة الاستخدامات، وتُستخدم بشكل واسع في العديد من المجالات كبناء البرامج المستقلة باستخدام الواجهات الرسومية، وفي تطبيقات الويب وغيرها .

لماذا لغة بايثون ؟

تعتبر لغة Python لغة سهلة التعلم سهلة التعلم نوعاً ما، مُقارنةً بلغة C أو Java؛ طُورت هذه اللغة على يد المبرمج الهولندي “Guido Van Rossum”، تم كتابة نواتها باستعمال لغة C؛ كان أول إعلان لها سنة 1991.

 

هُناك أكثر من 8.2 مليون مبرمج يستخدمون لغة Python، لذلك لا يمكن لأحد أن يُنكر أهمية هذه اللغة، فمنذ إطلاقها في تسعينيات القرن الماضي اكتسبت هذه اللغة شعبية كبيرة في معظم الأوساط الأكاديمية، وتم استخدامها بشكل تدريجي حتى أصبحت أكثر اللغات استخداماً في مجال تكنولوجيا الذكاء الاصطناعي وتعلم الآلة والتعلم العميق.

تتميز Python بمجتمعها النشط، كما أن لها العديد من المكتبات البرمجية ذات الأغراض الخاصة، والتي برمجها أشخاص من مجتمع هذه اللغة.

في ما يلي سنتعرف على بعض الأمثلة والتصاميم المنجزة من خلال مكتبة Turtle؛ مكتبة “Turtle” هي مكتبة شائعة جداً لرسم الصور بلغة Python، وقد كانت جزءاً من لغة برمجة Logo الأصلية التي طورها “Wally Feurzeig” و”SeymourPapert” و”Cynthia Solomon” في عام 1967.

مجالات إستخدام لغة بايثون

 

‏المواقع الإلكترونية ( Web Development ).

‏تطبيقات ديسكتوب ( Desktop Applications ).

‏أنظمة الرد الآلي ( Bot Systems ).

‏تحليل البيانات ( Data Analysis ).

‏الذكاء الإصطناعي ( Artificial Intelligence ).

‏تعلم الآلة ( Machine Learning ).

اجابة على أهم أسئلة المبرمجين الجدد

في هذا المقال سنقوم بالإجابة عن أهم وأكثر الأسئلة التي يطرحها المبرمجين الجدد والمهتمين بتعلم البرمجة , فكما يعلم الجميع ان كل من يريد تعلم البرمجة عليه اتباع خطوات محددة و ان ينظم خطواته بشكل مدروس ليتمكن من الوصول الى المراحل الاحترافية في عالم البرمجة . 

كم من الوقت يلزم لتعلم البرمجة ؟


الإجابة تعتمد على عدة عوامل من بينها :
◃ هل تعرف الأساسيات أم لا ؟
◃ ما هي اللغة التي تريد تعلمها ؟
◃ أيضاً ما هو نظامك التعليمي، فشخص يتعلم ساعتين في الاسبوع ليس كمن يتعلم ساعتين يومياً.

هل البرمجة صعبة ؟


هذا السؤال بالتحديد ليس له جواب محدد، الأمر يختلف من شخص لآخر؛ لكن ماذا لو كانت صعبة؟
هل تريد تعلم الأسهل فقط أم تريد تعلم ما تحبه وما سيعطيك نتائج أفضل؟ إسأل نفسك هذا السؤال.

ما هي أفضل لغة برمجة ؟


لا توجد أفضل لغة برمجة؛ السؤال بالكامل خاطئ، يجب أن يكون سؤالك ماهي اللغة المناسبة للتخصص الفلاني، لأن كل لغة لها مميزات تجعلها أفضل من الأخرى في مجال معين.

هل يُمكن تعلم البرمجة من الهاتف ؟


صحيح أن هناك بعض التطبيقات الجيدة على الهاتف لتعلم البرمجة، لكنها لن تكون كافية أبداً لأن أهم شيء في البرمجة هو التطبيق ولتطبق ما تعلمته تحتاج لكمبيوتر، وبالتالي الهاتف هو مجرد وسيلة مساعدة فقط إذ أن الأساس هو الكمبيوتر.

الطريقة الصحيحة لتعلم البرمجة ؟


لتدخل عالم البرمجة عليك اتباع الخطوات التالية :


اختر هدفك واختر تخصص واضح.
ابدأ بتعلم الخوارزميات أولاً.
تعلم أساسيات البرمجة من لغة
C.
ابدأ تعلم اللغة المناسبة لتخصصك.
ابدأ القيام ببعض المشاريع الصغيرة.

مِن أين أتعلم البرمجة مجاناً ؟


توجد العديد من المصادر العربية والأجنبية، منها مواقع وقنوات
YouTube، وهذه بعضها :

 مصادر عربية :


موقع Harmash.
 موقع Teracourses.
 قناة Elzero Web School.
 قناة The NewBaghdad.

مصادر أجنبية :


 موقع Freecodecamp.
موقع W3schools.
 قناة Learncode.academy.
 قناة Thenewboston.

لغة برمجة Swift

ابتكرت شركة Apple هذه اللغة لتكون أسهل وأسرع وأكثر أماناً، كما تحتاج لكتابة رمز مصدري بحجم أقل، وعرضتها في مؤتمر آبل العالمي للمطورين عام 2014.

فيم تستخدم لغة برمجة Swift ؟

 

تُستخدم هذه اللغة لبرمجة تطبيقات أجهزة الـ iPhone والـ iPad، التي تعمل بنظام (iOS)، كما استُخدمت لبناء برنامج “VLC Media Player”.

اللغة تُمكن المطورين من البرمجة بشكل أسرع وبأقل نسبة أخطاء.

وتشتغل اللغة بالتوافق مع بيئتي Cocao وCocao Touch، حيث تبنى عليهما بشكل أساسي جميع تطبيقات آجهزة iOS وبرامج نظام Mac.

وتطمح الشركة من خلال هذه اللغة الجديدة باستبدال لغة “سي-الكائنية” التي تعتبر لغة البرمجة الرسمية في الوقت الحالي لتطوير تطبيقات منتجات Apple.

قواعد البيانات NoSQL

ما هي قواعد البيانات NoSQL ؟

هي قواعد بيانات (Not Only SQL) أي “ليست SQL” أو “غير علائقية”، وهي عكس ما عرفناه من قواعد البيانات SQL، سواءً SQLlite أو MySQL أو SQL Server.

انتشرت قواعد بيانات NoSQL مع انتشار مفهوم البيانات الضخمة “Big Data” والتي لم يكن من الممكن التعامل معها باستخدام الطريقة التقليدية في حفظ واسترجاع البيانات عن طريق قواعد البيانات العلائقية Relational” Databases”، لهذا جاءت هته التقنية الجديدة من أجل حل المشاكل الجديدة التي ظهرت معها.

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

أهم مميزات قواعد البيانات NoSQL :

  •  تقوم بتخزين البيانات في ملفات (Documents) عوض تخزينها في جداول (Tables).

  • لا تَتَّبع تصميم ثابت (Schema) كما في SQL.

  •  تدعم التوسع وإتاحة البيانات في جميع الأوقات بشكل ممتاز (Performance and Availability).

  •  مخصصة للتعامل مع البيانات الضخمة.

  •  مخصصة للتطبيقات التي تتطلب حجماً كبيرًا للبيانات، وزمن وصول منخفض.

  •  السرعة في حفظ واسترجاع البيانات.

هياكل البيانات Data Structure

ما هي هياكل البيانات Data Structure ؟

هياكل البيانات هي طريقة لجمع البيانات وتنظيمها بطريقة تمكننا من إجراء عمليات على هذه البيانات بطريقة فعّالة.

بشكل مبسط هياكل البيانات تعتمد على تصميم عملية التخزين فى الحاسوب بطريقة فعالة وغير معقدة ليدعم نوع البيانات المراد تخزينها ليعمل الكود أو الخوارزمية بطريقة أسرع وأكثر كفاءة.

ما هي انواع هياكل البيانات Data Structure ؟

يوجد نوعان من هياكل البيانات النوع الأول وهو النوع البدائى أو Primitive والنوع الثانى هو النوع المعقد وهو مكون من النوع البدائى.

1 – النوع البدائي

هو طريقة لتصنيف أنواع مختلفة من البيانات مثل الأعداد الصحيحة، والسلاسل الحرفية أو النصوص، وعليه يتم تحديد العمليات المستخدمة بين أنواع البيانات المختلفة.

فمثلاً أنواع البيانات من نوع الأعداد الصحيحة “Integers” يكمن أجراء العمليات الحسابية المختلفة عليها؛ بينما فى حالة النصوص يمكن دمج النصوص.

2-  هياكل البيانات المعقدة

والتي يتم استخدامها لتخزين البيانات الكبيرة والبيانات التى بينها علاقة أو متصلة.

أمثلة على انواع هياكل البيانات المعقدة : Array – Linked List – Tree – Graph – Stack – Queue.
كل نوع منها له خصائص معينة ويسمح لنا كل نوع بعمليات مختلفة على البيانات والاختيار يكون على حسب طبيعة البيانات…

مصطلح Micro Frontends

ظهر مصطلح Micro Frontends لأول مرة في نهاية عام 2016.

ما هو مصطلح Micro Frontends ؟

من الواضح أن Micro-Frontends هو مصطلح أكثر ودية وأقل حجماً تمنحك Micro frontends القدرة على تحقيق بنية أقل تعقيداً.


على وجه الخصوص، بفضل نهج Micro-Frontends يمكنك تقسيم التطبيق بأكمله إلى أجزاء صغيرة، وأجزاء مستقلة كل واحد منهم سيكون قابلاً للتنفيذ من قِبل فرق Front End المختلفة، وحتى باستخدام تقنيات مختلفة.

الاتجاه الحالي هو بناء تطبيقات واجهة قوية غنية بالميزات والتي تعتبر جزءً من Microservice Architecture، حيث يكون لها الكثير من القواسم المشتركة مع مفهوم الأنظمة الذاتية Self-contained Systems concept.

وهذا يضمن نفس قابلية التوسع والمرونة والقدرة على التكيف التي تأتي مع بنية الخدمات backend microservice .

لغة النمذجة الموحدة UML

تعرف على انها Unified Modeling Language

ما هي لغة ال UML ؟

هي لغة النمذجة الموحدة (Unified Modeling Language) أو (UML)، هي لغة نمذجة رسومية تقدم لنا صيغة لوصف العناصر الرئيسية للنظم البرمجية. وهي لغة معتمدة لترميز العمليات البرمجية، حيث تقدم وسيلة رمزية مبسطة للتعبير عن مختلف نماذج العمل البرمجي، ويسهل بواسطتها على ذوي العلاقة من محللين ومصممين متابعة مراحل تطوير النظام.

تعتبر هذه اللغة من الطرق الجديدة و الفعالة لتحليل وتصميم وتنفيذ البرامج باستخدام البرمجة الموجهة والأسلوب المرئي (Object Oriented Programming) أو (OOP)، حيث تَستخدم أشكال هندسية ومخططات تعطي صورة كاملة عن النظام المراد تصميمه مما يسهل عملية عرض النظام كاملاً ويسهل عملية صيانته؛ تتكون لغة النمذجة الموحدة (UML) من عدة أشكال ومخططات للرسم.

ما هي أهميتها ؟

كلنا نعلم أن عند تطوير نظام معين يشترك فيه الكثير من المبرمجين والمحللين وغيرهم، ومن هذا المنطلق UML تقدم مفاهيم موحدة بين جميع أعضاء الفريق بحيث حين إِطّلاع أي أحد من أعضاء الفريق على الأشكال يفهم النظام (وهنا تأتي خبرة وإبداع محلل النظم ومن المعروف أن التحليل مرحلة متقدمة عن البرمجة، المحلل الناجح هو مبرمج ناجح).

ما هي الخوارزميات Algorithms

الخوارزميات بالانجليزية Algorithms هي طريقة ممنهجة في حل مشكلة ما، مما يعني التفكير في خطوات لحل مشكلة معينة.

هل من المفيد تعلم الخوارزميات ؟

من المُفيد تعلم الخوارزميات، لأنها ستنقل تفكيرك من التفكير العادي إلى تفكير المبرمج وتهيئك لفهم كيفية كتابة الكود سطر سطر (كل سطر يعني خطوة).
بمجرد أن تشعر أنك فهمت الخوارزميات ويمكنك حل بعض التمارين يمكنك الانتقال للكود، حيث أن كتابة الكود أيضاً يطور من خوارزمياتك وطريقة تفكيرك.

لتعلم الخوارزميات يكفي أخذ درس نظري والإكثار من التمارين، وذلك ليتعود عقلك على التفكير الممنهج.

أهم ما عليك فهمه في للخوارزميات هو :

  • الإدخال والإخراج  Input / Output.

  • الحلقات  Loops.

  •  الشروط  Conditions.

لكن لا تخسر كل طاقتك في تعلم الخوارزميات؛ اعتبرها كمدخل فقط للغة البرمجة التي ستتعلمها.

الفرق بين الخوارزميات و البرمجة

كثيرون من يقومون بخلط مفهوم الخوارزميات بالبرمجة وهذا خطأ.

فما هو الفرق بين الخوارزميات و البرمجة ؟

الخوارزميات هي طريقة التفكير لحل مشكل، ومجموعة من الخطوات للوصول إلى نتيجة.

البرمجة هي كتابة تلك الخطوات بلغة برمجة، لتتعامل مع الحاسوب.

 كيف تبدأ التعلم ؟

الطريقة الأولى :

يمكنك تعلم الخوارزميات أولاً ثم الانتقال لتعلم البرمجة.

الطريقة الثانية :

يمكنك تعلم الخوارزميات والبرمجة في نفس الوقت، أي تطبيق ما تعلمته مباشرةً وكل خوارزمية تتعلمها تقوم ببرمجتها.

“لا توجد طريقة أفضل من الأخرى، وإنما الاختيار يقع عليك حسب ما يناسبك”.