Bagaimana cara tumbuh dari seorang mahasiswa menjadi seorang insinyur perangkat lunak?

Halo! Nama saya Denis Dovzhenko, dan selama beberapa tahun saya telah melakukan wawancara teknis dengan kandidat untuk posisi insinyur perangkat lunak C / C ++. Jika percakapan utama dengan kandidat untuk posisi Senior SW Engineer dan di atas adalah tentang pengalaman kerja, maka pemilihan magang dan junior masa depan didasarkan pada pengetahuan yang diperoleh di universitas dan kemampuan untuk memecahkan masalah akademik pada tingkat yang sama. Di sinilah ternyata bahkan di universitas-universitas teknis terkemuka mereka mengajar "bukan itu" dan "tidak begitu." Dan akan menyenangkan untuk mulai mempersiapkan transisi dari negara siswa ke negara insinyur hampir sejak hari-hari pertama pelatihan.

Dalam artikel ini, saya akan berbicara tentang bagaimana kami di Pusat Pengembangan Saint-Petersburg, Dell Technologies, membantu siswa mempersiapkan diri untuk kemajuan yang berhasil di sepanjang jalur seorang insinyur perangkat lunak.



Pendidikan, atau Di mana dan bagaimana belajar?


Di sekolah, kita terbiasa dengan kenyataan bahwa setiap tugas memiliki satu-satunya solusi yang tepat. Pada akhir program sarjana, beberapa siswa merasa bahwa itu mungkin bukan satu-satunya, tetapi kriteria untuk memilih solusi yang paling cocok untuk kondisi masalah belum dipahami. Bagaimanapun, di kepala bujangan biasanya ada kepercayaan mutlak bahwa seorang insinyur perangkat lunak tidak lebih dari monyet terlatih (codemonkey). Bagaimanapun, justru keterampilan seperti itulah yang dikembangkan oleh pekerjaan laboratorium: membaca tugas secara diagonal dan mengisi dengan cepat. Tetapi siswa seperti apa yang akan mulai membuat laboratorium lebih awal dari seminggu sebelum sesi? Dan tiba-tiba, pada saat wawancara, paman jahat menuntut setidaknya budaya algoritmik minimal darinya, berbicara tentang beberapa "proses pengembangan", memaksa mereka untuk memecahkan masalah yang rumit ... Ternyata,bahwa langkah junior untuk bujangan terlalu tinggi, dan master tampaknya belum memiliki status yang cukup.

Menurut pendapat saya, masalahnya adalah bahwa bahkan dalam spesialisasi IT, pengajaran pemrograman dipisahkan dari tugas nyata. Dalam kurikulum, disiplin dapat disebut "Pemrograman dalam bahasa ...", tetapi dalam kenyataannya, di kelas, sintaksis dengan contoh-contoh yang dibuat-buat itu panjang dan membosankan, dan seni pemrograman hampir tidak ada. Seringkali dalam kursus universitas, pemahaman bahwa kode akan dieksekusi oleh komputer tidak diletakkan sama sekali, tetapi orang akan membacanya!

Sangat sering terjadi bahwa "pemrograman" dipelajari secara terpisah dari perangkat keras komputer, arsitektur perangkat lunak dialihkan ke kursus senior, dan tidak ada yang mengganggu dengan kemampuan membaca kerangka acuan. Ada, tentu saja, pengecualian, misalnya, kursus "Pemrograman Industri dalam C ++", yang rekan saya A.V. Martynov telah mengajar di Politeknik St. Petersburg selama beberapa tahun.



Akibatnya, selama wawancara, dan bahkan dalam kode yang ditulis oleh peserta proyek siswa, saya sering memperhatikan reproduksi contoh-contoh "dari buku teks" ketika penulis sama sekali tidak memikirkan batasan yang mungkin. Sebagai contoh, dalam kasus C / C ++, sebagian besar bahkan siswa senior tidak dapat menjelaskan dengan jelas perbedaan antara statis, dialokasikan secara dinamis dan menumpuk memori, dan pertanyaan tentang hubungan kata kunci bahasa dengan durasi penyimpanan dan hubungan hanya membuat mereka takut. Pada wawancara, saya mencoba memberikan contoh analisis seperti di bawah ini (catatan, sesederhana mungkin), tetapi sekarang saya tidak melakukan ini. Penjelasan mengapa memanggil fungsi f2 () membuat program crash dengan SEGFAULT bagi sebagian besar siswa jauh melampaui pemahaman.

#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;
}

Saya percaya ini saatnya pengusaha, mahasiswa dan pemimpin universitas untuk mengakui bahwa ada konflik kepentingan. Untuk sangat menyederhanakan gambar, dapat direduksi menjadi pernyataan berikut:

  • Siswa menginginkan upaya minimal untuk mendapatkan ijazah dan melihat ini sebagai langkah yang tak terhindarkan di jalan menuju pekerjaan yang dibayar dengan baik.
  • Institusi pendidikan ingin dengan cara apa pun mencapai peringkat tinggi, yang meningkatkan berbagai dana, termasuk dana upah fakultas. Dan dalam metode umum untuk menghitung peringkat, misalnya, seperti itu , indikator "pekerjaan siswa" adalah sebanyak 2% dari total.
  • Majikan secara mental berteriak, “Ya, Anda akhirnya mulai mempersiapkan lulusan normal yang tidak perlu berlatih kembali selama beberapa tahun, atau bahkan melatih kembali, pengeluaran untuk karyawan kali ini dari tingkat senior dan lebih tinggi”.

Dan masalah ini terlihat bahkan di universitas teknis terkemuka, jadi apa yang bisa kita katakan tentang yang kurang "dipromosikan"?


Dell Technologies Day di kantor Pusat Pengembangan St. Petersburg kami

Di forum baru-baru ini " Temukan IT"Sejumlah besar siswa secara tak terduga tertarik ke gerai Dell Technologies, menceritakan tentang kisah berikut:" Saya tidak mencetak poin terlalu tinggi dalam Unified State Examination, saya takut dengan persyaratan tinggi universitas untuk pelamar dalam spesialisasi IT, dan oleh karena itu pergi ke Zaborostroitelny Institute N. Pada akhir tahun kedua, saya tiba-tiba menyadari bahwa konstruksi pagar bukan milikku, bawa aku ke programmer. " Dengan demikian, alur novel "Profesi" karya Isaac Asimov, yang diterbitkan lebih dari setengah abad yang lalu, hampir secara harfiah diperbanyak. Dari perspektif anak sekolah modern atau siswa junior, dunia masa depan yang digambarkan hampir sempurna: tidak perlu menghadiri kelas atau kuliah, untuk melakukan pekerjaan rumah. Hanya pada hari tertentu Anda datang ke pusat pelatihan, dalam hitungan menit, informasi dari pembawa ditulis langsung ke otak (mereka disebut "kaset pelatihan" dalam cerita),dan Anda bisa santai - proses belajarnya selesai.

Sepotong kisah "Profesi"
– , , – . – . . , , , -. , . , , , , . ? , , - . .
– ? – . – , ? ?
– . - . . , , , , , . .
– ?
– , , , , , . , , . : « . , ». , : « , , ». , , , . , .

Karena keterampilan berinvestasi langsung di kepala siswa masih fantastis, siswa harus berusaha sendiri. Sekalipun pemrograman diajarkan “pada level” di universitas, kursus harus dipelajari, bukan “didengarkan”. Dan pelatihan di lembaga pembangunan pagar bahkan dapat membantu, karena itu tidak menciptakan perasaan keliru tentang "mereka membacakannya untuk kita, saya tahu segalanya."

Untuk bagian mereka, perusahaan yang tertarik dengan gelombang personel yang berkualitas juga harus bertanggung jawab untuk melatih siswa. Pada bagian kedua artikel ini saya akan berbicara tentang beberapa program untuk mendukung anak-anak sekolah dan siswa dalam membangun karir profesional di bidang TI menggunakan contoh dari St. Petersburg R&D Dell Technologies Center.

Bagaimana perusahaan dapat memalsukan personil?


Kata hikmat populer mengatakan: "Perlu membesarkan anak saat dia berbaring di bangku." Berdasarkan pepatah ini, Dell Technologies telah mengembangkan sistem multi-tahap untuk berinteraksi dengan insinyur masa depan: dari pelatihan siswa sekolah menengah hingga partisipasi insinyur Pusat dalam komisi untuk perlindungan pekerjaan sarjana dan master.

Sejak 2018, kami telah berteman dengan penyelenggara kursus TI untuk siswa Pisang Digital. Tahun lalu, teknisi kami membantu menyelenggarakan hackathon untuk anak sekolah, memberikan kuliah dan kelas master di Digital Jungle Festival. Program pendidikan lain untuk siswa sekolah menengah, Student STAR, didukung secara internasional. Tahun kedelapan partisipasi Pusat Pengembangan kami dalam program ini telah berlalu: setiap tahun pada bulan Juni, sekitar 30 lulusan sekolah fisika kelas 10 tenggelam selama seminggu di dunia Rekayasa Perangkat Lunak. Dan jika terlalu dini untuk berbicara tentang hasil kerja sama yang terukur dengan Digital Banana, maka kita sudah melihat lulusan Student STAR beberapa tahun terakhir di antara mahasiswa dari universitas teknik terkemuka.

