مهنة مبرمج. الفصل 2

استمرار القصة "" مهنة المبرمج "".

كان العام 2001. العام الذي تم فيه إصدار أروع نظام تشغيل - Windows XP. متى ظهر rsdn.ru؟ سنة ميلاد C# و.NET Framework. السنة الأولى من الألفية. وعام من النمو الهائل في قوة الأجهزة الجديدة: Pentium IV، ذاكرة وصول عشوائي سعة 256 ميجابايت.

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


في ذلك الصيف، قبل الذهاب إلى الكلية، بدأت في دراسة جميع التقنيات الممكنة التي تم نشرها في المجلة "الهاكر". قرأته وأعدت قراءته إلى أجزاء. لقد أحببت بشكل خاص المقابلات مع المتسللين الحقيقيين ونصائحهم.
كان معظم المتسللين الرائعين يعملون على Linux. وكان مازدا (ويندوز) لأعرج. كل من قرأ المجلة يتذكر أسلوب المشاركات فيها. لذلك، في ذهني الهش، تقاتلت فكرتان فيما بينهما - ترك Windows أو البقاء هادئًا والتمسك بنظام Linux تمامًا.
أعطاني كل عدد جديد من مجلة Hacker سببًا جديدًا لتهيئة القرص وتثبيت Linux Red Hat 7 أو Windows Me. بالطبع، لم يكن لدي أي ناقل تدريبي، وقمت بتنفيذ ما قرأته في المجلات أو على الأقراص المضغوطة المقرصنة مثل "أسرار الهاكرز". تم أيضًا مسح تثبيت نظامي تشغيل متوازيين، بعد حشو جديد بروح "Windows XP المعروف أيضًا باسم الببغاء - وهذا مخصص لربات البيوت. وإذا كنت تريد القيام بأشياء جدية، فعليك العمل من وحدة تحكم Linux وأعينك مغلقة. بالطبع، أردت اختراق الأنظمة، وفهم كيفية عمل الشبكة، وأن أكون المجهول القوي في ذلك الوقت.

تمت تهيئة القرص دون أي ندم، وتم تثبيت مجموعة توزيع لنظام يشبه Unix عليه. نعم نعم. قرأت ذات مرة مقابلة مع متسلل حقيقي يستخدم FreeBSD 4.3 فقط من وحدة التحكم. وفي الوقت نفسه، كان مسؤولاً عن اختراق البنوك والأنظمة الحكومية. لقد كانت ضربة خاطفة للرأس، وقمت بتثبيت BSD OS كنظام رئيسي 5 مرات. كانت المشكلة أنه بعد التثبيت، لم يكن هناك أي شيء باستثناء وحدة التحكم العارية. حتى الصوت. ومن أجل تثبيت KDE2 وتشغيل الصوت، كان من الضروري الرقص كثيرًا باستخدام الدف، وتصحيح العديد من التكوينات.

مهنة مبرمج. الفصل 2
توزيع FreeBSD 4.3 هو نظام التشغيل الأكثر اختراقًا

عن الأدب

بمجرد أن حصلت على جهاز كمبيوتر، بدأت في شراء كتب عن البرمجة. الأول كان دليلاً لـ "Turbo Pascal 7.0". وهذا ليس مفاجئًا، لأنني كنت أعرف القليل من لغة باسكال من خلال دورات البرمجة، ويمكنني مواصلة التعلم بمفردي. كانت المشكلة أن الهاكرز لا يكتبون بلغة باسكال. ثم كانت لغة Perl رائجة، أو بالنسبة للأشخاص الرائعين، كانت لغة C/C++. على الأقل هذا ما كتبوه في المجلة. وأول كتاب قرأته حتى النهاية كان "لغة البرمجة C" - بقلم كيرنيغان وريتشي. بالمناسبة، لقد درست في بيئة لينكس
واستخدمت محرر gcc وKDE المدمج لكتابة الكود.

بعد هذا الكتاب، تم شراء موسوعة UNIX. كان وزنها 3 كيلوجرامات، وتم طباعتها على صفحات مقاس A3.
على الجانب الأمامي من الكتاب، كان هناك رسم كامل لشيطان كرتوني يحمل مذراة، وقد تكلف بعد ذلك 125 هريفنيا في أوكرانيا (أي حوالي 25 دولارًا في عام 2001). لشراء الكتاب، اقترضت المال من صديق في المدرسة، وقام والداي بإضافة الباقي. بعد ذلك، بدأت بحماس في دراسة أوامر Unix، ومحرر vim وemacs، وبنية نظام الملفات، ودواخل ملفات التكوين. لقد التهمت ما يقرب من 700 صفحة من الموسوعة وأصبحت على بعد خطوة واحدة من حلمي - أن أصبح كول هاتزكر.

مهنة مبرمج. الفصل 2
موسوعة UNIX - من أوائل الكتب التي قرأتها

لقد أنفقت كل الأموال التي قدمها لي أجدادي ووالداي المحبون على الكتب. الكتاب التالي كان C++ في 21 يومًا. كان العنوان جذابًا جدًا، ولهذا السبب لم أنظر إلى كتب أخرى ذات جودة أعلى. على الرغم من ذلك، تم نسخ جميع المصادر من الكتاب في هذه الفترة البالغة 3 أسابيع تقريبًا، وقد فهمت بالفعل شيئًا ما في لغة C++. على الرغم من أنني ربما لم أفهم المزيد مما هو مكتوب في هذه القوائم. ولكن كان هناك تقدم.

إذا سألتني عن الكتاب الذي أثر أكثر في مسيرتك المهنية، فسأجيب دون تردد - "فن البرمجة" - د.كنوث. لقد كانت عملية تجديد للدماغ. لا أستطيع أن أخبرك بالضبط كيف وصل هذا الكتاب إلى يدي، لكن كان له التأثير الأكبر على مسيرتي المهنية المستقبلية.

مهنة مبرمج. الفصل 2
فن البرمجة - يجب قراءته

اشتريت الكتب بشكل رئيسي من سوق الراديو الذي كان مفتوحًا أيام الأحد فقط. بعد أن وفرت بضع عشرات أخرى من الهريفنيا على وجبة الإفطار، قررت شراء كتاب جديد عن لغة C++ أو ربما عن لغة Perl. كان الاختيار كبيرًا جدًا، لكن لم يكن لدي مرشد، لذلك درست كل شيء. طلبت من البائع أن يوصيني بشيء يتعلق بالبرمجة. وعلى ما أذكر، فقد أخذ "فن البرمجة" من الرف. المجلد الأول". من الواضح أن الكتاب قد تم استخدامه بالفعل. كانت زوايا الغلاف مثنية، وكان هناك خدش كبير ظاهر على الظهر، وهو بالضبط المكان الذي ترك فيه بيل جيتس مراجعته: "إذا قرأت هذا الكتاب، فيجب عليك بالتأكيد أن ترسل لي سيرتك الذاتية،" موقعة منه. كنت أعرف عن جيتس من خلال المجلات، واعتقدت أنه سيكون من الجيد أن أرسل له سيرته الذاتية، على الرغم من أن جميع المتسللين كانوا ينتقدونه. تكلفة الكتاب 72 غريفنا. (١٥ دولارًا)، وهرعت بسرعة إلى المنزل بالترام لدراسة مواد جديدة.

ما مدى عمق الأشياء التي قرأتها، بالطبع، لم أتمكن من فهمها عندما كنت في الخامسة عشرة من عمري. لكنني حاولت جاهداً إكمال كل تمرين. بمجرد أن تمكنت من حل مشكلة بدرجة صعوبة تبلغ 15 أو 25 بشكل صحيح. كان ذلك فصلاً عن الاستقراء الرياضي. على الرغم من أنني لم أحب الرياضيات المدرسية ولم أفهمها جيدًا، إلا أنني كنت مخطئًا. تحليل كنوث - جلست لساعات.
بعد ذلك، في الفصل الثاني كانت هناك هياكل البيانات. هذه الصور وصور القوائم المرتبطة والأشجار الثنائية والمكدسات وقوائم الانتظار لا تزال أمام عيني. خلال مسيرتي المهنية التي استمرت 12 عامًا في مجال التطوير التجاري، استخدمت معظم لغات الأغراض العامة.
هذه هي C/C++، C#، Java، Python، JavaScript، Delphi. وبغض النظر عن اسم اللغة، فإن مكتبتها القياسية تحتوي على هياكل البيانات والخوارزميات التي وصفها دونالد كنوث في كتابه المكون من ثلاثة مجلدات. ولذلك فإن تعلم شيء جديد لا يستغرق الكثير من الوقت.

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

