الطريق إلى التعرف على أساسيات البرمجة يبدأ من لغات البرمجة التي تمكننا من التواصل مع الحاسوب عبر إعطائه توجيهات وتعليمات يمكن أن يفهمها وينفّذها. ولغات البرمجة مثلها مثل اللغات البشرية لها قواعد صارمة يجب اتباعها والتقيد بها. يُقدر أنّ هناك ما بين 500 إلى 2000 لغة برمجة نشطة تستخدم للأغراض العامة طبقًا لبعض الإحصاءات، وهو عدد كبير جدا، لكن أغلبية المبرمجين في العالم لا يستخدمون سوى بضع عشرات منها فقط.
الحاسوب لا يفهم لغات البرمجة بشكلٍ مباشر، فهو لا يفهم إلا لغة واحدة، وهي اللغة الثنائية (binary)، التي تتكون من تتابع للقيمتين 1 و 0 (ومن هنا تأتي التسمية)، لذلك عادةً ما تترجم لغات البرمجة إلى اللغة الثنائية عبر برنامَج يُسمى المُترجم (compiler) قبل أن يقوم الحاسوب بتنفيذها.
أساسيات البرمجة
تبدأ أساسيات البرمجة من الكود البرمجي -أو الشيفرة البرمجية كما يسميها البعض- وهي مجموعة التعليمات المكتوبة باستخدام لغة برمجة معينة. هذه الأكواد تعليمات يقوم الحاسوب بتنفيذها بالتتابع، هذه التعليمات قد تكون قراءة محتوى مِلَفّ مثلًا، أو رسمٍ ما، أو عملية حسابية.
هذا مثال على برنامَج صغير مكتوب بلغة البرمجة C يعرض جملة “السلام عليكم” على الشاشة:
#include
int main() {
printf("السلام عليكم");
return 0;
}
إلّا أن مفاهيم البرمجة الأساسية تكاد تكون مشتركة في أغلب اللغات، وهو ما سيسهّل عليك تعلم البرمجة بأي لغة تو إتقان مفاهيم و أساسيات البرمجة ذلك مثل:
- الثوابت: وهي القيم الثابتة التي يتم تعريفها بادئ الأمر، ولا تتغير لاحقًا في أي مرحلة من مراحل تنفيذ البرنامَج كالثوابت الرياضية على سبيل المثال.
- المتغيرات: عكس الثوابت؛ فهي قيم قابلة لتغيير قيمتها في الذاكرة وقتما تكون هناك حاجة لذلك ضمن آلية عمل البرنامج.
- الجمل الشرطية: وهو اشتراط تحقُّق شرط محدد ليتم تنفيذ المطلوب كقاعدة If-Then التي تشترط حدوث ما بعد (If) ليتم تحقيق ما بعد Then.
- الدوال: هي مجموعة أوامر أشبه ببرنامج صغير يفعل مهمة واحدة فقط.
- الحلقات التكرارية: هي برمجية هدفها تنفيذ أجزاء محددة من الكود البرمجي عدة مرات محددًا لها متى تبدأ وتنتهي، وعدد مرات التكرار.
أهمية تعلم البرمجة
مع أنّ هناك العديد من الأساطير حول البرمجة نتيجة لشهرتها الواسعة، فإنه لا يمكن لأحد أن يجادل في أهميتها القصوى في حياتنا اليوم، ومن ضمن الأسباب التي تدفعك إلى تعلم البرمجة:
- تحظى بطلب مرتفع في سوق العمل: البرمجة هي إحدى المهارات المطلوبة في سوق العمل، التي تحقق دخلًا محترمًا للمبرمجين. ففي الولايات المتحدة مثلًا، يبلغ متوسط دخل المبرمجين أكثر من 70 ألف دولار سنويًا، وهو مبلغ كبير مقارنة بباقي المجالات.
- حرية العمل: تعطيك حرية أكبر في العمل، فيمكنك أن تعمل من أي مكان شئت، من منزلك أو من المكتب أو أي مكان في العالم، كل ما تحتاجه هو حاسوب فقط.
- الأهمية البالغة: بعض مجالات البرمجة ذات أهمية بالغة في المجالات المتقدمة، مثل الذكاء الاصطناعي، والتشفير والعملات الرقمية وغيرها من القطاعات الواعدة.
- عامل الوقت: تعلم أساسيات البرمجة وصولًا لاحترافها لا يحتاج منك الكثير من الوقت مقارنة بالمهن الأخرى، فمثلًا لكي تصبح مهندسًا فستحتاج إلى خمس سنوات من الدراسة، في المقابل لن يحتاج منك تعلم أساسيات البرمجة إلا بضعة أشهر، ولن يأخذ منك التعمق في البرمجة واحترافها إلا سنة واحدة أو سنتين كأقصى حد.
- التعلم الذاتي: يمكنك بَدْء رحلتك في تعلم أساسيات البرمجة حتى إتقانها وحدك، فهناك آلاف الكتب والدروس
- والفيديوهات التعليمية المجانية على الإنترنت.
- لا تحتج إلى شهادة علمية من أجل تعلم البرمجة، فالكثير من المبرمجين المحترفين لم يذهبوا إلى الجامعة، ولم يحصلوا على أي شهادات علمية، ومع ذلك استطاعوا شق طريقهم في عالم البرمجة.
- تطوير الواجهة الأمامية: والمقصود به الجزء المتعلق بتصميم الموقع الذي يعرضه المتصفح، وعادة ما يحتاج إلى تعلم لغات البرمجة HTML وCSS وjavascript.
- تطوير الواجهة الخلفية: يهتم بالخادم الذي يحتوي ملفات الموقع، ما يجعل الموقع متاحًا عبر الإنترنت لأي أحد ومن كل مكان. هذا النوع من التطوير يتطلب تعلم لغات مثل PHP أو ASP أو node أو غيرها من لغات البرمجة.
- وسم البداية: يحتوي على اسم العنصر مثل: <p>.
- وسم النهاية: يحتوي على اسم العنصر مسبوقًا بخطٍ مائل مثل: </p>
- المحتوى: وهو موجود بين وسمَي البداية والنهاية.
- خاصيات: وتُدمج في وسم البداية مثل: <p class=”light”>
هذا مثال على ملف HTML:
<!DOCTYPE html>
<html>
<head>
<title>عنوان الصفحة</title>
</head>
<body>
<h1>هذا عنوان</h1>
<p>السلام عليكم</p>
</body>
</html>
وهذه هي النتيجة التي سنحصل عليها في المتصفح:
ننصحك بالاطّلاع على توثيق موسوعة حسوب للغة HTML باللغة العربية المدعّم بالأمثلة لمزيد من الشرح المفصّل.
لغة التنسيق CSS
لغة CSS اختصارًا عن (Cascading Style Sheets) هي لغة تستخدم في تنسيق محتوى صفحات الويب، وتستَخدم مع HTML. تساعد CSS على تحديد الطريقة التي تُعرض بها محتويات HTML في المتصفحات، كما تضبط أبعاد الصفحة وأشكال عناصرها، وعادة ما يتم تخزينها في ملفات منفصلة. لكي نعطي مثالًا بسيطًا على كيفية عمل لغة CSS، سنقوم بجعل لون العنوان في الصفحة الماضية باللون الأحمر.
<!DOCTYPE html>
<html>
<head>
<title>عنوان الصفحة</title>
</head>
<body>
<h1 style="color: red;">هذا عنوان</h1>
<p>السلام عليكم</p>
</body>
</html>
وهذه هي النتيجة:
تقدّم موسوعة حسوب أيضًا توثيقًا للغة CSS باللغة العربية يمكنك الرجوع إليه لمزيد من التفاصيل حول CSS.
لغة البرمجة: جافا سكريبت JavaScript
تمثّل JavaScript أحد ركائز صفحات الويب بجانب HTML وCSS، إذ تجعل JavaScript صفحات الويب أكثر تفاعلية، وتعطي للمبرمجين القدرة على التحكم في الصفحة. فمثلًا عندما يقوم الزائر بالضغط على زر ما، أو تحريك الفأرة فيمكن للغة البرمجة JavaScript أن تتفاعل مع ذلك عبر القيام بمهام يحددها المبرمج سابقا.
يمكن إضافة أكواد JavaScript داخل صفحات HTML، مع وضعها بين الوسمين <script> و</script>.
مثال:
<script>
document.getElementById("demo").innerHTML = "My First JavaScript";
</script>
إذا أردت التعمق أكثر في تعلم تلك اللغة الهامة لتصبح مطور برمجيات محترف، فيمكنك التسجيل في دورة تعلم البرمجة باستخدام جافا سكريبت المقدمة من أكاديمية حسوب التي تتضمّن العديد من الأمثلة العملية بواسطة 22 ساعة فيديو تدريبية، ولا تحتاج إلى امتلاك معرفة مسبقة بالبرمجة إذ تبدأ معك من الصفر إلى الاحتراف.
مجالات استخدام لغات البرمجة
1. تطوير المواقع وبناء التطبيقات
وهو من أهم مجالات استخدام البرمجة، وينقسم تطوير المواقع إلى شقين:
2. تطوير تطبيقات الويندوز
ويندوز هو نظام التشغيل الأكثر انتشارًا في العالم، إذ أنّ 90% من الحواسيب تشتغل على هذا النظام. لهذا، نجد الكثير من لغات البرمجة التي تجعل من تطوير برامج للعمل على هذا النظام أمرًا سهلًا، ومن أشهرها C وC++ وR وpython وغيرها الكثير.
3. تطوير الألعاب
هل سبق ولعبت لعبة ثم تمنّيت لو أنك تصنع لعبة مثلها؟ صار هذا ممكنا اليوم مع التطور الكبير في لغات البرمجة التي جعلت تطوير الألعاب ممكنا للأفراد بعد أن كانت حكرًا على الاستوديوهات الكبيرة، فمعظم لغات البرمجة الشهيرة صارت توفر مكتبات وأدوات تسهل كثيرًا عملية تطوير الألعاب.
لغة بايثون مثلًا توفر المكتبة pygame لتسهل على المبرمجين تطوير الألعاب، أما لغة C فتوفر المكتبة raylib من بين بدائل كثيرة. أيضا ظهرت في السنوات الأخيرة برامج متخصصة في تطوير الألعاب، هذه البرامج تُسمى محركات الألعاب، وهي مزودة بكل ما تحتاجه لتطوير أي لعبة تتخيلها، ومن أشهر هذه المحركات نجد Unity3D وUnreal وغيرهما كثير.
4. تطوير تطبيقات الموبايل
برمجة تطبيقات الموبايل تختلف عن بناء المواقع، لأنها تتطلب تعلم تقنيات إضافية خصوصًا مع وجود منصتين مختلفتين، وهما منصتي أندرويد، و iOS. فكل منهما تحتاج إلى لغات برمجة خاصة بها، فأندرويد يحتاج إلى تعلم الجافا (Java) أو كوتلن (Kotlin)، أما iOS فيحتاج إلى تعلم بيئة العمل iOS SDK.
لحسن الحظ، ظهرت مؤخرًا تقنيات جديدة يمكن أن تسهل برمجة تطبيقات الأندرويد، وبرمجة تطبيقات ios. إذ تعتمد هذه التقنيات على لغات الويب، وهي لغات البرمجة المستخدمة في بناء المواقع (HTML وCSS وjavascript)، ما يعني أنك لن تكون محتاجًا إلى تعلم تقنيات جديدة، فكل ما عليك تعلمه هو تقنيات الويب، ويمكنك استخدامها لبناء التطبيقات كذلك، من أفضل الأدوات التي تساعد على هذا نجد كوردوفا (Cordova) ويونيك (ionic).
تعلم لغات البرمجة الأساسية
هناك العديد من لغات البرمجة التي يستحيل تعلمها جميعًا. لذا، عليك أولًا استيعاب أساسيات البرمجة المشتركة في أغلب اللغات، ومن ثمّ التركيز على تعلم لغة برمجة أو عدد منها طبقًا للغرض الذي ستستخدمها من أجله، في هذه الفقرة سنستعرض أبرز تلك اللغات.
لغة التوصيف HTML
لغة HTML تستخدم لإنشاء صفحات وتطبيقات الويب، وترمز إلى Hypertext Markup Language. تتألف صفحات HTML من وسوم وعناصر، والتي تشكل لبنات صفحات الويب التي يعرضها المتصفح، تتألف عناصر HTML من عدة أجزاء، وهي:
بعد تعلم أساسيات البرمجة، ما التالي؟
تعلم البرمجة هو أمر يحتاج إلى اجتهاد وصبر، وأول شيء عليك القيام به بعد تعلم أساسيات البرمجة هو الغوص في إحدى لغات البرمجة، واحترافها. هذه بعض النصائح التي يمكن أن تختصر عليك الوقت وتسهل عليك التعلم:
- لا تحاول تعلم الكثير من لغات البرمجة: من الأخطاء الشائعة التي يقع فيها كثير من المبتدئين هو أنهم يحاولون تعلم عدد كبير من لغات البرمجة اعتقادًا منهم أن ذلك سيجعلهم أكثر كفاءة، والحقيقة أنّ ذلك سيشتت مجهوداتهم وحسب، من الأفضل التركيز على لغة برمجة واحدة في كل مرة.
- لا توجد لغة برمجة كاملة: لا تحاول أن تبحث عن لغة البرمجة الكاملة التي تحل كل المشاكل، هناك الكثير من لغات البرمجة، ولكلٍ مزاياها وعيوبها، حاول أن تبحث عن اللغات المناسبة للغرض الذي تود استخدامها لأجله وتعلمها.
- تخصص في مجال معين: بعد أن تتعلم أساسيات البرمجة، حاول أن تتخصص في مجال محدد. هل تريد التخصص في برمجة الألعاب؟ أم في تطوير المواقع والتطبيقات؟ أم في تحليل البيانات وغير ذلك من المجالات؟ خذ وقتك وابحث جيدا قبل أن تتخذ قرارك.