Python kanggo Web: apa sing junior kudu ngerti kanggo bisa lan berkembang

Kita nggawe transkrip singkat kanthi pikirane utama saka Python Junior Podcast: ing kono kita rembugan ing ngendi arep miwiti lan menyang ngendi minangka pangembang Python pamula. Akhir-akhir iki kita duwe akeh isi kanggo middles lan senior, nanging episode iki mesthi kanggo junior.

Python kanggo Web: apa sing junior kudu ngerti kanggo bisa lan berkembang

Topik utama:

  • Kawruh apa sing kudu ditindakake dening programmer pemula
    pangembangan web?
  • Apa sing dikarepake para pengusaha saka pangembang?
  • Apa sing kudu ditindakake kanggo golek kerja tanpa pengalaman?
  • Kepiye pangembang Python bisa berkembang?

Python Junior Podcast minangka podcast pemrograman kanggo sing pengin luwih ngerti Python. Siaran ditindakake dening penginjil komunitas MoscowPython lan guru kursus Sinau Python.

Peserta ing obrolan:

  • Valentin Dombrovsky,co-pendiri MoscowPython
  • Zlata Obukhovskaya, pimpinan tim NVIDIA
  • Grigory Petrov, penginjil MoscowPython
  • Alexey Shtyrnyaev, pangembang ing FinEx, guru kursus Sinau
    Python

Napa Python apik kanggo pangembangan web

Valentin Dombrovsky: Napa Python cocok kanggo pangembangan web? Napa ora PHP utawa JavaScript, contone?

Grigory Petrov: Dadi ora akeh pilihan. Senadyan kasunyatan manawa ing Web modern, sampeyan bisa nggawe aplikasi kaca siji utawa aplikasi web progresif tanpa backend - mung nggunakake teknologi front-end, nggunakake JavaScript - isih rumit banget, ora diindeks lan mbutuhake pangembang sing keren.

Yen kita pengin nggawe situs web utawa layanan, kita nggunakake pendekatan gabungan: sawetara backend ngetrapake logika lan nggawe kaca web, lan sawetara frontend nggambar kaca web kasebut ing browser. Lan nalika kita kudu cepet sijine kabeh bebarengan ing soko, kita ora duwe pilihan.

Ayo goleki opsi sing bisa ditindakake.

  • VS#. Microsoft pancen apik banget, dheweke nggawe .NET Core lan promosi ing kabeh cara. Nanging, pisanan, iki minangka teknologi lintas-platform anyar, lan durung kabeh lancar. Kapindho, larang banget, ana sawetara pangembang C # - mung amarga ora populer.
  • Jawa. Iku rumit. Nggawe situs web normal ing Jawa ora njupuk 10 baris kode, kaya ing Python. Iki akeh kode, iki minangka kerangka kerja, lan sampeyan kudu ngerti spesifik babagan nyetel server Java. Umumé, nyeri lan kasangsaran sing terus-terusan.
  • PHP. Ing versi paling anyar iku apik banget. Aku malah bakal ngomong iki: PHP 7.2 ora luwih elek tinimbang Python. Nanging sampeyan ora bisa mung njupuk lan nggunakake PHP 7.2. Yen biasa, dudu pangembang ndhuwur nggawe situs web ing PHP, dheweke ora mung nulis ing 7.2: dheweke isih kudu maca sawetara buku teks, tutorial, ana akeh kode warisan ing endi wae, lan iki ora apik banget.
  • JavaScript lan Node.js. Apik banget lan modern banget yen ana siji basa ing ngarep lan mburi. Mung ora stabil banget. Node.js iku apik, nanging ana masalah kanggo nyebarake ing produksi supaya ora kacilakan lan bisa digunakake kanthi stabil. Kajaba iku, yen kita pengin nulis kode JavaScript sing berkualitas, kita ora butuh JavaScript, nanging TypeScript. Nanging TypeScript ndadak rumit, lan otak pangembang rata-rata godhok nalika ndeleng.

