منتدى الشنطي
سيغلق هذا المنتدى بسبب قانون الجرائم الاردني
حيث دخل حيز التنفيذ اعتبارا من 12/9/2023
ارجو ان تكونوا قد استفدتم من بعض المعلومات المدرجة
منتدى الشنطي
سيغلق هذا المنتدى بسبب قانون الجرائم الاردني
حيث دخل حيز التنفيذ اعتبارا من 12/9/2023
ارجو ان تكونوا قد استفدتم من بعض المعلومات المدرجة

منتدى الشنطي

ابراهيم محمد نمر يوسف يحيى الاغا الشنطي
 
الرئيسيةالرئيسية  البوابةالبوابة  الأحداثالأحداث  أحدث الصورأحدث الصور  التسجيلالتسجيل  دخول  

 

 كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟

اذهب الى الأسفل 
كاتب الموضوعرسالة
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالإثنين 21 يناير 2019, 9:10 pm

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟


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


فبفرض لدينا برنامج مكتوب بلغة عالية المستوى (كـ جافا أو C) ونريد تنفيذه من قبل الحاسوب، هذا يتطلب أن يكون لدينا مرحلة وسيطية تجعل الحاسوب قادرًا على فهم هذه اللغة نظرًا لأن الحاسوب يعمل على لغة الآلة (أصفار وواحدات)، وبالتالي عملية الترجمة هي تحويل الكود من لغة المصدر إلى لغة الآلة.

وبالطبع للقيام بذلك يجب أن يمر بعدة مراحل:

[list="box-sizing: border-box; margin-bottom: 30px;"]
[*] التحليل اللفظي (المفردات)
[*] التحليل القواعدي
[*] تحليل المعاني
[*]توليد الشيفرة الوسيطية
[*]توليد الشيفرة النهائية
[/list]
وبذلك نحصل على برنامج الهدف.

المرحلة الأولى- التحليل اللفظي

عندما تقوم بتنفيذ برنامجك، يقوم المترجم أولًا باستخراج الكلمات التي تُسمى في عالم الحوسبة “المفردات Tokens” انطلاقًا من سلسلة الحروف، فإذا كان لدينا الشيفرة البرمجية التالية:
اقتباس :
For( i = 1; i < 10; i++)
فهنا سيستخرج أي سلسلة محرفية والتعرف على ماهيتها، مثلاً For  هي كلمة محجوزة، i هي معرّف، إشارة = عملية إسناد، 1 هو معرف وهكذا… ومن ثم يقوم ببناء جدول للرموز، وهي عبارة عن قائمة من تركيبات تحمل خصائص المفردات التي تم تحديدها سابقاً، مثلاً  10 هو معرف ونوعهاinteger أي رقم صحيح وهكذا.
 


المرحلة الثانية – مرحلة التحليل القواعدي

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


المرحلة الثالثة- مرحلة تحليل المعاني

 على المترجم في هذه المرحلة أن يتأكد إن كان ما كتبته له معنى، فقد تكون شيفرتك صحيحة قواعديًا ولكن ليس لها معنى، مثل إسناد محرف لمتغير من نوع رقم صحيح، أو إسناد متغير لمتغير، وتعتمد هذه المرحلة بشكل أساسي على جدول الرموز الذي استخرجها المترجم في المرحلة الأولى، وذلك لأن جدول الرموز هو من سيساعدنا على تجنب الأخطاء، مثلاً:
اقتباس :
X=5;
 إسناد قيمة لمتغير X غير مصرح عنه سابقًا، فسيتم البحث عن المتغير في الجدول وإن لم يرَه سيعطي خطأ معنوياً، فجدول الرموز لديه كل اسم متغير وقيمته ونوعه وبالتالي يجنبنا هذه الأخطاء تمامًا.
 

المرحلة الرابعة- مرحلة توليد الشيفرة الوسيطية

وهنا وبعد كل ما سبق يقوم المترجم بإنتاج الشيفرة البرمجية إما بلغة الآلة أو لغة Assembly.
تماماً كالمثال التالي:
 كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Fig11

قد تسأل نفسك الآن ما هي الأدوات التي ساعدت في بناء هذا المترجم ليقوم بكل هذه المراحل والتدقيقات؟

في الحقيقة كما قلنا سابقًا، تُعدّ هذه البرامج برامج خاصة، وكيفية بنائها ليس اعتياديًا، فهناك عدة أدوات خاصة لبنائها. ولكن الآن سنتكلم عن أهم أداتين وتعدان الأداتين الأساستين والأكثر شهرة، وهما:

  •      LEX
  •      BISON

الأداة البرمجية (LEX) 

وهي أداة تقوم بتوليد محلل المفردات أو ما يسمى بالماسح Scanner مكتوب بلغة c، حيث يستخدم قوالب جاهزة لمطابقة السلاسل المحرفية للشيفرة التي كتبتها ومن ثم يقوم بتحويلها إلى مفردات tokens وهي معرفات عددية ثابتة ترسل إلى محلل القواعدي.
فعندما يصادف الماسح متغيراً x مثلًا في سلسلة الدخل، فسيقوم بإرساله كـ token إلى المحلل القواعدي، ومن ثم يقوم بإدخاله إلى جدول الرموز وتعيين خصائصه مثل اسمه وقيمته ونوعه وحجمه وغير ذلك.

الأداة البرمجية (BISON)

وهي أداة تولد شيفرة بلغة C لمحلل القواعد، يعرف أيضًا بالمعرب Parser. يقوم المعرب باستخدام قواعد اللغة لتحليل الـ Tokens الآتية من الماسح، ومنها يبني شجرة الإعراب الموافقة حسب تسلسل الـ Tokens ليتسنّى من خلالها تحديد فيما إذا كانت العبارة تنتمي للنحو أم لا. وفي حال عدم مطابقتها للنحو، سيرسل الـ Bison رسالة خطأ.
من ثم وباستخدام أحد مترجمات لغة الـ  C سيتم الحصول على البرنامج النهائي base.exe وهو المترجم الجديد.
كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Lexyacccalc
هنا تعبر تمامًا عن مراحل بناء مترجم بسيط.
وبالطبع هذا ليس كل شيء عن بناء المترجم، هذا فقط تعريف بسيط عنه، فهنالك الكثير من العمل والكثير من الشيفرات والقواعد وملفات c التي يجب عليك كتابتها وبناؤها لتصل للنهاية.
وإن كنت مهتماً في هذا القطاع، فتستطيع استخدام هذا المقال التعريفي كرأس خيط للبحث عن المزيد، فهذا مجال واسع ودقيق.


عدل سابقا من قبل ابراهيم الشنطي في الإثنين 21 يناير 2019, 9:14 pm عدل 2 مرات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: رد: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالإثنين 21 يناير 2019, 9:12 pm

ما هي دلفي




رسميًا  Embarcadero Delphi، لغة من لغات البرمجة المنبثقة عن لغة باسكال،  وتهدف إلى توفير بيئة تطوير متكاملة. ومن المتعارف عليه أن دلفي مسخرّة غالبًا لبناء أهم تطبيقات Windows وIOS بالإضافة إلى MacOS وتطبيقات آندرويد Android  بمختلف أشكالها، ويشار إلى أن أنظار المطورين أول ما تتجه نحو دلفي Delphi للاستخدام في كتابة التطبيقات باعتبارها الأسرع على الإطلاق بين لغات البرمجة المخصصة لذلك، وبالإضافةِ إلى ما تقدّم؛ فإنها تصنف ضمن لغات البرمجة عالية المستوى High Level Language، وتعد النموذج الذي يحتذى به لتطوير تطبيقات الهواتف الذكية وقواعد البيانات وأنظمة التشغيل بمختلف الأشكال.
تتسم لغة دلفي بأنها تكتب بأوامر سهلة القراءة والتعلم بالنسبة للجميع، كما يمكن استخدامها من قِبل المبرمجين القائمين على استخدام أدوات تطوير البرمجيات بواسطة الأكواد والرموز الخاصة بها، وتنفرد بوجود مكتشف الأخطاء ومصححها بعد الانتهاء من كتابة الكود الخاص بها.




خصائص لغة دلفي




دعم البرمجة الشيئية.


إمكانية الاستخدام والتوظيف بكل سهولة وسرعة فائقة.


العمل ضمن الإمكانيات المحدودة على عكس لغات البرمجة الأخرى.


التطوير المستمر والنشط.






تاريخ لغة دلفي




يعود الفضل في تأسيس لغة دلفي إلى الشركة الأمريكية بورلاند للبرمجيات، وتم تشغيلها لأول مرة سنة 1995 على يد المهندس الدنماركي أندرس هيلسبرغ لتعد بمثابة وسيلة لبناء وإنشاء تطبيقات الويندوز Windows App.
في عام 2006 خضعت اللغة للتطوير من قِبل الشركة الأم، وعُرضت اللغة للبيع مع العديد من منتجاتها للجهة الأكثر ملائمة، إلا أن ذلك لم يحدث فعليًا بينما وُضعت إلى جانبِ مقتنيات فرعها المستحدث CodeGear، ومن ثم تم شراؤها من قِبل شركة Embarcodero Technologies ثم انتقلت ملكيتها إلى Idera في سنة 2015. ومازال التطوير مستمرًا عليها؛ إذ يتم استحداث نسخة جديدة كل ستة أشهر من قِبل IDE مرفقة بخريطة تفصيلية حول أهم المعلومات المتعلقة بالنسخة الحديثة.




أنواع البيانات في دلفي




تستخدم عدة أنواع من البيانات في لغة دلفي، ومن أبرز هذه الأنواع:
المتغيرات (Variable): تعتبر المتغيرات أمرًا هامًا جدًا في كتابة أوامر لغة دلفي؛ حيث تؤدي دورًا هامًا في قراءة التعليمات وكتابتها من قِبل الحاسب، وينصح عادةً باختيار تسميات فريدة للمتغيرات لتسهيل إرشاد اللغة إلى ما يقصد به، ومن أبرز السمات التي تتسم بها اللغة أنها ليست حساسة إطلاقًا لمسألة حرف كبير وصغير في اللغة الإنجليزية.
الأرقام (Numbers): تتعامل سطور الأوامر في لغة دلفي مع الأعداد بمختلف أشكالها سواء كانت صحيحة أو عشرية، كما أنها تستخدم الأرقام في العملة والحسابات المالية أيضًا.
البيانات النصية (Text): تتشابه بهذه الخاصية مع بقية أنواع لغات البرمجة، حيث تفتح المجال لاستخدام الكلمات والحروف والجمل بكل سهولة وأريحية، ويشار إلى أن الجمل تُخزن في سياق String، بينما يتم تخزين الحروف المنفردة على هيئة متغير Char.
البيانات المنطقية (Logical data): من المتعارف عليه أن الجمل المنطقية يعتمد تنفيذها على صحةِ أحد الشروط الواردة فيها، وتكون نتيجتها غالبًا إما صحيح أو خطأ.
مزيج من الأنواع السابقة: من الممكن للغة دلفي أن تتعامل مع جملة مؤلفة من كافة أنواع البيانات السابقة الذكر.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: رد: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالإثنين 21 يناير 2019, 9:19 pm

ما هي جافا سكريبت JavaScript

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

نعم وكما لا يخفى على أحد أن الأصفر يحملنا مباشرة إلى التفكير بالجافا سكريبت. لكن هل تملك المعلومات الكافية عنها؟! بماذا تختلف عن بقية لغات البرمجة؟ في هذا المقال سنتعرف على مجالات استخدام الجافا سكريبت وأهم ميزاتها. لكن لنلقي الضوء على تعريف مبسط لها لتتكون لديك الفكرة الصحيحة عنها.1

ما هي الجافا سكريبت
الجافا سكريبت هي لغة برمجة عالية المستوى تستخدم عادة في تطوير المواقع. قامت شركة نتسكيب Netscape بتطويرها كوسيلة لإضافة عناصر ديناميكية وتفاعلية للمواقع.

تتأثر الجافا سكريبت بلغة الجافا بشكلٍ كبير، وتتشابه في تركيبها بلغة C وهي مبينة على ECMAScript والتي هي لغة برمجة وضعتها شركة صن ميكروسيستيمز Sun Microsystems. ومع مرور الوقت حلت محل مجموعة متنوعة من لغات البرمجة الأخرى لتصبح معيارًا لبرمجة المتصفحات.

تطور الجافا سكريبت
ابتكر لغة الجافا برندان ايش عام 1995 تحت اسم موكا أثناء عمله في شركة نتسكيب، مستلهمًا إياها من لغة جافا Java وسكيم Scheme وسيلف Self.

لم تلقَ هذه اللغة الاهتمام في البداية إلا أنها ومع الوقت أصبحت تشكل مصدر اهتمام للعديد من المبرمجين بعد إضافة تقنيات جديدة ودعمها للغة الجافا وأطلق عليها اسم جافا سكريبت.2

ميزات الجافا سكريبت
تستخدم الجافا سكريبت في البرمجة من طرف العميل أو ما تدعى client side لكنها تتميز بالعديد من التقنيات والميزات والتي نورد منها:

تنفذ من جهة العميل، فعلى سبيل المثال يمكنك التحقق من صحة أي مدخلات قبل إرسال الطلب إلى المخدم.
تعتبر لغة سهلة التعلم نسبيًا وقريبة من اللغة الإنجليزية.
لغة برمجة مستقلة وليست كما يعتقد البعض أنها مرتبطة بلغة جافا.
توفر خدمات تحكمية أكبر بالمتصفحات.
تفاعلية وسريعة.
تتميز بواجهات غنية ويمكنك سحب وإسقاط المكونات لتغني واجهتك بالعناصر المطلوبة.
لغة برمجة وظيفية.3
قيود الجافا سكريبت
مشكلات الأمان: بما أن معظم التعليمات البرمجية يتم تنفيذها على الحاسب الخاص بالمستخدم، فيمكن استغلالها في بعض الأحيان لأغراض ضارة، الأمر الذي يستدعي العديد من الناس إلى تعطيلها.
لا تتيح قراءة الملفات أو كتابتها من جهة العميل.
لا يمكن استخدامها في تطبيقات الشبكات إذ لا يتوفر الدعم المناسب لذلك.
لا تدعم التنفيذ متعدد الخيوط multithreading وهي تقنية يتم فيها التنفيذ في عدة مسارات بنفس الوقت على نفس المعالج.
يختلف عرض الجافا سكريبت بين مختلف المتصفحات ومحركات البحث الأمر الذي يتسبب في عدم تناسق الواجهة والوظائف في بعض الأوقات.4

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

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

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

في حين يمكن استخدام الجافا لتطوير برامج ضخمة، إلا أنها تتطلب مساحة ذاكرية كبيرة غالبًا والتي من الممكن أن تتسبب ببطء في عمل الحاسب أو بطء في عمل برنامج آخر. في المقابل تعمل الجافا سكريبت بمساحة ذاكرية صغيرة لذا شاع استخدامها بشكل كبير في العديد من صفحات الويب بسبب متطلبات الذاكرة المنخفضة والقدرة على توفير العديد من المزايا الفريدة.5
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: رد: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالإثنين 21 يناير 2019, 9:22 pm

ما هي إتش تي إم إل HTML

تعتبر HTML الركيزة الأساسية في بناء صفحات الويب الشائعة عبر الإنترنت، ويشار بها اختصارًا إلى Hyper Text Markup Language، وهي لغة ترميز النص التشعبي التي تمنح صفحات الويب البنية الأساسية والخصائص الرئيسية لها، ويشار إلى أن جميع صفحات الويب تحتوي كل منها على الرموز والوسوم الخاصة بها في شفرة المصدر لها، وتعتمد بشكلٍ رئيسي بدورها على الارتباطات التشعبية للربط بين الصفحات والانتقال بينها بكل سهولة.

يعود تاريخ ظهور HTML إلى سنة 1991 على يد مؤسس الشبكة العنكبوتية تيم بيرنرز ليس Tim Berners-less، أما النسخة التالية HTML v2.0 فيعود تاريخ تأسيسها إلى سنة 1995، وتوالت التحديثات عليها حتى آخر نسخة منها في عام 2016. وفي التعمقِ في عالم html فإنها لغة معتمدة على الوسوم التي يفهمها ويستوعبها الحاسب الآلي محصورة بين أقواس ليفسرها على شكلِ أوامر عند الاتصال بشبكة الإنترنت، ولا بد من الاستهلال بالوسوم الإفتتاحية والختامية والتسلسل والترتيب بالوسوم في الفتح والإغلاق.1

دلالات وسوم HTML الرئيسية
فيما يلي أهم الوسوم المستخدمة في كتابة الأكواد في HTML والتي لا يمكن أن يخلو منها أي كود خاص بها، وهي:

وسم البداية والنهاية: يستوجب الأمر افتتاح النص الترميز بوسوم البداية والنهاية، إلا في حالة HTML 5؛ فيسبقها  وتكتب على النحو التالي:!DOCTYPE html.
وسم : يكتب الوسم بهذا النحو في بداية النص الترميزي، على ألا يسبقه أي نوع من الوسوم.
وسم html>/<: يستخدم كوسم لإغلاق النص نهائيًا، وبين وسم البداية والإغلاق تُكتب جميع الوسوم المرغوب بإدراجها وخصائصها في صفحة ويب.
وسم : يستخدم هذا الوسم لإدراج بقية الوسوم بين هذين الوسمين، حيث يوضع الوسم بعد وسم html الافتتاحي، ويوضع الإغلاق له قبيل نهاية نص الترميز؛ وتحديدًا قبل .
وسم : يأتي هذان الوسمان متتاليان دون فواصل بينهما سوى العنوان المراد وضعه للصفحة، على سبيل المثال: what’s is a html ، ويظهر ما بين وسم بداية العنوان ونهايته في خانة عنوان صفحة الويب.
وسم ، تحتوي الوسوم والخصائص المدرجة بين هذين الوسمين على جميع صفات وخصائص الصفحة، كالألوان ونوع الخط والصور والجداول والقوائم النقطية والرقمية وغيرها، ولا يُدرج أي من الوسوم الخاصة ببنية الصفحة خارج الوسم Body نهائيًا؛ وذلك لتتمكن محركات البحث وصفحات الويب من قرائتها بشكلٍ سليم.2
البرامج المستخدمة لكتابة HTML
حتى يتمكن المستخدم من كتابة نص ترميز صحيح لا بد من استخدام عدة برامج مخصصة للتحرير، ومنها Notepad الاعتيادي الموجود في أي نظام تشغيل على جهاز الحاسوب، كما هناك برمجيات تحرير أخرى أيضًا:

Eclipse.
Komodo Edit.
Bluefish.
Adobe html.
Adobe Dreamweaver.
تُكتب النصوص داخل أحد برامج التحرير، ثم تُحفظ بصيغة .html، كما يمكن أيضًا حفظ الملف بصيغة PDF في حال استخدام متصفح الويب جوجل كروم Google Chrome؛ ومن الجدير بالذكرِ أن الملف سيظهر على سطح المكتب بأيقونة محرك البحث الذي يستخدمه محرر النص، ويمكن العودة للتحرير مجددًا من خلال الضغط بالزر الأيمن داخل صفحة الويب المُعدة واختيار View Page Source أو الضغط على Ctrl+U للعودة إلى التحرير مجددًا.3
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: رد: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالإثنين 21 يناير 2019, 9:24 pm

ما هي فيجوال بيسيك Visual Basic

في رحلة تطوير أنظمة التشغيل والغوص في أعماق البرمجة ووصلت مايكروسوفت إلى بيئة تطويرية ساعدت المطورين والمبرمجين بشكلٍ كبير، حتى ألقت بظلالها على العديد من تطبيقات ويندوز التي نستخدمها اليوم. جميعنا سمع بفيجوال بيسيك، لكن هل نعلم كيف تم تطويرها وما الأسباب التي أوصلتها حدود الشهرة؟

