خارطةُ الطَّريقِ لتصبحَ... الحاسوبَ!


(زِيَادٌ الْعُتَيْبِيُّ) #1

بِسْمِ اللهِ الرَّحْمَنِ الرَّحيمِ

إنَّ الحمدَ للهِ؛ نحمدهُ ونستعينُهُ ونستغفرُهُ، ونعوذُ باللهِ مِنْ شرورِ أنفسنَا، ومِنْ سيئاتِ أعمالنَا، مَنْ يهدهِ اللهُ فلاَ مضلَّ لَهُ، ومَنْ يضلِلْ فلاَ هاديَ لَهُ، وأشهدُ أنَّ لاَ إلهَ إلاَّ اللهُ وحدهُ لاَ شريكَ لَهُ؛ وأشهدُ أنَّ محمدًا عبدُهُ ورسولُهُ.

أمَّا بعدُ:

فقدْ شرعْتُ منذُو ما يقاربُ السَّنةَ؛ بالخوضِ في مطالعةِ علومِ الحاسوبِ ، وقراءةُ اﻵراءِ، والتَّجاربِ المتعلقةُ بهَا. فخرجت بخارطة أظنها غطت قدرًا لا يستهانُ بهِ، ولا أنسبْ الفضلَ فيهِ لنفسي بلِّ الفضلُ يعودُ لأصحابهِ الَّذينَ أظهروهُ. وقمتُ بجمعِهَا وتقسيمِهَا على عدَّةِ مستوياتٍ في كلٍّ منهَا عدَّةُ مواضيعٍ بِحُسْبَةِ البابِ فيهَا - ولمْ أبوبْ تحتهَا شيئًا - وأشرْتُ بكلِّ بابٍ بكتابٍ يغطي علمَهُ - راجع قسم الملاحظات -. سأرفقُ الملفَ لاحقًا - مكتوبٌ بلغةِ markdown - ، ليسهلَ عليكَ قراءتهُ على متصفحكَ لاحقا. كمثلِ هذا:

Roadmap to become… The Computer!

Level 1

  • Learn the basics of a programming language
    • Principles and Practice Using C++ by Stroustrup
    • C++ Primer by Lippman, Lajoie, and Moo (after the one above it)
  • Master precalculus

Level 2

  • Learn data structures and basics of algorithms and practice implementing them
  • Learn matrix algebra and calculus
  • Improve your problem-solving skills by learning one or more sciences including
    physics

Level 3

  • Learn about computer hardware
  • Learn system programming
  • Learn mathematical reasoning: sets, logic, and proofs
  • Learn vector calculus and DEs

Level 4

  • Learn probability and statistics
  • Learn algorithm design and basic analysis and study the common algorithms
  • Learn about operating systems
  • Learn graph theory, combinatorics, mathematical logic, and number theory

Level 5

  • Learn parallel programming and distributed computing
  • Learn databases
  • Learn networking
  • Learn about the theory of computation: formal languages, computability
    theory, and complexity theory
  • Learn advanced mathematics: analysis, algebra
  • Learn numerical analysis

Level 6

  • Learn about compilers
  • Learn about programming language theory
  • Learn about cryptography and computer security
  • Learn mathematical optimization: linear programming, convex optimization,
    nonlinear optimization
  • Learn about computer graphics
  • Learn about information theory and data compression
  • Learn about AI, machine learning, and computer vision
  • Study advanced algorithm analysis and analytical combinatorics

Level 7

  • Study best software engineering practices and practice working on large
    software projects
  • Continue lifelong learning and do not be afraid to branch out your studies
    into new subjects

https://pastebin.com/yZamSrJx

ملاحظاتٌ مهمةٌ

  • الخارطةُ متعلقةٌ تعلقُا كاملاً بالرياضياتِ
  • الخارطةُ لا تلزمْ القارئَ أن يتقنَ جميع اﻷبواب؛ بلْ أن يعييَ اﻷساسياتَ وينظرَ في أمرهِ أينَ يريد.
  • اﻷبوابُ لم أبوبْ أسفلهَا! فلا تصدمْ إذا رأيْتَ تحتَ كلِّ بابٍ أبوابٌ كثيرةٌ.

إسهاماتٌ

  • كمَا هو ملاحظٌ هناكَ شحٌ في المصادرِ، فلمْ أرفقْ إلاَّ كتابين فقطْ! فمن كانَ عندَهُ الدرايةُ في موضوعٍ ما؛ فساهمْ في فذكرهِ مرجوءً، ولا يخرجَ عن هذه اﻷمور:
    • إضافةُ كتابٍ أمرٌ أساسيٌّ
    • فرعيٌّ: دورةٌ ، وثيقةٌ… وهلمَّ جرًأ
  • مَنْ بدَا لهُ أنَّ هناكَ أبوابٌ مهمةٌ لمْ تذكرْ ، أو توسعةٌ بِزيادةِ مستوى جديدٌ فلاَ يبخلْ علينَا بهِ

الخاتمةُ

سأحاولُ إنْ شَاءَ اللَّهُ أنْ انتهيَ مِنْهَا قبلَ حلولِ السَّنةِ القادمةِ… فحاليًا لا أجدُ وقتًا لأكملهَا عوضًا عَنْ أنْ أكتبَ سطرًا برمجيًا :smirk:

فأطمعُ والطمعُ كبيرٌ ، أنْ ينهيهَ رجلٌ خبيرٌ ، ومَنْ أرادَ المدادَ يجدهُ في الدواةِ :rofl:

اللهُ المستعانُ وعليهِ التكلان.


(رشيد قائد الوصابي) #2

جهد جميل، لكن في الرابط التالي ستجد أشخاص قاموا بنفس العمل.


(زِيَادٌ الْعُتَيْبِيُّ) #3

جزاكَ اللهُ خيرًا. أرحتني عناءَ البحثِ عن الدوراتِ :+1: