تم النشر منذ 10 Jan 2014 (معدل) بسم الله والحمد لله أكتب هذا المقال لكل طالب علم ومتعلم ، قد دخل عالم البرمجة أو يريد أن يدخله ولكنه تائه مشتت لا يعرف اين يسلك ولا إلى ين يسيرأكتبه مستفيدا من خبرتي ومستفيدا من خبرات السابقين في ميدان التعلم والتعليم والخبراء في البرمجة والتقنية والأساتذةوأحسب أن هذا المقال سيفيد ولو بالشيء القليل وإلا فلا أقل من أن يضعك على بداية الطريق ويكشفك لك عن سبله وطرائقه ولنبدأ في المقصود 1-استعن بالله ولا تعجز أول قواعد التعلم بل أول كل عمل أن تستعين بالله تعالى فهو المعين على كل علم وعمل ومن دونه فلا سبيل لك إلى الوصول ، قال النبي صلى الله عليه وسلم "استعن بالله ولا تعجز"2-كيف تختار لغة برمجيةهذا السؤال الذي ستجده في أكثر المنتديات وستجد الكثيرين قد قالوا فيه وفاضوا واختلفت أقوالهم فيه وتعصب كثير منهم إلى ما يراه هو صوابا ، وللأسف الشديد فهذا الخلاف جعل كثيرا من الشباب مشتتين حائرين ، ومن أجل ذلك سأخوض أنا في المسألة فلعل كلامي يزيح كثيرا من الحيرة عمن لم يضع قدمه في طريق البرمجة ولا يزال حائرافأقول اعلم أن لغة البرمجة وسيلة من الوسائل فكما أنك ستختار سيارة للوصول إلى مدينتك فكذلك ستختار لغة للوصول إلى هدفكفعلى أي أساس ستختار سيارة للوصول إلى مبتغاكستقول للمدن البعيدة سأختار السيارة الفارهة ولو كانت غاليةوللمدن القريبة سأختار السيارة العاديةوللمدن الضاربة في الصحراء سأختار سيارة ذات الدفع الرباعيفهكذا سيكون اختيارك للبرمجة أي هو مبني على الغاية التي تريدها ، ولديك أسس تبني عليها اختيارك سأذكرها فتابع معي:ما الهدف من لغات البرمجة؟جواب هذا السؤال سيضعك على أول الطريقللبرمجة مجالات كثيرة أهمها قسمان كبيران : سطح المكتب ويدخل فيه تطبيقات الألعاب والغرافيك ومضادات الطائرات عفوا الفيروسات :-) ، والويب ويدخل فيه تطبيقات المواقع الكبرىهذان القسمان هما الأكثر شيوعا والأكثر طلبا ومعنى ذلك أن للبرمجة مجالات أخرى مثل برمجة آلات التحكم الصناعي أو برمجة لغات برمجة جديدة ، أو برمجة الهواتف الذكيةفبناء على هذا الجواب اسأل نفسك ماذا تريدأكثر من يلجون عالم البرمجة يريدون التعلم من القسمين الكبيرين الأولين الويب وسطح المكتب ، أو الويب وحده أو سطح المكتب وحدهستجد في الويكي ومقالات الخبراء أي اللغات تصلح لما تريد الوصول إليه ومن نفسي أنا فإن الجافا تصلح للأمرين معا والأوبجكت باسكال وVB وCPP تصلح لسطح المكتب ، والجافا سكريبت والبي أتش بي تصلحان للويبما هي المنصة التي تستهدفها هل هي لينكس أم يونكس أم iOS أم أندرويد أم ويندوز أم ويندوز فونهذه أيضا احد الأسس التي تبني عليها اختيارك والفطن هو الذي يختار اللغة العابرة للمنصات ونعني بها أنك ستعمل بها في أي منصة اردتاللغات مثل CPP و JAVA و Object pascal و PYTHON تعمل على المنصات كلها فهي عابرة للمنصات ليس للقارات (-: إلا iOS فله لغته الخاصة Objective-C وللأندرويد الجافا ومؤخرا التحقت بها الأبجكت باسكالماهي اللغة الأسهل تعلما وكتابة؟من الاسس ايضا التي تختار بها لغتك سهولتها في التعلم ثم في البرمجة بها ، فإن عامل الوقت مهم في هذا الزمان والاسهل تعلما تكون أربح في الوقتويكاد يجمع الخبراء أن البايثون أسهل لغة تعلما وكتابة ثم تاتي من بعدها الأوبجكت باسكال ثم VB وفي الأخير CPPما هي اللغة الأسرع أداء ؟هذا أهم الأسس التي تذوب في سبيله الاسس الأخرى وأثقلها في الميزان ، وفي تحليله سنقسم لغات البرمجة إلى لغات تجميعية ولغات تفسيريةاللغات التجميعات التي تترجم إلى ملف ثانئي بلغة الآلة ثم عند التنفيذ يقوم المعالج برفع الملف إلى الذاكرة ثم قراءة وتنفيذه ، فبعد الترجمة لا يحتاج الملف الثانئي إلى مفسر أو مترجمواللغات التفسيرية هي التي تحتاج إلى مفسر لتنفيذها وهذه اللغات تحتاج إلى ترجمةٍ إلى ملف ثنائي كلما استدعينا الملف ونفذناهوكي يتضح الفرق الملف الناتج عن اللغة التجميعية ينفذ مباشرة بعد الضغط عليه مرتينوالملف الناتج عن اللغة التفسيرية يذهب إلى المفسر ثم من المفسر إلى التنفيذ بعد الضغط عليه مرتيناللغات جافا وباسكال وcpp هي لغات تجميعيةاللغات بايثون والروبي والبيرل هي لغات تفسيريةفارق الوقت الذي تستهلكه اللغات التفسيرية سيظهر في الملفات الكبيرة لذلك فخذه في الحسبانبقي أن نشير إلى أنه شاع كثيرا في أوساط المبرمجين أن الجافا اثقل أداء من اللغات الأخرى مع أنها لغة تجميعية فهذا الكلام كان صحيحا قبل سنين لما كان العتاد أضعف أداء وأقل مكانة ، أما الآن فمع اتساع سعة الذاكرة وسرعة المعالجات فلا فرق بينها وبين اللغات التجميعية الأخرىأقول هذا عن تجربة ، وغاية ما يعاب على الجافا استهلاكها للذاكرة ولكن ذلك من سوء استخدام المبرمج للكائنات والبرمجة بصفة عامة وهذا موضوع كبير ليس الآن وقت الكلام عنه.ابحث عن اللغة الأكثر طلبا في السوقنعم...لأن اللغة وسيلة ، وأكثر من يدخلها إنما يدخلها من أجل الرزق فلابد أن تختار اللغة الأكثر طلبا في بلدك الذي أنت فيه وهذا معيار مهم في اخيار اللغة إلا إذا كنت تريد التعلم من أجل إشباع الفضول فلا عليك من تجاوز هذا المعياربصفة عامة تعتبر الجافا وسي++ الأكثر طلبا في العالمابتعد عن اللغات المغلقة المصدرنعم ...لا سيما التي تملكها شركة الاحتكار ميكروسف مثل السي شارب والدوت نت وasp لأنك سوف تنغلق معها على منصتهاوسيفوتك الخير الكثير من اللغات المفتوحة المصدر وأعني بلغة مفتوحة المصدر أمرين اثنين الأول فتح مصدر مترجمها وفتح مصدر مكتباتها أشهر اللغات التي هي كذلك الس والسي++ والجافا والأوبجكت باسكال والبايثون وغيرهااللغات المفتوحة المصدر توفر لك بيئات تطويرية غنية مثل lazarus للأوبجكت باسكال و eclipse وnetbeans للجافاإن بيئات التطوير المفتوحة والمجانية ستوفر عليك المال والقرصنة المحرمة شرعا.اختر اللغة الأكثر دعما وشرحالأنك ستبدأ من الصفر فسيكون لك الكثير الكثير من الإشكالات والأسئلة وستحتاج إلى دورات وكتب في اللغة لزيادة التعلم والمعرفة والتمكن من أصول اللغة وفروعها والجافا والبايثون والسي++ تأتي في المركز الأول من حيث الدعم والشرح.هذه هي الأسس التي تبني عليها اختيارك وأظن نك لاحظت اللغة التي تكررت في أكثر الأسس فهي اخياري أنا وإن خالفني فيها كثيرون .واني اشدد عليك في التريث في الاختيار وسؤال اهل الاختصاص لا الهواة لانك ستمضي مع اللغة سنين لاحترافها ولا سبيل الى التغير التقلب لانه سيكون مضيعة للوقتوأحب أن أنبه إلى أنني متى ذكرت سي++ فأعني معها أمها السي 3-ابدأ بصغار العلم ثم كبارههذه إحدى القواعد التي تعلمتها في الصبا ، ومعنى ذلك أن لا تذهب إلى المطولات من الكتب والدورات وأنت لما تدرس اساسيات ذلك العلم، فمن أراد أن يدرس الجافا مثلا فليس من الصحيح أن يبدأ بتقنيات JSP وJSF و ADF بل لا بد من تعلم الاساسيات أولا ، وهذا أمر متفق عليه بين أهل العلوم كلها 4-خذ العلم من عند أهلهوهذه اخصر الطرق للوصول إلى الاحتراف في كل علم فإن المعلم يوفر عليك الكثير من الوقت ويوصلك إلى غايتك بأبسط السبل وأخصرهافإن لم تتمكن من الجلوس عند العالم أو المبرمج المحترف فالدورات العلمية السمعية المرئية قد ملئت الأنترنت ، فجلوسك أمام الحاسوب ومتابعة دورة علمية كالجلوس عند الأستاذ غير أنه لا يمكنك أن تسألهولكن احذر أن تأخذ من الدروس التي يقيمها هواة ومبتدئون وقد ملئت الشبكة ، فإنك لا تضمن أبدا ان لا يكون في شرحهم خطأ يلتصق بذاكرتك فلا يحذف أبدابل اسأل عن الاساتذة المشهورين والمواقع المشهورة في الدورات ، ثم تابع دروسهم ولا تأخذ عن كل من دب وهب 5-اسأل عن كل ما يشكل عليكقديما قالوا العلم كنوز والأسئلة مفاتيحها ، وصدقوا ، فلا تستحي أبدا أن تسأل من هو أعلم منك في المنتديات أو في شبكات التواصل أوفي البريد .6-داوم على طريقك التي اخترتهامن أكبر الأخطاء التي يقع فيه الشباب في هذا العصر بل يكاد يكون هذا داء عضال ما له دواء هو التشتت والقفز من علم إلى علم ومن لغة برمجية إلى أخرى ومن كتاب إلى كتاب ومن دورة إلى اخرى ،وهو مرض يصاب به أكثر الشبابوهذا الأمر مبني على أمر نحن مفطورون عليه ألا هو الملل ، لأن النفس من طبعها حب التجديد والتبديل ولا تحب أنفسنا أبدا المداومة على أمر والمواصلة عليه. فاحمل نفسك على الالتزام بما بدأت فيه وشدد عليها في البقاء على تلك الطريق واصرفها عن التفكير في التنقل والتبديل ، وقد قال النبي صلى الله عليه وسلم "أحب الأعمال إلى الله أدومها وإن قل" وقديما قالوا "قليل يدوم خير من كثير ينقطع"وكثير من الشباب يختار لغة برمجية ويمضي في دراستها زمنا ثم يسمع كلاما بأن لغة كذا وكذا أفضل من لغته فيترك تلك اللغة ويمضي للأخرى وهكذا شأنهفاعلم أن كل احد يغني لليلاه وكل يقول لغتي هي الأفضل فلو بقيت تسمع كلام هذا وذاك فلن تتعلم أبدا ، والصواب أن تثبت على ما تريد تعلمه ما دمت قد اخترته على أساس متين ثم لا حرج إن أتممت لغة وأتقنتها أن تنتقل إلى لغة أخرى7-اللغة الإنجليزية ضروريةإذا كنت تريد الذهاب بعيدا في لغات البرمجة فلا بد لك من اتقان اللغة الإنجليزية ، فالمراجع العربية لن تأخذك بعيدا فخذ من وقتك وتعلم هذه اللغة8-تعلم ومارس ما تتعلمهنعم لا يكفي أن تقرأ كتاب وتفهمه فلا بد من تطبيق ما تعلمته ، وصدقني بالممارسة سيظهر لك أخطاء ما كنت تظن أنها تقع ومنها تتعلم أشياء جديدةلاباس أن تشترك في مشاريع في المنتديات ولا بأس ان تشارك في مواقع المسابقات إذا وجدت نفسك قادرا على المشاركةسوف ترى كيف ستنمو قدراتك بتسارع كبيركتبه أحمد أبو عبد البر تم تعديل 10 Jan 2014 بواسطه أحمد أبو عبد البر 12 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 10 Jan 2014 بارك الله فيك استاذي الكريم احمد ابو عبد البر لقد وضعت يدك بالفعل على الجرح نصائح قيمة لمن فهمها و وعاها و عمل عليهازادك الله علما على علمك و ثبت اجرك 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 11 Jan 2014 موضوع اكثر من رائع و هو جميل و مفيد جداً للمبتدئين جزاك الله كل خير على هذا المجهود العظيم 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 11 Jan 2014 بارك االه فيك أخي موضوع قيم ومفيد جدا ويبدو أن الجافا والسي++ رددت كثيرا في موضوعك هل هذا لمكانتهم الكبيرة أو بالصدفة تم ذكرهم كمثال لأني الآن مبتدئ في لغة السي ++مشكور أخي 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 11 Jan 2014 سلام عليكمشكرا لكم جميعا @djwyلم تذكر تلك اللغات صدفة بل لأنها المسيطرة على على البرمجة في العالم 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 11 Jan 2014 خير الكلام ما لخص وقل ودلجزاك الله خيراتم التثبيت للاهمية والاستفادة 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 12 Jan 2014 اللغات جافا وباسكال وcpp هي لغات تجميعيةالملفات التنفيذية الناتجه من الجافا و باسكال لا يتم تنفيذها من خلال المعالج و لكن يتم تمريرها للـ byte-code interpreter و هذا موجود حتى يومنا هذا و هذا يجعلهم ابطء من لغات CLI و التى تنتج ملف تنفيذي به byte-code و عند تشيغله يتم تحويله للنسخه التنفيذية التى ينفذها المعالج و يتم إهمال الـ byte-code. لغة C++/C تنتج ملفات تنفيذية يتم تنفيذها من قبل المعالج مباشرة و الأهم من ذلك ان الملف التنفيذي لا يحتوى إلا على ما يتم تنفيذه من كود و data تم الرجوع لها من داخل البرنامج و هذا يجعل الملف التنفيذي الناتج منهم ذات احجم اصغر و الكود الناتج ذات فاعلية أكبر و هذا يأتى على حساب دعم الـ meta-data حيث إذا تم تفعيلها فهي ليست بغناء باقي اللغات الأخرى. طبعا الـ data المدمجه انا اقصد بها النصوص و ليس embedded resources حيث يتم الإبقاء عليها لأن المستخدم هو من حدد وضعها داخل الملف التنفيذي. نعم ...لا سيما التي تملكها شركة الاحتكار ميكروسف مثل السي شارب والدوت نت وasp لأنك سوف تنغلق معها على منصتهاالـ dotNet هى نسخة مايكروسوفت من CLI و هى Open Standard بقيود من مايكروسوفت و يعيب ذلك الـ Standard انه غير متاح لأى منظمة التطوير عليه إلا بالرجوع لمايكروسوفت أولا، و ذلك الـ standard تم إعتماده من ISO و EMCA. من ميكروسوفت لديك Rotor و هى منصة مفتوحة المصدر تطابق مواصفات CLI و ايضا لديك Mono و Protable.Net و أيضا يوجد CLI للـ microprocessors و هى ايضا مفتوحة المصدر و جميعهم ما عدا الأخيره يحتوى على كود مترجم #C مفتوح المصدر و يمكن ترجمته على منصتك (ماعدا Rotor فموجهه لمنصات محددة). و الله ولي التوفيق 7 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 13 Jan 2014 (معدل) الملفات التنفيذية الناتجه من الجافا و باسكال لا يتم تنفيذها من خلال المعالج و لكن يتم تمريرها للـ byte-code interpreterأخالفك الرأي في الباسكال وابنتها الأوبجكت باسكال ، الملف التنفيذي الناتج منها ينفذ مباشرة من قبل المعالج ولا تحتاج إلى اي وسيط ، أعمل عليها منذ زمن وكتبت بها مشارع وبرامج وأعرف ما أقولوأما الجافا فصحيح أنها تحتاج إلى وسيط لتنفيذ الملف الثنائي ولكن هي تخطت المرحلة التفسيرية ، بمعنى أننا عندما نشغل ملفا مترجما مسبقا للجافا فلا نحتاج إلى ترجمته مرة أخرى بل ينفذ في المعالج بواسطة آلة الجافاهذا ما كنت أشير إليه من الفرق بين اللغات التجميعية واللغات التفسيرية الـ dotNet هى نسخة مايكروسوفت من CLI و هى Open Standard بقيود من مايكروسوفت و..... إننا نعني بللغات المفتوحة المصدر هي التي ياتي مترجمها ومتكتباتها تحت رخصة من الرخص الحرة مثل GPL و Apache و LGPL و BSD وما أظن أن ميكروسفت قد تصدر شيئا من منتجاتها تحت إحدى هذه الرخص فقد تجد مطورين وضعوا مترجمات ومنصات للعمل متوافقة مع لغات مثل vb و c# ولكن هل ستجد المكتبات مفتوحة المصدر ، هل تقبل ميكروسفت أن تأخذ مكتباتها وتعدل عليها كما تشاء تم تعديل 13 Jan 2014 بواسطه أحمد أبو عبد البر 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 13 Jan 2014 أخالفك الرأي في الباسكال وابنتها الأوبجكت باسكال ، الملف التنفيذي الناتج منها ينفذ مباشرة من قبل المعالج ولا تحتاج إلى اي وسيطكلامك صحيح، معلوماتي هى القديمة. هذا ما كنت أشير إليه من الفرق بين اللغات التجميعية واللغات التفسيريةفهمت قصدك. و الله ولي التوفيق 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 28 Jan 2014 بارك الله بك اخى الفاضل 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 31 Jan 2014 جزاك الله خيرا و آجرك بكل حرف كتبتة !! في ميزانك حسنات تزيد ...أخيأحمد أبو عبد البراللغات الغير مجانية مثل c# وكل لغات منصة .net التابع لـMicrosoft حتي اقوم بتوطير تطبيق باستخدامها هل يلزم ان اقوم بالدفع للشركة مقابل كل برنامج اقوم بتطويرة ام انك تمتلك النسخة وتفعل بها ما تشاء .والامر الاخر هل يمكن البدء باكثر من لغة برمجة في ان واحد ام انه من الافضل وانت مبتدئ او حتي محترف ان توجه كل جهودك للغة واحدة .سؤال اخير -معليش حبيبي استحملني شوي- هل توجد لغه برمجة يمكن ان تجعلك تاخذ فكرة عامة عن كل المفاهيم في لغات البرمجه الاخري بحيث يصبح من السهل عليك تعلم اللغات الاخري بعد اتقانك لهذة اللغة ..جزاك الله خير وما التوفيق الا من عند الله .. 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 31 Jan 2014 جزاك الله خيرا و آجرك بكل حرف كتبتة !! في ميزانك حسنات تزيدآمين ولك مثل ذلك اللغات الغير مجانية مثل c# وكل لغات منصة .net التابع لـMicrosoft حتي اقوم بتوطير تطبيق باستخدامها هل يلزم ان اقوم بالدفع للشركة مقابل كل برنامج اقوم بتطويرة ام انك تمتلك النسخة وتفعل بها ما تشاء .البرنامج الناتج عن تلك اللغات تملكه أنت بكل الحقوق الفكرية ولا دخل لميكروسفت في ذلك ميكروسوفت لها الحق في محاكمتك إن استخدمت أحد منتوجاتها من غير ترخيص والامر الاخر هل يمكن البدء باكثر من لغة برمجة في ان واحد ام انه من الافضل وانت مبتدئ او حتي محترف ان توجه كل جهودك للغة واحدة .لا أحد من الخبراء سينصحك بتعلم أكثر من لغة في الوقت نفسه سؤال اخير -معليش حبيبي استحملني شوي- هل توجد لغه برمجة يمكن ان تجعلك تاخذ فكرة عامة عن كل المفاهيم في لغات البرمجه الاخري بحيث يصبح من السهل عليك تعلم اللغات الاخري بعد اتقانك لهذة اللغة ..لا مشكلة أخي إنما نحن مفيد ومستفيد والكل إخوة منذ سنين طوال كانت الباسكال هي اللغة التعليمة رقم 1 في العالم حتى ما تكاد تجد جامعة أو معهدا أو مدرسة إلا درستها طلابها ، هي أساسا أنشئت من أجل تعليم البرمجة ، لذلك فإن اخترتها فسيكون اختيارك موفقاوإلا فاتجه نحو البايثون فما اراها إلا الأنسب بالتوفيق 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 4 Feb 2014 الملفات التنفيذية الناتجه من الجافا و باسكال لا يتم تنفيذها من خلال المعالج و لكن يتم تمريرها للـ byte-code interpreter و هذا موجود حتى يومنا هذا و هذا يجعلهم ابطء من لغات CLI و التى تنتج ملف تنفيذي به byte-code و عند تشيغله يتم تحويله للنسخه التنفيذية التى ينفذها المعالج و يتم إهمال الـ byte-code. أعتقد أنك تصف في النقطة الأخيرة JIT - Just-in-time compilation وليس CLI، يحول البايت كود (وحتى اللغة التفسيرية) إلى تعليمات أسمبلي للمعالج لتسريع البرنامج، جافا تستخدمها. 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 10 May 2014 موضوعك رائع كمبتدئة الأفضل أتعلم الجافا مباشرة أو ابتدي بالبايثون ؟ 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 10 May 2014 موضوعك رائع كمبتدئة الأفضل أتعلم الجافا مباشرة أو ابتدي بالبايثون ؟لا باس بالبداية بالبايثون ثم الانتقال إلى الجافا ...سيكون الأمر أسهل وأفضل 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه