تعلم البرمجة من الصفر: [الدليل الشامل] أهم 13 نصيحة و معلومة للمبرمج المبتدئ

كيف أتعلم البرمجة؟ سؤال لهُ ألف و ألف إجابة، و لسانُ حال السائل يقول أين أجد مُبتغاي؟!! هل كانت البرمجة ضرباً من الخيال حتى تسمع عنها قصصاً تختلف؟!! أم كانت البرمجة علماً سرياً لا يُتوصل إليه حتى و إن فعلت ما فعلت!

ما ذنبُك إذا أحببت العلم و رغبت بأن تضع أقدامك على أول الطريق و سؤالُك يضعك في ألف طريق.

فكيف إذا ما فرشنا لك الطريق بالعلوم و الخبرات لتبدأ طريقك لتعلم البرمجة من الالف الى الياء؟

بنهاية هذه التدوينة ستستطيع الإجابة على كل الأسئلة الأساسية التي تجول بذهن الراغب بتعلم البرمجة، كما ستستطيع أن تبدأ تعلم البرمجة دون حيرة!

تعلم البرمجة من الصفر بدايتهُ هذه التدوينة.

1. المفهوم العظيم للغة البرمجة

قبل البدء بالحديث عن البرمجة، فلنضع في بالنا أن هناك فرقاً كبيراً بين المبرمج و المصمم.

هنا نتحدث عن البرمجة، وسنتعرف إلى الفرق بين البرمجة و التصميم بعد قليل.

إليك هذا:

لنفترض أنك وصلتَ إلى أمام البائع لتشتري هاتفاً، كيف تُخبر البائع بالنوع الذي ترغب بشراءه؟

لا بُد و أن تُخاطب البائع لتطلب مبتغاك، أليس كذلك؟ ولكن ماذا إذا كان البائع لا يتحدث لسانك ولا لغتك؟

لن تستطيع أن تحصل على ما ترغب به إلا إذا وجدت شخصاً يستطيع أن يتحدث مع البائع بلغته.

هذا هو حالك مع الحاسب…

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

لغاتُ البرمجة ليست إلا “لغات” ? بمعنى الكلمة، ما تؤديه فقط هو ترجمة ما ترغب به إلى ما يستطيع الحاسب تأديته.

ولكن، لماذا لغات البرمجة مختلفة؟

اللغة العربية بها 28 حرفاً، و الإنجليزية 26 حرفاً، إحدى الكلمات العربية تحتاج إلى جملة كاملة بالإنجليزية لترجمتها مثل “أنُلزمُكموها”.

هكذا اللغات تختلف عن بعضها في قدراتها و تكويناتها، مع وجود فروقات طفيفة في لغات البرمجة.

لغات البرمجة مثل اللغات الطبيعية لها ذخيرة لغوية و كلمات، و لكن تتميز أن اللغة بعد تطورها قد تأخذ إسماً آخر.

الجافا مثلاً تطورت من لغة C++ ، سُميّت جافا و أصبحت لغة برمجة مختلفة ? و إضافة إلى لغات البرمجة الكثيرة!

تعلم البرمجة - لغة جافا

خذ هذه المعلومة:

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

هذا التسهيل ضروري لأن الحاسب في الحقيقة يتعامل فقط مع شيئين هما 0 و 1، و من الصعب على المبرمج أن يكتب أوامره بالصفر و الواحد لأن عملية التحويل صعبة و الكتابة كثيرة .. مثل أن يكتب بدل الرقم 3 [11] و بدلاً من الرقم 9 [1001].

2. إتخاذ قرار: البرمجة أم التصميم؟

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

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

وظيفتان منتشرتان في عالم البرمجة: مصمم برامج و مبرمج.

الفرق بين المبرمج و المصمم

المهم في الأمر:

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

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

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

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

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

إذا ما اتفقت معي فأنت قد ملكت الفرق بين المصمم و المبرمج.

في شاشة تسجيل الدخول مثلاً يكون المصمم هو من يصمم شكل الشاشة التي يراها المستخدم و يضع الصور و يختار الألوان و يُنشئ الأزرار و الأماكن التي سيكتب فيها المستخدم.

أما المبرمج فهو من يُنشئ العمليات الخلفية لشاشة تسجيل الدخول، فعندما يدخل المستخدم إسمه و كلمة المرور فإن البرنامج يتعرف على هذه البيانات هل هي مسجلة مسبقاً أم أنه شخص يحاول سرقة الحسابات.

من يُنشئ عملية التعرف هذه هو المبرمج.

خلاصة الأمر، أي برنامج يخدم المستخدم لا بد فيه من واجهة مستخدم و عمليات خلفية، يقوم بهما المصمم و المبرمج سوياً.

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

صفات شخصية المصمم

  • تذوق الألوان ?.
  • الإبداع و الإبتكار.

صفات شخصية المبرمج

  • التفكير المنطقي.
  • القدرة على حل المشاكل.

3. إنتشار البرمجة خارقٌ للعادة

توجد أسباب كثيرة لتتعلم البرمجة، ربما تملك هدفاً مُسبقاً ولكن ربما معرفتك بالآفاق التي وصلتها البرمجة تزيد من فضولك لهذا المجال.

ما يعجبني في هذا المجال أن البرمجة تصب في مجال النظم، و النظم تخدم جميع المجالات البشرية، بل أكثر من ذلك أرى أن البرمجة هي التي صنعت من عصرنا عصرنا…

أوّاهُ لحياتنا بلا برامج ?

نمو عدد البرامج في قووقل بلي
نمو عدد البرامج في قووقل بلي

