كيف تنمو من طالب مهندس برمجيات؟

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

في هذه المقالة ، سأتحدث عن كيف نساعد في مركز تطوير سانت بطرسبرغ تقنيات Dell الطلاب على الاستعداد للتقدم الناجح على طول طريق مهندس البرمجيات.



التعليم ، أو أين وكيف تدرس؟


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

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

غالبًا ما يحدث أن تتم دراسة "البرمجة" بمعزل عن أجهزة الكمبيوتر ، ويتم تحويل بنية البرامج إلى دورات تدريبية عليا ، ولا يزعج أحد بالقدرة على قراءة المهمة الفنية. هناك بالطبع استثناءات ، على سبيل المثال ، دورة "البرمجة الصناعية في لغة C ++" ، التي يجريها زميلي إيه.في مارتينوف في بوليتكنيك سانت بطرسبرغ لعدة سنوات.



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

#include <iostream>

using namespace std;

extern void populate(int* data, unsigned long size);

const unsigned long ARRAY_SIZE = 2048 * 2048;

int d1 [ARRAY_SIZE];

long f1()
{
  populate(d1, ARRAY_SIZE);
  long ret = 0;
  for (unsigned long i = 0; i < ARRAY_SIZE; ++i) {
    ret += d1[i];
  }
  return ret;
}

long f2()
{
  int d2 [ARRAY_SIZE];
  populate(d2, ARRAY_SIZE);
  long ret = 0;
  for (unsigned long i = 0; i < ARRAY_SIZE; ++i) {
    ret += d2[i];
  }
  return ret;
}

int main()
{
  cout << f1() << endl;
  cout << f2() << endl;
  return 0;
}

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

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

وهذه المشاكل واضحة حتى في الجامعات التقنية الرائدة ، فماذا نقول عن الأقل "المروج"؟


يوم تقنيات Dell في مكتب مركز تطوير سانت بطرسبرغ

في المنتدى الأخير " Find IT"تم جذب عدد كبير بشكل غير متوقع من الطلاب إلى جناح Dell Technologies ، حيث أخبروا عن القصة التالية:" لم أحرز نقاطًا باهظة في امتحان الولاية الموحدة ، وكنت خائفة من المتطلبات العالية للجامعات للمتقدمين في تخصصات تكنولوجيا المعلومات ، وبالتالي ذهبت إلى Zaborostroitelny Institute N. وبحلول نهاية السنة الثانية ، أدركت فجأة أن بناء الأسوار ليس لي ، خذني إلى المبرمجين ". وهكذا ، فإن مؤامرة رواية "المهنة" التي أطلقها إسحاق أسيموف ، والتي نُشرت قبل أكثر من نصف قرن ، تم استنساخها حرفياً تقريباً. من منظور تلميذ حديث أو طالب مبتدئ ، فإن عالم المستقبل المُصوَّر يكاد يكون مثاليًا: ليس هناك حاجة لحضور الفصول الدراسية أو المحاضرات ، للقيام بالواجبات المنزلية. فقط في يوم معين تأتي إلى مركز التدريب ، في غضون دقائق ، يتم كتابة المعلومات من الناقل مباشرة إلى الدماغ (يطلق عليها "أشرطة التدريب" في القصة) ،ويمكنك الاسترخاء - اكتملت عملية التعلم.

جزء من قصة "المهنة"
– , , – . – . . , , , -. , . , , , , . ? , , - . .
– ? – . – , ? ?
– . - . . , , , , , . .
– ?
– , , , , , . , , . : « . , ». , : « , , ». , , , . , .

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

من جانبها ، يجب على الشركات المهتمة بتدفق الموظفين المؤهلين تحمل مسؤولية تدريب الطلاب. في الجزء الثاني من المقالة سأتحدث عن العديد من البرامج لدعم أطفال المدارس والطلاب في بناء مهنة مهنية في مجال تكنولوجيا المعلومات باستخدام مثال مركز سانت بطرسبرغ R&D Dell Technologies Center.

كيف يمكن للشركات "تزوير" الموظفين؟


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

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

يستمر البحث عن المهندسين المستقبليين الواعدين بين الطلاب الجدد. بالتعاون مع مؤسسة Leonard Euler ، في ست جامعات مدرجة في شبكة Dell Technologies التابعة (جامعة Polytechnic ، جامعة St. وفي السنة الثانية ، ستتاح الفرصة للزملاء للمشاركة في برنامج التوجيه. بالمناسبة ، نُشر مقال عن ذلك على هذه المدونة الإلكترونية عن حبري قبل عدة سنوات . يمكنني فقط أن أضيف أنه في صور السنوات الأخيرة ، يمكن رؤية نفس الوجوه مرة أخرى - فقد تخرج العديد من المتدربين لدينا بنجاح من الجامعة ، وأصبحوا موظفين في شركة Dell Technologies ، وعادوا الآن إلى برنامج التوجيه كموجهين ومعلمين ومنسقين.


, , .

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

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

مهندسو Dell Technologies الذين انضموا إلى فريقنا بعد مشروع طلابي مشترك: Anastasia Zinner و Nikita Tyukachev و Vladislav Alekseev

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

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

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

مؤلف المادة هو دنيس دوفجينكو ، كبير مهندسي البرمجيات.

All Articles