سنتعرف سويًا في هذا المقال على الفيجوال بيسيك. ما هي؟ تاريخها وميزاتها.1

تعريف الفيجوال بيسيك
الفيجوال بيسيك Visual Basic والتي يرمز لها اختصارًا VB هي بيئة تطوير برمجية من مايكروسوفت، يستخدم فيها المبرمج واجهة رسومية GUI لتعديل المقاطع البرمجية المسبقة الاختيار والمكتوبة بلغة بيسيك BASIC.

وتعتبر إحدى أكثر لغات البرمجة انتشارًا واستخدامًا على مستوى العالم، ويأتي سبب شهرتها كونها تتيح للمستخدمين إنشاء تطبيقات ويندوز بسهولة وسرعة.2

تاريخ الفيجوال بيسيك
تعود أصول الفيجوال بيسيك إلى لغة البرمجة BASIC التي أنشأها عام 1964 كل من جون كيمني وتوماس كورتز بهدف تبسيط البرمجة وجعلها في متناول العالم بأسره. باستخدام تلك الفكرة قامت مايكروسوفت بدمج مترجم أساسي في نظام التشغيل الخاص بها MS-DOS. وعلى الرغم من انتشارها وسهولتها، إلّا أنها كانت قاصرة عن منافسة اللغات الأخرى مثل السي C والسي بلس بلس C++، لذا اقتصر استخدامها على بعض المهمات البسيطة والأغراض التعليمية في حين كانت التطبيقات الكبرى تُبرمج باستخدام لغات أخرى.

في أواخر ثمانينيات القرن الماضي كان نظام التشغيل ويندوز وغيره من الواجهات الرسومية في بدايات انطلاقتهم، وكانت معظم أجهزة الحاسب تستخدم أنظمة التشغيل ذات الواجهات النصية. وعندما بدأ الناس بإدراك فوائد أنظمة التشغيل الرسومية بدأت شعبية ويندوز، لكن ولسوء الحظ كان إنشاء البرامج صعبًا للغاية في ويندوز وتتطلب شيفرات ضخمة للغاية. وللتغلب على هذه المشكلة قامت مايكروسوفت بإحياء لغة بيسيك بإدخال البيئة التطويرية Visual Basic 1.0 مستخدمة الأكواد المصدرية الخاصة بلغة البيسيك.

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

إصدارات فيجوال بيسيك
منذ إصدارها الأول، تم إطلاق ستة إصدارات مختلفة من فيجوال بيسيك وهي (1.0 و2.0 و3.0 و4.0 و5.0 بالإضافة إلى 6.0) وكان آخر إصداراتها هو 6.0 الذي أطلق عام 1998.

انتقلت بعدها مايكروسوفت إلى .NET Framework وأصبحت تعرف بعدها باسم Visual Basic .NET ويشار إليها أحيانًا باسم Visual Basic 7.0 أو تنسب للعام الذي أطلقت فيه Visual Basic 2002.

منذ الانتقال إلى .NET framework أطلقت عدة إصدارات أخرى من Visual Basic .NET وهي (Visual Basic .NET 2002 وVisual Basic .NET 2003 تلاها كل من Visual Basic 2005 وVisual Basic 2008 وVisual Basic 2010 وVisual Basic 2012 ثم Visual Basic 2015 وVisual Basic 2017) والتي عرفت اختصارًا بالأسماء التالية بالترتيب (VB 7.0، VB 7.1، VB 8.0، VB 9.0، VB 10.0، VB 11.0، VB 14.0، VB 15.0).3

ميزات الفيجوال بيسيك
واجهة رسومية: تتميز بواجهة رسومية سهلة التعامل أي أن برنامج الفيجوال بيسيك دائمًا ما سيظهر نتيجة على الشاشة مما يمكن المستخدم من التفاعل معه للقيام بالمهمة التي يريد.
تدعم البرمجة التركيبية Modularization: وهي أسلوب تصميمي يعتمد على مجموعة مكونات منفصلة تدعى الوحدات.
كائنية التوجه.
تصحيح الأخطاء: إذ توفر خيارين مختلفين لتصحيح التعليمات البرمجية، إما تصحيحها بشكل يدوي كما في بقية لغات البرمجة، أو عن طريق Runtime Debugger الذي يقوم بتصحيحها بشكلٍ تلقائي أثناء التشغيل.
الوصول إلى البيانات: باستخدام ميزة الوصول إلى البيانات يمكننا إنشاء قواعد بيانات.4
مساوئ الفيجوال بيسيك
لغة قوية لكنها أبطأ بكثير من بقية اللغات.
لغة مطورة من قبل مايكروسوفت لذا لا يمكن نقلها بسهولة إلى أنظمة التشغيل الأخرى.
لا تدعم الصفوف كما في بقية لغات البرمجة.
تتطلب مساحة ذاكرية كبيرة لتثبيت المكتبات والمكونات الرسومية، ولا يمكن استخدامها لتطوير البرامج التي تحتاج وقت معالجة كبير كألعاب الفيديو
التطبيقات التي يتم تطويرها في الفيجوال بيسيك تعمل فقط على أنظمة ويندوز.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: رد: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالإثنين 21 يناير 2019, 9:28 pm

لماذا تعلم البرمجة صعب للغاية؟! وكيف تجتاز المراحل الأربعة لتعلم البرمجة

مصطفى كان للتو قد أنهى مرحلة الثانوية العامة، وبمجموع ليس يبشر بخير. لكنه قرر أنّه لن يعتمد على مهارة واحدة لكي ينجو في حياة مليئة بالتنافسية والمصاعب وغير المتوقع، قرر أن يتعلم البرمجة وليس لديه خلفية عن الأمر … ومثله مثل أي مبتدأ بدأ ينثر أسئلته هنا وهناك، بدأ يتعلم القليل من لغة روبي، انتقل لـ scala ومن بعدها go، تعلم بعض أوامر اللينكس وبعض الأمور الممتعة به، قام بعمل بعض البرامج بلغة بايثون، وظل على هذا النحو لما يقارب العام.

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

من الصعب أن تلوم أي أحد يريد دخول مجال صناعة البرمجيات بتوقعات صادمة، من ناحية فقد سمعت عن صعوبة تعلم البرمجة، ومن ناحية أخرى فقد قامت حملة “learn to code” الأمريكية بعمل رائع لجلب الكثير من المواهب للصناعة، مواقع كـ codeAcademy ،treehouse ،code school، قد ساعدت الكثير ليبدأ بتذوق البرمجة وعائد عمل شيء مفيد بيديك.

لكن المشكلة لم تكن أبدًا الخوف بل الكم الرهيب من الآمال والتوقعات.

مرحلة "خذ بيدي"
في معظم الحالات فإنّ الدورات التقديمية للبرمجة تقوم بعمل عظيم، فهي تقودك كالطفل من أنواع المتغيرات إلى حالات if، ثم إلى المراحل الأولية لكتابة المصدر البرمجي، ومع تقدمك في حل التمارين الموجودة بهذه الدورات والمصممة بطريقة الألعاب gamification فإن ثقتك بنفسك تزيد، فربما بإمكانك أن تكون مبرمجًا عظيمًا. ما مدى صعوبة الأمر، فمنذ طباعة Hello world قد أصبحت مطورًا.

وهنا تكمن المشكلة إذ أنّك في مرحلة “خذ بيدي”، ومع ذلك فقد شعرت أنّ النهاية قريبةٌ جدًا وأنّ الفارق بسيطٌ لكي تحترف الأمر وتصبح مطورًا جاهزًا للعمل. لكن الحقيقة أنّ هذه فقط البداية.

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

لماذا تعلم البرمجة صعب للغاية؟
سنستعرض التحديات المختلفة في باقي الثلاث مراحل. لكن إليك ما تحتويه كل منها باختصار:

1- مرحلة خذ بيدي
هذه المرحلة مليئة بالسعادة والإنجاز، فستقوم بقراءة بعض التعليمات، أو مشاهدة بعض فيديوهات الدورات التقديمية، وستحل كل التمارين، ستتعلم الأساسيات و ستشعر بشعور جيد تجاه إنجازاتك البسيطة.

2- منزلق الحيرة
هي بداية مرحلة الإدراك المؤلم بأنّ الأمر أصعب حينما لا تجد اليد التي تساعدك، وأنّك لا تستطيع أن تفعل أي شيء وحدك بعد. تحدياتك الأساسية هي فحص الكود Debugging، وأسئلتك فقط عن كيفية جعل سطر كود يعمل، والتي لا تقودك لأي طريقة منظمة للعمل.

3- صحراء اليأس
هي المرحلة الأصعب عبر صحراء لا مَعلم لها، عندما تبدو كل الطرق صحيحة، عندما تدور حول نفسك، وتبذل الوقت والجهد وتتعطش للمصادر التي توجهك للطريق الصحيح … لتكتشف أنّك رجعت لنفس نقطة البداية.

4- التحسن الرائع
عندما تكوّن لنفسك نظامًا لكيفية إيجاد حلول للمشاكل التي تواجهك أثناء البرمجة، عندما تقوم ببناء تطبيقات ومشاريع كاملة، لكن لازال الكود الخاص بك غير منظم وهش كبيت من ورق اللعب، ثقتك تزيد لأنّ المواقع التي تبنيها تعمل، واحترفت بعض التكتيكات في بناء مشاريعك وكتابة كودك الخاص. أصدقاؤك يعتقدون أنّ واجهات تطبيقاتك رائعة لكنك تشعر بالرعب عندما يسألك أحدهم تفقد الكود المكتوب.

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

دعنا نعود للمرحلة الثانية …

المرحلة الثانية: منزلق الحيرة
كن حذرًا عند دخولك هذه المرحلة، فأنت على وشك عبور مرحلة قد كسّرت العديد من طموحات المطورين، وأودت بهم إلى حفرة “البرمجة صعبة للغاية”، وأنّك لن تستطيع أبدًا تعلمها.

ستدرك مائة بالمائة أنّك في هذه المرحلة … اللحظة التي تجلس فيها أمام لوحة المفاتيح، وتقوم بتشغيل محرر الأكواد المفضل لديك، ثم تحاول أن تبني مشروع من الصفر، بدون اللجوء لأي مساعدة من زملاء أو تلميحات … بضع لحظات … ثم … تبًا!

ربما تبدأ بفتح بعض الدروس المحفوظة عندك، أو مراجعة فيديوهات يوتيوب لكي تبدأ بمعرفة ما تريد فعله، في هذه اللحظة ثقتك بما تعلمته تهتز … مرحبًا بك في منزلق الحيرة.

لماذا تعلم البرمجة صعب للغاية - 2
تقوم ببناء بعض الميزات في مشروعك، تقوم باختبار هذه فتتعطل تلك، حرب من المشاكل البرمجية Bugs لا تدري متى تنتهي، كل انتصار صغير ربما يلوح من بحث على جوجل … ثقتك تقل تدريجيًا، وكل همك الآن أن تثبت أنّك تستطيع بناء شيئًا ما، لذلك يتوجه تركيزك إلى البحث عن كيفية عمل ميزات بطريقة معينة، تقوم بالتطبيق، تظهر مشاكل، تبحث عن حلول وهكذا.

عند انتهاء المرحلة الأولى من تعلم البرمجة، فإنّ الطلاب يُدفعون من أعلى التل ويُطلب منهم القيام بالطيران. الجزء المخيف هنا أنّ هذه هي فقط المرحلة الثانية فأنت لم تتعرض للأشياء الدسمة بعد.

لكن ريثما قمت بحل عدد كبير من المشاكل وأنهيت عدة مشاريع برمجية فقد تجاوزت هذه المرحلة بنجاح … بالنسبة لأولئك من يريدون أن يبنوا حياة مهنية من بناء هذه الأشياء، فإنّهم هنا يقررون ما إذا كانوا مستعدين لخوض المجال بكل ما أوتوا من طاقة، أمّا الآخرين فهذه المرحلة هي منتهاهم.

ما الفرق بين مرحلة “خذ بيدي” ومرحلة “منزلق الحيرة”؟
إنّ فهمك للفروق بين هاتين المرحلتين هام جدًا لإدراك أنّه ليس ذنبك أبدًا إذا كانت تجربتك كما وصفناها سابقًا، بشكل رئيسي فإنّ ما يتحكم في المراحل جميعها هما عاملان … كثافة المصادر وكم المعرفة … دعنا نتعرف عليهما قبل أن نستكشف تأثيرها على المرحلة الثالثة.

العامل الأول: كثافة المصادر
كما سبق وأن أخبرناك في البداية تشعر أنّه يوجد مليون مصدر متاح لتتعلم منه، كل مصدر يحاول أن يأخذ بيدك لبداية الطريق، وهذا لأنّه بالفعل يوجد الكثير من المصادر … حاول البحث عن تعلم البرمجة وستجد كم هائل من المصادر، الفيديوهات، المقالات، والمساقات المتاحة … وعادةً ما تكون هذه المصادر جيدة، لم يوجد هذا الكم للبدء بتعلم البرمجة من قبل.

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

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



لماذا تعلم البرمجة صعب للغاية - 2
العامل الثاني: كم المعرفة
لنتحدث الآن عن عاملٍ له علاقة، وهو كم المعرفة المطلوب منك في كل مرحلة، الشكل التالي يوضح كم المعرفة المطلوب منك استيعابه في كل مرحلة …

لماذا تعلم البرمجة صعب للغاية - 2
في بداية تعلمك فإنّ المطلوب منك فهمه قليل جدًا، كل من يريد تعلم البرمجة أيًا كانت خلفيته يحتاج أن يعرف ماذا تعني for loop، كيفية بناء المنطق الشرطي، والأساسيات الأخرى لكتابة الكود، لا يوجد الكثير من هذه الأساسيات. لذا، فما تحتاجه في البداية بالنسبة لحجم المعرفة المطلوب قليل جدًا بالنسبة للمراحل التالية.

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

عندما تتقدم للمرحلة الثالثة فإنّ حجم المعرفة يزيد أكثر، أنت الآن تريد أن تفهم ماذا تستخدم من أدوات، ماذا تتعلم من لغات، ما وراء أساسيات علوم الحاسب، كيف تكتب مكونات كود منفصلة عن بعضها البعض، البرمجة الكائنية، الأسلوب الجيد، كيف تطلب المساعدة … وهذا فقط بعضٌ من المطلوب منك تعلمه.

كل رحلة قصيرة لجوجل أو Hacker news إنّما هي كحفر الأرانب لا تدري إلى أين تأخذك، كل هذا يزيد من إحباطك وعدم ثقتك بنفسك.

ببساطة أنت تجهل ماتجهله

فقط عندما تجد بعض المساعدة، وتغادر هذه الصحراء، يبدأ كم المعرفة المطلوب بالنقصان شيئًا فشيئًا، عند هذه النقطة تكون قد اخترت التقنية المناسبة لتبني معها حياتك المهنية. أخيرًا تعرف ما تجهله وتستطيع اقتحامه ببعض الثقة، سيستمر تركيزك في الزيادة متجهًا بك لبداية حياتك المهنية. لنعود لسرد المراحل الباقية …

مرحلة صحراء اليأس
بعد فهمك للعاملين السابقين، بإمكانك إدراك أنّ منزلق الحيرة ما هو إلّا نقطة فاصلة في رحلتك، ما شعرت به من الألم هو ناتج عن خليط من الزيادة المتسارعة في كم المعرفة المطلوب منك استيعابها، وقلة المصادر المتاحة، ما سبَب ما نسميه هنا صحراء اليأس.

باختصار أنت تعرف أنّ للأمر نهاية ولكنك لا تعرف كيف تصل هناك، الصحراء كبيرة ومليئة بالمخاطر، ستجد نفسك منجذبًا لدستة من المصادر التي ربما تحمل في طياتها حلولًا لمشاكلك. لكن أيًا منها سيفيدك بحق؟!

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

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

التحسن الرائع
لقد اجتزت مرحلة صحراء اليأس ببراعة وثقتك في ازدياد، مهارة جوجل جعلت خاصتك ممتازة، وأخيرًا تستطيع أن تفهم المقالات الفنية المطولة، ربما قد تعمقت في لغة أو framework معينة ولديك الثقة في إطلاق تطبيقات حسنة الأداء. هذه هي مرحلة التحسن الرائع.

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

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

أنت تعتقد أنّه يجب أن تعمل كمطور بالفعل، وما ما أبعد من المسافة بين ما تكتبه من كود، وبيئة العمل الاحترافية.

لكنك بالنهاية ستفعلها، صحراء اليأس مهما كانت كبيرة فستجتازها، منزلق الحيرة الآن مجرد ذكرى، أنت أخيرًا تتحسن وبسرعة متزايدة، قدرتك على استيعاب المواضيع الجديدة باتت أسرع، تبنيك للتقنيات والأدوات الأحدث بات أسهل، قد اكتسبت العديد من الممارسات الجيدة Design patters التي ستساعدك في حياتك المهنية كمطور.

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

كيف يبدو كل هذا؟
إذن فقد عرفت مراحل الرحلة كلها الآن، ولماذا هي صعبة، عندما تضم جميع المراحل التي ناقشناها مع العوامل المؤثرة بها فإنّها ستبدو كما الشكل التالي:

لماذا تعلم البرمجة صعب للغاية - 7
إنّ معرفة الطريق شيء، واتباعه شيءٌ آخر … لذا دعنا نساعدك …

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

كيف تعبر مرحلة “خذ بيدي”:
إنّ كثرة المصادر في هذه المرحلة يجعلها أكثر متعة من غيرها، لكن إليك نصيحتان حتى تستعد مبكرًا للمراحل التي تليها:

1- ابدأ بالتعلم من أكثر من مصدر:  لتتعرف على أفضل طريقة للتعلم، ما هي أكثر المواضيع التي تبدو شيقة بالنسبة لك، ربما تتعلم من خان أكاديمي عبر التحديات المتتالية، أو عبر تمارين codeacademy المهيئة بالمتصفح، أو كتاب كريس باين learn to program … كن منفتحًا في البداية وانس كل ما يتعلق بـ “ما يجب تعلمه” فكل الأكواد هي ذاتها في هذه المرحلة.

2- استقر على مصدر واحد: واستمر معه لنهاية المرحلة الأولى طالما وجدته الأنسب، قم بحل جميع التمارين والتي ستمدك بالمعرفة الأساسية لكتابة بعض التطبيقات والبرامج البسيطة، ثم استعد لبناء تطبيقات خاصة بك.

كيف تعبر مرحلة “منزلق الحيرة”:
تقريبًا الكل سيختبر هذه المرحلة؛ لأنّ الطريقة الوحيدة لتصبح مطوًرا هي أن … حسنًا … “تطوّر”، ربما تتظاهر ببناء شيئًا ما عبر اتباعك بعض الدروس، لكنك حقيقةً تقوم بتتبع خطوات معدة مسبقًا، الدروس طريقة جيدة لتبدأ بتطبيق المعرفة النظرية، لكنك ستحتاج لشحذ نفسك أكثر لمواجهة الواقع. ثلاث نصائح حتى تبدأ ببناء مشاريعك الخاصة …

1- قم بالعمل مع رفيق، حتى ولو مبتدأ مثلك، ستتفاجَأ بمدى سهولة العثور على أسباب المشاكل البرمجية، عندما يتفقد الكود أكثر من شخص.

2- اقرأ أكواد الآخرين، لكي تبدأ باكتساب الممارسات الجيدة، تساءل دائمًا لماذا قام المبرمج بكتابة الكود بهذه الطريقة، تفقد أي مكتبات أو حلول قام الآخرون بكتابتها من قبل.

3- ابنِ مكونات صغيرة، وابنِ باستمرار. يجب أن يكون لديك العديد من أفكار المشاريع الشيقة ببالك لبنائِها مستقبلًا، لكنك تحتاج لخبرة البحث وDebugging في البداية، كلما تعلمت شيئًا طبقه دوريًا لبناء مشاريعك الخاصة قسمه أجزاء صغيرة.

كيف تعبر مرحلة “صحراء اليأس”:
ريثما تعتاد على الـ Debugging فإنّ مشكلتك الكبرى ستصبح في كم المعرفة المطلوب منك، وكم الجهد الذي ستحتاجه لتعلمها، في هذه الحالة فإنّ ما تحتاجه هو طريق محدد … لذا فإنّ مفاتيح عبور هذه المرحلة هي كالتالي:

1- ليكن لديك هدفًا قويًا لما تريد إنجازه؛ لأنّه بخلاف ذلك فسينتهي بك الحال في دائرة مغلقة من تعلم كل ما يبدو شيقًا، وفي النهاية لن تكون جيدًا في أي منها.

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

3- ركز جيدًا وتجنب المشتتات؛ لأنّه إذا كنت من النوع الذي جذبه تعلم البرمجة، فإنّك في الغالب من النوع الذي يجذبه أي شيء شيق، عندما تصعب الأمور في البرمجة ستحتاج للمضي قدمًا، بدلًا من الجري وراء شيء آخر يبدو لامعًا.

كيف تعبر مرحلة “التحسن الرائع”:
هذه المرحلة من إحدى المراحل الانتقالية المخادعة، فلديك القدرة على بناء التطبيقات، لكنك تريد أن تصبح أكثر احترافًا، هذه بعض النصائح التي ستجعلك جاهزًا للعمل كمطور محترف.

1- تعلم واتبع أفضل الممارسات البرمجية، ستحتاج لأن تفهم الفرق بين إيجاد حل وإيجاد أفضل الحلول، الممارسات الجيدة هي الفاصل الكبير بين كتابة كود خاص بك يؤدي الغرض، وما بين بناء برامج ذات جودة في وظيفة حقيقية.

2- راجع خبراتك، أغلب الأمر أنّك تخطيت بعض الأمور الهامة أثناء مسيرتك، والتي ربما لا تعرف أنّك تخطيتها حتى الآن، تحتاج أن تراجع هذه الأمور وتقوم بإعادة دراستها.

3- تعلم المهارات المملة، والتي نادرًا ما قد تتعرض لها أثناء رحلتك، كالـ testing – data modeling – architecture – deployment لكن من السهل استيعابها في هذه المرحلة، وتعتبر أساسية لأي عملية تطوير برمجية.

إنّ المفتاح الرئيسي لاتباع النصائح السابقة هي أن تجد من يقيمك، من يتعلم بمفرده ربما يكون منتجًا أكثر من غيره. لكنه نادرًا ما يكتب كود منظم أو مهيكل بطريقة جيدة؛ ﻷنّ لا أحد يخبره بذلك، وهو نفسه لا يدرك المشكلة. الحقيقة أنّك ستحتاج -خمن ماذا- العمل مع أشخاصٍ آخرين أكثر خبرة منك. لتسألهم وتحصل منهم على تقييم … بعض مواقع الأسئلة كذلك ربما يساعد.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: رد: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالثلاثاء 22 يناير 2019, 11:35 am

كيف تتخطى عقبات السنة أولى برمجة؟

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ P_11170ko2a1

عندما رمى بي القدر في هندسة الحاسب وبدأت باستيعاب محتويات هذا الاختصاص، حاولت جاهدةً أن أنطلق نحو عالم البرمجة وأن أنغمس في تعلم جميع لغات البرمجة … ليس هذا فقط! بل سعيت وحلمت باحترافها كلها، وبحلول السنة الرابعة كنت أحلم بالعمل في مايكروسوفت… من ثم استيقظت من حلمي السعيد هذا!

بعد عدة كورسات عشوائية أي طالب سنة أولى في مكاني سيدرك أنه يمشي في طريق خاطئ، فمجرد إنهائك لمقرر ما وكتابة كود بما تعلمته لا يعني أنك احترفت أي شيء على الاطلاق!
أنت تعرف الأساسيات، لكنك تعجز عن تطبيقها في شيء مفيد، أليس كذلك؟!

من أمضى سنواتٍ في عالم البرمجة يعرف أن الرحلة ليست كالنزهة في حديقة، فالطريق مليء بالعقبات والاستثناءات ومعالجة الأخطاء!
[size=19]الآن لنكف عن اللف والدوران والضياع في عالم الكورسات والأكواد الجاهزة، وتجهزوا لتعرفوا حقيقة أخطاء المبتدئين … لكن من لا يخطئ لا يتعلم أليس كذلك؟
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
ابراهيم الشنطي
Admin
ابراهيم الشنطي


عدد المساهمات : 69984
تاريخ التسجيل : 28/01/2013
العمر : 77
الموقع : الاردن

كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Empty
مُساهمةموضوع: رد: كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟   كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Emptyالثلاثاء 22 يناير 2019, 11:44 am

لغات البرمجة المهمّة لسوق العمل … دع الشركات تبحث عنك وليس العكس!!






كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ 34442-best-programming-language-sg



لعلّ التعلّم الذاتيّ self-taught هو أحد أهم أسس التعلّم في عصرنا الحالي ولا سيما -كما يبدو- أنّه الأقوى والأكثر انتشاراً في مجال التكنولوجيا و علوم الحاسوب، وقد تمّ عزو هذا الأمر وفقاً لتقرير Tuesday report نشره موقع HackerRank لسببين:

إمّا لأن برامج علوم الحاسوب متأخّرة عن سرعة تطوّر التكنولوجيا، هذه السرعة التي تفرض على المتعلّمين ضرورة الاعتماد على الذات لمجاراة التقدّم الصناعيّ والتكنولوجيّ وبذل الجهد الإضافي في محاولة لإثبات الذات في سوق العمل!! وإمّا لأنّ التعلّم الذاتيّ أمر متأصل في الحمض النووي DNA للمتعلّمين و المطوّرين، إذ لديهم غالباً نهمٌ مستمر لا يمكن إشباعه في التعلّم و التطوّر!!
إذ أوضح التقرير أنّ الطلّاب بالمتوسّط يخطّطون لتعلّم 6 لغات برمجة، بينما المطوّرون الكبار و المتمرّسون يخطّطون لتعلّم 4 لغات برمجة!! وهذه طموحات كبيرة لا يمكن لمنهاج دراسيّ في جامعة أو معهد أن يشملها كاملةً، إضافةً إلى أنّ أمر اختيار اللّغة يعتمد على عدّة أمور مثل رغبة المتعلّم و متطلّبات العمل.

