الحيرة قتلتني، ساعدوني من خبرتكم

الذي مر عليه اسمي في Arabia IO ربما لاحظ أني دائماً أتردد بين لغات البرمجة، فتارة أود أن أتعلم الجافا. وتارة سي شارب، وتارة أخرى PHP.

لم أتخلص من هذه الحيرة منذ سنوات. فبدأت وتعلمت شيئا من ASP.NET ثم توقفت.. بدأت وتعلمت شيئا من PHP ثم توقفت... بدأت وتعلمت شيئا من Java ثم توقفت.

ولا أعلم السبب...

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

فكيف أختار اللغة الأنسب وكيف لا احتار؟

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

11

بالنسبة لي عندما ركزت على ASP.Net و #C و MS SQL Server و XAML كان لسبب واحدة أنا أتبناه منذ زمن وهو التكاملية

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

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

فتحتاج إلى متابعة وترقية من قبل الجميع للوصول إلى التوافقية والتكاملية التامة

هذا المعيار اعتمدته حتى في التصميم

فقد كنت من مستخدمي الكوريل درو لمدة ربما امتدت لثمان سنوات وفجأة غيرت إلى الإليستريتور فتعلمتها وأتقنها وتركت الكوريل نهائيا

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

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

ولكوني أستخدم فوتوشوب وأكروبات فقررت التحول من فرد غريب إلى فرد من العائلة ألا وهو الإليستريتور ليلحقه فيما بعد الإنديزاين

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

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

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

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

ليس هذا فحسب فإعلانها عن النظام الجديد الموحد Windows 10 تحت شعار عائلة منتج واحدة ، منصة واحدة ، ستور واحد

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

لم أرغب أن أقدم لك نصيحة لأني لاحظت أنك كلما تلقيت نصائح أكثر ازدادت حيرتك أكثر

لهذا فقد قدمت لك تجربتي علها تكون ملهماً من واقع حي .

وفقك الله لما فيه الخير لك و للأمة وللناس أجمعين

أوافقك الرأي أخي عبدالرحمن

ولكن أنا لاحظت مشكلة في عائلة الويندوز، فمثلا كان هناك سابقا ASP.NET Web Forms ثم ظهرت MVC، وكان هناك Windows Forms، ثم ظهرت WPF. فأنت تقع بنفس المشكلة تقريبا، تحتاج إلى تحديث على الاقل معلوماتك إلى شي جديد، ومشكلة مايكروسوفت كل فترة تظهر شيء جديد بعدما تكون انت قد سهرت ليالي في تعلم أشياء سابقة! .. أليس كذلك؟

هذا طبيعي وهنا يأتي دورك لتتميز عن الآخرين بأنك متابع للتطورات بينما يكون الآخرين لا زالوا على التقنيات القديمة

أي أنه دائماً لديك فرصة أن تتقدم عن الآخرين

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

أنا لا أتردد لحظة واحدة في الانتقال لأي تفنية جديدة ومعتمدة

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

اليوم أعمل على مشروع موقع ويب لمنتج خاص بنا أنا و شريكي ، بقيت يومين أجرب حيث أني نويت فتح المشروع بآحدث شيء وهو ASP.Net بـ vNext إلا أنني بعد مراجعتي للآراء اقتنعت أنها لا زالت في مرحلة التطوير ومن الأفضل أن لا أعتمدها الآن فرجعت للاصدار الخامس كونه أحدث شيء مستقر

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

مرحبا خالد، هناك سر سوف اخبرك به.

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

فأنت عندما تسمع مصطلح MVC مثلاً. يقول لك احد المبرمجين ان البرامج المتطورة لابد ان تستخدم نظام MVC او Framework معين. فتجد صعوبة لأنك لم تطور مشروع بعد، وتريد تطوير مشروع ما، وتريده على أكمل وجه لذلك تعتقد انك لابد ان تتعلم MVC وفريم ورك ولا تدري ما الافضل. لاسيما لغات البرمجة كثيرة هناك من يقول لك PHP افضل من ASP الى آخره. فيجب أن تحتار. وليس هناك غرابة في أن تحتار بل هو الانطباع الطبيعي.

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

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

أرجوا لك التوفيق

كيف ستعرف اللغة المناسبة ان كنت لاتعلم ماهو المشروع اصلاً!

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

حدد مشروعك واهدافك في الاول ثم في "مرحلة التنفيذ" اسئل نفسك ماهي اللغة التي تخدمني؟

خالد، هذا رأيي الخاص و قد يفيدك.

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

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

من خصائص اختيار لغة : السرعة، أسلوب البرمجة ،المكتبات المتوفرة، و المجتمع المحيط بها.

خلاصة : ابدأ بأي لغة للتعلم. على حد علمي أفضل اللغات لتعلم : PHP، Python, Ruby, JavaScript

كما أنصحك بتتبع كل ما هو مفتوح المصدر سواءا لغة، برنامج أو مكتبة فهدا ما سيفيدك أكثر.

موفق عزيزي

