Wawancara lengkap dengan Dekan Departemen Python di GeekBrains - bagaimana dan mengapa pemula belajar bahasa

gambar

Kemarin, kami menerbitkan edisi pertama dalam seri "Oleh siapa bekerja di TI." Baginya, saya berbicara dengan dua mantan mahasiswa dan dekan fakultas Python di GeekBrains . Ketika saya "memasang" cerita-cerita itu dalam satu cerita, sangat disayangkan banyak yang tersisa di draft.

Oleh karena itu, hari ini saya memposting transkrip penuh wawancara dengan Alexei Petrenko, Dekan GeekBrains - hampir tanpa mengedit atau mengeluarkannya di luar konteks. Mungkin itu akan lebih diterapkan, bermanfaat dan terkonsentrasi daripada masalah utama.

Inilah yang, misalnya, tetap ada di belakang layar: Mengapa Python tidak lebih buruk dari bahasa lain? Kerangka kerja apa yang harus saya tonton selain Django? Di mana lebih baik belajar menulis - dalam IDE modern atau di notebook? Situs dan buku mana yang layak dipelajari sendiri dan masih banyak lagi.

- Apa yang sedang dilakukan pengembang Python?

- Pengembang Python dapat melakukan banyak hal - mulai dari skrip sederhana hingga analisis data dan membangun jaringan saraf.

Berbicara tentang pengembangan, ini adalah backend untuk server web. Bagian tersembunyi dari Internet, bagian yang tidak dilihat oleh pengguna biasa. Server, logikanya, interaksi dengan basis data.

- Python tidak lebih buruk untuk pengembangan server daripada bahasa lain?

- Sebenarnya tidak, tidak lebih buruk. Misalnya, di C, pengembang menghabiskan banyak waktu menulis kode. Ini adalah bahasa kakek. Menulis dalam C # lebih mudah dan lebih cepat - tetapi ini adalah gagasan Microsoft - mereka mempromosikan bahasa untuk sistem Windows. Tapi Java itu universal ... Bahkan, Anda bisa berdebat bahasa mana yang lebih baik.

Python memiliki ambang masuk yang rendah, sangat mudah untuk mempelajari dasar-dasar pemrograman di dalamnya. Python adalah bahasa yang ditafsirkan. Dengan demikian, jika dua program identik ditulis dalam Python dan C, maka pada Python program akan bekerja lebih lambat. Ini memiliki audiens yang sangat besar, perpustakaan yang luas, ditambah banyak perpustakaan eksternal yang dibuat pengembang di seluruh dunia. Dan karena ini, itu menjadi bahasa yang cocok untuk semuanya.

- Mungkinkah mengetahui Python lebih mudah untuk masuk ke profesi tertentu, seperti AI dan analitik, dan orang-orang dengan Java akan lebih cenderung mengambil backend biasa?

- Jika kita melihat statistik beberapa tahun yang lalu, maka bahasa PHP menempati 80% dari backend semua server. Namun PHP mulai kehilangan kekuatan. Python telah merilis berbagai kerangka kerja pengembangan web pada wave ini, dan yang paling populer adalah Django. Ini semakin populer, dan banyak pengusaha mencari pengembang yang tahu kerangka kerja khusus ini.

Selalu ada persaingan. Tetapi seorang siswa pemula harus memahami bahwa tidak peduli apa yang ia curahkan sepenuhnya kepada - Python atau Java - ia akan menemukan pekerjaan.

- Belajar Python sebagai bahasa pertama adalah solusi yang baik?

"Aku berpikir bagus." 20 tahun yang lalu, bahasa pertama saya adalah Basic. Dan kemudian saya merasa senang dan mudah memprogramnya. Ketika saya pertama kali melihat sintaks Python, pikiran pertama saya adalah: "Sama dengan BASIC, hanya lebih dingin." Ini memberikan sensasi yang sama - mudah, menyenangkan, semuanya langsung jelas. Artinya, Python adalah bahasa terbaik untuk yang pertama.

"Justru karena kesederhanaan?"

- Ya, karena sintaksinya yang sederhana. Itu memaafkan kesalahan pengembang kecil, tidak seperti bahasa yang dikompilasi, di mana jika disegel, program tidak lagi dikompilasi.
Meskipun saya berharap para pengembang tidak akan berharap bahwa juru bahasa akan memperbaiki semua kesalahan mereka.

Yang paling penting, pengembang mengerti bahwa setelah basis yang mudah ia harus berusaha untuk menguasai aspek yang lebih serius. Perpustakaan dan kerangka kerja yang membuat Python menjadi bahasa yang lebih keren dan lebih maju.

- Seberapa kompleks dan banyak sintaksisnya?

- Dalam konfigurasi dasar Python ada sekitar 70 fungsi (tetapi bahkan seorang programmer keren tidak harus menggunakan semuanya) dan beberapa lusin kata yang dipesan. Yaitu, untuk mempelajari seratus kata dan memahami apa yang mereka lakukan, Anda dapat menghabiskan satu hingga tiga minggu jika Anda ingin dan bekerja keras.



- Mengetik dinamis bukan minus?

- Pengetikan dinamis memiliki lawan yang awalnya mereka ajarkan di universitas untuk menulis dalam C, mereka menyetir, bahwa ini adalah dasar dari semua bahasa dan semua orang harus sama dengan itu. Oleh karena itu, mereka sangat negatif tentang pengetikan dinamis. Bahkan, pengetikan dinamis lebih dari plus minus. Ini mempercepat pengembangan.

Tetapi jika Anda terbiasa mengetik statis, maka bahasa tersebut memiliki kemampuan untuk meresepkan jenis variabel yang Anda gunakan. Mengetik akan tetap dinamis, tetapi Anda bisa menyadari kebiasaan Anda.

- Tapi sekarang Go dan TypeScript semakin populer karena pengetikan yang ketat.

- Ya itu. Tapi bahasa selalu datang dan pergi, dan Python telah hidup selama 30 tahun dan masih terus mendapatkan popularitas. Bahasa Go masih muda dan bagus. Mungkin dia akan berkembang, atau mungkin kita akan melupakannya dalam beberapa tahun.

Jika kita membandingkan bahasa pemrograman dengan reservoir, maka, misalnya, bahasa C adalah lautan. Anda menyelam dari tebing ke kedalaman, dan Anda berenang atau tenggelam. Bahasa Python adalah sebuah pantai dengan pasir bersih di mana Anda bisa pergi jauh, berenang dengan tenang, dan jika Anda mengerti bahwa Anda ingin melanjutkan, maka ada depresi besar di kedalaman di belakang pantai yang indah, sebanding dengan C dan Jawa.

"Mengetahui Python, apakah sulit untuk beralih di antara profesi, di mana ia digunakan?"

Python memiliki perpustakaan yang luas. Jika Anda tiba-tiba menyadari bahwa Anda tidak ingin berurusan dengan situs dan backend, tetapi ingin beralih ke kecerdasan buatan, kemudian mengetahui dasarnya, Anda perlu menghabiskan beberapa bulan untuk memperketat matematika dan mempelajari beberapa kerangka kerja tambahan.

Situasi yang sama dengan data besar - Anda harus mengingat jalannya statistik, analitik dan melihat dua atau tiga perpustakaan baru. Artinya, biaya tenaga kerja akan berkurang secara signifikan jika Anda sudah tahu bahasa.

- Apa yang lebih sulit?

Analisis dan big data adalah pemrograman plus matematika. Jika ada kecenderungan untuk itu, maka mengapa tidak berurusan dengan jaringan saraf, sistem pengakuan. Jika Anda hanya ingin memprogram, tetapi tidak pada tingkat tinggi, maka lebih baik untuk pergi menulis server. Mereka juga membutuhkan matematika, tetapi setidaknya tidak lebih tinggi. Tidak ada integral dan faktorial. Penambahan dan pengurangan dasar.