Ayo ninggalake Ruby, Haskell, Erlang lan barang-barang khusus liyane, lan kita tinggalake ... Python. Basa kanthi sintaksis sing konsisten, perpustakaan standar sing seragam, dokumentasi paling apik, kerangka kerja ringan sing populer, lan gabungan Django sing populer.

Pranyata metu sing, senadyan pilihan sudhut, yen kita duwe biasa, ora pangembang ndhuwur, kita bisnis biasa sing pengin nggawe situs web biasa, kita ora duwe departemen pembangunan kanggo 50 wong, banjur kita njupuk Python.

Apa kawruh sing dibutuhake kanggo mlebu profesi?

Zlata Obukhovskaya: Aku pracaya sampeyan kudu ngerti siji framework uga - lan ngerti apa liyane ana lan nalika digunakake. Where Tornado, ngendi Django, ngendi Flask, ngendi aiohttp lan ing.
Bakal migunani kanggo ngerti manawa ana protokol. Utamane, kawruh babagan protokol http minangka pusat kanggo mbangun aplikasi web.

Sampeyan uga kudu paling ora ngerti babagan cara ngarep ngarep ing proyek web: apa HTML, CSS, JS.

Alexey Shtyrnyaev: Lan ngerti ngendi dokumentasi. Iku sing paling penting.

Grigory Petrov: Ing kene kita mlaku ing lemah sing goyang banget. Yen kita apes lan piye wae kita miwiti serius sinau frontend modern, banjur bakal 10 kaping luwih rumit tinimbang backend ing Python. Pangembang pemula kudu mbatesi fokus supaya bisa miwiti sinau HTML, nanging ora bakal ilang ing kabeh divs, span, floats, carane kabeh didadekake siji lan diantrekake.

Alexey Shtyrnyaev: Perlu kursus Bootstrap dhasar. Lan dhasar HTML.

Ing taun pisanan, sampeyan ora kudu nyelidiki kerangka JS (yen sampeyan fokus ing backend). Kursus Bootstrap dhasar wis duwe modul sing wis siap: yen sampeyan pengin slider, nggawe slider; yen sampeyan pengin menu ngambang, nggawe menu ngambang.

Zlata Obukhovskaya: Aku mikir yen nalika sinau ing frontend, sampeyan bisa nyemplungaken dhewe, utamané, carane statis umume diwenehi kanggo aplikasi web. Dadi pangembang kanthi lancar nerusake sinau babagan cara arsitektur aplikasi web kanthi prinsip lan cara urip ing produksi.

Grigory Petrov: Ya, aku bakal menehi rekomendasi langsung yen sampeyan milih Python minangka basa pangembangan backend lan, contone, Django minangka kerangka: Django duwe dokumentasi ing Buku Django, pancen keren, ngemot kabeh sing diomongake Zlata, dheweke pancene. apik kanggo pamula.

Alexey Shtyrnyaev: Sawetara Django Girls uga cocok kanggo wiwitan cepet yen goal kanggo sinau Django. Iki minangka tutorial sing ing sawijining dina sampeyan bisa ngliwati ndhuwur, ngerti dhasar lan apa sing bisa ditindakake dening kerangka kasebut.

Valentin Dombrovsky: Ing preparation kanggo ngrekam podcast, kita nyawiji dhaftar apa programmer Python perlu kanggo pangembangan web, kang ngringkes apa kita ngandika sadurungé.

Apa sing kalebu ing dhasar kanggo pangembangan web ing Python

  • Frameworks web Django, Flask, aiohttp, Tornado, etc. (lan ngerti bab orane liyane).
  • Protokol lan API: utamane http, JSON-RPC, Protocol Buffers, gRPC.
  • ORM lan migrasi, database relasional, SQLAlchemy, SQL, PostgreSQL, MySQL.
  • Dasar HTML, CSS, Bootstrap, uga kerangka JS lan JQuery.
  • Prinsip operasi aplikasi ing produksi, pengujian, tes unit, tes otomatis, sistem kontrol versi, git.

Apa juniors butuh algoritma?

