عيون العرب - ملتقى العالم العربي

العودة   عيون العرب - ملتقى العالم العربي > عيــون الأقسام العلمية > علوم و طبيعة > علم البرمجيات

Like Tree1Likes
  • 1 Post By DEMONOID-X
إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 05-25-2019, 06:29 PM
 
ذهبي تعلم البرمجة من الصفر: [الدليل الشامل] أهم 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. تأثير السوق على اختيار لغة البرمجة

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

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

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

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

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

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

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

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




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

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

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

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










يتبع To Be Continurd
Matthäus likes this.

التعديل الأخير تم بواسطة Matthäus ; 06-10-2019 الساعة 05:47 PM
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
كتاب تعلم لغة البرمجة c++ من الصفر إلى الإحتراف anas-helala تحميل كتب مجانية, مراجع للتحميل 6 01-28-2014 12:54 PM
تعلم البرمجة كما في شركات البرمجة radouane abbane أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 0 08-14-2013 12:55 PM
الدليل الشامل لتحميل حلقات ون بيس One Piece كامله ومترجمه بالجوده العاليه ( متجدد ) king_109066 أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 9 04-25-2012 11:41 AM


الساعة الآن 12:29 PM.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

شات الشلة
Powered by: vBulletin Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لعيون العرب
2003 - 2011