- Apa yang perlu Anda ketahui sebelum mengikuti kursus?

- Akan menyenangkan untuk mengetahui sebelumnya apakah Anda ingin memprogram atau tidak. Saya akan menyarankan Anda untuk mencoba menulis beberapa program, coba pelajaran gratis. Lebih baik sudah memahami apa itu variabel, bagaimana menambahkan dua variabel.

- Jika seseorang belum memulai, di mana dan bagaimana dia bisa memahami ini?

- Kami memiliki intensives gratis tentang dasar-dasar pemrograman dan variabel. Di sana Anda perlu menulis dalam Javascript, karena di peramban modern mana pun ada juru bahasa, Anda tidak perlu menginstal apa pun.

Dengan Python, Java, dan bahasa lain, ini sedikit lebih rumit - Anda perlu menginstal lingkungan pengembangan. Tetapi jika Anda mengerti bahwa Anda menyukainya, maka mengapa tidak. Anda dapat menghabiskan sepuluh menit dan perlahan menjadi programmer.

- Bagaimana cara belajar agar kursus tidak menjadi kerak yang tidak berguna?

- Satu kata adalah latihan. Jika Anda hanya menonton dan mendengarkan, tidak akan ada hasilnya. Untuk seorang pemula, bahkan berlatih menulis ulang kode yang ditampilkan guru di layar. Tulis ulang dan pikirkan cara kerjanya. Penting untuk melakukan tugas-tugas praktis - sebagai bagian dari kursus, untuk mencari sendiri di Internet. Jika pelatihan demi pekerjaan, maka latihan dibutuhkan lebih dari itu. Sulit dipelajari, mudah dalam pertempuran.

Latihan minimum yang disyaratkan adalah empat jam seminggu. Dua hari di bawah dua jam latihan. Tetapi saya akan merekomendasikan menghabiskan satu jam sehari untuk menulis kode Anda sendiri.

- Apa yang lebih baik untuk dipelajari - hal-hal mendasar atau populer dan diterapkan?

- Lebih baik bagi pemula untuk memahami sintaksis. Dan ketika - untuk seseorang setelah satu minggu, untuk seseorang setelah satu bulan - seseorang akan mengatakan "Saya tahu sintaks dan saya bisa menulis konstruksi dan algoritma dasar", hanya itu yang berharga untuk mempertimbangkan ke mana Anda ingin melangkah lebih jauh. Semakin banyak Anda belajar, semakin Anda beralih dari sintaksis ke pustaka individual, pola desain, templat individual.

Hal utama adalah tidak terjun ke pemrograman dengan kepala Anda sehingga tidak ada kerusuhan sihir. Ketika Anda mempelajari semuanya selama tiga hari, dan Anda mendapatkan bubur di kepala Anda.

- Seluk beluk apa yang perlu Anda ketahui agar tidak langsung berbelok ke arah yang salah?

- Ada seperti Pep8 standar - ini adalah persetujuan dari programmer yang menulis di Python. Ini menunjukkan cara menulis dengan benar, dan bagaimana salah: jika Anda ingin menulis konstruksi dengan syarat, maka tulislah dengan cara yang sama. Jika ada sesuatu yang lain, misalnya, untuk membuat fungsi, maka sebut dengan gaya ini dan itu.

Jika Anda ingin bekerja dalam tim dan menunjukkan kode tersebut kepada orang lain, jika kode tersebut perlu didukung di masa mendatang, maka Anda harus mengetahui standar yang diterima secara umum. Akan baik bagi pemula untuk membacanya bersama dengan studi sintaksis.

Pemrogram pemula, tidak tahu Pep8, menulis sebuah program yang juga berfungsi. Tetapi ketika setelah lain waktu orang lain mencoba membacanya, maka timbul kesulitan. Mereka menulis kode sekali - mereka membacanya sepuluh kali.

- Sesuatu yang lain? Versi, misalnya?

- Beberapa tahun yang lalu, perpecahan terjadi dengan Python. Ada Python 2.7, dan kemudian versi 3. keluar Versi kedua masih digunakan, tetapi hanya di perusahaan yang lebih tua untuk mempertahankan kode warisan. Jika Anda mendapatkan pekerjaan di perusahaan seperti itu, maka Anda harus belajar Python 2, tetapi saya akan merekomendasikan mempelajari versi ketiga. Semua proyek modern dan perpustakaan pihak ketiga ditulis di bawahnya.

Saya akan memberikan contoh dasar. Payton dari versi ketiga, perintah untuk menampilkan pesan di layar: kita menulis cetak, buka braket dan meneruskan teks dan variabel di dalam tanda kurung.

Dalam versi kedua, kita menulis cetak, tanpa tanda kurung, lalu spasi dan variabel. Yaitu, dalam satu kasus, sebuah ruang, dalam kurung keriting lainnya. Tidak penting bagi seseorang untuk memahami hal ini, tetapi penerjemahnya penting - ruang atau tanda kurung



- Apa cara terbaik untuk pendidikan mandiri yang akan Anda sebutkan?

- Sejalan dengan pelatihan, Anda dapat mencoba menerapkan ide dan proyek Anda. Saat mempelajari dasar-dasarnya, Anda memecahkan teka-teki dan menulis program sederhana. Misalnya, saya mempelajari siklus, dan mengapa tidak menulis program yang menampilkan tabel perkalian.

Selanjutnya, Anda mempelajari kerangka kerja Django, yang memungkinkan Anda membuat situs. Mengapa tidak segera mencoba untuk menulis situs Anda sendiri, yang sudah lama saya inginkan.

Masih ada situs semacam itu - proyek Euler. Ada serangkaian tugas untuk membangun program.
Seseorang yang tahu bagaimana memprogram dapat mewujudkan tugas itu, tetapi jika ia menulis kode berkualitas rendah, bahkan komputer modern akan menyelesaikannya selama beberapa menit, jam, atau bahkan berhari-hari. Artinya, proyek membuat Anda berpikir tentang pengoptimalan. Karena kode yang tepat menyelesaikan masalah dari proyek Euler dalam hitungan detik.

Dari buku: "Belajar Python" oleh Mark Lutz dan "Pure Python". Dan Bader.

- Alat dan kerangka kerja apa yang harus saya mulai?

Seorang programmer pemula dapat mengambil Flask misalnya. Sederhana, tidak membawa informasi yang tidak perlu, mudah dipelajari. Bahkan, ini adalah kotak kecil di mana tidak ada yang berlebihan. Dan dia akan menulis situs paling sederhana.

Jika Anda berpikir tentang masa depan - maka monster di antara kerangka adalah Django. Ini bukan lagi sebuah kotak kecil, tetapi sebuah kotak besar di mana ada banyak segalanya. Secara bertahap memahami semua kemampuannya, Anda dapat menulis situs yang bagus dan dapat diskalakan yang dapat melayani ribuan pengguna setiap menit.

- Paket, perpustakaan?

- Untuk pemula, saya akan menyarankan Anda untuk berkenalan dengan perpustakaan Python standar. Ini adalah modul yang sama yang diinstal pada komputer bersama dengan penerjemah. Bahkan, perpustakaan standar sangat besar. bahkan studinya akan memakan waktu lebih dari satu minggu.

Beberapa modul perpustakaan standar tidak akan pernah diperlukan, tetapi perlu untuk memiliki ide tentang mereka, agar tidak mulai menciptakan kembali roda sekali. Semua sepeda dirakit di sana.

Dalam pemrograman, struktur data seperti "antrian" sering digunakan. Dan jika seseorang baru saja mempelajari sintaks, ia mengerti bahwa tidak ada antrian di Python. Meskipun dalam bahasa lain, antrian digunakan secara aktif dan memungkinkan penyelesaian banyak tugas.

