الخميس، 14 أبريل 2016

ما هي هندسة البرمجيات؟ تكوبيديا بالعربي

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

المصدر:
https://www.techopedia.com/definition/13296/software-engineering

الاثنين، 11 أبريل 2016

المخيم التدريبي للبرمجة — مخيم الويب الشامل FreeCodeCamp

 

مع انتشار الدورات التدريبية على الانترنت، ،والمساقات الهائلة المفتوحة MOOC مثل:(Coursera  ,Edx ,KhanAcademy) ظهرت أيضاً مواقع عديدة للتدريب على البرمجة اكثر تلائماً مع طبيعة المادة المطروحة مثل: ( CodeAcademy, CodeForces)

 والخبرة المرجوة من تلك المواقع هي تدريب الطالب عملياً على أساليب البرمجة ولغاتها. حيث ان المساقات الهائلة المفتوحة قد تفيد الطالب نظرياً في الكثير من الأوجه، لكن فيما يتعلق بالبرمجة وهي العلم التطبيقي للنظريات العلمية الرياضية(الخوارزميات) فمن الواضع ان الطالب يحتاج اكثر من شرح المادة نظرياً، يحتاج الطالب ان ينفذ السطور البرمجية بيديه او ما يسمى اصطلاحاً  (Get hands dirty) العمل حتى اتساخ اليدين !

ما هو FreeCodeCamp؟

(مخيم البرمجة المجاني) — “ تعلم البرمحة وساعد الجهات الغير ربحية “

هو مخيم تدريبي الكتروني لتعلم برمجة صفحات الانترنت، وبحسب التقسيم الحديث فيمكننا ان نقسم ذلك المجال إلى مظلتين رئيسيتين:

Front End و BackEnd

ال Front End هي البرمجة المتعلقة بواجهة المستخدم لصفحات الانترنت، أي برمجة كل ما يتعلق بجعل التصميم الجاهز لصفحة الانترنت تصميماً قابلاً للتشغيل والاستخدام، لاحظ أننا يجب نفصل التصميم عن برمجة الواجهات Front End ، حيث ان التصميم هو وظيفة المصمم الجرافيكي.

وباختصار اللغات والمكتبات  التي تخص Front End هي : HTML, CSS3, JS, Jquery , Bootstrap وهي التي تمكن المبرمج من انشاء صفحات الانترنت وتصميم وانشاء مكوناتها. وتهتم بالــ Client-Side

اما ال BackEnd هي البرمجة المتعلقة بمنطق الصفحات (Logical Implementation) حيث ان مجرد صفحات انترنت بمكوناتها ولكن بدون (Server-Side) لا تصنع من المنتج موقعاً الكترونياً كاملاً بل مجرد صفحات الكترونية.

يتطلب من المبرمج في ال Back End التعامل مع قواعد البيانات والتأكد من صحة البيانات المرسلة بين ال client وال server وتوجيه الصفحات داخل الموقع الالكتروني واستقبال ال Requests من الصفحات.

واللغات والمكتبات التي تخص ال Back End هي :NodeJS , Php ,MongoDB

تحت تلك المظلات يدور المخيم التدريبي وخطة الموقع Map تتطلب انجاز التدريبات والمشاريع للحصول أربعة شهادات Front End و BackEnd و Data Virtualization وفي النهاية Full Stack (برمجة صفحات الانترنت الشاملة) سوف تقوم ببناء بعض المشاريع عن طريق Reverse Engineering أي إعادة برمجة موقع جاهز مسبقاً دون الاطلاع على الكود الخاص به.

أما عن شهادة Data Virtualization فهو تخصص حديث نسبياً يتعلق بالتعامل مع Big Data البيانات الضخمة في أنظمة الوقت الحقيقي Real-Time وكيفية عرضها والتحكم بها

أما اللغات والمكتبات التي تخص ال Data Virtualization فهي D3.js, Reactjs, Saas

 

وفكرة المخيم بسيطة:

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

يلخص الموقع الأدوات المتاحة لك في ثلاثة كلمات Read , Search , Ask اقرأ، ابحث، اسأل.

  1.  اقرأ الخطأ البرمجي

  2. ابحث عن الخطأ في مواقع المساعدة مثل StackOverFlow

  3. اسأل المساعدة من زميل لك في المخيم

وفي الخيار الثالث يمتلك المخيم التدريبي نظام دردشة Gitter.im يحتوي على غرف خاصة بكل قسم في الموقع (وبعض الغرف مقسمة بحسب البلدان واللغات) فيها تزيد فرصك في التعرف على زملاء في البرمجة من مختلف دول العالم تساعدهم ويساعدوك في انهاء خطتك التدريبية (وهو افضل ما يميز ذلك المخيم التدريب)

ما موضوع الجهات الغير ربحية هذا؟

في نهاية الخطة وبعد انهاء الثلاثة شهادات الأولى (Front end — back end — Data virtualization) ولكي يمكنك المخيم من الحصول على شهادة ال Full Stack Development سوف يتطلب منك الاشتراك مع فريق من الزملاء في المخيم لبرمجة أربعة مشاريع لجهات غير ربحية والسبب وراء هذا هو الفائدة المضاعفة من الأمر والتي هي : تدريب الطالب/الطالبة على العملية البرمجية الخاصة بسوق العمل ، وتوفير أموالاً طائلة على الجهات الغير ربحية تساعدهم في انفاقها في مشاريع تنموية وإنسانية أخرى. أي تمكن الطالب من الخروج من المخيم بيد متسخة من الأكواد (ان جاز التعبير) وتوفير له العلاقات المناسبة لشق طريقه في سوق العمل (ان لم يكن قد حصل على وظيفة بالفعل قبل نهايته للمخيم).

 

ادخل من هنا وأبدأ الرحلة المدهشة : 

http://www.freecodecamp.com

certificate

لمزيد من المعلومات عن الفرق بين ال back end وال front end: 

http://goo.gl/ok6DVG

نهاية السطر، ونقطة.