الكتاب التالي الذي كان له تأثير قوي علي كان "كتاب التنين". وهو أيضًا "المترجمون: المبادئ والتقنيات والأدوات" - A. Aho، R. Seti. وقد سبقها هربرت شيلتد، الذي كان لديه مهام متقدمة في لغة C++. هذا هو المكان الذي اجتمعت فيه النقاط.
بفضل شيلدت، تعلمت كتابة المحللين والمترجمين الفوريين. ثم دفعني كتاب التنين إلى كتابة مترجم C++ الخاص بي.

مهنة مبرمج. الفصل 2
كتاب التنين

بحلول ذلك الوقت، كنت قد حصلت على اتصال بالإنترنت عبر المودم، وقضيت الكثير من الوقت على الموقع الأكثر شعبية للمبرمجين - rsdn.ru. هيمنت لغة C++ هناك ويمكن لكل محترف الإجابة على الأسئلة التي لم أتمكن من التعامل معها. لقد آلمني ذلك، وفهمت
أنني بعيد كل البعد عن هؤلاء الملتحين، لذا أحتاج إلى دراسة الدواخل لمزايا "من وإلى". قادني هذا الدافع إلى أول مشروع جدي لي، وهو المترجم الخاص بي لمعيار C++‎ لعام 1998. يمكنك العثور على تاريخ ومصادر أكثر تفصيلاً في هذا المنشور habr.com/ar/post/322656.

المدرسة أو التعليم الذاتي

ولكن دعونا نعود إلى الواقع خارج IDE. على الرغم من أنني بحلول ذلك الوقت كنت أبتعد بشكل متزايد عن الحياة الواقعية وأغمر نفسي في الحياة الافتراضية، إلا أن عمري والمعايير المقبولة عمومًا أجبرتني على الذهاب إلى الكلية. لقد كان تعذيبًا حقيقيًا. لم يكن لدي أي فكرة على الإطلاق عما كنت أفعله في هذه المؤسسة ولماذا كنت أستمع إلى هذه المعلومات. كانت لدي أولويات مختلفة تمامًا في رأسي. تعلم Visual Studio 6.0، ومحاولة استخدام WinApi وDelphi 6.
موقع رائع firststeps.ru سمح لي بالابتهاج في كل خطوة أخطوها رغم أنني لم أفهم الصورة العامة. على سبيل المثال، في نفس التكنولوجيا MFC أو ActiveX.
ماذا عن الكلية؟ كان مضيعة للوقت. بشكل عام إذا تطرقنا إلى موضوع الدراسة فقد درست بشكل سيء. حتى الصف السادس، كنت طالبًا ممتازًا، ثم حصلت على درجات C، وبحلول الصف الثامن إلى التاسع، غالبًا ما كنت أتغيب عن الفصول الدراسية، والتي تلقيت بسببها أحزمة وهمية من والدي.
لذلك، عندما جئت إلى الكلية، كان هناك أيضًا القليل من الحماس.
- أين البرمجة؟ سألت نفسي سؤالا. لكنه لم يكن هناك في النصف الأول من العام. ولكن كانت هناك علوم الكمبيوتر مع MS-DOS وOffice، بالإضافة إلى مواد التعليم العام.

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

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

ودون أن أترك أفكاري تتجول، تركت المدرسة أيضًا. المكان الذي شعرت فيه بالراحة كان أمام شاشة الكمبيوتر، وباب غرفتي مغلقًا. كان الأمر منطقيًا وشعرت بشكل حدسي أنني كنت أفعل الشيء الصحيح. وهذه المدرسة نشاط لا فائدة منه، وحتى لتحمل هذه التهكمات التي أصبحت كل يوم أكثر تطوراً... خلاص، لقد اكتفيت.
وبعد صراع آخر في الفصل، حيث كنت أؤدي الدور القيادي، تركت المدرسة ولم أذهب إلى هناك مرة أخرى أبدًا.
جلست في المنزل لمدة ثلاثة أشهر تقريبًا، وأقضي وقت فراغي في تعلم C++/WinAPI/MFC وrsdn.ru.
في النهاية، لم يتحمل مدير المدرسة الأمر واتصل بالمنزل.
- "دينيس، هل تفكر في الدراسة؟ أم ستغادر؟ يقرر. لن يتركك أحد في طي النسيان." - قال المدير
"سأغادر" أجبت بثقة.

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

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

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

المصدر: www.habr.com

إضافة تعليق