الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أي اللغات أتعلم هذه السؤال الذي يطرح ملايين المرات

مغلق
بدأه TarekNajem04 في 5 ديسمبر 2005 · 10 رد · 1,589 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كيف أقوم باختيار لغتي التي سوف أتعلمها

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

1- أساسيات علم البرمجة

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

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

جـ - طرق تخزين البيانات والتعامل معها Data Structure مثل الأشجار.

حـ - الخوارزميات لنستطيع كتابة برامج موثوقة أكثر مثل طرق البحث والترتيب.

خـ - الأساليب الحديثة لتصميم البرامج مثل Object Oriented لتصنيع برمجيات قابله للتعديل والتوسع مستقبلاً.

2- أساسيات لغات البرمجة

أ - إدارة الذاكرة: (تخزين وقراءة)

ب - أوامر شرطية: تنفيذ أجزاء من الكود إذا تحقق شرط معبن

جـ - الحلقات: تنفيذ لمقطع من الكود عدد من المرات إما معرف مسبقأ أو عند تحقيق شرط معين

ح- أستدعاء مقطع من الكود (Methods): مثلاً أكتب مقطع من الكود أطلق عليه أسم Print بمجرد ذكر الاسم ينفذ الكود المرتبط به.

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

VARIABLE A Type FLOATING_POINT

A = 100.10

IF A = 100 THEN SHOW_VALUE ( A )

VARIABLE  B Type FLOATING_POINT

COPY_MEMORY ( A, B )

لتحويل هذا الكود إلى الـ #C نكتب

float A = 100;

if(A == 100)
{
	MessageBox.Show(A.ToString());
}
float B = A;

لتحويل هذا الكود إلى الـ VB نكتب

Single A = 100;

If A = 100 Then

	MessageBox.Show(A.ToString());
End If

Single B = A;

ويجب تحديد أهداف برنامجنا وما هي التقنيات التي سوف تستخدمها وماهي أساليب التصميم التي تريدها فنحن نستطيع أن نتعامل مع الهارد وير في الـ VB ولكن بعد أن نقوم بالإحتيال عليه. أما لو كنا نعلم مسبقاً بأننا نريد أن نستخدم الهارد وير لكانت لغة ++C هي أسهل بالتعامل مع ما نريد.

ولربما قمنا باستخدام Object Oriented لتصميم برنامجنا فهل أذهب إلى VB6 لأصمم برنامجي فهذا ضرب من الجنون مع ما تقدمه هذه اللغة من تسهيلات لكنها لا تخدم هذا النوع من التصميم حتى جميع لغات الـ Dot Net لا نستطيع أن نقول عنها بأنها Object Oriented 100% هناك العديد من ميزات هذا التصميم غير موجوده في هذه اللغات مثل MultiInheritance و الـ Private Inheritance و الـ Friend Class

أتمنى أن أكون قد أوصلت لكم بعض الحلول لهذه المشكلة التي على ما أظن أنها لن تنتهي

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

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

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#2

قل لي ما هي طبيعة عملك و انا اقول لك ما هي (مجموعة اللغات) التي يجب عليك تعلمها

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

the programming languages are tools so let's use them like this فموضوع اللغة او اللغات التي يجب ان اتقنها تعتمد علي التخصص الذي اتمناه لنفسي و تذكر انك لن تستطيع الالمام بكل كبيرة و صغيرة في لغة ما لان اللغة غالبا ما تخدم اهدافا عامة و الباقي القليل يكون لغات متخصصة في شيء ما

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

يمكنك قراءة المقالة في توقيعي لمزيد من التوضيح

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#3

أنا أرى أن المبرمج يجب أن يتقن على الأقل 3 لغات... كل لغة من فرع برمجي...(انظر مقالة في المنتدى عن Programming Languages Paradigm....)

و أعتقد أنه يجب أن يعلم في فرعين مهمين وهما (Object Oriented and Procedural Oriented) فهما مهمان واتقان لغة من كل نوع شيء لابد منه

أما الاختيار الثالث فهو يرجع للشخص....

من أهم اللغات التي يجب على الجميع أن يعرف على الأقل شكلها و يفهم مبادئها هي "السي" وهو أساس لكثير من التطور الحالي ومكثت فطرة طويلة حتى الآن

ولأول مرة منذ سنين عديدة تقدمت عدد المشاريع المكتوبة بالجافا على المشاريع المكتوبة بالسي بفارق جدا بسيط في موقع "سورس فورج"....

