أنا في دورة CS.ما هو موضوع البرمجة الذي يجب أن أركز عليه؟[مغلق]

StackOverflow https://stackoverflow.com/questions/641553

  •  22-07-2019
  •  | 
  •  

سؤال

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

  • هياكل البيانات
  • خوارزميات
  • هندسة البرمجيات
  • جوانب منخفضة المستوى
  • أنماط التصميم وتحليل OO

[يحرر]

شكرا على الإجابات.أود تضمين موضوعات مهمة أخرى لتكون بمثابة مرجع للطلاب الآخرين:

  • البرمجة المتزامنة
  • أنظمة التشغيل

[/يحرر]

ملحوظة:أعتقد أن العنصر الأول في القائمة يجب أن يكون تعلم الإنجليزية

هل كانت مفيدة؟

المحلول

كل منهم.كل شيء في قائمتك مهم.

نصائح أخرى

أنا شخصياً سأدرس ما يلي:

  • لغة واحدة تشبه لغة C (C/C/C++/C#/Java)
  • لغة برمجة واحدة
  • لغة برمجة وظيفية واحدة
    • خاصة وأننا ننتقل إلى عالم متعدد النواة، سيكون هذا مفيدًا لأنه يسمح بالتوازي بما يتجاوز ما يمكن أن تفعله اللغة الأخرى حاليًا.يتم تشغيل البنى التحتية للاتصالات بالكامل على Erlang على سبيل المثال.
  • هياكل البيانات
    • سوف تستخدم هذه في كل مكان.إنهم لا يعرفون لغة البرمجة، وسوف تحتاج إليهم طوال حياتك المهنية
  • الخوارزميات
    • هذه على الأرجح سوف تذهب مع العنصر المذكور أعلاه.تحتوي بعض هياكل البيانات على خوارزميات معينة للوصول إليها.
  • أنماط التصميم
    • نعم، بالطبع تعلم أنماط التصميم المختلفة، لكن اعلم في نفس الوقت أنها ليست نهاية المطاف في هندسة البرمجيات.

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

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

قائمتك بأكملها مهمة جدًا؛الشيء الوحيد الذي أود إضافته هو دراسة متعمقة إلى حد ما لتعدد مؤشرات الترابط.وسوف تصبح أكثر وأكثر أهمية في المستقبل:(مقالة آرس تكنيكا)

يبدو من المناسب توصيل جويل هنا ;-)

http://www.joelonsoftware.com/articles/CollegeAdvice.html

كلها واجبة!!

بماذا تفكر؟توقعت أن تختار بين التركيز (على سبيل المثال، تصميم اللعبة مقابل الأمان والتشفير).

لا يمكنك الاختيار بين "الخوارزميات، OOP، هياكل البيانات، هندسة البرمجيات، وما إلى ذلك".هذه هي الأساسيات!عليك أن تتعلم كل منهم.

سأبدأ ببنيات البيانات والخوارزميات، دون أي منافسة هناك.التصميم OO مفيد.القليل من المستوى المنخفض، نعم.يمكن تخطي هندسة S/W (لا بأس بذلك مع حبة الملح).

بالإضافة إلى ذلك، إليك بعض الأفكار:

  • أساسيات قواعد البيانات العلائقية (ليس فقط "كيفية استخدام أوراكل"، ولكن الجبر العلائقي الفعلي)
  • أنظمة التشغيل
  • المترجمين + المترجمين الفوريين
  • شيء ما في الأشعة تحت الحمراء (/ الخوارزميات الجينية / الشبكات العصبية)

نعم، أنا متحيز تجاه أشياء CS "النواة الصلبة".العمل المزدحم والعمليات الثقيلة للغاية وغيرها من حماقات إدارة المشاريع التي ستتعلمها في الصناعة قريبًا بما فيه الكفاية، فلا حاجة لإضاعة مواردك التعليمية عليها.:-)

دعنا نرى..

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

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

جميع الأشياء التي ذكرتها هي مكونات أساسية لتعليم جيد لعلوم الكمبيوتر، على الرغم من أنه يجب عليك إضافة ما يلي:

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

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

  • الذكاء الاصطناعي
  • التشفير/الأمن
  • معالجة الصور/الإشارات/التعرف عليها
  • المجمعين
  • الرسومات
  • تصميم اللعبة
  • إلخ.

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

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

  1. خيوط متعددة وأنظمة موزعة.
  2. كيفية إنشاء تطبيقات سهلة الاستخدام باستخدام واجهة المستخدم الرسومية الرائعة.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top