
يبدو أن الجميع استمتع
بالحلقة التجريبية ، وما زلنا على يقين من أن الأشخاص "وراء الكواليس" يمكن أن يكونوا مثيرين مثل مشاهير تكنولوجيا المعلومات الذين نعرفهم ونحبهم جميعًا. وربما أكثر من ذلك ، لأنهم يتحدثون عن مشاكل حقيقية وحلول حقيقية. قمنا هذا الأسبوع بطرح 10 أسئلة على شخص يقف وراء تطوير Yandex.Maps لنظام التشغيل iOS.
نيكولاي ليخوغرود ( likhogrud ) من موسكو. بدأت البرمجة في الصف التاسع من HTML و Basic. ثم علم نفسه C # ، وتخرج من جامعة موسكو الحكومية بدرجة تكنولوجيا المعلومات وانتهى به الأمر في فريق Any Void. انتقل معهم إلى Yandex ، حيث أمضى 2.5 عامًا الماضية كرئيس لفريق تطوير Yandex.Maps iOS.1. أخبرني عن ميزة نشرتها تجعلك فخورة حقًا.
- نحن بحاجة إلى التمييز بين ميزات الفريق وخصائصي الشخصية. أكثر ما أتذكره هو أنني منذ 1.5 عام قمت شخصياً بتخفيض وقت إطلاق التطبيق إلى النصف وأخبرت زملائي به. اكتشف بعض ميزات iOS التي لم يتم توثيقها في أي مكان. نظرًا لأن Swift (لغة البرمجة التي تستخدمها iOS) تقوم بسحب الكثير من المكتبات الديناميكية معها ، كانت هناك مشكلة صغيرة. احتاجت كل مكتبة إلى توقيعها الرقمي ليتم التحقق منه عند الإطلاق ، مما يؤدي إلى إبطاء كل شيء. لذلك ساعد عملي المستخدمين حقًا. ألقيت حتى
خطاب في موبيوس حول هذا الموضوع.
عندما يتعلق الأمر بتطوير الفريق ، فإن "Maps" هو مشروع ضخم يحتوي على الكثير من الميزات المختلفة. أنا لم أر أي شيء مثل ذلك من قبل. إذا كنت جالسًا بالفعل وحفر فيه ، يمكنني إظهار بعض الميزات التي ربما لا يدركها أحد - هناك الكثير من الأشياء هناك! كل إصدار جديد نفعل شيئًا رائعًا للغاية ، وأنا فخور جدًا بكل هذا. حاليًا انتهينا من تلميع البيانات التاريخية للبحث وتخطيط المسار والتركيز على الميزات التي تخبرك بمكانك. نحن نسميها "الدليل السياحي للمدينة". إنها أداة مفيدة وأكثر من مجرد مواد ترفيهية. واحدة من الميزات الكبيرة هي الواقع المعزز في الخرائط. لقد فعلنا ذلك بسرعة غير معتادة: لقد نجح الأمر كثيرًا من البداية ، حاول أولاً. حتى تمكنت من الوصول إلى الموعد النهائي قبل إطلاق iOS 11 ، قبل الفرق الأخرى. كان رائعا حقا.
لا يوجد شيء خاص - فقط دونات المتداول على طول النهر2. قل لي الآن عن أسوأ fuckup الخاص بك.
- أوه ، كان هناك واحد. كان الأمر في البداية ، عندما انضممت للتو إلى فريق Maps: كان الأمر غير معروف بالنسبة لي ، كان الفريق السابق خارج السيطرة تمامًا ولم يكن هناك أحد للتحقق مني. ومرة واحدة قمت بطريق الخطأ DDoSed خوادم الترميز الجغرافي لأنني نسيت إجراء اختبار في مكان ما. بعد قيام المستخدم بعمل شيء ما مع التطبيق ، أرسل الهاتف طلبًا إلى الخادم في كل مرة يتم فيها تحديث الموقع الجغرافي ، وأرجع الخادم البيانات المتعلقة بمكان المستخدم. بحد أقصى 10 مرات في الثانية. وبالنظر إلى عدد المستخدمين الذين لدينا ، حتى إذا تفاعل كل مستخدم بين 100 أو 1000 مع هذه الميزة ، فقد واجه الخادم حقًا في التغلب عليه.
كانت تلك لحظة نادرة خرجت من فريق الخرائط ، سألني أشخاص من الفرق الأخرى: "ماذا فعلت!". ولكن ، لحسن الحظ ، قمنا بإصلاح المشكلة بسرعة كبيرة - تم عمل نسخة احتياطية للخادم في وقت قصير جدًا. لقد وجدنا الحجم الكبير الذي تم إصلاحه سريعًا وأرسلنا إصلاحًا عاجلاً إلى Apple (على الرغم من أن مراجعة متجر التطبيقات استغرقت أسبوعًا تقريبًا). أصبح من الأسهل الآن اكتشاف ذلك ، وبعد ذلك كنت غاضبًا من نفسي: كيف يمكنني أن أستيقظ بشدة بعد الانضمام إلى الفريق؟ لكن الجميع أدركوا أن المشروع كان كبيرًا ، ولم يكن هناك أحد للتشاور معه ...
3. صف مكان عملك: من كرسي المكتب والشاشة إلى بيئات التطوير المفضلة والمرافق المفضلة.
- كرسي ومكتب لم أختر: ما أعطته لي الشركة. على ذلك هناك شاشة Thunderbolt و MacBook ، بالإضافة إلى لوحة مفاتيح لاسلكية وماوس حتى أتمكن من وضع الكمبيوتر المحمول جانباً.

يتم تناثر المكتب بأوراق مع أفكاري وخططهم. ما زلت لا أستطيع إحضار نفسي للتبديل إلى شيء تقدمي: لا يهم تريللو أو دابولسي. لم يكن أي منها موجودًا عند انضمامي ، وما زلت تفضل الورق. بالتأكيد ، أنا أيضًا أدون ملاحظات على الكمبيوتر المحمول ، لكن لا يزال من دواعي سروري أن أكتب شيئًا ثم اضغط عليه لاحقًا. هناك الكثير من الأشياء الأخرى على المكتب أيضًا والتي أقوم بتنظيفها بشكل دوري. هناك أيضًا بعض طوب Lego للراحة. أحاول بوعي جعل مساحة العمل الخاصة بي أشعر وكأنني في المنزل ، وأحيانًا أنظر إلى طاولات زملائي في العمل ، حيث لا يوجد شيء سوى جهاز كمبيوتر محمول وجهاز عرض ، وأعتقد أنه لا يمكنني العيش بهذه الطريقة.
4. كيف تختار الوظيفة؟ كومة ، المنتج ، ظروف المعيشة ، المال؟
- ربما أجيب إذا كان السؤال "إذا كنت أختار ...". أنا أساسا لم تحول وظائف مرة واحدة حتى الآن. أنا في السنة السادسة في ياندكس ولا أستطيع أن أتخيل نفسي في أي مكان آخر. لديّ منصب كبير ، فريق ، مسؤوليات ، الكثير من الفرص الوظيفية.
لذا ، إذا اخترت مكان العمل ، فمن المحتمل أن أنظر إلى الفريق أولاً. أحتاج إلى معرفة الأشخاص الذين سأعمل معهم قبل اتخاذ هذا النوع من القرار. إذا كنت تعرفهم ، فربما تعرف أيضًا المشروع الذي ستعمل عليه. إذا تم إنجاز ذلك الشخص ، فيمكنك أن تتأكد من أنه لديه بعض المشاريع الرائعة أيضًا. من المهم أن تعرف الأشخاص الآخرين وأن تدع الآخرين يعرفونك. لا يمكنك عزل نفسك والدخول في المجهول. حتى المهام تعتمد بشكل كبير على الناس. إذا كانت الشركة في غير محله توظيفهم الجديد ، فإنه سرعان ما تصبح غير مهتم.
تعتبر مسألة المال مهمة أيضًا ، ولكنها هي نفسها في كل مكان. لقد أجريت الكثير من المقابلات وأعرف ما يتم تقديمه عادةً في شركات أخرى.
5. ما الذي تريد إصلاحه في التقنيات واللغات التي تستخدمها؟
- أستطيع أن أخبرك عن الألم الذي يعاني منه كل مطور لنظام iOS. مترجم سويفت غير مروّع بشكل فظيع ، بيئة التطوير ليست مصقولة أيضًا. مشاريعنا التي يبلغ طولها 400 ألف خط تتخلف عن الجنون. الفهرسة بطيئة مثل الدبس ، يفتح كل ملف عدة دقائق ، ويمكن للمشروع التهيئة لمدة ساعة. التحويل البرمجي ليس أسرع ، ويستهلك أيضًا الكثير من طاقة المعالجة.
مهمتنا تعتمد على مدى سرعة Xcode في تجميع الأشياء. إنه يعمل مع Objective-C على ما يرام ، ولكن هناك خطأ في Swift. إذا كان العمل أسرع قليلاً ، لما اضطررنا إلى تقطيع المشروع إلى وحدات ، ولكن كان علينا الاستثمار فيه. حاليًا نقوم بتطوير المزيد ضمن مشاريع الاختبار وليس التطبيق الرئيسي نفسه ، ثم نقله مرة أخرى. على الرغم من أنه نجح في النهاية في مشروعنا ، فقد استغرق الأمر بعض الوقت والوقت لتعلم كيفية العمل بهذه الطريقة.
6. أين هو أفضل مكان لتبادل الخبرة في العمل - هل هي الكلية ، والمؤتمرات ، هبر؟ في أي مكان آخر غير ذلك؟
- الطريقة الأكثر فاعلية هي وجود مشكلة محددة والبحث عن حل لها. "اكتساب الخبرة" هو مصطلح واسع للغاية ، ولكن "البحث عن حل" هو الأنسب. ما عليك سوى كتابة سؤالك في Google وإلقاء نظرة على ما يعطيك.
عادة ما أذهب إلى الاتفاقيات لا لاكتساب الخبرة ، ولكن لمشاركة بلدي. لدي بعض الخبرة في الحفاظ على مشروع كبير ، وهذا يهم الناس. هناك عدد قليل جدًا من المشاريع مثل مشروعنا في روسيا ، لذا فإن تجربتنا فريدة من نوعها إلى حد ما. لقد سُئلت كيف قسمت التطبيق إلى وحدات ، وما شكل مراجعة الكود ، وكيف يعمل
CI الخاص بك.
7. بالنظر إلى الموارد غير المحدودة (الوقت ، المال ، الأشخاص) ، ما هو المشروع الذي ترغب في العمل عليه؟
- لدي قائمة طويلة إلى حد ما من "تريد أن تفعل ، لا تملك الوقت" على ما أنوي القيام به في الخرائط. هناك أشياء تحتاج إلى تحسين.
لكن بشكل عام ، أود الدخول في صناعة الفضاء. أنا مفتون بفكرة رجل خارج الأرض ، واستكشاف الكون. في كل مرة يكون هناك أخبار حول التقدم العلمي في هذا المجال ، أشعر بالحماس. على الرغم من أن تطوير نظام التشغيل iOS قد لا يكون ضروريًا هناك ، إلا أنني أستطيع أن أتناسب مع مهارات إدارة فريقي. الجحيم ، حتى أحصل على القهوة للناس إذا كانت الفكرة صحيحة.
8. كيف الاسترخاء؟ ماذا تفعل في الحياة ، إلى جانب العمل؟
- يحتاج الجميع إلى "إعادة التشغيل" في بعض الأحيان. اخترع جدول 5 + 2 من قبل بعض الأشخاص الأذكياء للغاية. إذا كنت منخرطًا حقًا في مشروع ، مهتمًا بنجاحه كثيرًا ، فأنت على استعداد للعمل في عطلات نهاية الأسبوع بشأنه ، فلن ينتهي الأمر جيدًا. ستفقد شرارك ، ويجب الحفاظ عليه بأي ثمن إذا كنت ترغب في العمل لعدة أشهر أو سنوات.
عادة ما أفعل شيئًا بسيطًا في عطلات نهاية الأسبوع: المشي ومشاهدة التلفاز ولا شيء مفرط. على الرغم من أنني ربما كنت أرغب في ذلك ، فقط لا يوجد لديك أي شخص للقيام بذلك. كان فريقنا يتجول مرتين في نهر فيازما ، كان رائعًا. في بعض الأحيان نذهب paintballing. لكن هذا ليس شيئًا نذهب إليه بانتظام ، لأنه يستنزفك بسرعة. من المؤكد أنك تتبادل ذلك مع العواطف ، ولكن ... العمل لمدة خمسة أيام ، ثم تقضي يومين في فعل شيء ما بدنيًا مكثفًا ، ثم العمل لمدة خمسة أيام مرة أخرى؟ ربما لن أدار.
كما أنني أحب قضاء الوقت في ترميم منزلي. تتم بعض الإصلاحات بسرعة ، والبعض الآخر يستمر إلى الأبد. إنه عالمها الصغير الخاص مع التقنيات والخبرات الخاصة بها.
9. أخبرني عن كتبك الثلاثة المفضلة: العلوم التربوية والشعبية والخيالية.
- لم تكن لديّ تجارب إيجابية مع الكتب التعليمية - ربما لم أقرأ واحدة عن عملي. ربما فقط في البداية ، درست لغة C ++ على الكتب. أتذكر الذهاب إلى معسكر للأطفال في الهواء الطلق ، وكان الجميع من حولي يحملون كتبًا عادية وكان لديّ C ++. انتهى بي الأمر بعدم قراءة الكثير لأنني لم يكن معي كمبيوتر. قرأت ذلك وأتفهم في الغالب ، ولكن الآن لتطبيق كل شيء على احتياجاتي؟ كيف تكتسب الخبرة؟ أنا أكثر من شخص ممارس أكثر من شخص نظري. ربما لا أعرف بعض المصطلحات الرائعة التي يستخدمها زملائي بانتظام ، لكنني على الأقل أعرف كيفية إنجاز الأمور. لقد تعلمت ذلك ببساطة عن طريق حل المشكلات المعقدة والبحث عن حلول على الإنترنت.
بالنسبة للأشخاص الذين يركزون على المدونات والأدب الذكي ، لا يمكنني إلا أن أقول إن لا شيء تقرأه أو تراه يضمن لك إمكانية تكرار ذلك بنفسك. احتفظ دائمًا بأهدافك في الاعتبار واستكمل القراءة بالممارسة.
ويكيبيديا تحل محل العلوم الشعبية بالنسبة لي. قرأت عن كل شيء. يعجبني التاريخ حقًا ، ويمكنني أن أقرأ من حين لآخر كامل السلالة الروسية الحاكمة: من رورجيك إلى إيفان الرهيب ، من أول رومانوف إلى ثورة أكتوبر - ثم القفز على رابط عن الإسكندر الأكبر. يمكنني قضاء 2-3 ساعات هناك بالكاد لاحظت ذلك. هناك بعض المقالات المثيرة حول الأسلحة والحدادة والأشياء. لسوء الحظ ، لا يمكنني تكرارها ، لكن من الرائع أن أتخيل كيف توصل الناس في البداية إلى هذه الأفكار.
أنا لا أقرأ كتبًا خيالية كثيرًا حاليًا. لقد تم استبدالهم بالكامل تقريبًا بالأفلام. إنهم يخدمون نفس الغرض ، لكن الأفلام أكثر إحكاما. لكنني سأذكر كتابًا تمسك به حقًا - "Oblomov". لقد لمست عصبي بطريقة لم يفعلها كتاب آخر.
10. إذا أصبح نظام الذكاء الاصطناعي فجأة واعيًا أمامك ، فماذا ستقول له؟
- أولاً ، أود أن أسأل: ماذا يعني "الواعي"؟ إذا كان هذا يعني ببساطة اجتياز اختبار تورينج ، فهو ليس ضميرًا بعد. لكن إذا لم نصل إلى التفاصيل ، فقد أطلبها لحل بعض المشكلات المحددة. أنا شخص ممارس ، بعد كل شيء. لذلك ، "كيفية جعل Xcode أسرع؟"
ولكن لا يزال عليك أن تبدأ بـ "مرحبًا ، كيف حالك؟". الإجابة على هذا النوع من الأسئلة يمكن أن تخبرنا كثيرًا عن الذكاء الاصطناعي. كيف يمكن للآلة تقييم حالتها المزاجية؟ ماذا تفعل؟
سؤال من ضيف سابق: ما هي التكنولوجيا التي كانت أكثر متعة للتعلم؟
- "المرح" على وجه التحديد؟ لم أتعلم المرح من التعلم أو العمل حتى الآن. لقد تعلمت أن أعتبر الأمر بهدوء وأفعله جيدًا. على سبيل المثال ، لم يكن لدي الكثير من المرح في تعلم iOS SDK ، لأنه بسيط إلى حد ما إذا كنت تعرف الأساسيات.
حيث استمتعت حقًا بالجامعة ، حيث عملت في مشروع ينفذ التعليم الآلي. كان من المنعش أن ندرك أنه لا يوجد حقًا أي شيء يصعب على ML. إذا كنت تعرف معلمات الإدخال ، فيمكنك التنبؤ بالنتيجة بدقة إلى حد ما. ربما يفسر ذلك السبب في أنني لست مفتونًا بالذكاء الاصطناعي كما يبدو أن أي شخص آخر - أعلم أنها مجرد خوارزميات.
أيضا ، لقد استمتعت بالعمل مع المجمعين الذين لديهم مؤشرات ترابط تلقائية. إنها تقنية متطورة إلى حد ما ، ولديها الكثير من الأشياء للتعلم. إنهم أذكياء حقًا ويفعلون أكثر بكثير مما تتخيل. على سبيل المثال ، تحويلات شجرة بناء الجملة معقدة بشكل لا يصدق. أو تحسين إنشاء التعليمات البرمجية لأجهزة معينة وتكوين وحدة المعالجة المركزية.
من الرائع أن يكون لدينا إطار عمل مفتوح المصدر لذلك ،
LLVM ، حتى تتمكن من إنشاء برنامج التحويل البرمجي الخاص بك. هل يمكن أن تجعل لغتك الخاصة! اكتب parcer لأنه يقوم بتحليل lexis و بناء الجملة ، ثم استخدم قوة المترجم الحديث لتحويله إلى كود الآلة.
المكافأة: اسأل مطور آخر عن أي شيء تريده
- هل ستنضم إلى أول رحلة مأهولة إلى المريخ ، مع العلم أنك لن تعود؟