أظن أني أفهم المشكل الذي تعاني منه بشكل عميق. نتيجة خرجت بها بعد مرور خمس سنين من الدراسة في الجامعة، كنت فيها أتعلم أي لغة برمجة، مكتبات برمجية أو تكنولوجيا جديدة. كنت أنتقل من مجال إلى مجال. فتارة في تطبيقات مكتبية (desktop apps) وأخرى مع عنكبوتية (web apps)، مع الألعاب وكيفية تصميمها. العمل على الشبكات ومحاولة الإبداع فيها. تطوير برامج إختراق بإستعمال لغات لم يسمع بها. تعلم البرمجة الأدبية (Literate programming) وغيرها من الأمور. ولكن مع مرور الوقت بدأت النزعة التملكية تذهب وعرفت حدودي.

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

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

أرجو أن أكون أفدتك

طيب ما هدفك الأساسي من التعلم ؟

العمل ؟

أم حب لمسألة البرمجة

أم لبرمجة تطبيق او موقع معين ؟

أم تريد تطوير مشروع معين ؟ و ما هي الوظائف الأساسبة التي تريد أن يوفرها المشروع ؟

و هل لغتك الانجليزية قوية و يمكنك التعلم و القراءة بلغات غير العربية ؟

الاجابة على مثل هذه الاسئلة ربما تساعدك على اختيار طريقك

فكل لغة لها ميزات و عيوب

اختر اللغة التي تناسبك

لغتي الانجليزية قوية

أريد تطوير مشروع لكن لم تتضح لي فكرته و ليس ببالي بلاتفورم معين، فلا أعلم ان كان سيكون للجوال او ويب مثلا، فأنا في حيره.

اولا اعرف كم شغله

ماهو المشروع وكيف يشتغل

على الاجهزة أو الجوالات

او الويب

لو عرفت فكرة المشروع قطعت نصف المسافه

يعني لو كان موقع فتعلم php واحترفها مع لغات هيكليه وتجميليه مثل css + java +jquery

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

لو كان تطبيق عالجوال ولكنه يحتاج لسيرفر ويحتاج php فتعلم لغة الجافا

انت من يحدد ماهو المشروع

واختصر على نفسك المشوار وانظر اكثر شي تميل اليه

يعني اللغه اللي تتعلمها بسرعه استمر بها الى ان تحترفها ومن ثم طور نفسك بلغة اخرى

السلام عليكم

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

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

اخى اولاً انا لست مبرمج

.

ركز على تعلم اقل الغات اولاً مثل HTML ثم CSS . ...الخ

.

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

.

اتمنى لك التوفيق والنجاح ان شاء الله

HTML وCSS ليستا بلغتين برمجيتين.

فاهم اخى

ولكنة تلخبطت

ان اقصد انهم اول شئ يتعلمة المبرمجين

يتعلمه "مطوري المواقع" البرمجة الفعلية اعمق من هذا ياعزيزي

شكراً لك استاذى على المعلومة

اولا ارمي كل ما تريد ان تتعلمه واجعل عقلك نظيف

اسأل نفسك : ماذا اريد ان ابتكر او ان اصنع ماذا اريد ان اضيف للعالم

لو مثلاً قلت اريد ان اصمم مثلا تطبيق

للــ iphone

اذا سوف اتعلم

objective c لغة

وسوف اتعلم هذه اللغة الي ان اصبح محترف

تري اليس الامر بسيط جدا

والشيء المميز في هذه الطريقة هو انك لن تنسى ما تعلمتة

اخي نصيحة لك

كن بسيط بقدر ماتستطيع

وانصحك بمشاهدة فلم

steve jobs

Jobs

2013 Film

ما رأيك بسويفت؟ ولماذا لم تذكرها؟

تم التعديل على المشاركة

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

ملاحضة : العديد من الشباب الان يقول ان لغة c لم تعد معتمدة , تجاهل يا اخي هدا الكلام وركز عليها لانها بسيطة طبعاا .

ولاتنسى اللغات الحديثة , بنيت على لغة c

شكرا اتمنى ان اكون افدتك ولو بشي بسيط

بالتوفيق لك عزيزي . تجياتي :)

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

سؤالي لك ماذا تريد أن تبني ؟

انا عن نفسي كنت مثلك ... كنت اريد بناء موقع تعلمت html +css+js , وعندما كنت اريد ان اتعلم بناء سكربت تعلمت php , وعندما اردت بناء محرك بحث تعلمت java + python , وعندما اردت بناء متصفح ويب تعلمت c++ و c# وقمت بالتعديل على متصفح كروميوم ... وانتهاء المطاف بي أني قد بنيت متصفح كامل من الصفر ..... ومع هذا لم أحصل على شهادة جامعيه أو خبره كل مأ هناك أنه عندما تعجبني فكره ابحث عن اللغة واتعلم كيف اصنع مثل هذه الفكره .. واعيد تكراراها حتى أكون جيداً بها ... فقط هذا ماحصل معي ولكن سـ/أكرر السؤال

ماذا تريد ان تبني ؟

بعد ان تعرف ماذا تريد وما هدفك ورؤيتك:

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

عزيزي ، عليك اولاً ان تعرف ما تود فعله ...

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

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

قرر شيئاً فشيئاً ماذا تصنع ، وكيف ...

وبذلك تصل إلي ما تهدف ...

ماذا عن بايثون؟ ماذا عن إطار django ؟ طيب في php ما هي أطر الويب التي جربتها؟ هل جربت إطار yii في php ؟ ماذا عن سكالا ؟ ماذا عن node.js و socket.io ؟

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