هذا القسم يحتوي على مقدمة عامة عن البرمجة وما يجب أن تتعلمه قبل تعلم البرمجة وبعض النصائح وإجابات لأكثر الأسئلة شيوعًا بين الناس
وهي الخطوات المنطقية المرتبة التي تتبعها لحل مشكلة معينة
البرنامج هو عبارة عن أداة لحل مشكلة معينة
مثل برنامج الآلة الحاسبة اداة لحل مشكلة العمليات الحسابية
قبل أن تبدأ في كتابة كود البرنامج تضع الخوارزمية الخاصة به
أي الطريق الذي سيسير عليه البرنامج ليحل المشكلة
كأنك تصف عنوان ما لشخص
مثلا
برنامج يقوم بجمع رقمين
تكون خوارزميته كالتالي
ادخل الرقمين
اجمع الرقمين
اظهر ناتج الجمع
هي تمثيل للخوارزميات باشكال معينة لكل شكل معناه
يعني ترسم الخوارزمية بدلًا من كتابتها لتسهيل قراءة الخوارزمية
بالنسبة لتعلم الخوارزميات فما تحتاج الى معرفته هو مفهومها العام
لكن الخوارزميات كعلم فهي شئ كبير جدا وﻻ انصحك بدراسته في بداية تعلمك للبرمجة
علم الخوارزميات يجعلك قادرا على اختيار انسب الحلول للمشكلة البرمجية التي تواجهك
اذا فتحت اي كتا للخوارزميات ستجد انه يقدم لك خوارزميات جاهزة لأشهر المشاكل البرمجية وخوارزميات تساعدك في حل مشكلات تواجهك
مثل البحث والترتيب وغيرها
لكن قد تفهم كيف تعمل هذه الخوارزمية لكن ﻻ تستطيع تطبيقها او كتابة الكود الخاص بها
لذلك ستحتاج الى شرح للكود الخاص بها في اللغة التي تتعلمها
يمكنك تعلم هذه الخوارزميات في البداية وﻻ تتعلم تطبيقها في الكود
وعندما تريد تطبيقها ﻻحقا قد ﻻ تستطيع ان تكتب كودها بنفسك في البداية لذلك ستحتاج الى شرح الكود في اللغة التي تتعلمها
ﻻ تجعل ذلك يحبطك او يشعرك بالغباء
هذا شئ طبيعي
المسار الذي تسلكه في تعلم اللغة
اوﻻ تعلم اساسيات اللغة
ثم البرمجة الكائنية التوجه OOP
ثم Data Structure في اللغة التي تتعلمها
ثم تعلم الخوارزميات وتطبيقها في هذه اللغة
كل شئ معتمد على ما قبله
بالطبع سيكون عليك ان تعرف الانجليزية ولكن لا يجب ان تكون محترفا فيها لكي تتعلم البرمجة
يكفي ان يكون مستواك مقبول فيها
عليك ان تعرف المصطلحات المتعلقة بالحاسوب والبرمجة
متغير variable
دالة function
وهكذا
اذا واجهك مصطلح لا تعرفه وانت تتعلم ابحث عنه واعرفه
لكن تعلم الانجليزية له فوائد كثيرة
المحتوى الاجنبي دائما افضل بكثير من المحتوى العربي وهذه حقيقة لا نستطيع انكارها
انا لا اقلل من اساتذتنا العرب
هناك اساتذة محترفون في المجال ويقدمون دورات بمحتوى اكثر من رائع
ولكن اذا واجهتك مشكلة في وقت ما ستجد الاجابة في المنتديات الاجنبية كثيرة جدا
لذلك انصحك بتعلم الانجليزية
يمكنك ان تبدأ في البرمجة وتنمي مهاراتك في الانجليزية وانت تتعلم البرمجة
لا تنتظر ان تتقن الانجليزية ثم تبدأ في البرمجة
هنا يجدر الاشارة الى ان الحاسوب يعتمد على الرياضيات
بل انه تم اختراع الحاسوب لكي يقوم بالعمليات الحسابية المعقدة
كمبرمج انت لست مطالبا ان تكون خبيرا في الرياضيات
يكفي ان تعرف الاساسيات
الجمع والطرح والضرب والقسمة وهذه الاشياء التي تعلمناها في الابتدائية
بإختصار
ما تحتاجه البرمجة هو حبك لها
وما تحتاجه الشركات هو خبرتك ومهارتك في المجال
لا يوجد
كل لغة لها مميزاتها واستخداماتها
كل لغة متفوقة في المجال التي صنعت لاجله
افضل لغة برمجة في مجال ما هي اللغة التي تستطيع انت بها ان تفعل ما تريد
هذا يختلف من مبرمج لآخر
ربما انت تستطيع القيام بكل شئ تريده باستخدام السي شارب
غيرك يفعل كل شئ بالسي بلس بلس
ستقول ان افضل لغة هي سي شارب وهو سيقول لا انها السي بلس بلس
اذن اي لغة اتعلم ؟
ما تحب
انا لا انحاز للغة دون الاخرى
ابحث عن المجال الذي تريده واللغات المستخدمة فيه
ابحث عن كل لغة واستخداماتها
تعلم اللغة التي ينجذب لها قلبك
انت على وشك ان تتزوج
اختر المرأة التي يرتاح لها قلبك
يمكنك ان تبدأ بلغة وتتقنها وتصير محترفا فيها ثم تبدأ في تعلم لغة اخرى
كل مجال له مسار تعلمه ذلك اولا حدد المجال الذي تريده ثم سر مع المسار المخصص له
الأمر يختلف من شخص لآخر
هذا يعتمد على قدرتك على فهم واستيعاب الدروس وعدد الساعات التي ستخصصها للدراسىة ومدة الدورة التي ستتابعها
لا يوجد وقت محدد
لن تعرف ابدا
لا يوجد نهاية للغة البرمجة
التكنولوجيا تتطور كل يوم وتظهر اشياء جديدة
السؤال هنا يجب ان يكون
متى اعرف اني صرت محترفا في لغة ما ؟
عندما تستطيع ان تنفذ اي فكرة تأتي ببالك
او على الاقل 90% منها
الطريق للأحتراف طويل لكنه ليس مستحيل
تعلم لغة ما
نفذ مشاريع وافكار عديدة
ستواجهك مشاكل واشياء لن تقدر على حلها
ابحث ثم ابحث ثم ابحث
هكذا تأتي الخبرة في اي مجال
فكر...طبق...ابحث...اكتسب خبرة...مبروك عليك الاحتراف
جميع المجالات مطلوبة سواء في الشركات او في مواقع العمل على الانترنت
العمل الحر Freelance
وهذا يختلف من بلد لآخر
تعلم المجال الذي تحب وستجد مكانك
هو المجال الذي تحبه وتريد العمل به
الامر يعتمد عليك
لا يوجد مجال افضل من الاخر
كل مجال له دوره
البرمجة مثل زوجتك. ان لم تحبها وتقدر على التعايش معها طلقها
لا تتزوجها لأنها ثرية وستجني منها مال كثير
لا تتزوجها لأن فلان تزوج اختها وصار سعيدا
تزوجها فقط لأنك تحبها
ان بدأت في تعلم البرمجة من اجل العمل في شركة كبيرة وتحقيق مبالغ هائلة فلا تتعلمها
بالطبع من حقك ان تفكر في الذي ستكسبه من تعلم شئ ما والعمل به
لكن ان كان همك الاول والاخير من تعلم البرمجة هو الربح فلن تحبها ولن تبدع فيها وبالتالي لن تكسب شئ
ستضيع وقتك ومجهودك فقط
لذلك اول نصيحة اقولها لك هي ان تتعلم لأنك تحب
لا تتسرع في تعلم لغة ما
خذ وقتك في فهم اللغة والدوال وكل شئ
لا تحفظ الاكواد فقط افهم كيف يتم الامر
النسيان امر طبيعي جدا
لن تكون قادرا على تذكر كل امر وكل دالة
وانت تتعلم اكتب ملاحظاتك
افهم ما يوجد في اللغة وكيف تتم الامور
عندما تنسى امر او دالة ما ستتذكر انها موجودة
عد الى ملاحظاتك وراجعها
مع التكرار لن تنسى الدالة مجددا
لا تتعلم مجالين في وقت واحد
حدد مجال واحد فقط وابدأ في مساره
عندما تتقنه انتقل لمجال اخر ان اردت
متابعة العديد من الدورات لن تجعلك محترف اكثر
تابع دورة واحدة
عندما تنهيها تابع اخرى ان اردت. لكن لا تتابع اثنين في نفس الوقت
العمل والتدريب والبحث عن حلول للمشاكل التي تواجهك هم فقط من يمكنهم جعلك محترف
تصميم تجربة المستخدم
هو الشخص الذي يهتم بالطريقة التي سينظر بها المستخدم لمنتجك (موقع أو تطبيق)
من الناحية التقنية
سهولة الاستخدام وتوافر الخدمات التي يبحث عنها وسهولة التعرف على ما يقدمه الموقع من خدمات وهكذا
أماكن الأزرار والصور والمقالات ومحتويات المنتج وينظمها بالطريقة الأفضل بالنسبة للمستخدم
تصميم واجهة المستخدم
هو الذي يهتم بالمنتج من الناحية الجمالية
الألوان وتناسقها وتوافق ألوان الأزرار مع وظيفتها والخطوط المناسبة للاستخدام وهكذا
ملحوظة : أنت لست مطالبًا بإتقان الجزئين المذكورين بالأعلى لأن لهم من هم مختصون فيهم