هناك مبرمج نصحني بالبداية بتعلم software engineering
ليكون لدي اساس صحيح في البرمجه
ثم اذا اردت ان اتخصص في مجال معين سيكون سهلا
ولتعلم software engineering يجب تعلم:-
C programming
++C
Data structure
Algorithms
Oop
هل هذا صحيح ؟؟؟
الأمر سوف يكون مُرهق بالنسبة لك بحسب خبرتي البسيطة في الأمر، برأيي قم بالنظر في المجال الذي تُريد التخصص به، ومن ثم ابدأ به فورًا، دون البدء بـ C programming, ++C, Data structure, Algorithms, Oop.... نصيحته صحيحة، ولا غُبار عليها، ولكني اعتبرها مضيعة للوقت لأنّ الـ C++ تحتاج إلى وقت ومجهود، وتعلم الخوارزميات أيضًا .. إلخ، كل هذه الأمور تحتاج إلى وقت في تعلمها بشكل جيد...
لذلك في حال اردت التخصص بمجال معين، وعلى سبيل المثال تطبيقات اندرويد فـ ابدأ بالكوتلن /الجافا ... إلخ، بما معناه البدء بلغات البرمجة الخاصة بهذه المجال، ومن بعدها يُمكن التطور شيئًا، فشيئًا، وتعلم هذه الامور لزيادة الخبرة...
والقاعدة الأولى، والأساسية لتعلّم أي شيء ستنفق عليه وقت ومجهود: هل له سوق حالي او سوق ناشئ؟ .. فيما يخص الفرص... الأمر لا علاقة له لا بميولك ولا تفضيلاتك، وإنما بمستوى المردود المتوقّع حصولك عليه بعد إهدار وقتك وطاقتك في تعلّمه.
لذلك ما هو التخصص /المجال الذي تُريد البدء به؟ حتى نستطيع افادتك أكثر!
نصيحة المبرمج المذكورة صحيحة، وهي الطريقة المثلى برأيي (عدا أنّي لا أنصح بتعلم C/C++ للمبتدئين بالبرمجة). ولكن سيصيبك الضّجر والملل إن بدأت مشوارك في تعلم البرمجة بتعلّم الخوارزميات وقواعد البيانات والمعلومات النّظرية الأخرى دون تطبيق عمليّ ترى نتيجته بعينك.
أنصحك بتعلّم كلا الجانب النظري/التقني جنباً على جنب مع الجانب العملي لكي لا تصاب بالملل، بالنّسبة للغة البرمجة أنصحك أن تبدأ بلغة بسيطة مثل بايثون (Python) فهي مناسبة للمبتدئين وواسعة التطبيقات كما أنّها تركّز على منطق البرمجة دون القلق عن حجم الذّاكرة وتخزين البيانات وأنواعها.
انتقالاً إلى الخوارزميات، كبداية أعتقد أن خوارزميات البحث والترتيب البسيطة كافية إلى حدٍّ ما. أما بالنسبة لقواعد البيانات، فقم بالاطّلاع على قواعد البيانات البسيطة والأساسيّة، مثل: المكدّس، الرّتل، القوائم المتّصلة، المصفوفات أحادية وثنائية البعد.
إن كانت لغتك الإنجليزيّة جيّدة فأنصحك بمشاهدة المحاضرتين التّاليتين من جامعة هارفارد:
المحاضرات طويلة بعض الوقت، ولكنّها شاملة ومسليّة!
أخيراً، لا تقلق كثيراً بشأن التّفاصيل التقنيّة، ستتعلّم عنها خلال مشوارك بالتدريج. وكما قال الأخ منير قم بتحديد الاختصاص الذي تريد البدء به لكي تستطيع معرفة أين ستتوجّه تالياً.
بالتوفيق!
في بداية الأمر يجب عليك تحديد المسار و التخصص الذي تريد الخوض فيه .. على سبيل المثال مطور تطبيقات الهاتف
بعد ذلك نبدأ بالقراءة عن هذا التخصص و الإطلاع فقط، بدون أي ممارسة عملية .. الهدف هنا هو معرفة التخصص بشكل عام و هل سيناسب قدراتنا أم لا.
بعد ذلك نبدأ بالبحث عن مصدر يشرح لنا عن هذا التخصص من البداية و هنا يجب التركيز جيدًا و التطبيق العملي، حيث أن هذه الفترة جدًا مهمة في تأسيسك لما هو قادم من تحديات و ممارسة على مستوى أكبر من ذلك.
بعد الإنتهاء من المصدر الأول في التعلم(سواء كان كتاب أو دورة تدريبية مصورة ) يجب عليك البدء بتطبيق ما تعملته على شكل أعمال بسطية تجمع جميع ما تعلمته، الهدف هنا هو التدرب على بناء المشاريع بشكل متكامل بالإضافة إلى أنه يومًا ما ستكون هذه الأعمال سبب في حصولك على أعمال.
بعد أن نكون قد تعلمنا الأساسيات في هذا التخصص، نبدأ بتطوير أنفسنا و البحث عن دورات و مصادر لشرح ذلك التخصص بشكل أعمق و أكثر إحترافية، من ثم التطبيق من ثم بناء الأعمال بشكل أكثر إحترافية.
هكذا نكون قد تعملنا بطريقة صحيحة و حافظنا على المتابعة و الممارسة للغة بشكل دوري مع بناء الأعمال الخاصة فينا، و سنجد أنفسنا أننا قادرين على التقديم على أعمال لإنجازها.
التعليقات