Tapi ada baiknya menggali ke perpustakaan standar, dan kami menemukan modul koleksi di sana. Di dalam modul ini terdapat struktur data "antrian" dan ternyata telah diterapkan untuk waktu yang lama, hanya sedikit tersembunyi. Ini dioptimalkan secara maksimal dan akan tetap bekerja lebih baik daripada jika Anda menulis sendiri.

- Dan hal-hal mendasar? IDE apa yang harus diambil?

- Pada kesempatan ini, pendapat berbeda. Beberapa orang berpikir bahwa seorang programmer pemula harus menulis di notepad (bukan di kursus standar, tetapi setidaknya di notepad ++).

Idenya adalah bahwa ketika Anda memulai pemrograman, Anda harus menulis semua kode secara manual. Ini akan memungkinkan Anda untuk mengingat deskripsi struktur, fungsi dasar. Tetapi masalahnya adalah bahwa notebook tidak memberi tahu Anda di mana Anda melakukan kesalahan. Jika seorang pemula tidak melihat di mana kesalahannya, ia mungkin putus asa bahwa tidak ada yang berhasil dan keluar dari bisnis ini.

Oleh karena itu, ada pendapat bahwa lebih baik menggunakan IDE modern. Di sini Anda harus memberikan kredit kepada jetbrains. Mereka membuat PyCharm IDE yang memiliki versi Komunitas gratis. Dia menceritakan semua kesalahan mendasar.

- Pendekatan apa yang Anda ambil?

Saya mendukung pendekatan kedua, agar tidak menghalangi pemula untuk menulis kode. Ketika kode bekerja, ada keinginan untuk berkembang lebih jauh. Tetapi jika Anda melihat kesalahan, cari tahu bagaimana Anda membuatnya dan bagaimana cara memperbaikinya.

Meskipun, jujur ​​saja, saya sendiri mulai dengan notebook lama.



- Apa yang seharusnya menjadi level minimum untuk mendapatkan pekerjaan?

"Pengalaman saya di Geekbrains menunjukkan bahwa beberapa siswa menemukan pekerjaan sebelum mereka menyelesaikan kursus satu tahun mereka." Itu semua tergantung pada bagaimana siswa belajar, motivasi apa yang dia miliki, seberapa aktif dia berinvestasi.

Jika kita berbicara tentang keterampilan yang ingin dilihat majikan dengan pengembang server, ini adalah pekerjaan dasar dengan sintaksis, pengetahuan tentang bagaimana situs, backend, Django bekerja. Programmer harus tahu cara menulis kode lebih cepat dan lebih benar.

Saya juga akan menambahkan kerja tim dan pengetahuan tentang basis data, karena setiap backend dari situs mana pun terkait erat dengan penyimpanan informasi.

- Uang apa yang bisa diandalkan di tingkat awal?

- Tergantung daerahnya. Seseorang mendapat pekerjaan untuk 40 ribu sebagai pemula, seseorang bisa mendapatkan 100 ribu. Menonton bagaimana itu memanifestasikan dirinya. Untuk melakukan ini, Anda perlu membuktikan bahwa Anda dapat menulis tidak hanya kode, tetapi Anda juga memahami arsitektur, Anda dapat membuat sketsa seluruh skema proyek, modul, layanan dan skema interaksinya.

- Mungkin ini jarang terjadi di kalangan pemula?

- Kami melewati desain pada kuartal keempat, hampir di akhir pelatihan.

- Seberapa banyak Anda perlu berayun di tempat kerja untuk naik level?

- Anda dapat memompa ke tengah selama tahun studi di Geekbrains. Ada kursus wajib dan tambahan. Siswa itu sendiri memilih kapan harus mengambilnya, tetapi mata kuliah utama dan tambahan harus diselesaikan agar dapat dengan jujur ​​menyebut dirinya menengah. Itu adalah - tahun program utama dan enam bulan yang paralel.