أيضا يجب على المتعلم أن يعرف شيئين مهمين في عالم مابعد البرمجة البدائية وهما

كتابة برامج شبكية (Client Server Programming)

و

برامج سكريبتس (Scripting) الخاصة بالويب (كأن يعرف أي شيء من jsp asp php)

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

المسألة ليست صعبة وأنا لا أكبر المواضيع!!!

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

وللمعلومية لغة برمجة بدون علم و منطق لاتفيد....

لماذا تكون الليغو اللعبة الأكثر عبقرية في العالم؟

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

-----

وائل بن أحمد كابلي

مستشار تطوير برمجيات | مايكروسوفت للخدمات الاستشارية

MCSE | MCTS SharePoint Infrastructure | MCTS SharePoint - Development | MCP | MSF Essentials

http://blogs.msdn.com/wael

@waelkabli

#4

مشكورين على الرد ولكن أتمنى ولو تعودو لقراءة المشاركة الأوله مرى آخرى بتمعن

يا أخوتي أنا أرى وأنتم تروا ولكن ماهو الصح

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

إن خالفتك الرأي فليس رأيك هويتك ولن يفسد الأختلاف للود قضية

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

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

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#5

الحق يقال، والكلام جميل جداً.

وبما أن عنوان الموضوع "أي اللغات أتعلم" فأنا أجيب عليه بالطريقة التالية:

بما أنك تسأل هذا السؤال فهذا يعني أنك لست طالب علوم كمبيوتر ومعلوماتية، هذا الفرع أو الاختصاص من الجامعات الأكاديمية التي تفرض عليك منهاجاً يمنعك من طرح هذا السؤال. وأجيبك بأن أفضل لغة لهواة البرمجة الغير أكاديميون هي لغة VB ولا يهم 6 أو .NET فكلاهما سهل لدرجة أن هذه اللغة تعتبر من أسهل اللغات للتطوير على منصة ويندوز. بالإضافة إلى لغة Delfi والتي تعتبر اسبق من VB إلى التقدم، كما أنها تعتبر أكاديمية حيث هناك عدد من الجامعات التي باختصاص تدرس هذه اللغة أو سابقتها Pascal كمدخل إلى علوم الكمبيوتر والبرمجة، حتى ان لغة Pascal أصبحت تعتمد في كثير من الأحيان من أجل كتابة الخوارزميات في ما قبل اختيار لغة البرمجة التي ستكتب أخيراً بها.

أما إذا كنت يا أيها السائل، طالب علوم كمبيوتر ومعلوماتية، فكما قلت لك، لن تحتاج إلى طرح هذا السؤال حتى على نفسك. فأفضل الجامعات في هذا الاختصاص تدرس أولاً لغة C كمدخل لعلم البرمجة ومدخل أساسي للـ Procedural Programming، وما إن تتقدم وتصل إلى مرحلة البرمجة غرضية التوجه Object Oriented Programming سوف تجد نفسك تتعلم أفضل لغات البرمجة من هذه الناحية وهي لغة Java. كما أنك ما إن تصل إلى مادة الذكاء الاصطناعي حتى تجد نفسك تتعلم لغة جديدة في هذا المضمار. وبعد هذا كله، البرمجة برمتها ليست كل شيء، وما هي إلا مادة أو مقرر من المقررات المفروضة عليك في الجامعة، وهناك مواد أكثر أهمية منها بحسب اختصاصك !

ولكن هنا أود أن أستدرك وأسألك سؤال مقابل سؤالك. هل تسأل عن لغة برمجة لتطبيقات سطح المكتب أم لتطبيقات الإنترنت والويب، وإذا كانت للثانية فهل تقصد لغة برمجة من طرف الخادم Server Side Programming أم من طرف المتصفح Client Side Programming. لكل طرف من ذلك كله عدة خيارات، فماذا تريد؟؟

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

#6

مشكور على تفاعلك ولكن أتمنى ممن يريد أن يضع رد أن يقوم بقرائة المشاركات بشكل جيد

أي اللغات أتعلم هذه السؤال الذي يطرح ملايين المرات هكذا كان عنوان المشاركة

أتمنى لو تعاود قراءة عنوان المشاركة مع المشاركة

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

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

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#7

بإختصار شديد جدا و بعد مرور سريع على رد الإخوة ...

أطلب منهم العفو حين أقول "لا رد فيهم صحيح"

ماذا تتعلم وكيف تتعلم ؟

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

أنصحك بما فعل الخبراء معظمهم ..

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

إلى هنا جميل جدا .. لا تبدأ بواحدة منها و تجرب حظك و إن تعثرت تندب حظك ..

اقرأ القليل عن كل واحدة "قشور فقط" ثم خذ نظرة على الأكواد بكل واحدة ..

انظر من التي كانت أقرب ألى نفسك لان الراحة النفسية و تقبل الشيء هو أساس دوامه

مقياس مهم و الكثير يجهله :

ليس المهم أي اللغات تتقن و مدى درجة إتقانك لها ولكن المهم ماذا تنتج بها

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

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

-- قمت بتعديل المشاركة لإضافة التالي :

لا تتبع سياسة "من كل بستان زهرة"

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

أتمنى أن تكون فكرتي قد وصلك و حظا موفقا أخي لك

تم تعديل هذه المشاركة بواسطة محمد خليل أبو صلاح في 9 ديسمبر 2005 في 13:15

You can fly while you can touch the sky

#8

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

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

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

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

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

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#9

كلامكم جميل جدا ولكن...(دائما هناك لكن ;) )

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

وهي التي بنيت عليها اللغات...

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

ادرجة أني أحسست أنه لايقرأ الردود بشكل جيد...

أنا عندي شيء مهم أحب أن أبينه ألا وهو..

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

لا تتسرعوا...

مثلا أخونا صلاح قال " لايهم أي لغة" و أنا أقول "بل يهم" هل تستطيع يأخي أن تكتب برنامجا يعمل على الشبكات مثلا بالجافا أو البرولوج ؟؟!!!

طبعا لا لأن كل لغة لها مجالها التي يجب أن تستخدم فيه...

وهنا الآن مربط الفرس وهي النتائج التي أحب أن أقولها....

1. الجانب النظري جدا مهم وبدونه لن تستطيع أن تبرمج....

2.يجب أن يعرف المتعلم الللغات وحداثتها و يجب أن يعرف أنواعها Paradigms.

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

4.من أراد الكمال (وهو لله طبعا) يجب عليه أن يعرف لغة من مجموعة لكي يطبق جميع الأفكار والنظريات في علوم الحاسب الآلي.

إن التخصص شيء مهم ولكن المعرفة أهم

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

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

لماذا تكون الليغو اللعبة الأكثر عبقرية في العالم؟

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

-----

وائل بن أحمد كابلي

مستشار تطوير برمجيات | مايكروسوفت للخدمات الاستشارية

MCSE | MCTS SharePoint Infrastructure | MCTS SharePoint - Development | MCP | MSF Essentials

http://blogs.msdn.com/wael

@waelkabli

#10

مشكور أخ MEMONONO على التوضيح

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

هذا ماكنت أعنيه ولنا لقاء آخر يا أخ MEMONONO عن هندسة البرمجيات إلى ذلك اليوم أستودعك الله

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

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

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#11

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

1- :( من منكم يحب ويهوى علوم التفكير(رياضه \فيزياء)على غرار دراسته فى الثانويه العامه(علمى رياضه)فهو قادر على خوض البرمجه بنجاح ..............من غير ذلك(ليس عنده قدر كبير على الذكاء) فهو اقصى شىء عنده ممكن يقدمه سيكون فى vb لانها لاتحتاج لذكاء او مهاره برمجيه كتييير

2- :angry: اذا اصبحت قادر على خوض البرمجه .......حدد هدفك ونوعية البرامج التى تود ان تعمل عليها فيما بعد

3- ;) معظم او اكاد اقول ان معظم من اصبحوا مشاهير فى عالم البرمجه كانت خطوتهم الاولى هو تعلم السى او السى++

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

ولكن لا تيئس وصمم على ان تنهيها ولاتنسى التطبيق العملى فهو اهم شىء ..................

انصح بتعلم على الترتيب:

1-كتاب كويس فى تعليم السى++ مثل coplete reference in c++ او teach your self c++ in 21 days

2- اذا اردت تحترفها بقدر اكبر تعلمdata structure with c++ 3- اكبر واكبر databases with c++ n

3- لو تعلمت هؤلاء باتقان تاكد انك اصبحت على ارض صلبه فى البرمجه وتستطيع ان تخوض فيها بعد ذلك كما تشاء ولو احببت ان تتعلم اى شىء اخر تعلم السى شارب ولن تجد اى صعوبه فيها نهائيا

لان كما قلنا انك اصبحت مبرمج لك كيانك

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…