Pencarian untuk calon insinyur yang menjanjikan terus berlanjut di antara mahasiswa baru. Bekerja sama dengan Leonard Euler Foundation di enam universitas yang berafiliasi dengan jaringan afiliasi Dell Technologies (Polytech, SPbSU, ITMO, LETI, SUAI, PSUPS), sesi pertama diberikan kepada siswa terbaik dengan "Beasiswa Mahasiswa Baru yang dipersonalisasi" yang dipersonalisasi. Dan di tahun kedua, rekan akan memiliki kesempatan untuk berpartisipasi dalam program bimbingan. Ngomong-ngomong, artikel tentang itu dipublikasikan di blog ini di Habré beberapa tahun yang lalu . Saya hanya dapat menambahkan bahwa dalam foto-foto beberapa tahun terakhir wajah-wajah yang sama dapat dilihat lagi - banyak mentee kami berhasil lulus dari universitas, menjadi karyawan Dell Technologies, dan sekarang kembali ke program mentoring yang sudah berperan sebagai mentor, guru, dan kurator.


, , .

Tahap berikutnya adalah "program proyek siswa bersama", yang memberikan siswa kesempatan untuk berpartisipasi dalam proyek R&D langsung di universitas. Dan sama sekali tidak perlu bagi semua peserta dalam proyek semacam itu untuk menjadi mahasiswa dari universitas yang sama; mahasiswa dari universitas "bangunan pagar" bersyarat pun dapat bergabung dengan mereka. Tugas untuk proyek-proyek bersama sudah diambil dari simpanan nyata kami, dari yang ingin saya lakukan untuk proyek tersebut, tetapi ada kemungkinan besar untuk menunda "untuk nanti" di bawah tekanan tugas yang lebih prioritas. Dalam proyek bersama, peran pemimpin tim dilakukan oleh karyawan universitas, dan teknisi kami bertindak sebagai pelanggan. Bonus tambahan dari berpartisipasi dalam proyek siswa bersama adalah bahwa siswa yang berkinerja baik akan terutama dianggap sebagai kandidat untuk posisi magang,dan hasil proyek bersama dapat digunakan sebagai bahan untuk makalah atau disertasi.

Sejarah proyek bersama dengan universitas tentu memiliki banyak kasus yang berhasil. Sebagai contoh, pengembangan salah satu utilitas untuk penyimpanan Unity dimulai sebagai proyek bersama dengan SUAI. Ada juga kasus yang aneh ketika kerangka acuan untuk proyek bersama ternyata terlalu rumit untuk siswa tahun ketiga ITMO (saya mencoba untuk menyingkirkan sebagian dari tanggung jawab itu sendiri, sebagai salah satu kurator proyek ini), tetapi para peserta yang bertahan hingga final dapat menunjukkan kemampuan mereka untuk mengatasi kesulitan dan secara praktis dengan kekuatan penuh menjadi pekerja magang kami. Sekarang mereka sudah menjadi insinyur penuh.

Insinyur Dell Technologies yang bergabung dengan tim kami setelah proyek siswa bersama: Anastasia Zinner, Nikita Tyukachev, Vladislav Alekseev

Universitas mulai merangsang siswa untuk berpartisipasi dalam proyek nyata dalam segala cara yang mungkin untuk mahasiswa sarjana tahun ketiga keempat (kita ingat bahwa stimulus adalah tongkat runcing yang digunakan untuk mendorong sapi jantan yang dimanfaatkan di Roma kuno). Saat itulah di kepala rata-rata siswa muncul kata ajaib "magang", yang seharusnya secara instan dan otomatis menyelesaikan transformasi pupa menjadi kupu-kupu siswa menjadi seorang insinyur. Transisi lain yang tidak memerlukan upaya tambahan (selain melamar magang) sama fantastisnya seperti yang dijelaskan oleh Isaac Asimov. Dalam kehidupan nyata, tidak ada transformasi instan, magang adalah proses yang panjang. Di Dell Technologies, pekerja magang benar-benar memainkan peran junior, dan dalam waktu enam bulan hingga satu tahun mereka tumbuh dalam peran magang sebelum menjadi karyawan penuh waktu perusahaan.

Jelas, peserta dalam program bimbingan dan proyek siswa bersama menerima keuntungan tertentu ketika merekrut untuk posisi magang. Paling tidak, mereka adalah yang pertama menerima informasi tentang posisi terbuka dari mentor atau kurator proyek mereka. Dan dalam wawancara, kami melihat bahwa peserta dalam program kemahasiswaan biasanya menjadi kandidat yang lebih kuat. Di sisi lain, kami tidak akan menutup pintu bagi kandidat yang belum lulus proyek siswa.

Di luar ruang lingkup artikel ini, ada banyak cara lain untuk berinteraksi dengan siswa. Misalnya, kuliah di forum mahasiswa atau secara rutin mengadakan "hari teknologi" di kantor kami, yang dapat dihadiri siapa saja. Mengingat situasi saat ini di pasar tenaga kerja, perusahaan harus menghabiskan waktu dan uang untuk melatih personil di dalam atau di luar perusahaan. Saya ingin percaya bahwa tindakan kami tidak hanya memungkinkan kami untuk mempersiapkan spesialis yang memenuhi syarat untuk diri kami sendiri, tetapi juga berkontribusi pada pertumbuhan insinyur dan pengembangan industri secara keseluruhan.

Penulis materinya adalah Denis Dovzhenko, Senior Engineer Engineer Senior.

All Articles