- Siapa yang kemudian menjadi pengembang signor?

- Ini adalah orang yang memiliki pengalaman yang kaya. Ini adalah seseorang yang memahami kerangka kerja yang berbeda, mampu mengukur tugas, memahami sumber daya apa yang mereka butuhkan. Seorang pria yang tidak menciptakan sepeda. Yang, dari pengalaman saya sendiri, mengerti semua aspek dan nuansa pekerjaan.

"Jika kamu bertemu dengan seorang pria yang tidak tahu apa-apa tiga tahun yang lalu, dan sekarang menyebut dirinya penandatanganan, bagaimana menurutmu?"

"Kenapa tidak." Tergantung pada perusahaan, aspirasi dan keterampilan. Jika seseorang berbakat, maka saya akan percaya. Jika dia mengatakan bahwa dia tahu Python, bukan Python, maka mungkin dia masih punya kesempatan.

- Dan jika Anda tidak begitu jenius, maka berapa banyak rata-rata yang Anda butuhkan?

- Jika seseorang tidak memiliki tujuan, maka dia dapat bekerja dengan nyaman di tingkat menengah dan lima, dan sepuluh tahun. Lakukan volume tugas yang memberi, nikmati.

- Artinya, tengah hanya seseorang yang tidak bertanggung jawab?

- Ya, Signor siap untuk bertanggung jawab atas keputusan, memimpin tim. Jujur saja - ada pemimpin, ada pengikut. Seseorang siap untuk mengambil kesempatan, mengambil bagian dalam startup, dan jika dia menembak dalam setahun, maka orang tersebut akan segera menyebut dirinya seorang sutradara, penandatangan dan apa pun yang lainnya.

Dan ada programmer yang hanya suka memprogram, tetapi mereka tidak siap untuk membuat keputusan global.

- Sepertinya kelulusan SMP menengah tidak sepenuhnya tentang mengetahui bahasa.

- Gradasi ini umumnya arbitrer dan berbeda dari perusahaan ke perusahaan. Jika benar-benar dasar - seorang junior adalah orang yang tahu sintaksis. Tengah - tahu semua perpustakaan tambahan, kerangka kerja, tahu cara menggunakan semua ini. Signor - tidak hanya tahu cara menggunakan, tetapi memiliki pengalaman yang kaya dalam mengembangkan berbagai hal.

- Pekerjaan seperti apa yang harus dicari, agar tidak langsung mengecewakan?

- Kita harus segera membuat catatan di kepalaku: "Jika tidak ada yang berhasil, aku tidak akan marah." Layak untuk berlatih freelance atau melakukan proyek bersama selama pelatihan.

- Bagaimana Anda bisa tidak menghadapi kotoran selama wawancara?

- Pertama, jangan diam. Jika mereka memberikan tugas yang tidak dapat dijawab segera, maka beralasan, tunjukkan bagaimana Anda pikir Anda mampu bergerak menuju solusi. Pada wawancara, mereka juga dapat memberikan pertanyaan dasar. Siswa berbicara tentang bagaimana mereka diberi tugas yang kami selesaikan bersama mereka. Artinya, jangan mendengarkan kursus melewati telinga Anda

Hal utama adalah jangan putus asa jika wawancara pertama tidak berhasil. Pergi ke dua atau tiga wawancara Anda akan melihat bahwa pertanyaan mulai berulang. Dan kemudian Anda sendiri akan memilih tempat untuk menetap, karena pada tiga wawancara reguler suatu hari Anda akan pergi ke mana-mana.

- Mengenai masalah apa yang Anda mengerti bahwa lebih baik melarikan diri dari perusahaan ini?

- Mungkin jika mereka menunjukkan kode, dan Anda mengerti bahwa itu tidak dapat dibaca. «-» , . , , . .

— ?

— . — . — , - .

.

Source: https://habr.com/ru/post/id454182/


All Articles