من المجالات التي تؤثر فيها البرمجة الآن -وليس جميعها-

  • برمجة الترفيه: من الشائع أن تكون قد لعبت أو أنك تدمنُ اللعب الآن على أحد الألعاب التي لا تعمل إلا على كرت شاشة خاص لجمال رسوماتها، هذه الألعاب فيها قدر عالٍ جداً من البرمجة.
    و لكن يظل الأمر أن الألعاب الحاسوبية ليست الوحيدة في مجال الترفيه، فإدارة الملاهي الكبيرة و الألعاب فيها و البرامج السياحية و إصدار تذاكر الطيران و غيرها من الأمور التي تؤثر فيها البرمجة بقوة.
  • برمجة الطب: ما أدق التشخيص و أنت ترى الطبيب يطلب منك إصدار صورة اشعة مُلائمة لحالك لتذهب -سلمك الله من كل سوء- إلى أخصائي الأشعة ليلعب الأزرار التي تُدار عن طريق برنامج ليُجري لك الأشعة.
    الطب بصورة خاصة وصل إلى درجة أعلى بأن الطب له تخصص يُسمى بنظم المعلومات الطبية!
  • برمجة السياسة: من المرات النادرة التي ربما ترى فيها السياسة في مدونة علوم، و لكنها تتأثر أيضاً بمجال البرمجة بشدة، فإدارة أنظمة الإقتراع و الحكومات الإلكترونية و التطبيقات التي تسهل حياة البشر من أهم ما يمكن أن تفعله الحكومات لمحكوميها.
  • برمجة علوم الفضاء: يجعلني أتعجب جداً ذاك القدر من الدقة الذي يتوفر ببرامج تُدير ماكوكاً فضائياً، أن الجزء من الثانية يعني حياة بشر و جهود سنين عددا! فلغة  HAL/S مثلاً تلعب دوراً دقيقاً في ناسا.
    ولكن حتى تعرف تأثير البرمجة على علوم الفضاء، هل تذكر الصور التي تصاحب إقلاع أو هبوط أحد الصواريخ؟ دوماً تجد عدداً من المهندسين يجلسون أمام عدد كبير من الشاشات و يقفزون فرحاً عند نجاح العملية.
  • برمجة المنازل: ليس هذا الأمر مزحاً، مهما صغرت البرامج تبقى برامجاً، فالمكيف يملك مؤقتاً، و التلفاز يُبرمج لإستقبال القنوات و الغسالة تعمل إلكترونياً بلا تدخل بشري لإحتوائها على برامج مُختلفة.

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

4. السؤال الأسطوري: تعلم البرمجة سهل أم صعب؟

هل تعلم البرمجة صعب” ، “هل يمكن تعلم البرمجة

هل واجهتك هذه الأسئلة أو جالت بخاطرك في يومٍ ما؟

أتفق معك إبتداءً أن تحديد مدى صعوبة أو سهولة ما ترغب بتعلمه يجب أن لا يكون المعيار الوحيد لمواصلة التعلم، أليس كذلك؟

إليك هذا السر:

وفقاً لتجاربي مع المبتدئين بتعلم البرمجة فإنهم يسألون أنفسهم و غيرهم هذا السؤال ليس لمعرفة درجة صعوبة أو سهولة البرمجة، و إنما للتأكد من قدرتهم على تعلم البرمجة.

في بعض الأحيان أيضاً يُخلط ما بين تعلم البرمجة و تعلم نظام التشغيل، لن نتحدث عن نظام التشغيل في هذه الجزئية ولكن نتحدث عنه في الجزء التالي مباشرة.

إذا ما كُنت ترغب في تعلم أي علم من العلوم فبدايتُه أن تثق أنك ستستطيع تعلمه و أن تبذل أقصى جهدك لتعلمه ?.

البرمجة ليست بعيدة عن بقية العلوم، لذا سأضع بين يديك إجابة السؤال عن صعوبة و سهولة تعلم البرمجة لتنساه.

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

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

تعلم البرمجة الوقت مع الخبرة

الإجابة:

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

ولا شيء يُضاهي رؤية نتاج مجهودك و تعلمك (البرامج) و هي تعمل أمام ناظريك.

5. نظام التشغيل الحاضن للغة البرمجة

كلنا على الأقل سمع بنظام التشغيل ويندوز Windows. هناك معرفة لازمٌ استصحابها في تعلمك للبرمجة تتعلق به.

إنها معرفة مفهوم و أنواع نظم التشغيل، إذا كُنت تعرف جيداً ما هي نظم التشغيل و أنواعها فاقفز إلى الجزئية التالية.

هيا فلنتعرف على عمل نظام التشغيل.

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

هذا المدير يسمى بنظام التشغيل، لاحظ أن إسمه يدل على وظيفته [تشغيل الحاسب].

لغات البرمجة و نظم التشغيل

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

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

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

ولكن هناك إحتمال آخر:

من الممكن أن يكون مدير النظام الذي يعمل عند الضغط على زر تشغيل الحاسب مختلفاً، و الشاشات التي تراها عند بدء نظام التشغيل مختلفة.

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

من أنظمة التشغيل الأقل شهرة من ويندوز لينكس و سولارس و ماكنتوش.

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

إذا ما تساءلت لماذا يجب أن تتعرف إلى هذه المعلومات عن أنظمة التشغيل، فإن هذا لأن لغات البرمجة ترتبط إرتباطاً مباشراً ولا فكاك منه بأنظمة التشغيل، فالبرنامج الذي تبذل لتطويره أياماً وليالي سيعمل على (أحد أو بعض أو كل) أنظمة التشغيل.

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

6. مصادر الدخل بين (مفتوح المصدر و مغلق المصدر)

ستمر عليك هاتين العبارتين كثيراً في مسيرة تعلمك للبرمجة و عملك فيها.

ما يفعله المبرمج كما تعلم هو أنه يكتب شفراته البرمجية (Source code)، ثم تُترجَم هذه الشفرات إلى لغة الحاسب لتعمل.

حسناً، لنُضف إضافة مهمة…

بعد ترجمة شفرتك البرمجية فإن مُترجماً افتراضياً يتكفل بتحويل تلك الشفرات إلى ملف آخر قابل للتنفيذ.

مثل أن يحول المترجم شفرتك البرمجية إلى ملف بالإمتداد exe على ويندوز.

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

كيف ذلك؟

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

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

مايكروسوفت من الشركات التي تتبنى مفهوم البرامج مغلقة المصدر منذ سنوات، فنظام التشغيل ويندوز هو نظام مغلق المصدر ولم تُنشر شفرته البرمجية بتاتاً منذ بدايته و حتى اليوم.

أما نظام التشغيل لينكس فهو نظام مفتوح المصدر و شفرته البرمجية متاحة للجميع للتطوير و التعديل عليها.

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

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

7. كيف تختار لغة البرمجة في أول الطريق

بعد أن تقتنع بأنك ترغب بتعلم لغة برمجة، تنتقل إلى مرحلة أعلى و هي اختيار لغة البرمجة التي ستتعلمها.

أعتقد أن اختيار لغة البرمجة ليس صعباً كما يُعتقد.

السبب:

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

لذا قبل أن تبدأ تعلم لغة برمجة ما، حدد هدفك الذي تود تحقيقه.

  • إنشاء برنامج معين محاسبي على الجوال.
  • تطبيق للتحكم بالروبوت.
  • موقع تواصل إجتماعي.
  • …إلخ

بعد أن تحدد هدفك حاول البحث عن لغات البرمجة التي تملك المؤهلات لتحقيق أهدافك.

اختيار لغة البرمجة

من أهم المؤهلات التي يجب عليك مراعاتها عند إختيارك للغة البرمجة

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

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

8. تأثير السوق على اختيار لغة البرمجة

تعلم لغة البرمجة لا يقف عند الهواية فقط، البرمجة مجال عملي و مهني و يتوقع المبرمج أن يحصل على عائد ? من أعماله.

و كنتيجة لمجهوداتك المستمرة، فإن برامجك أيضاً كنتيجة طبيعية ستكون جزءاً من مؤسسات و شركات أو مستخدمة من قبل مختلف المستخدمين.

إليك ما يجب أن تفعله:

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

السوق المُستهدف ربما يعني مكان تواجد مستخدمي برامجك.

من الممكن أن يكون السوق المستهدف حقيقي أو افتراضي.

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

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

إنتشار لغة الجافا

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

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

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

المهم في الأمر، بعد اختيار لغة البرمجة التي ترغب بتعلمها يتحتم أن لا تكون على جزيرة منعزلة لا تجد من تتعلم منه ولا من يرغب بتوظيفك ولا من يرغب بأن تطور له البرامج.

9. التخلص من عقدة اللغة الإنجليزية في البرمجة

عندما بدأ العلم كان العرب و المسلمون هم رُعاتُه = تاريخ.

تتفق معي أننا الآن و في أيامنا هذه أصبحت اللغة الإنجليزية هي عماد العلوم و اللغة العالمية للتخاطب و التعلم.

قبل أن أتحدث عن اللغة الإنجليزية أود أن أعبر عما بخاطري.

أؤمن تماماً بأن اللغة العربية بإمكانها أن تعبر عن العلوم جميعها إذا ما تُرجمت العلوم الموجودة إلى اللغة العربية و كُتبت المؤلفات العلمية باللغة العربية.

فلنعُد.. و بما أن اللغة الإنجليزية هي عماد العلوم في عصرنا و خاصةً في مجال الحاسب الآلي و البرمجة، فهل يجب أن تكون جيداً في اللغة الإنجليزية لتتعلم الحاسب؟

لا أعتقد ذلك.. فالبرمجة بصورة عامة لا تحتوي على قدر كبير من المفردات الإنجليزية، و بالإمكان تعلم مهامها حتى دون معرفة معناها.

التحول الإيجابي:

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

كما أن الكُتب الجيدة عن البرمجة عادة ما تكون متوفرة باللغة الإنجليزية. لاحظ قولي عادة وليس دائماً. يوجد بعض الكُتّاب المميزون في مجالات الحاسب و البرمجة في وطننا العربي.

لا تفكر كثيراً في اللغة الإنجليزية فهي لن تقف عائقاً في طريق تعلمك للبرمجة.

ولكن بلا شك.. يبقى تعلمها فائدة كبيرة، و أداة تزيد من سرعتك في تعلم العلوم عامة.

10. لا يكفي أن تتعلم فقط

البرمجة ليست نظريات… فقط.

في بدايات تعلم البرمجة و طوال تعلمك و عملك تستصحبك نظريات عديدة تسهل من عملك و تطور من مستواك العملي و العلمي.

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

البرمجة تتحدث عن إنشاء منتج محسوس..

تتحدث عن نتاج مجهود و عمل و تفكير..

تتحدث عن تحويل الأفكار إلى واقع..

هذا يعني أن البرمجة لا تتوقف على تعلم النظريات فقط، لا تضيّع وقتك في تعلم نظريات لن تطبقها.

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

11. السحر الخفي: التعلم في 24 ساعة و 3 أيام و 7 أيام

أنا و أنت و غيرنا … نرغب بالحصول على أفضل النتائج في أقصر وقت ممكن.

هذا هو السر في النجاحات التي تحققها مثل هذه الكتب.

ولكن المنطق يقول، إذا كانت البرمجة أو غيرها من المواضيع التي تتعلق بالكتب التي تسمى بتعلم البرمجة خلال … (وقت قصير جداً و غير منطقي) فعلاً تحول الشخص إلى مبرمج، فهذا يعني أنه بإمكانك أن تكون محترفاً لـ 10 مجالات خلال 10 أيام لتبدأ العمل باحدى الشركات ثم يأتي غيرك و قد قرأ 11 كتاب خلال 11 يوم ليكون أفضل منك .. و هكذا !!!

طلب تعلم البرمجة السريع

أعجبني تعلم الروحانيات في يوم ?

من الجلي أن الأمر ليس منطقياً.

ولكن هل من الممكن تعلم لغة البرمجة بسرعة على كل حال؟

نعم، السرعة ممكن إذا حددت هدفك.

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

ولكن إحتراف لغة برمجة تم تطويرها خلال سنوات من العمل المتصل و خبرات مئات أو آلاف الأشخاص الموثقة في آلاف الصفحات يتم إستخلاصها في 20 صُفيحة صغيرة… يا للدهشة!

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

12. حياة المبرمج العملية

بما أنك تقرأ حتى هنا، فهذا يعني أنك ترغب بتعلم البرمجة حتماً، ولكن..

هل تعلم كيف هي حياة المبرمج العملية؟

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

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

مراحل التطوير هي:

نموذج الشلال

  1. جمع المتطلبات: يقوم بهذه المرحلة محللو النظم عادة و يجلس فيها محلل النظام مع العميل لفهم احتياجاته و توثيقها.
  2. التحليل: يُكمل محلل النظام عمله بتحويل المتطلبات إلى نماذج و مخططات و هياكل معيارية لتُستخدم في المراحل المقبلة.
  3. التصميم: يشارك في هذه المرحلة الخبراء من المبرمجين و إداريو قواعد البيانات و مصممي البرامج، يتم فيه هذه المرحلة وضع الهيكل الخارجي للبرنامج مفككاً.
  4. البرمجة: في هذه المرحلة يعمل المبرمجون و إداريو قواعد البيانات و المصممين على ربط التصاميم المنشأة وفق نتائج التحليل و الهيكل المعد مسبقاً من قبل الخبراء.
  5. الاختبار: الإختبار يجريه مختبرو النظم، فيه يقارن مختبرو النظم بين النظام الناتج من البرمجة و متطلبات العميل للتأكد من موافقتها لاحتياجاته كما يتأكدون من عدم وجود خلل بالبرنامج.
  6. الصيانة: تثبيت البرنامج لدى العميل و صيانة البرنامج بصورة دورية قد يشارك فيها أي عضو من أعصاء تطوير البرمجيات.

لا تنخدع بهذا العدد:

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

أما المشاريع الفردية و البرامج الصغيرة فيؤدي فيها المبرمج كامل المهام.

هل لاحظت أين هو دور المبرمج في نموذج تطوير البرمجيات؟

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

وكلما كانت الشركة أقل احترافية أو كان البرنامج أصغر كثُرت المهام التي تؤديها.

13. ماذا قال خبراء الحاسب

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

أحمد معتصم - مطور نظم
أحمد معتصم

أحمد معتصم (رحِمهُ الله، أسألُكَ الدُّعاء لهُ) مطور نظم:

  • أتقن لغة السي شارب.
  • تعلمت السي شارب لأنني علمتُ أن الطلب عليها من قبل الشركات كبير.
  • يحتاج المبتدئ لإنشاء برامج كبيرة بلغة السي الشارب إلى 3 أشهر تقريباً إذا أمضى 4 ساعات يومياً بالتعلم.
  • تطلب لغة السي شارب من قبل شركات تطوير المواقع الالكترونية و بعض الجهات الحكومية وشركات تطوير الألعاب التي تستخدم إطار عمل framework يعتمد على الدوت نت.

محمد علي الطيب مبرمج شيربوينت:

  • اتقن لغة الجافا، البي اتش بي، السي شارب.
  • الجافا تم تدريسها في الجامعه، واول شركه عملت بها كانت تستخدم الجافا كلغة برمجه اساسيه ومن ثم استخدمتها في تطوير تطبيقات الاندرويد.
  • البي اتش بي تعلمتها بعد الجامعه من اجل تطوير مواقع الويب لانها اكثر لغه مشهوره على الانترنت وبالاضافه لكثرة العمل الحر للغة البي اتش بي واشهر انظمة ادارة المحتوى مبنيه على البي اتش بي (ويردبرس، جوملا، دروبل).
  • السي شارب: تعلمتها فقط بدافع الفضول وتجربة لغة برمجه جديده ولم اتقنها الا بعد عدة سنين عند عملي كمبرمج في شركه وكانت اللغه المستخدمه لبرمجه جميع التطبيقات هي السي شارب.
  • اعتقد اسبوع الى عشره ايام تكفي لتعلم كافة الاساسيات لاي لغه والبدء في بناء تطبيق كامل.
  •  لم تواجهني اي صعوبات في عملي بسبب تعلمي لغة برمجة محددة.
  • تطلب الجافا من قبل الشركات التي تعمل في برمجة تطبيقات الجوال ومن بعض الشركات التي تقوم ببناء انظمه كبيره(Enterprise).
  • البي اتش بي تطلب من قبل الشركات التي تعمل في بناء المواقع الالكترونيه والانظمه المبنيه على الويب.
  • السي شارب تطلب من قبل شركات برمجة تطبيقات الجوال (ويندوز فون) وبالاضافه للشركات التي تعمل في برمجه التطبيقات لنظام التشغيل ويندوز بالاضافه للشركات التي تقوم ببناء التطبيقات المبنيه على الويب.

خاتمة

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

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

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

عندما تجد الفائدة شاركها مع الآخرين، و إذا وجدت الفائدة في هذه التدوينة شاركها مع أصدقائك.

مصطفى الطيب

صديقٌ لنُظمِ المعلُومات و عُلومِ الحَاسِب و مُختصٌ بهما، مُحبٌ للعِلمِ و نَشرِه. أُشاركُ معارفي و تَجاربي و خِبراتي في تَدويناتٍ و دوراتٍ من خلال مُدونةِ عُلوم.

مقالات ذات صلة

‫143 تعليقات

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

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

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

      للأسف لا علم لي بكتب تهتم بالمصطلحات الحاسوبية العربية، و تسعدني مشاركتك لي هكذا كتُب إذا ما وجدتها.

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

    1. تشكر يا محمد، ولكنك قد ضيّقت واسعاً…

      خلاف الأمثلة التي ذكرتها توجد لغات كثيرة جداً تخدم هذه الأهداف، مثل جافاسكربت في التصميم و lua في الألعاب و غيرها.

      إختيار لغة البرمجة المناسبة للتعلم يأتي بعد تحديد أمور عديدة جداً، و ما يناسب شخص قد لا يُناسب الآخر.

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

  4. يااخي انا مشوش قليلا انا اعرف اختار اي واحدة من هذه افضل :

    .تقني سامي في الاعلام الالي
    .لغات البرمجة

    1. لا يمكن إجراء تفضيل عام، فما يكون حسناً لدى شخص قد يكون عكس ذلك لدى آخر.

      ذكرتُ في تدوينة عن اختيار التخصص (أنصحك بقرائتها) هذه الخطوات للمساعدة على اختيار التخصص، أعتقد أنها مناسبةٌ لحل مشكلتك

      1.تحديد طباعك و ميولك الشخصية و رغباتك.
      2.معرفة الصفات العامة لمجال علوم الحاسب، هل تتفق مع طباعك و ميولك و رغباتك؟.
      3.معرفة صفات كُل قسم من أقسام علوم الحاسب.
      4.تحديد القسم الذي ترغب بدراسته.
      5.البحث عن الجامعات التي يتوفر بها القسم المحدد.
      6.التقديم لهذه الجامعات.

  5. استاذ مصطفى
    كيف حالك
    عندي مشكلة وهي من وين ابداء
    انا اريد ان اتعلم لغات البرمجة الخاصة بتطوير المواقع الاكترونية فقط
    ماهي الغات التي يجب ان اتعلمها وماهي الغة التي يجب ان ادرسها اولا
    لدي خبرة ليست بسيطة في الغة التوصيفية html 5 ولغة ال css
    بحيث اقوم بتحسين وتصميم بعض القوالب فقط
    لاكنني لا اجيد غيرها
    واحتاج ان اتعلم لغات البرمجة الخاصة بتطوير المواقع

    1. مرحباً بك أخي سالم و أتمنى أنك بخير،

      في البدء هناك لغات لا غنى عنها إطلاقاً لمبرمج الويب و هي HTML، CSS، Javascript. تأكد أنك تستطيع التعامل معها، و بامكانك معرفة أساسياتها ثم إتقان أحد بدائل إجادتها.
      بعد ذلك تحتاج إلى تعلم إحدى لغات الخوادم python، php، …إلخ، و هنا لك الخيار.

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

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

  7. السلام عليكم ورحمة الله تعالي وبركاته
    جزاك الله الف خييير علي هذة المدونه الرائعه وحقيقة انا شخصياً استفدته منها جدا جدا … في هذا الوقت بالتحديد عايزه ابدا في تعلم لغة برمجه حتي الاحتراف باذن الله وما كنت عارفه ابدا من ويييين لكن بعد هذا المقال الممتااااز حاسه باني مااشه في الطريق الصاااح باذنه تعالي .
    بارك الله فيك

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

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

      بناءً عليه بالإمكان وصفُ اللغات البرمجية أو الوصفية التي يجب عليك تعلُّمها.

      ستحتاج قطعاً إلى دراسة لغات برمجة حتى تصبح مصمم برامج. وبالتالي فإن العمل لا يقتصر على الفوتوشوب والصور فقط.

  8. السلام عليكم أخي الكريم

    قرأت الكثير عن البرمجة وأريد أن أتعلم لغة ++c
    ولكن لا أعرف من أين أبدا

  9. انا اسمي المقداد وابلغ من العمر 14 وهذا شيئ غريب ولكن هدفي ان اكون مبرمجا وان انجح في البرمجه لاكون مبرمجا ناجحا ولاحقق حلمي قواه المقال اعجبني ولكن هناك شي لم افهمه وهو لماذا الغه الانجليزيه ليست مهمه

    1. مرحباً بك مقداد. مبرمجُ الغد.

      يبدو أنك تتفق مع هذه العبارة

      تتفق معي أننا الآن و في أيامنا هذه أصبحت اللغة الإنجليزية هي عماد العلوم و اللغة العالمية للتخاطب و التعلم.

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

      ستجد في مدونة علوم و العديد من المواقع ما يعد المبرمجين باللغة العربية ويستطيع الجميع الإستفادة من هذه المواد باللغة العربية.
      أي أن ما أردتُ قوله أنه لا يجب على من يرغب بتعلم البرمجة أن يتعلم اللغة الإنجليزية أولاً.

  10. منذ صغري احب البرمجه والتكنولوجيا والان انا طالبة بمجال علوم الحاسب ولكن للاسف لم اتعلم لغات البرمجه جيدا وكان اغلب تعلم المواد نظري!!
    نحفظ مقالات مطوله بدون تطبيقها بحجة ان حواسب المعامل لم تكن تحتوي على البرامج وايضا 80% من الدرجات كانت للجزء النظري ايضا
    مع قلة خبرة الاساتذه او عدم قدرتهم على ايصال المعلومات , والان انا في سنتي الخامسه ومعدلي منخفض ولم اتخرج بعد
    بصراحه انا لا اهتم كثيرا لامر الشهادة بقدر اهتمامي بما اريد تعلمه
    فكرت اني يجب ان اتعلمها تلقائيا وكان التكاسل والتسويف طاغيا مع قلة وجود مصادر تعلم جيده وكنت ارغب بشده تعلمها ولكن لم يكن لي هدف
    كل الشكر لك استاذ مصطفى
    بعد مقالتك هذه اتضحت لي الكثير من الاشياء وقل التشوش واصبحت اعرف ما الذي يجب تعلمه ومن اين ابدأ

    واعتذر عن الاطاله واشكرك مرة اخرى

    1. أهلاً ومرحباً بك دوماً، الجميلُ في علوم الحاسب أن موارد تعلّمها متوفرةٌ كثيراً، فحاسبٌ وإتصالٌ بالإنترنت وشخصٌ راغبٌ بالتعلم يكفي – مع كوبِ قهوة ☕ أحياناً. ولكن يجبُ اختيار المادة المناسبة للتعلم فعلاً، فطباعُ الناسِ تختلف بين محبّ للتعلم عبر القراءة أو بالشرح المباشر أو بالفيديو وغيره.

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

      وفي حال كانت الدراسةُ الذاتية ليست محفّزةً لك، يفضّل استصحابُ شخصٍ آخر معك في هذه الرحلة بحيث تكونُ بينكم تحديّات ويساعدُ كلٌ منكما الآخر ويحفزه. كما أن الإنضمام إلى الدورات أحياناً يخلقُ نوعاً من الإلتزام المفيد.
      يسعدني تواجدك دوماً في مدونة علوم ومرحباً بك.

  11. السلام عليكم

    شكرا لك علي ابداعك الانيق باظهار امثله سودانيه تدعم طموحاتنا …

    اتمني اضافه لمسات جميله اخري لباقي الموضوعات فقد اعجبني هذا التصوير الفذ .

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

  13. اخي العزيز
    انا مدرس لغة انجليزية وعمري ٢٩ سنة
    حقيقة انا لا اجد نفسي في التدريس
    لذلك اتمني ان اتحول الي مجال الحاسب لاني كنت متميزا وبارعا فيه جدا عن اقراني

    ينصحني اخي بمجال الشبكات واخذ دوة سيسكو
    ولكني اكتشفت من مدونتك اني اميل للبرمجة

    السؤال اخي العزيز الان هل لي فرصة بعد هذا العمر والسن ان اتعلم والتحق بمجال الحاسب واصحح مساري المهني ام انه قد فات الاوان؟

    وهل لو مشيت في هذا الطريق هل سأجد عملا حاسوبيا مناسبا غير عملي الحالي كمدرس؟

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

    شاكر لك جدا اخي وتحياتي من مصر

    1. مرحباً أخي محمد،

      تعلّم البرمجة فقط ليس بالأمر العسير، والبدء بإنتاج البرامج عادة لا يحتاجُ إلى وقت طويل (سنوات مثلاً).
      ربما تكون تستبقُ بعضاً من الأحداث، ما الدوارت التي تنقصك وأنت لم تبدأ بعد ؟!! ?

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

  14. شكرا جزيل الشكر
    بعد ازنك كنت عاوز اعرف انا ممكن اخد كورسات اية عشان اكون كويس فى مجال نظم المعلومات و ما هى طبيعة العمل بعد التخرج واية الاماكن اللى انا ممكن اشتغل فيهة وهل مجالات العمل بتكون متوفره ولا لا

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

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

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

      أتمنى لك التوفيق.

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

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

  19. شكرالك وارجو لك التووفيق لك ولا زريتك كونت احب ان تكثر من ازديادك للععلم للاخرين بتدوين مثلا رقم هتفقك او طريقة للتحدث عنما يحتاجك امبتدئون امثالى وشكرا

  20. جزاكم اللّٰه كل الخير دكتور ، انا مبتدئ وليس لي اي علاقة او معلومات في مجال البرمجة ولكن لطالما كنت أتمنى أدخل هذا المجال ، فقط دكتور اريد معرفة ما اذا انني أستطيع الاستفادة من تعلم البرمجة ودمجها في مجال التسويق لاني ادرس تخصص التسويق ?

    1. مرحباً أخي فيصل،
      أنا أخوك ولستُ دكتور 🙂
      بالتأكيد تستطيع استخدام البرمجة لتُنتج برامج أو تطبيقات تخدم قطاع التسويق، أكبرُ مثالٍ لذلك نظام التسويق الخاص بقووقل Adwords.
      في كل الاحوال تستطيع تطبيق أفكارك الخاصة.

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

    1. ونعم المثالُ أنت أخي عادل. كما يقُول حمود الخضر “كُن أنتْ” ?
      أُعجبْتَ بـِ ، ثم بدأتَ وعملتْ، فتعلّمت وواصلت ومازِلتْ. وستكون بإذن الله كما تُريد وأكثر. ولا يكفي أن تُتقنَ الأساسيات فقط ?
      أتمنّى أن أراكَ دوماً في الجوار. دُمت بوُد.

  22. ما شااااااء الله من أأنق المقالات وأفخمها..واضحة ومفهومة..الله يحفظك ويجزااااك كل خير…الله يسعدك يشيخ شي يفتح النّفس..

  23. انا معرفشي اي حاحه عن البرمجه يعني معلوماتي تكاد تكون صفر
    هل ممكن ان اتعلمها
    ولو حبيت اتعلمه. ابدء بايه

  24. شكرا اخي الكريم ولكن لدى سؤال.
    هل فى بلدى امكانيات للاحتراف ام مقصور على الغرب فقط ومن اين اجد دورات تعليم للغات

  25. السلام عليكم ورحمة الله وبركته جزاك الله خير فيما نشرة لنا
    سوالي هو
    انا اريد ان اقوم بصنع جهاز
    او برمجة برنامج
    او حسوب يستطيع ان يفكر ويتخز القرار بمفرده دون تدخل الانسان مطلقا وان وجه مشكل لجا الي الانترنت ويبحث عن الحل بمفرده
    فكرتي هي ان اصمم عقل مثل siri في الايفون ولاكن بدون انترنت ولهو الحريه المطلقه في التعبير
    غرضي ليس للتسويق ولكن شخصي
    اعلم انه صعب جدا جدا جدا علي مبتدا مثلي ولكن ليس مستحيل
    سوالي باختصار هو
    ما هي اللغه البرمجية التي يجب ان اتعلمه لبرمجة هذا العقل الاصطنعي
    وشكرا وانا اسف ان كنت اطلت عليك ولكن كان يجب ان اوضح وجهت نظري كامله
    ahmed_abbas014@hotmail.com فيس بوك

    1. وعليكم السلام ورحمة الله وبركاته أحمد،

      كما ذكرتَ في مقالك، ستصل بإذن الله طالما واصلتَ المسير.
      لغاتُ برمجة مختلفة تدعم تطوير تطبيقات الذكاء الإصطناعي، أنصحك بإعداد فكرة أوليّة لما ترغب بإنتاجه في النهاية والبحث عن إمكانية تطبيقه مع كل لغة. ولكن عموماً لغة python المشهورة ببساطتها تدعم إنشاء تطبيقات الذكاء الاصطناعي في حال أردت أن تتعلم.

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

    1. وعليكم السلام ورحمة الله أخي عبداللطيف.
      بإمكانك البدء بالإلتحاق بإحدى دورات تعلم إحدى لغات البرمجة “لا يهم أي لغة” فقط ابدأ لتتعرف قليلاً على المجال ثم حدد ما تريد بالضبط.

  27. ماهى افضل اللغات او اكثره استخداما لنظم المعلومات الحغرافية للعمل على arc gis وياريت لوعندك معلومات عن مطور نظم المعلومات واللغات المستخدمة للتعلم وترتيبه من حيث الاهمية لانشاء تطبيقات

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

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

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

    1. وعليكم السلام ورحمة الله دلال. تُسعدني رؤية من يبدأون الطريق عملاً. أتمنى لكِ التوفيق وبإذن الله تصلين إلى طموحك الأعلى ومبتغاك البرمجي والحاسوبي.

  30. 1. ماهو التخصص المناسب للنساء في مجال علوم الحاسوب وتقنية المعلومات من حيث طبيعة العمل ؟
    2. هل بمقدور الخريجين في مجال تقنية المعلومات أن يصممو برامج , أم أنها ممكن أن تدرس في دورات منفصلة ؟ وهل بمقدورهم أيضا تصميم صفحات في النت وادارتها كصفحة الفيسبوك ومحرك البحث قوقل (أتمنى أنني لم اخطيء في محتوى السؤال ! ).
    3. انشاء أنظمة تشغيل كوندوز واندرويد يتم تعلمها تحت أي تخصص ؟

    1. الكثير جداً من تخصصات الحاسب يحتاج إلى جهد عقلي أكثر منهُ بدني وبالتالي يكونُ مناسباً أكثر لمن ترى أنها ترغب بالعمل في المجالات التي تتسم بتلك الصفات. مثالُ ذلك “البرمجة واختبار البرمجيات والدعم الفني”.
      بإمكان خريجي الحاسوب تصميم البرامج وتطويرها إذا تعلّموا ذلك أثناء دراستهم الجامعية. من المُتوقّع أن يدرس طالب علوم الحاسب طريقة تطوير وتصميم البرمجيّات من الأساسيات إلى المستوى المتوسّط. خلا ذلك توجد دورات لتعليم البرمجة.
      أعتقد أن من يرغب بالتخصص في أنظمة التشغيل بدايتُه المناسبة هي مجال علوم الحاسب.

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

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

      أشكرك على قضاء وقتك في مدونة علوم ويُسعدني أن وجدتِ بعض فائدةٍ بها.
      التعلّم عبر الإنترنت فرصةٌ بإمكانك استغلالها إلى أقصى درجةٍ ممكنة. تتوفر بالإنترنت دوراتٍ ومقالاتٍ ودروس مجزّئة أو مقسّمة مع إمكانية البحث وفق ما يرغبُ الدارس. بإمكانك تعلّم أغلب ما ترغبين بتعلّمه وخصوصاً لغات البرمجة عبر الإنترنت. ولكثرة الدورات ولتعدد الوسائط المتاحة للتعلم من كتب ودورات بطرق مختلفة وأساليب مختلفة يجب على الدارس أن يبحث عن ما يُناسبُهُ هو شخصياً ثم إتباع الدورة حتى نهايتها.
      أنصحُك بتحديد لغة البرمجة التي ترغبين بتعلّمها ثم البحث عن دوراتها في الإنترنت ثم اختيار الأنسب لكِ.
      أمنياتي لكِ بالتوفيق.

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

    1. وعليكم السلام ورحمة الله عبدالستار،
      برغم عدم عملي على تطوير نظم للسيارات إلا أنه وفقاً لمؤتمر JavaOne فإن جافا تتواجد في 15 (بـ)ـليون جهاز متضمناً ذلك 2 (بـ)ـليون سيارة.

  33. جزاك الله خير وحقيقة مقال قوي ومسوق ويعطي دافع لتعلم. فهل عمري فوق ال٥٥ سنة ممكن تصبح مبرمج ؟
    وكيف متواصل معك. وسكرا. ابو محمد

  34. أنت انسان لا تستاهل الشكر فقط بل (بوسة شوارب) كمان. والله ردودك فقط فضل كبير علينا وذلك من تاريخ2016-2018الله يطول بعمرك…بس سؤال اللي بدو يمشي بشي ينفع شؤون دولته برمجيا+تحصين نفسه من القرصنة شو بتنصحوه أستاذ لو تتكرم برد

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

  35. مقال رائع..
    أنا عندي رغبة في التعلم أي تخصص من IT بس عندي تشتت في اختيار المجال. أتمنى أختار مجال أتفوق فيه. للعلم تخرجت IT بس من غير استفادة كل دراستي نظري.
    سؤال لحضرتك : أفضل دورات لشهادات دولية أستفيد منها فعليا ..

    1. بالنسبة لاختيار التخصص أنصحك بالاطلاع على تدوينة الدليل الشامل لتعلم البرمجة أما فيما يتعلق بالدورات فاطلع على أعلى 5 شهادات دخلاً..
      بإمكا الإطلاع ايضاً على تدوينة 100+ شهادة تقنية لاختراف 8 تخصصات حيث تجد فيها العديد من الشهادات الداعمة لمختلف المسارات.

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

    1. شكراً لثناءك أخي مبارك.
      جميع مناهج علوم الحاسب موجودة على الانترنت ويستطيع الناس دراستها في منازلهم. لذا لم نعد في وقتٍ نقولُ فيه أن الدراسةً يجبُ أن تتم في الجامعة. ولكن..
      دراسةُ مواد علوم الحاسب تجعلُ المبرمج أكثرَ فهماً لما يفعل، وهذا ما يجعلهُ أكثر تأهيلاً -أحياناً- للعمل على بعض المشاريع.
      في نفس الوقت، من الممكن دراسة البرمجة فقط والبدء بإنتاج البرامج دون دراسة بقية المواد.. خيارٌ متاح كذلك.

  37. السلام عليكم شكرا لك أخي على المعلومات القيمة وجزاك الله كل خير لأنك تساعد الناس
    سؤالي هو ما هي لغة البرمجة التي أحتاجها لإنشاء تطبيقات اندرويد و اي او إس
    وشكرا.

    1. وعليكم السلام أخي عبداللطيف،

      من احدى الخيارات المتاحة لتطوير الاندرويد لغة جافا، ومن احدى الخيارات المتاحة لتطوير ios لغة سويفت.

      توجد العديد من الخيارات الأخرى متضمنة البيئات الهجينة التي تنتج أندرويد و ios بعد عملية تطوير واحدة.

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

  39. جزاك الله خيراً أخي ، بعد اذنك انا هشتري لاب توب ، ايه الإمكانيات المناسبة لتعلم البرمجة بدون تهنيج الجهاز ؟

    1. وجزاك خيراً محمد.
      لست خبيراً في الأجهزة، ولكن يعتمد اختيار الحاسب على البرامج التي تحتاج لتشغيلها عليه. في حال أردت أن تقتني اليوم أعتقد أن حاسباً بمعالج core i7 مع ذاكرة 4 قيقا يكون أعلى بقليل مما تحتاجه للبدء بالبرمجة. مع العلم أنك تستطيع البدء في حاسب بانتيوم 4 🙂

  40. شكرا لك على هذا المقال الرائع ، أجده من أفضل الأساسات التي تستيطيع بناء نظرة شاملة و هادفة لتعلم أي شئ و ليس لغة البرمجمة فقط ، أخي الكريم أو أن أ طرح عليك سؤالين . 1- أن جديد فيمجال البرمجة بالتحديد لغة الجافا بما ذا تنصحني بعدما تعلمت الأساسيات ؟ 2- هل يوجد تمارين أو تطبيقات أو برامج تخرج المتعلم من عالم النظرية وفقط ..، علما أنني أتعلم لغة الجافا لوحدي من المنزل؟

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

  41. عندي سؤال هل استطيع تعلم البرمجة بدون ان ادرسها في الجامعة يعني تعلم فردي اونلاين ام انه يجب ان ادخل هذا التخصص في الجامعة

    1. مصادر التعلم المتوفرة على الانترنت كافية لتعلم البرمحة من المنزل بإذن الله. الإلتحاق بالجامعة ليس من أجل تعلم البرمجة وإنما من أجل تعلم علوم الحاسب. البرمجة إحدى هذه العلوم.

  42. السلام عليك أنا أدرس في الثانية باكالوريا و أنا الآن على ابواب الإمتحان انشاء الله.
    لكن هل يمكنني بعد اجتيازي لهذه السنة . دراسة البرمجة منفردة دون دراستها في إحدى الجامعات ؟؟

    1. ليس بالضرورة الإلتحاق بالجماعة لدراسة البرمجة “فقط”.
      بالإمكان دراستها في المعاهد أو حتى عبر الإنترنت أو بالتعلم الذاتي سواءً من كتب أو دورات.
      الجامعة لدراسة “علوم الحاسب” والبرمجة إحدى العلوم التي تُدرّس في الجامعة.

  43. جزاك الله خيرا اخي الكريم ورمضان مبارك وكل عام وانت بالف خير
    انا في المانيا واود ان اعرف ماهي لغة البرمجة الافضل المستخدمة في مثل هذه البلدان الصناعية وهل يمكنني تعلمها عن طريق التعلم الذاتي؟
    شكرا ودمتم بخير

    1. رمضانك مبارك أخي حسام ومرحباً بك في مدونة علوم،
      فيما يخص لغة البرمجة الأفضل أنصحك بالاطلاع على تدوينة الإجابة على أفضل لغات البرمجة| الجافا تتصدر الآن.
      التعلم الذاتي من الأساليب المتميزة في التعلم إذا ناسبتك، وبالإمكان تعلم البرمجة بالتعلم الذاتي إذا ناسبتك الطريقة.

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *