نصيحتكم لشخص مبتدئ في البرمجة وفي نفس الوقت لا يحبها!!

السلام عليكم ورحمة الله وبركاته

اخواني الاعزاء انا بصراحة محتار جدا في امري واتمنى منكم ان تساعدوني على وضعي في الطريق الصحيح

حاليا: انا اكره البرمجة ولا احبها بسبب الجامعة عندما كانو يعلمونا c++ تعقدت منها ولم اكن افهمها ومن هنا ظهرت لي عقدة اسمها البرمجة

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

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

جربت شراء كورس اونلاين لكني تركت الكورس ولم اشاهد منه الا 8%

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

حتى توصلت الى استنتاج بانه البرمجة = الرياضيات وبما اني انا ضعيف جدا في الرياضيات اذا لن اتعلم البرمجة :(

حاليا افكر بالابتعاد عن الجافا وافكر بـ بايثون لكن السؤال هو..

هل بالـ بايثون يمكنني عمل تطبيقات للكمبيوتر ام هو مخصص للمواقع ام ينفع للاثنين علما اني اريد ان اعمل شيئ تطبيقي يعني مثلا عمل برنامج للكمبيوتر وهكذا لا احب الشروحات النظرية التي لا استطيع تنفيذها

لو لديك مقترح في تعلمي لغة اخرى ارجو ان تقول ذلك وكما قلت احب ان اعمل برنامج للكمبيوتر من تصميمي هذا هو حلمي


selma25 أضف ردا

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

البرمجة هي رياضيات شئنا ام ابينا و اذا كنت تتقنها فستصبح البرمجة اسهل، و لا اقصد بالرياضيات هنا الرياضيات التي تعلمناها في الثانوي بل اقصد الرياضيات المتقطعة او المنفصلة بالانجليزية Discrete Mathematics و بمروري على العديد من المواقع و المنتديات وجدت انها تعد من اصعب الرياضيات لاعتمادها على دراسات مكتسبة سابقة من الجبر 1 و 2 ، الجبر الخطي، المنطق، البراهين، التفاضل و التكامل و حتى الاحتمال و الاحصاء...

و لكن!! هذا لا يعني انه عليك ان تكون عبقري رياضيات لتتعلم البرمجة فهنالك طريقة اخرى الا و هي التقليد (لا اقصد بالتقليد ان تقوم بالبحث عن اي شيء دون ان تحاول حله لوحدك! البحث سيكون فقط بعد عجزك التام عن ايجاد الحل)، فعوض ان تحل المشكل بنفسك هنالك بالتاكيد شخص ما قام بذلك قبلك، فابحث عنه و حاول استيعابه و فهمه بشكل جيد فلا تقم بالنسخ و اللصق! و ممكن حتى ان تاحذ الفكرة و تكتب كود احسن بطريقتك، رسخ ذلك الحل او الكود في ذهنك و اضفه لقائمة ادواتك، في المرة المقبلة عندما تواجه نفس المشكل سيكون لديك الحل، يعني بالمختصر "لا تقم باختراع العجلة مرة اخرى" هذا هو الفرق بينك و بين زملائك الذين يعرفون الحل بشكل سحري من اول وهلة، ذلك لانهم تطرقوا له من قبل و صدقني لن يعترف لك احد بذلك ههههههه

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

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

مع تمنياتي لك بالتوفيق

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

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

انا الان اريد ان اعود لتعلم البرمجة بعد انقطاع عن تعلمها لمدة 3 سنوات وهذه المرة سأنتقل للـ#C وعدت اتعلم الرياضيات تقريباً من الصفر.

بالضبط و لكن الاغلبية تنفي ذلك و تقول ان البرمجة ليست رياضيات، صح لن تقوم بحل معادلة من الدرجة الثانية بمجهولين لتطوير برنامج (الا اذا تطلب ذلك) و لكن الرياضيات ليست فقط معادلات و منحنيات بيانية و هذا هو الخطا الذي نقع فيه نحن المبتدئين، فنحاول تعلم البرمجة فنجد تعلم اساسيات اللغة سهلا و ستحس و كانك اصبحت متمكنا منها و لكن ما ان تفتح محرر الاكواد لتصمم برنامجا من الصفر ستواجه الحقيقة المرة انك لا تفقه شيئا سوى معرفة ما تعنيه مصطلحات اللغة و بعض الادوات البسيطة جدا كالloops و conditions و سيلوم المبتدئ نفسه و بانه فاشل و ليس ذكي كفاية ليبرمج و في الحقيقة ما ينقصه هو الفهم الجيد الرياضيات.

قد يقول لي البعض ان اغلبية المبرمجين لا يفقهون الرياضيات، و ردي هو انه شتان بين من يجد الحل بنفسه و بين الاستعانة بغوغل لايجاد كل صغيرة و كبيرة (هذا ما وجدت نفسي اقوم به)، الجميع يمكنه ان ينسخ و يلصق الاكواد و لكن هذا لا يجعلك مبرمج حقيقي بالنسبة لي.

بالتوفيق لك في مشوارك البرمجي بالرغم من انه يتطلب وقتا و تفانيا و لكنه يستحق العناء :)

قد يجعلك مبرمج؛ ولكن مبرمج أدوات وليس مبرمج برامج متكاملة

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

وكيف ستقوم بعمل ذلك؟ الرياضيات :)

لك ان تتخيل معاناتي بالرياضيات اذا عرفت ما هو اختبار الـGMAT

بالتأكيد، للاسف كانت نظرتي جد مختلفة عن البرمجة، فقد بدات محاولاتي في الجافاسكريبت لكن وجدت نفسي اطرح عدة تساؤلات الى انتهى بي المطاف ادرس لغة الـC

و اكتشاف الرياضيات المنفصلة التي لم اسمع بها في حياتي

للأسف لم اسمع به من قبل و لكن سابحث عنه، اما بالنسبة للرياضيات، اذا ما كنت تتقن الانجليزية انصحك بكتب for dummies قبل ان تتطرق للكتب الاكثر رسمية حتى تكون فكرة عامة عنها، وجدت نفسي افهم امورا كانت معقدة جدا بالنسبة لي في الثانوي و ذلك لسهولة الاسلوب و كثرة الامثلة و التمارين، كما ان الكتب تحوز على تقييمات ممتازة في الامازون فجربها و بالتاكيد ستكون لديك نظرة مختلفة عن الرياضيات اذا ما عرفت الخدع التي تجعلها سهلة الاستيعاب، على الاقل اساسياتها

أهلاً وسهلاً بك

ليست كل أنواع البرمجة كذلك إليك أمثلة:

  1. برنامج مخزن ما الذي سيحتاجه صانعه من الرياضيات (غير طبعًا قسم المنطق فيها إن اعتبرناه رياضيات )

  2. موقع مدونة أين الرياضيات.

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

selma25 أضف ردا

بالتاكيد فانا لا اتكلم عن تطوير المواقع بما ان طارح السؤال تكلم عن ال++C و الجافا و لم يذكر المواقع

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