Re: تعلم استعمال الحاسوب للمبتدئين

0 views
Skip to first unread message
Message has been deleted

Latrina Cobbett

unread,
Jul 8, 2024, 3:33:44 PM7/8/24
to satoothfbujo

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

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

تعلم استعمال الحاسوب للمبتدئين


تنزيل ملف مضغوط >>>>> https://miimms.com/2yZdYt



السؤال الثاني سيكون: ما نوع البرمجة التي ترغب في تعلُّمها أو العمل بها عليك أن تفكر في التخصص والمجال الذي تنوي دخوله. هل ترغب في الحصول على وظيفة مطور ويب خلفي (Back-end Developer) أم مهندس برمجيات (Software Engineer) أو ربما ترغب في العمل بمجال كالذكاء الاصطناعي (AI) أو إحدى التقنيات الحديثة الأخرى الإجابة عن هذا السؤال ستساعدك بالتأكيد على اختيار مسار التعلم المناسب واختيار لغة البرمجة الأفضل بالنسبة لكل مجال. لكن قبل أن ندخل في لغات البرمجة دعنا نعرفك بأهم المجالات والتخصصات المرتبطة بالبرمجة في الوقت الراهن.

هناك عدّة تخصصات في مجال البرمجة (1) لكن دعنا نتحدث عن أشهرها على سبيل المثال هناك تخصص مطور البرمجيات (Software Developer) الذي يتولى تصميم وبناء واختبار البرمجيات المختلفة سواء كانت تطبيقات تعمل على أجهزة الحاسب الشخصي مثل برنامج "Photoshop" أو حتى تطبيقات الهواتف الذكية مثل تطبيق إنستغرام أو فيسبوك أو تويتر. بينما مهندس البرمجيات (Software Engineer) هو الذي يطبق مبادئ هندسة البرمجيات لتصميم وتطوير واختبار وصيانة وتقييم برامج الحاسوب المختلفة.

ثم نجد مطور واجهة الويب الأمامية (Front-end) الذي يتولى برمجة كل ما يظهر أمامك على مواقع الإنترنت التي تتصفحها يوميا إذ يكتب الكود البرمجي الذي يأمر المتصفح بعرض معلومات محددة وكيفية عرضها. بينما هناك مطور الويب الخلفي (Back-end) الذي يتولى كل ما يحدث في الكواليس عند تصفحك لأي موقع هناك حسابات وتفاعلات لا تعرفها وهي ما يُطلق عليها الواجهة الخلفية للموقع هنا يُكتب المطور الكود البرمجي الذي يحدد طرق التواصل بين تطبيقات تلك الواجهة وبين قواعد البيانات والخوادم الخاصة بالموقع. مَن يجمع بين التخصصين يُعرف بمطور الويب المتكامل (Full-Stack Developer) ويمكنه بناء كلٍّ من الواجهة الأمامية والخلفية لمواقع الويب. وبهذا يملك القدرة على صياغة كل العناصر التي يراها المستخدم العادي وكذلك الجزء الحسابي المتعلق بالبيانات والخوادم.

ولا ننسى الإشارة إلى مطور الألعاب الذي يصمم ويكتب أكواد الألعاب للمنصات المختلفة مثل الحاسب الشخصي والمنصات المنزلية (بلايستيشن وإكس بوكس) وقد يتضمن تخصصه تصميم الشخصيات داخل اللعبة وميكانيكا اللعبة نفسها وواجهة المستخدم "User Interface".

كذلك هناك تخصصات برمجية تتعلق بالأنظمة وقواعد البيانات أشهرها محلل الأنظمة (Systems Analyst) وهو مَن يفحص أنظمة البرمجيات عبر اختبار البنية الهندسية لتكنولوجيا المعلومات ويوصي بتطويرها ببعض الحلول والوسائل المختلفة. وكذلك مطور قواعد البيانات (Database Developer) الذي يطور ويحافظ على أنظمة قواعد البيانات ويعمل مع مهندس البرمجيات لتحديد متطلبات البيانات لكل مشروع ومنها يبدأ في إنشاء قواعد البيانات وفقا لذلك.

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

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

في البداية سنحتاج إلى توضيح أن لغات البرمجة تنقسم إلى فئتين رئيسيتين (2): الأولى هي اللغة منخفضة المستوى (Low-Level Language) أو اللغة الأصلية للحاسوب وهي قريبة جدا من كتابة تعليمات الآلة الفعلية أي نظام العد الثنائي 0 و1 وتتعامل مع مكونات أجهزة الحاسوب الداخلية أو قطع الهاردوير ولا يمكن للإنسان قراءة التعليمات البرمجية بها وغالبا ما تكون مشفّرة.

بينما الفئة الثانية هي اللغة عالية المستوى (High-Level Language) التي تتيح كتابة البرامج بغض النظر عن نوع الحاسوب أو الهاردوير وهي تحمل اسم "عالية المستوى" لأنها أقرب إلى اللغات البشرية ويمكن فهمها بسهولة. تحتاج هذه الفئة من اللغات إلى مترجم برمجي (compiler) لترجمتها إلى لغة منخفضة المستوى كي تفهمها الآلة. يركز بعض تلك اللغات على البنية الهيكلية في حين أن بعضها يكون تفاعليا ويؤدي وظائف معقدة أكثر. وعادة ما تكون اللغات عالية المستوى أسهل للمبتدئين في التعلم وهي ما سنرشحه هنا لبداية رحلتك في تعلم البرمجة.

منصة "Stack Overflow" وهي بمنزلة موقع التواصل الاجتماعي الأشهر للمبرمجين حول العالم تُجري استبانة سنويا لمَن يعملون بمجال البرمجة بهدف تحديد أكثر التقنيات واللغات التي يستخدمونها وبعض المعلومات المهمة الأخرى بالمجال مثل الإنتاجية والرواتب. اختيارنا لترشيح لغات البرمجة هنا جاء بناء على ترتيب أكثر اللغات استخداما لمَن يتعلمون البرمجة في آخر استبانة للمنصة هذا العام 2022. وقد جاءت لُغتا HTML/CSS في المركز الأول باختيار أكثر من 62% ممن بدأوا تعلُّم البرمجة (3).

يمكننا اعتبار لغة توصيف النص التشعبي أو "HTML" هي أساس الإنترنت (4). من الناحية التقنية لا تُعَدُّ "HTML" لغة برمجة لكنها لغة توصيف أي تُستخدم لوصف صفحات الويب بالنص العادي بمعنى أنها مسؤولة عن تنسيق شكل المعلومات على مواقع الإنترنت.

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

من المهم الإشارة أن لغة "HTML" تتحكم في المحتوى الذي سيظهر أمامك داخل الصفحة هنا لكنها لا تؤثر على كيفية ظهور هذا المحتوى. هنا يأتي دور الأخت المغمورة لها وهي لغة "CSS" وهي تتعامل (5) ببساطة مع تصميم صفحات "HTML" ألوان صفحة المقال وحجمها والخطوط وحتى شكل الصفحة بأكملها. لغة "CSS" لا تُعَدُّ أيضا لغة برمجة لكنها مجموعة من القواعد المطبقة على صفحات "HTML".

03c5feb9e7
Reply all
Reply to author
Forward
0 new messages