Zlata Obukhovskaya: Kaping pisanan, sampeyan ora perlu ngerti algoritma; bakal mboko sithik katon ing sirah yen sampeyan melu pembangunan cukup suwe. Aku ngerti akeh insinyur sing apik sing durung duwe kursus algoritma formal sing apik.

Grigory Petrov: Aku pengin nambah bahan bakar kanggo geni. Ngendi idaman kita kanggo algoritma teka saka?

Saiki kita ora duwe pendidikan dhasar ing algoritma, kita ora ngerti carane nglatih programer, kita ora duwe basis teknis.

Dheweke nyoba nindakake iki, nanging ing kene kita duwe crita babagan Hogwarts: kita ora bisa nggawe sekolah kanggo penyihir nalika kita ora duwe penyihir siji. Mulane, apa sing kudu ditindakake universitas nalika teka lan takon: "Mulai latihan programer," nanging ora duwe programer, amarga kabeh wong kerja ing Mail.ru, Rambler lan Yandex, apa dheweke seneng?

Universitas katon lan ngandika:
- Oke, programming. Ayo golek sawetara wilayah kawruh sing gegandhengan lan ngajak spesialis saka kana. Ayo ngajak wartawan sing bisa nulis salinan, insinyur listrik sing bisa nggawe sirkuit listrik, lan ahli matematika sing bisa nggunakake algoritma.

Pungkasane, pranyata iki praktis kaya ngajar fisika partikel pembangun mung amarga bata lan semen digawe saka partikel dhasar.

Ing wektu sing padha, dheweke ora ngomong babagan semen lan bata dhewe, amarga fisikawan sing nyoba nglatih tukang bangunan ora ngerti carane mbangun omah. Akibaté, kita entuk tukang sing bisa njlèntrèhaké kanthi sampurna cara "semen", nanging durung tau weruh lan ora ngerti carane nggawe apa-apa saka iku.

Algoritma lan struktur data apik banget, nanging iki minangka area aplikasi sing cilik banget. Dibutuhake kanthi cepet, contone, yen sampeyan nulis mesin game, compiler, utawa protokol jaringan.

Umume programer ngatasi masalah bisnis ing ngendi algoritma lan struktur data ora dibutuhake.

Matematika sing paling angel yaiku nambah kaping pindho banjur dibagi. Iku mbutuhake kawruh temen beda. Ngatasi masalah bisnis mbutuhake utamane diterapake tinimbang kawruh dhasar.

Iku luwih apik kanggo pangembang pemula duwe pangerten bisnis lan carane bener lan cepet ngumpulake struktur sing perlu saka pamblokiran siap-digawe, carane debug wong-wong mau, carane nggawe manawa padha ora ambruk, ngerti kok padha ambruk, apa sing kedadeyan nalika syarat ganti lan program diwiwiti "menetap ing pondasi" kaya omah sawise udan.
Iki minangka prakara praktis lan pangerten babagan carane nulis piranti lunak. Dheweke kudu ngerti yen saliyane debugger, dheweke duwe set alat sing bakal nuduhake persis ing ngendi program kasebut alon-alon.

Valentin Dombrovsky: Perbandhingan iki teka ing pikiranku: iki minangka terjemahan saka basa bisnis menyang basa sing sampeyan bisa komunikasi karo komputer. Tegese, programmer minangka jinis ahli basa tartamtu.

Grigory Petrov: Bisnis butuh panulis, dudu ahli basa. Penulis ora perlu ngerti kenapa sewu taun kepungkur tembung iki diowahi dadi iki. Dheweke kudu bisa ngetrapake tembung kasebut.

Apa sampeyan kudu golek proyek pisanan minangka pangembang

Alexey Shtyrnyaev: Mesthine ora ana resep universal kanggo masak junior.

Yen sampeyan teka ing sawetara perusahaan, dheweke bakal nyewa sampeyan ora amarga sampeyan ngerti Django, JSON lan sawetara algoritma. Sampeyan bakal paling kamungkinan bakal nyewo kanggo skills sing perusahaan iki perlu kene lan saiki.

Ana akeh perusahaan, lan kabeh duwe syarat sing beda. Ora ana kawruh universal sing kudu dipikolehi supaya bisa nyiapake resume lan golek kerja.

Grigory Petrov: Nalika kita ing VoxImplant nggoleki sawetara insinyur, direktur teknis kita ngrumusake syarat dhasar kaya mangkene: wong kudu bisa ngatasi masalah. Cetha yen junior ora bakal nindakake iki kanthi efektif, ora kanthi cara sing paling apik lan ora mesthi bener, nanging saenipun sampeyan menehi tugas marang wong, dheweke ketegangan lan ngatasi. Iki minangka katrampilan sing digoleki utamane para majikan.

Zlata Obukhovskaya: Wong-wong sing golek kerja saka lapangan liyane duwe sawetara keuntungan saka sudut pandang bisnis amarga wis entuk sawetara cara lan bisa ngrampungake masalah kanthi cepet. Iki minangka katrampilan alus, aku malah nyebat budaya kerja. Asring, lulusan universitas durung ngembangake budaya kerja iki.

Nanging aku isih pengin nyoba menehi sawetara resep kanggo pemula.

Langkah pisanan kanggo pangembang pemula

Zlata Obukhovskaya: Kaping pisanan, iki isih minangka proyek sampeyan dhewe, amarga sampeyan kudu nulis ing resume lan nuduhake portofolio minimal. Luwih adhem nalika proyek kasebut ora digawe kanggo sampeyan dhewe, nanging minangka proyek lepas - kanggo wong liya.

Sawise proyek pisanan, sampeyan wis bisa nggawe resume lan ngirim menyang kabeh perusahaan sing ana posisi Juni. Wawancara bakal menehi wawasan babagan apa sing dibutuhake perusahaan. Cepet utawa mengko wong bakal nyewa sampeyan, paling ora ing perusahaan cilik. Sabanjure, pengalaman kerja iki bakal menehi sampeyan kesempatan kanggo mlebu ing perusahaan sing luwih gedhe lan luwih menarik.

Valentin Dombrovsky: Miturut cara, ing kursus kita nyiapake siswa duwe proyek dhewe sajrone 10 minggu latihan. Kajaba iku, kita nglatih katrampilan pangembangan tim. Iki minangka katrampilan alus sing diomongake Zlata.

Alexey Shtyrnyaev: Aku pitutur marang kowe saka pengalaman sing bisa njupuk wektu dawa banget kanggo nggoleki proyek pisanan. Yen sampeyan nggoleki sewulan utawa rong sasi, iku normal. Yen sampeyan ngirim resume menyang kabeh perusahaan, pindhah menyang wawancara, ing sasi katelu sampeyan mesthi bakal nemokake apa-apa.

Valentin Dombrovsky: Sampeyan bisa ngethok proyek sampeyan dhewe utawa njupuk proyek freelance sing prasaja lan ing wektu sing padha ngirim resume sampeyan.

Apa prospek pangembang Python?

Zlata Obukhovskaya: Pangembang Python bisa menyang ngendi wae. Sampeyan bisa nyoba lan terus berkembang dadi arsitek senior. Utawa malah menyang manajemen. Ana macem-macem jinis manajer teknis, lan sampeyan bisa tuwuh dadi manajemen paling dhuwur. Sampeyan bisa berkembang ing ilmu data, DevOps, pindhah menyang testing otomatis utawa machine learning.

Valentin Dombrovsky: Umumé, ana akeh pilihan lan kesempatan, kalebu kursus kita. Sampeyan ora perlu akeh kawruh ing ngleboke, nanging disaranake banjur nutupi sawetara luwih akeh, amarga luwih sampeyan bisa, sing luwih apik kanggo sampeyan.

***

Iki mung bagean saka release Python Junior. Versi lengkap episode kasedhiya ngrungokake.

Utawa malah katon:

Muter video

Podcast RSS

Matur nuwun kanggo maca, ngrungokake utawa nonton.

Source: www.habr.com

Add a comment