تعلم البرمجة من الصفر | (دليلك للتعلم خطوة بخطوة )
هل ترغب في تعلم البرمجة من الصفر لكن لاتعرف من أين تبدأ! هل قرأت الكثير من المقالات وشاهدت الكثير من الفيديوهات لكنك لاتزال تشعر بأنك تائه ! لاتقلق فإنه حرصاً منا على توفير وقتك نضع بين يديك هذا المقال حيث سنأخذ بيدك ونطلعك على كل ما يلزمك من أدوات ومهارات وسنرشدك خطوة بخطوة في طريق تعلم البرمجة حتى تصل إلى هدفك وتصبح مبرمجاً محترفاً.
ما هي البرمجة؟
وهي عملية يتم فيها كتابة التعليمات البرمجية كي يقوم بتنفيذها جهازالحاسب أو أي جهاز آخر قابل للبرمجة وبمعنى آخر البرمجة هي وسيلة التواصل بين البشر (الشخص المبرمج ) والآلة (وهي أي جهاز قابل للبرمجة). ففي الحياة يتواصل البشر فيما بينهم باستخدام اللغات المختلفة كاللغة العربية أو الإنجليزية، أما في العالم الإفتراضي فقد تم ابتكار مجموعة من اللغات البرمجية ليتكمن الإنسان من التواصل مع الآلة، وتتنوع لغات البرمجة على حسب المجال التي تستخدم فيه. وكما أنه في الحياة يقوم المترجم بالمساعدة على تواصل الأشخاص الذين يتكلمون لغات مختلفة ،فإن الشيء نفسه يتم فيما بين الإنسان والآلة . حيث يتم ترجمة لغة البرمجة (التي يفهمها الإنسان) إلى لغة الآلة والتي تتمثل في الأصفار والواحدات(النظام الثنائي) وذلك من خلال استخدام برامج مخصصة لذلك مثل المفسرCompiler والمترجمInterpreter.
لماذا عليّ تعلم البرمجة؟
هناك الكثير من الأسباب التي تدفعك إلى تعلم البرمجة و أهم هذه الأسباب:
1- عند تعلم البرمجة ستمتلك مرونة بجدول عملك اليومي:
إن الوظيفة التقليدية ستجبرك على العمل بمعدل ثابت حوالي ثمان ساعات، أما عند تعلم البرمجة فإنك ستملك القدرة على انشاء جدول خاص بك بالطبع سيكون عندك مواعيد تسليم محددة، وإجتماعات لكن سيكون لديك بعض التحكم في الزمان والمكان والوقت .
2- مكاسب أكثر، وساعات عمل أقل:
قد تصل ساعة العمل عند بعض المطورين إلى أكثر من 100دولار في الساعة مقابل العمل الحر أو الثابت حيث كلما إزدادت مهاراتك وخبراتك التقنية، زادت أرابحك في الساعة.
كما ستستطيع قول لا لعروض العمل التي لاتناسب اهتماماتك حيث في الوظائف التقليدية قد تضطر إلى قبول أي عمل حتى لو كان الأجر أقل مما تستحق، لكن الأمر ليس كذلك بالنسبة للمبرمجين ؛ حيث أنك ستتمكن كمبرمج من قول لا بسهولة لعروض الوظائف غير الملائمة دون قلق أو تردد، لأنك بخبراتك ستكون على يقين أن فرصا كثيرة بانتظارك.
3- عند إحترافك للبرمجة سيتهافت عليك أصحاب العمل يطلبون منك العمل لصالحهم:
إن وظيفة مهندس البرمجيات أصبحت من أكثر الوظائف طلباً حول العالم لذلك فإن أفراد تنمية الموارد البشرية، وأصحاب الشركات، وما إلى ذلك، يواصلون البحث دائما عن أفضل مهندسي البرمجيات لتعيينهم.
كما أنه قد يصل الأمر لبعض المبرمجين إلى أن يكتبوا حسابهم في LinkedInأنهم “لا يبحثون عن عمل في هذا الوقت”، وذلك لا نجده في بقية الوظائف.
4- ستحصل على وقت إضافي لمتابعة إهتماماتك وهواياتك:
كما أنه إلى جانب القدرة على العمل لساعات أقل في الأسبوع، فإن العمل كمبرمج يعطيك إمكانية قضاء الوقت في أشياٍء أخرى مثل الكتابة والرسم، أو مشاهدة الأفلام، أو قضاء وقت مع العائلة.
5- يمكنك العمل عن بعد:
وخاصة بعد أزمة كورونا فقد إزدادت فرص العمل عبر الأنترنت كثيراً حيث بعملك كمبرمج لا يهم أين أنت، سواء في إجازة، أو في المنزل أو في المقهى، فإنك بسهولة تستطيع إنجاز عملك .
6- ستحسن تفكيرك المنطقي:
يقول ستيف جوبز : “يجب أن يعرف الجميع كيفية برمجة الكمبيوتر لأنه يعلمك كيفية التفكير”.
حيث أنك كي تتمكن من التواصل مع الحاسوب، فإنك تحتاج لترتيب أفكارك بطريقة منظمة وبالتالي ستزيد حدة مهارات التفكير لديك وحل المشكلات، ومن ثم سترى المشكلات بطريقة مختلفة تماماً، وسوف تصبح الحلول المنطقية أكثر سهولة.
ما هي المهارات التي علي اكتسابها لأصبح مبرمجاً؟
يعتقد الكثيرون أنه عند تعلم البرمجة يجب أن يكون مستواهم في الرياضيات ممتازاً أولاً، وهذا غير صحيح ، فصحيح أنه قد تعترضك في بعض الأحيان مسائل تحتاج إلى استخدام خبرتك في الرياضيات إلا أنك كمبرمج قد تمر عليك فترات طويلة لاتحتاج إلى حل المسائل الرياضية. لكن ما تحتاجه للبدء عند تعلم البرمجة هو الأساسيات الرياضية والتي يعرفها الجميع .
أما في حال واجهتك أية مسألة أو مشكلة تتطلب مهارة في الرياضيات، فهنالك الكثير من المواقع المصادر التي تستطيع الرجوع إليها .
▪ أما المهارات التي يجب أن تكتسبها لتعلم البرمجة فهي:
❖ مهارة التفكير المنطقي:
التفكير المنطقي هي المهارة التي يجب على كل مبرمج أن يكتسبها ويطورها ، فهي حجر الأساس في كتابة الخوارزميات.
❖ الخوارزميات:
الكثير منا عندما يسمع بمصطلح الخوارزميات فإنه يشعر بالرعب ويخيل إليه المسائل والمعادلات الرياضية الطويلة والمعقدة وهذا التخيل غير صحيح .
فالخوازرميات ما هي إلا تطبيق عملي للتفكير المنطقي وذلك بخطوات متسلسلة واضحة تماماً لحل مشكلة .
❖ إطارات العمل:
وهي مجموعة من الشيفرات البرمجية الجاهزة التي تقوم بتوفير الوقت والجهد على المبرمج وتسهل عليه إنشاء التطبيقات .
بالإضافة إلى ذلك فإن فائدة أطر العمل هي توفير الأدوات و البنية التحتية للمبرمج، كي لا يبدأ برنامجه من الصفر.
• ماهي الأدوات التي تلزمني للبدء في تعلم البرمجة من الصفر؟
إن الأجهزة والأدوات تُحدد تبعا لسؤاٍل واحد .. وهو ما المسار الذي تريد أن تتبعه ؟
فمثلا، إذا كنت ترغب فى برمجة الويب، فلست بحاجة إلى حاسوب قوى، قد تكتفى بـ 2جيجا بايت رام ومساحة تخزينية 100جيجا أو أقل! . على عكس برمجة الألعاب مثلاً، فستحتاج حاسوب أقوى مع كارت شاشة قوى وهكذا..
❖ لكن بشكل عام هذه هي الأجهزة والأدوات التي يحتاجها أي شخص يريد البدء بتعلم البرمجة من الصفر :
1- ستحتاج إلى حاسوب بمواصفات مقبولة و أن يمتلك مقداراً جيداً من الذاكرة العشوائية، ليس هناك مواصفات معينة أو نظام تشغيل معين، استخدم ما يحلو لك وما أنت معتاد عليه (سواء كان ويندوز أو لينكس أو ماك.)
2- اتصاٍل جيد بالإنترنت للوصول إلى الكورسات والمصادر التعليمية، ولتنزيل البرمجيات والمكتبات اللازمة للتطوير.
❖ أما أدوات التطوير، فستحتاج إلى برمجية لكتابة الشيفرات، وهنالك نوعان رئيسيان لها:
1- المحررات النصية :
مثل Notepad++ أوBracktes أوSublime Text أوAtom أوVisual Studio Code وهي محررات نصية بسيطة، وتقوم بتوفير ميزات أساسية مثل تلوين الشيفرات، وبعض ميزات الإكمال التلقائي .حيث تقوم هذه المحررات النصية بتعديل الشيفرات بسهولة وسرعة. ننصحك بتجربة المحرر النصي Visual Studio Code فهو يدعم أغلب لغات البرمجة.
2- بيئات التطوير المدمجة:
مثل Apple Xcode وNetBeans وAndroid Studio وEclipse وVisual Studio وغيرها وبيئات التطوير هذه توفر ميزات أقوى بكثير من المحررات النصية السابقة، منها تشغيل الشيفرات وتنقيحهاdebugging وميزات التحكم بالإصدارات والاتصال بقواعد البيانات.
• لماذا هناك العديد من لغات البرمجة؟وماهي اللغة الأفضل؟ !
مثل لغات العالم التي تم اختراعها للتخاطب سوف تجد عدد كبير من اللغات والتي تختلف عن بعضها البعض حيث تجد لكل لغة متحدثوها، أيضاً في عالم البرمجة نفس الشيء فهناك الكثير من لغات البرمجة حيث لكل لغة ميزاتها وعيوبها.
كما إن وجود هذا التعدد مفيد حيث تستطيع إختيار اللغة التي تفيدك في مشروعك، فمثلا هنالك لغة ذات سرعة وأداء عالي ولكنها ليست ذات حماية جيدة ولغة أخرى ممتازة جداً في الحماية ولكنها بطيئة بالمقارنة باللغة الأخرى.
وهناك اللغة التي يمكنك تعلمها من تعلم مفهوم البرمجة مثل لغة ++Cو Java مثلا ولكنها لغات صعبة بالمقارنة بلغة مثل Python.
أما الPython فهي سهلة التعلم ولكن ليست سريعة وشاملة مثل لغة ال ++ C لذلك نستنتج لكل لغة استخدامتها الخاصة والمجال التي تبرع فيه.
❖ أما بالنسبة لسؤالك أي من لغات البرمجة هي الأفضل؟ !
فإنه ليس هناك لغة برمجة أفضل من لغة أخرى!
إن لغات البرمجة هي أدوات صممت بحيث تكون مفيدة في حالات و ليست فعالة في حالات أخرى.
لذلك يجب عليك أن تحدد المسار الذي تريد الإحتراف به لكي تحدد الغة التي ستختارها.
كلما كانت اللغة التي تختارها ذات شهرة كان ذلك افضل لغة لسببين وهما:
1- الدعم:
من السهل أن تجد المساعدة وأن تجد الإجابة عن أسئلتك وحلول المشاكل البرمجية التي تواجهك في حال اخترت إحدى اللغات المشهورة وذلك لأن اللغة المشهورة تكون ذات مجتمع كبير وواسع مما يعني المزيد من الدروس و المراجع و الكتب.
2- المكتبات:
حيث أنه كلما كان عدد مستخدمي تلك اللغة أكبر كلما زاد عدد المكتبات التي تصنع من أجلها، ثم إن عدد و نوع المكتبات المتوفرة للغة معينة تحدد فائدة تلك اللغة.
• ماهي مجالات العمل في البرمجة؟
إن المبرمجين المحترفين، أصحاب الخبرة، يستطيعون الحصول على وظيفة بسهولة حيث يتوفر الملايين من الوظائف في مجال البرمجة. كما أنه من أفضل وأنجح الطرق لتأمين مستقبل ُمشرق وواعد في البرمجة هي أن تتعلّم أكثر من لغة برمجية، وهو ما سيضمن لك الوظيفة التي تحلم بها و تختارها بنفسك.
❖ تخصصات العمل في مجال البرمجة :
- ذكاء اصطناعي.
- علوم البيانات.
- تعلم الآلة .
- تخصص برمجة تطبيقات الموبايل.
- برمجة تطبيقات سطح المكتب.
- مجال برمجة الألعاب.
- برمجة الويب.
- تصميم الويب.
• مصادر تعلم البرمجة؟
هنالك الكثير من مصادر تعلم البرمجة للمبتدئين وخاصة في عصر الأنترنت كقنوات تعلم البرمجة على اليوتيوب و منصات ومدونات تعلم البرمجة وجميعها تؤدي نفس الغرض .
لذلك قمنا في هذه الفقرة بتجميع أفصل المصادر لتعلم البرمجة للمبتدئين سواء قنوات يوتيوب أو منصات تعليمية أومواقع إلكترونية.
❖ أفضل المواقع العربية في تعلم البرمجة من الصفر:
- مبادرة مليون مبرمج عربي.
- موقع هرمش.
- منصة إدارك.
- منصة رواق.
- أكاديمية حسوب.
❖ أفضل قنوات اليوتيوب لتعليم البرمجة من الصفر:
- قناة الزيرو ويب سكول.
- بغداد الجديدة.
- قناة عبد الله عيد.
- قناة محمد عيسى.
❖ أفضل مصادر تعلم البرمجة باللغة الإنجليزية:
- BitDegree .
- Coursera
- Code Academy
- Free Code Camp
- SoloLearn
❖ أفضل قنوات اليوتيوب الإنجليزية لتعلم البرمجة للمبتدئين:
- Programming Knowledge .
- Treehouse
- Learncode.academy .
- Derek Banas
- TheNewBoston
أما بعد أن وضعنا بين يديك كل مايلزمك لإحتراف البرمجة وقمنا بالإجابة عن أغلب تساؤلاتك يجب أن تعلم أن طريق تعلم البرمجة طريق طويل وشائق، ولكنه يستحق العناء و قد تصاب بالإحباط في البداية لكثرة الأمور التي عليك تعلمها لذلك إبدأ بدورة تعلم واحدة على الانترنت وكتاباً واحداً وابدأ بقراءة الكتاب وتابع الدورة تدريجّيا ثم انتقل إلى دورة أخر وكتا ب آخر .إذ سيجنبك ذلك من التشتت بين الدورات الكثيرة والكتب العديدة.وقم بتطبيق ما تعلمته مباشرة وتمرن على حل المشكلات وتحدى نفسك .
وفي الختام لا تنسى أن تكافئ نفسك من في كل مرة تنهي فيها كتاباً أو تكمل العمل على مشروع.
ولا تنسى ان تتعرف على : 40 فكره للسعاده ممكن تعملها فى 15 دقيقه مبهجة جدا https://bit.ly/2Y25yBZ