كما هو ملاحظ في المخطّط فالتعلّم الذاتيّ بالإضافة إلى التعلّم المدرسيّ يحقّق أعلى نسبة بمقدار 37.7%.
كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Research-Student-Developer-Report-2018-by-HackerRank
 
بالعودة إلى السبب الأوّل فمن من المؤكّد أنّ التطوّر الهائل و السريع في علوم الحاسوب و التكنولوجيا كبير لدرجة لم تتمكّن إلى الآن المدارس والجامعات والمعاهد حول العالم من مواكبته؛ فأعداد الخريجين و المختصين في علوم الحاسوب لا تلبّي أبداً متطلّبات سوق العمل المتزايدة باطّراد، إذ وفق الإحصائيات والدراسات فمتطلّبات السوق من موظفين تتجاوز 570 ألفاً بينما أعداد الخريجين لم تبلغ الـ 50 ألفاً!! وهذا فارقٌ كبير!!
بالنظر إلى هذا الفارق فالتعلّم الذاتيّ يعتبر ضرورة ملحّة -بغض النظر عن تركيب الDNA الخاصّ بك عزيزي القارئ- إضافةً إلى أنّه أصبح أحد أهمّ أسباب ارتفاع أجور موظفي هذه الفئة من الأعمال، ويبقى الهاجس لدى الشركات السعي وراء أفضل و أمهر المطوّرين ممّن يلبّون متطلباتها، والمحافظة عليهم لصالحها، ومن المؤكّد أنّ هذا ليس بالأمر السهل!!
و من الملاحظ أيضاً، الاختلاف الكبير والفجوة الواسعة بين ما يتعلّمه الطلّاب من لغات و خبرات برمجيّة وبين ما يتطلّبه السوق فعليّاً!! فوفقاً للتقرير ذاته Tuesday report كانت لغةJavaScript اللّغة الأكثر طلباً في سوق العمل، بنسبة تصل إلى 48% من إجماليّ متطلّبات العمل، مقابل 42% من طلاب علوم الحاسوب الذين يتقنون أو تعلّموا هذه اللغة خلال مناهجهم الدراسية!!
السبب الرئيسي في شهرة وأهمّية هذه اللّغة بالطبع لا يخفى على أحد، فالتطوّر الكبير الذي قدّمته لتطبيقات الويب و الإنترنت لا يمكن إنكاره أو تجاوزه، إذ حوّلت هذه اللّغة تطبيقات الإنترنت من تطبيقات ساكنة ستاتيكية static إلى تطبيقات تفاعليّة ديناميكيّة dynamic، وهذا ما لا يمكن الاستغناء عنه نهائياً!!
من المؤكّد أنّ الجامعات لا تسطيع مجاراة سرعة التطوّر، فالجامعة لا تلتزم بتعليم لغة برمجة محدّدة واحدة، بل تركّز على مفهوم وتقنيّات البرمجة العامّة والنظريّة، وتترك الحريّة والمساحة لكل طالب أن يختار ويتعلّم ويتقن ما يختار وما يريد و يرغب، وهذا عبر المشاريع الخاصّة والواجبات والنشاط الفردي لكلّ طالب.
وانطلاقاً من هذه النقاط والأمور أصبحت الشركات لا تعتمد في اختيارها موظفيها فقط وفقاً للشهادات الجامعية، بل تخطّى ذلك إلى الخبرات الخاصّة و التقنيات التكنولوجيّة المكتسبة ذاتياً اعتماداً على النشاط الشخصي للمطوّرين، بما يجاري و يلبي متطلّبات هذه الشركات!!
ولسوء حظّ الشركات أنّ هؤلاء المطوّرين الملائمين والمناسبين يعتبرون قلّة، وإيجادهم يعتبر كالبحث عن إبرة في كومة قشّ، والقضيّة الأصعب والأهم بعد أن تجد الشركة ضالّتها هي كيف تحافظ على ولاء المطوّر لها ولأعمالها!! وهذا يعتبر السبب المباشر لارتفاع أجور و رواتب المطوّرين!!
الآن ما رأيك صديقي القارئ أن تكون أحد هؤلاء الذين تبحث الشركات عنهم بدلاً من أن تبحث أنت عنهم!! لم لا تبدأ بالعمل على رفع أجرك من تلقاء نفسك بتطوير نفسك بالشكل الصحيح!! لما لا تبدأ من الآن!!
الخطوة الأولى أن تتعرّف إلى متطلبات السوق وتحدّد ما الذي تعرفه وتتقنه وما الذي يجب أن تتعلّمه وما يجب أن تعمل على تحسينه!!
إليك هذه القائمة بلغات البرمجة المقدّمة وفقاً للتقرير Tuesday report ، هذه اللّغات التي يجب عليك كطالب أو كباحث عن العمل أو موظّف يريد أن يرتقي في عمله، أن تتعلّمها لتضمن موقعاً مرموقاً وأجراً مغرياً، إضافةً إلى التمسّك بك كعملةٍ نادرة!! و ذلك من خلال المقارنة بين حاجة السوق لكل لغة، و أعداد الطلاب الذين تعلّموا هذه اللّغة.

حاجة سوق العمل من موظفين: 48%.
الطلاب : 42%.

حاجة سوق العمل من موظفين: 47%.
الطلاب : 66%.

  • Python

حاجة سوق العمل من موظفين: 33%.
الطلاب : 53%.

  • C++

حاجة سوق العمل من موظفين: 21%.
الطلاب : 66%.

  • C

حاجة سوق العمل من موظفين: 19%.
الطلاب : 76%.

حاجة سوق العمل من موظفين: 18%.
الطلاب : 16%.

حاجة سوق العمل من موظفين: 15%.
الطلاب : 25%.

حاجة سوق العمل من موظفين: 8%.
الطلاب : 5%.

حاجة سوق العمل من موظفين: 7%.
الطلاب : 2%.

حاجة سوق العمل من موظفين: 6%.
الطلاب : 4%.
كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟ Research-Student-Developer-Report-2018-by-HackerRank-1
ماذا تنتظر صديقي!! انطلق الآن وابدأ العمل و ابنِ مستقبلك!! و إذا كنت في حيرةٍ من أين ستتعلّم ما تحتاج تعلّمه فلا تقلق فالدراسة والتقرير ذاته أوضح أنّ معظم المطوّرين والطلّاب يعتمدون على موقع Stack Overflow بنسبة تقترب من ال80% ويليه Youtube بنفس النسبة تقريباً، كل شيء بين يديك فلتبدأ الآن، مستقبلك بانتظارك!!
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://shanti.jordanforum.net
 
كيف يفهم الحاسب لغات البرمجة؟ ما هي المترجمات وكيف تبنى وما مبدأ عملها؟
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى الشنطي :: برامج كمبيوتر :: كمبيوتر-
انتقل الى: