أريد وضع خطة لتعلم البرمجة وأحتاج مساعدة

OsamaAbdussamie

بحثت كثيرًا عن كيف أبدأ تعلم البرمجة في جوجل وهنا في I/O، لأبدأ بوضع خطة للتعلم، وأحتاج بعض المساعدة في هذا:-

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

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

  • ما هي متطلبات التعلم؟ هل يجب أن يكون الحاسوب الخاص بي بمواصفات معينة؟ وهل تختلف تلك المواصفات باختلاف لغات البرمجة المراد تعلمها؟ هل سأحتاج إلى الاتصال بالانترنت دائمًا؟ هول يجب أن يكون سريعًا وبباقة كبيرة؟ علمًا أن أقصى ما يمكن أتحصل عليه هنا في بلدي حوالي 500 MB إلى 1 GB في اليوم لمدة شهر.

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

12

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

نحتاج الى ان نُعرّف بعض المفاهيم حتى يسهل علينا فهم المشكلة ونحلها.

الخوارزميات كما تعرفها ويكيبيديا: هي مجموعة من الخطوات الرياضية والمنطقية والمتسلسلة اللازمة لحل مشكلة ما.

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

والتفكير المنطقي يمكن تعريفه بأنه: هو التفكير بأسلوب منظم وتأسيس الأفكار بناءًا على حقائق ودلائل ملموسة (مُقدمات) ومعالجة هذه الحقائق بأسلوب منطقي ومنهجي سليم لتعطي نتائج.

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

فالمبرمج: هو شخص يفكر بإسلوب منظم منطقي و ويحدد مساره بخطوات للوصول إلى حل مشكلة ما.

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

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

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

فقط تعلم أساسيات البرمجة بأي لغة تريد (الأغلب ينصح بلغة بايثون لبساطة كتابتها) وبعد أن تعلم لغة التواصل مع الحاسوب الآن إبحث عن مشاكل وفكر بكيفية حلها وأكتبها بلغة البرمجة وأجعل الحاسوب يحلها لك.. هكذا ببساطة.

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

على سبيل المثال أول ما تعلمته المتغيرات و العمليات الحسابية عندها طبقت برامج متنوعة تتطلب هذين المفهومين

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

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

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

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

ما هي متطلبات التعلم؟ هل يجب أن يكون الحاسوب الخاص بي بمواصفات معينة؟ وهل تختلف تلك المواصفات باختلاف لغات البرمجة المراد تعلمها؟ هل سأحتاج إلى الاتصال بالانترنت دائمًا؟ هول يجب أن يكون سريعًا وبباقة كبيرة؟ علمًا أن أقصى ما يمكن أتحصل عليه هنا في بلدي حوالي 500 MB إلى 1 GB في اليوم لمدة شهر.

مواصفات حاسوب لا يتجاوز الـ300$ كافية لأغلب المجالات.. بالنسبة للأنترنت تحتاجه في برمجة الويب (ولكن مع ذلك يمكنك عمل سيرفر محلي) ولكن باقة 500 MB إلى 1 GB يومياً جيدة.

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

اذا كان إهتاماك هو برمجة الويب وبنفس الوقت لديك إهتمام لبرمجة التطبيقات يفضل أختيار جافاسكربت بدلاً من php فيمكنك بوساطتها برمجة الويب بإستخدام nodejs وبنفس الوقت برمجة التطبيقات بإستخدام react native مثلاً.

احسنت أخي شرح كافي ووافي بحق

شكرا على المجهود

أحسن الله بك أخي الكريم.

ما شاء الله، شرحك سهل علي الفهم بشكل كبير، أدركتُ أن هذه المصطلحات والتي تبدو صعبة هي في الحقيقة بديهيات -على الأقل بالنسبة لي- ونستخدمها في الحياة اليومية أيضًا، حقًا شكرًا لك، وجزاك الله خيرًا :)

فقط تعلم أساسيات البرمجة بأي لغة تريد (الأغلب ينصح بلغة بايثون لبساطة كتابتها)

ألا يمكنني البدء بـPHP؟ أم أن Python مجرد مثال؟

لا تحتاج الكثير يكفيك أساسيات الثانوية حتى لو لم يكن مستواك ممتازاً ..

جميل جدًا.

ولكن ستحتاجها في مجالات متخصصة مثلاً في تحليل البيانات ستحتاج الى تعلم الإحصاء والإحتماليات وفي بناء المعالجات

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

بالنسبة للأنترنت تحتاجه في برمجة الويب (ولكن مع ذلك يمكنك عمل سيرفر محلي)

الرجاء التفصيل أكثر.

اذا كان إهتاماك هو برمجة الويب وبنفس الوقت لديك إهتمام لبرمجة التطبيقات يفضل أختيار جافاسكربت بدلاً من php فيمكنك بوساطتها برمجة الويب بإستخدام nodejs وبنفس الوقت برمجة التطبيقات بإستخدام react native مثلاً.

أعلم أهمية الـJavaScript وتنوع استخداماتها: من برمجة أمامية، وخلفية، وبرمجة تطبيقات الهواتف، وأظن حتى تطبيقات سطح المكتب؛ ولكن لا أعتقد أني سأعدل عن الـPHP، على الأقل بالنسبة للويب والبرمجة الخلفية، حيث أنها الأكثر طلبًا، وهو ما سينفعني للعمل والربح من البرمجة.

سؤال طريف على الهامش: ما رأيك ببرمجة الويب بلغة C++ :)

ألا يمكنني البدء بـPHP؟ أم أن Python مجرد مثال؟

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

الرجاء التفصيل أكثر.

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

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

أعلم أهمية الـJavaScript وتنوع استخداماتها: من برمجة أمامية، وخلفية، وبرمجة تطبيقات الهواتف، وأظن حتى تطبيقات سطح المكتب؛ ولكن لا أعتقد أني سأعدل عن الـPHP، على الأقل بالنسبة للويب والبرمجة الخلفية، حيث أنها الأكثر طلبًا، وهو ما سينفعني للعمل والربح من البرمجة.

لا بأس قرر وتوكل على الله وتعلم.. المهم أن تتعلم البرمجة بأي لغة كانت فاللغة مجرد اسلوب تواصل (اداة) يمكنك أن تتحول ببساطة إلى اخرى خلال مدة وجيزة ما دمت تعلمت البرمجة.

سؤال طريف على الهامش: ما رأيك ببرمجة الويب بلغة C++ :)

بالنسبة لسؤالك هناك فعلاً من الأصدقاء في حسوب لديه تجربة فيها:

بصراحة لا اعلم لماذا تضع كل هذه الحواجز على نفسك وتنصع كل هذه الهموم

لن تحتاج لعلم كبير في الرياضيات لتتكمن من صناعة موقع أو مدونة يكفيك ما تعلمته في المدرسة

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

بالنسبة لسؤالك عن الخوارزميات :

ما-هى-الخوارزميات-algorithms-فى-البرمجة/

ما هي متطلبات التعلم؟ هل يجب أن يكون الحاسوب الخاص بي بمواصفات معينة؟

بالنسبة للغة php لن تحتاج لجهاز بموصفات جبارة أي جهاز يفي بالغرض

ربما مثلاً لو اردت أن تكون مبرمج تطبيقات اندرويد ستحتاج لجهاز بمواصفات عالية حتى تتمكن من تشغيل الأندرويد استوديو و المحاكي

هل سأحتاج إلى الاتصال بالانترنت دائمًا؟ هول يجب أن يكون سريعًا وبباقة كبيرة؟ علمًا أن أقصى ما يمكن أتحصل عليه هنا في بلدي حوالي 500 MB إلى 1 GB في اليوم لمدة شهر.

بالنسبة لـ PHP لن تحتاج اتصال دائم بالإنترنت اثناء التعلم

ستحتاج للأتصال لمشاهدة الدورات والبحث عن الدروس على الإنترنت

ستحتاج فقط في البداية لتنزيل بعض الأشياء على جهازك مثل apache2 والمحرر

لو كنت ستتابع دورات عن طريق الفيديو فلا اعلم إن كانت ستكفيك أم لا بحسب الدورة وبحسب حجم الفيدو

لو لم تكفيك فالحل الوحيد هو المراجع النصية أو الكتب الإلكترونية

وبعد اطلاعي على مجالات البرمجة اخترتُ مجال الويب بلغة PHP، لأنه وهذه اللغة هما الأكثر طلبًا، بالإضافة إلى أن مجال الويب يمكنني من برمجة تطبيقات الهواتف الذكية

طبعاً هذه معلومة خاطئة لأن لغة php مخصصة للويب فقط ولا يمكن استخدامها في برمجة الهواتف الذكية

اللغة التي تمكنك من استخدامها للويب والهواتف الذكية هي الجافاسكريبت

بصراحة لا اعلم لماذا تضع كل هذه الحواجز على نفسك وتنصع كل هذه الهموم

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

ستحتاج فقط في البداية لتنزيل بعض الأشياء على جهازك مثل apache2 والمحرر

ما هو apache2؟ وكم حجمه؟ وما هو المحرر؟ هل تقصد Notepad ++؟

طبعاً هذه معلومة خاطئة لأن لغة php مخصصة للويب فقط ولا يمكن استخدامها في برمجة الهواتف الذكية

أعني مجال برمجة الويب عمومًا.

  • إن شاء الله سأراجع الروابط التي أرسلتها وأطلعك على النتائج، شكرًا لك :)

ما هو apache2؟ وكم حجمه؟ وما هو المحرر؟ هل تقصد Notepad ++؟

Apache هو خادم الويب الذي ستستخدمة في تشغيل السيرفر المحلي وهو جزء من بيئة التطوير التي ستحتاجها للبدء في استعمال PHP علي الحاسوب و التي تتكون من Apache / PHP / MySQL / PhpMyAdmin ،وهي مكونات ضرورية للبدء لاستعمال بيئة تطوير PHP علي الحاسوب

وبدلاً من تنزيل كل مكون علي حدي يفضل تنزيلهم ضمن حزمة جاهزة مثل XAMPP بحجم 150 ميجابايت تقريباً أو wampserver بحجم 250 ميجابايت تقريباً

او يمكن تنزيل حزمة vswamp فهي بحجم صغير 40 ميجابايت تقريباً ،

اجل ، المحرر مثل Notepad ++ او sublime text او غيرهم ..

ربما مثلاً لو اردت أن تكون مبرمج تطبيقات اندرويد ستحتاج لجهاز بمواصفات عالية حتى تتمكن من تشغيل الأندرويد استوديو و المحاكي

وهل نفس الامر ينطبق على flutter

أفضل إجابة ممكن تسمعها على سؤالك الأول موجودة في الرابط

كما يقول هذا الفيديو إذا كنت ترغب بالحصول على أفضل فرص عمل فتعلم asp.net

هذا فيديو اخر

لا تنس ان تفعل الترجمة التلقائية

كما قال الأخوة...

أضيف...

هذه خارطة طريق مع الفيديوهات التعليمية من قناة الزيرو

https://elzero.org/learning...

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

إذا لم يكن لديك شغف ودافع فهذه التفاصيل لا تهم وسوف لن تخدمك في تعلم البرمجة.

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

هذه نصيحتي لك اﻵن.

شغف ورغبة في تعلم البرمجة وأن تصبح مبرمج

شغف

ليس كثيرًا.

رغبة

رغبة في العمل وكسب المال.

أن تصبح مبرمج

لماذا أصبح مبرمج، يجب أن يكون هناك سبب محدد:

شغف، اذهب إلى السطر 2

رغبة في الحصول على عمل، اذهب إلى السطر 5

أعيش دور المبرمج :)

شغف

ليس كثيرًا.

رغبة

رغبة في العمل وكسب المال.

حاول إيجاد شغفك بالبرمجة وإلا لا تتعب نفسك وابحث عن مجال آخر،

لم أقابل مبرمج ناجح ليس لديه شغف ورغبة وصبر على البرمجة، بل حتى أن الرغبة وحدها لا تكفي، لابد أن يكون هُناك موهبة