Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Halo lagi! Judul artikel berbicara sendiri. Untuk mengantisipasi dimulainya kursus Insinyur Data Kami menyarankan Anda memahami siapa itu insinyur data. Ada banyak tautan bermanfaat di artikel ini. Selamat membaca.

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Panduan sederhana tentang cara menangkap gelombang Rekayasa Data dan tidak membiarkannya menyeret Anda ke jurang yang dalam.

Sepertinya semua orang ingin menjadi Ilmuwan Data saat ini. Tapi bagaimana dengan Rekayasa Data? Pada dasarnya, ini adalah semacam gabungan antara analis data dan ilmuwan data; Seorang insinyur data biasanya bertanggung jawab untuk mengelola alur kerja, alur pemrosesan, dan proses ETL. Karena pentingnya fungsi-fungsi ini, ini adalah jargon profesional populer lainnya yang secara aktif mendapatkan momentum.

Gaji yang tinggi dan permintaan yang besar hanyalah sebagian kecil dari apa yang membuat pekerjaan ini sangat menarik! Jika Anda ingin bergabung dengan barisan pahlawan, tidak ada kata terlambat untuk mulai belajar. Dalam posting ini, saya telah mengumpulkan semua informasi yang diperlukan untuk membantu Anda mengambil langkah pertama.

Jadi, ayo kita mulai!

Apa itu Rekayasa Data?

Sejujurnya, tidak ada penjelasan yang lebih baik dari ini:

“Seorang ilmuwan bisa menemukan bintang baru, tapi dia tidak bisa menciptakannya. Dia harus meminta seorang insinyur untuk melakukannya untuknya."

–Gordon Lindsay Glegg

Oleh karena itu, peran seorang data engineer cukup besar.

Seperti namanya, rekayasa data berkaitan dengan data, yaitu pengiriman, penyimpanan, dan pemrosesannya. Oleh karena itu, tugas utama para insinyur adalah menyediakan infrastruktur data yang andal. Jika kita melihat hierarki kebutuhan AI, rekayasa data menempati 2–3 tahap pertama: pengumpulan, pergerakan dan penyimpanan, persiapan data.

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Apa yang dilakukan seorang insinyur data?

Dengan munculnya big data, cakupan tanggung jawab telah berubah secara dramatis. Jika sebelumnya para ahli ini menulis kueri SQL berukuran besar dan menyaring data menggunakan alat seperti Informatica ETL, Pentaho ETL, Talend, kini persyaratan untuk insinyur data telah meningkat.

Sebagian besar perusahaan yang membuka lowongan untuk posisi data engineer memiliki persyaratan sebagai berikut:

  • Pengetahuan luar biasa tentang SQL dan Python.
  • Pengalaman dengan platform cloud, khususnya Amazon Web Services.
  • Pengetahuan tentang Java/Scala lebih disukai.
  • Pemahaman yang baik tentang database SQL dan NoSQL (pemodelan data, pergudangan data).

Perlu diingat, ini hanya hal-hal yang penting saja. Dari daftar tersebut, dapat diasumsikan bahwa data engineer adalah spesialis di bidang pengembangan perangkat lunak dan backend.
Misalnya, jika sebuah perusahaan mulai menghasilkan data dalam jumlah besar dari berbagai sumber, tugas Anda sebagai insinyur data adalah mengatur pengumpulan informasi, pemrosesan, dan penyimpanannya.

Daftar alat yang digunakan dalam hal ini mungkin berbeda, semuanya tergantung pada volume data, kecepatan perolehan dan heterogenitasnya. Sebagian besar perusahaan tidak berurusan dengan data besar sama sekali, jadi sebagai repositori terpusat, yang disebut gudang data, Anda dapat menggunakan database SQL (PostgreSQL, MySQL, dll.) dengan sekumpulan kecil skrip yang memasukkan data ke dalamnya. gudang.

Raksasa IT seperti Google, Amazon, Facebook atau Dropbox memiliki persyaratan yang lebih tinggi: pengetahuan tentang Python, Java atau Scala.

  • Pengalaman dengan data besar: Hadoop, Spark, Kafka.
  • Pengetahuan tentang algoritma dan struktur data.
  • Memahami dasar-dasar sistem terdistribusi.
  • Pengalaman dengan alat visualisasi data seperti Tableau atau ElasticSearch akan menjadi nilai tambah.

Artinya, terdapat pergeseran yang jelas ke arah big data, yaitu dalam pemrosesannya di bawah beban tinggi. Perusahaan-perusahaan ini telah meningkatkan persyaratan untuk toleransi kesalahan sistem.

Insinyur Data Vs. ilmuwan data

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?
Oke, itu tadi perbandingan yang sederhana dan lucu (tidak bersifat pribadi), namun kenyataannya jauh lebih rumit.

Pertama, Anda harus tahu bahwa ada banyak ambiguitas dalam penggambaran peran dan keterampilan data scientist dan data engineer. Artinya, Anda mudah bingung tentang keterampilan apa saja yang dibutuhkan untuk menjadi data engineer yang sukses. Tentu saja, ada keterampilan tertentu yang tumpang tindih dengan kedua peran tersebut. Namun ada juga sejumlah keterampilan yang bertentangan secara diametral.

Ilmu data adalah bisnis yang serius, namun kita sedang bergerak menuju dunia ilmu data fungsional di mana para praktisi dapat melakukan analisis mereka sendiri. Untuk mengaktifkan jalur data dan struktur data terintegrasi, Anda memerlukan insinyur data, bukan ilmuwan data.

Apakah data engineer lebih diminati dibandingkan data scientist?

- Iya, karena sebelum membuat kue wortel, wortel harus dipanen terlebih dahulu, dikupas, dan dikaldu!

Seorang insinyur data memahami pemrograman lebih baik daripada ilmuwan data mana pun, tetapi jika menyangkut statistik, yang terjadi adalah sebaliknya.

Namun inilah keuntungan dari seorang data engineer:

Tanpa dia, nilai model prototipe, yang paling sering terdiri dari sepotong kode berkualitas buruk dalam file Python, diperoleh dari ilmuwan data dan entah bagaimana memberikan hasil, cenderung nol.

Tanpa insinyur data, kode ini tidak akan pernah menjadi sebuah proyek dan tidak ada masalah bisnis yang dapat diselesaikan secara efektif. Insinyur data mencoba mengubah semua ini menjadi sebuah produk.

Informasi dasar yang harus diketahui oleh seorang data engineer

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Jadi, jika pekerjaan ini mencerahkan Anda dan Anda antusias - Anda dapat mempelajarinya, Anda dapat menguasai semua keterampilan yang diperlukan dan menjadi bintang rock sejati di bidang teknik data. Dan ya, Anda dapat melakukannya bahkan tanpa keahlian pemrograman atau pengetahuan teknis lainnya. Itu sulit, tapi mungkin!

Apa langkah pertama?

Anda harus memiliki gambaran umum tentang apa itu.

Pertama-tama, Rekayasa Data mengacu pada ilmu komputer. Lebih khusus lagi, Anda harus memahami algoritma dan struktur data yang efisien. Kedua, karena data engineer bekerja dengan data, penting untuk memahami prinsip-prinsip database dan struktur yang mendasarinya.

Misalnya, database SQL B-tree konvensional didasarkan pada struktur data B-Tree, serta, dalam repositori terdistribusi modern, LSM-Tree dan modifikasi tabel hash lainnya.

*Langkah-langkah ini didasarkan pada artikel yang bagus Adilya Khashtamova. Jadi, jika Anda tahu bahasa Rusia, dukung penulis ini dan bacalah postingannya.

1. Algoritma dan struktur data

Menggunakan struktur data yang tepat dapat meningkatkan kinerja suatu algoritma secara signifikan. Idealnya, kita semua harus belajar tentang struktur data dan algoritma di sekolah kita, tapi hal ini jarang dibahas. Bagaimanapun, tidak ada kata terlambat untuk saling mengenal.
Jadi, inilah kursus gratis favorit saya untuk mempelajari struktur data dan algoritma:

Selain itu, jangan lupakan karya klasik Thomas Corman tentang algoritma - Pengantar Algoritma. Ini adalah referensi sempurna ketika Anda perlu menyegarkan ingatan Anda.

  • Untuk meningkatkan keterampilan Anda, gunakan kode sandi.

Anda juga dapat menyelami dunia database dengan video menakjubkan dari Carnegie Mellon University di Youtube:

2. Pelajari SQL

Seluruh hidup kita adalah data. Dan untuk mengekstrak data ini dari database, Anda perlu “berbicara” dalam bahasa yang sama dengannya.

SQL (Structured Query Language) adalah bahasa komunikasi dalam domain data. Terlepas dari apa yang orang katakan, SQL telah hidup, masih hidup, dan akan hidup untuk waktu yang sangat lama.

Jika Anda sudah lama berkecimpung dalam pengembangan, Anda mungkin memperhatikan bahwa rumor tentang kematian SQL yang akan segera terjadi muncul secara berkala. Bahasa ini dikembangkan pada awal tahun 70an dan masih sangat populer di kalangan analis, pengembang, dan peminat.
Tanpa pengetahuan tentang SQL, tidak ada yang bisa dilakukan dalam rekayasa data karena Anda pasti harus membuat kueri untuk mengambil data. Semua gudang data besar modern mendukung SQL:

  • Pergeseran Merah Amazon
  • HP Vertika
  • Peramal
  • SQL Server

... dan banyak lagi.

Untuk menganalisis lapisan besar data yang disimpan dalam sistem terdistribusi seperti HDFS, mesin SQL diciptakan: Apache Hive, Impala, dll. Lihat, itu tidak akan kemana-mana.

Bagaimana cara belajar SQL? Lakukan saja dalam praktik.

Untuk melakukan ini, saya akan merekomendasikan untuk membaca tutorial luar biasa, yang gratis Analisis Mode.

  1. SQL menengah
  2. Menggabungkan Data dalam SQL

Apa yang membuat kursus ini istimewa adalah mereka memiliki lingkungan interaktif tempat Anda dapat menulis dan menjalankan kueri SQL langsung di browser Anda. Sumber SQL modern tidak akan berlebihan. Dan Anda bisa menerapkan pengetahuan ini Tugas kode Leet di bagian Basis Data.

3. Pemrograman dengan Python dan Java/Scala

Mengapa Anda harus mempelajari bahasa pemrograman Python, sudah saya tulis di artikel Python vs R. Memilih Alat Terbaik untuk AI, ML, dan Ilmu Data. Jika berbicara tentang Java dan Scala, sebagian besar alat untuk menyimpan dan memproses data dalam jumlah besar ditulis dalam bahasa-bahasa ini. Misalnya:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Jawa)
  • Apache Spark (Scala)
  • Apache Cassandra (Jawa)
  • HBase (Jawa)
  • Sarang Apache (Jawa)

Untuk memahami cara kerja alat-alat ini, Anda perlu mengetahui bahasa penulisannya. Pendekatan fungsional Scala memungkinkan Anda memecahkan masalah pemrosesan data paralel secara efektif. Sayangnya, Python tidak bisa membanggakan kecepatan dan pemrosesan paralel. Secara umum, pengetahuan tentang beberapa bahasa dan paradigma pemrograman baik untuk memperluas pendekatan pemecahan masalah.

Untuk mendalami bahasa Scala, Anda bisa membaca Pemrograman di Scala dari penulis bahasa tersebut. Twitter juga menerbitkan panduan pengantar yang bagus - Sekolah Scala.

Mengenai Python, saya yakin Python yang Lancar buku tingkat menengah terbaik.

4. Alat untuk bekerja dengan data besar

Berikut daftar alat terpopuler di dunia big data:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Sarang)
  • Apache Cassandra

Anda dapat menemukan informasi lebih lanjut tentang membangun blok data besar di artikel menakjubkan ini lingkungan interaktif. Alat yang paling populer adalah Spark dan Kafka. Mereka pasti layak untuk dipelajari, disarankan untuk memahami cara kerjanya dari dalam. Jay Kreps (salah satu penulis Kafka) menerbitkan sebuah karya monumental pada tahun 2013 Log: Yang Harus Diketahui Setiap Pengembang Perangkat Lunak Tentang Abstraksi Agregasi Data Waktu NyataOmong-omong, ide utama dari Talmud ini digunakan untuk membuat Apache Kafka.

5. Platform awan

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Pengetahuan tentang setidaknya satu platform cloud ada dalam daftar persyaratan dasar bagi pelamar untuk posisi insinyur data. Pengusaha lebih memilih Amazon Web Services, dengan platform cloud Google di posisi kedua dan Microsoft Azure di posisi tiga teratas.

Anda harus memiliki pengetahuan yang baik tentang Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sistem terdistribusi

Bekerja dengan data besar menyiratkan adanya kelompok komputer yang beroperasi secara independen, yang komunikasinya dilakukan melalui jaringan. Semakin besar clusternya, semakin besar kemungkinan kegagalan node anggotanya. Untuk menjadi data scientist yang hebat, Anda perlu memahami permasalahan dan solusi yang ada untuk sistem terdistribusi. Daerah ini sudah tua dan kompleks.

Andrew Tanenbaum dianggap sebagai pionir dalam bidang ini. Bagi yang tidak takut dengan teori, saya merekomendasikan bukunya "Sistem Terdistribusi", ini mungkin tampak menakutkan bagi pemula, tetapi ini akan sangat membantu Anda mengasah keterampilan Anda.

Saya pertimbangkan Merancang Aplikasi Intensif Data oleh Martin Kleppmann buku pengantar terbaik. Ngomong-ngomong, Martin punya yang luar biasa blog. Karyanya akan membantu mensistematisasikan pengetahuan tentang membangun infrastruktur modern untuk menyimpan dan memproses data besar.
Bagi yang suka menonton video, ada kursusnya di Youtube Sistem komputer terdistribusi.

7. Saluran data

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Saluran data adalah sesuatu yang Anda tidak bisa hidup tanpanya sebagai insinyur data.

Seringkali, seorang insinyur data membangun apa yang disebut saluran data, yaitu, ia menciptakan proses untuk mengirimkan data dari satu tempat ke tempat lain. Ini bisa berupa skrip khusus yang masuk ke API layanan eksternal atau membuat kueri SQL, menambah data, dan memasukkannya ke dalam penyimpanan terpusat (gudang data) atau penyimpanan data tidak terstruktur (data lake).

Untuk meringkas: daftar periksa dasar untuk seorang insinyur data

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Untuk meringkasnya, diperlukan pemahaman yang baik tentang hal-hal berikut:

  • Sistem Informasi;
  • Pengembangan perangkat lunak (Agile, DevOps, Teknik Desain, SOA);
  • Sistem terdistribusi dan pemrograman paralel;
  • Dasar-Dasar Basis Data - Perencanaan, Desain, Pengoperasian, dan Pemecahan Masalah;
  • Desain eksperimen - Pengujian A/B untuk membuktikan konsep, menentukan keandalan, kinerja sistem, dan mengembangkan jalur yang andal untuk memberikan solusi yang baik dengan cepat.

Ini hanyalah beberapa persyaratan untuk menjadi seorang insinyur data, jadi pelajari dan pahami sistem data, sistem informasi, pengiriman/penerapan/integrasi berkelanjutan, bahasa pemrograman, dan topik ilmu komputer lainnya (tidak semua bidang studi).

Dan terakhir, hal terakhir namun sangat penting yang ingin saya sampaikan.

Jalan untuk menjadi Teknik Data tidak sesederhana kelihatannya. Dia tidak memaafkan, dia membuat frustrasi, dan Anda harus siap menghadapinya. Beberapa momen dalam perjalanan ini mungkin mendorong Anda untuk menyerah. Namun ini adalah kerja nyata dan proses pembelajaran.

Hanya saja, jangan menutup-nutupinya dari awal. Inti dari perjalanan adalah belajar sebanyak mungkin dan bersiap menghadapi tantangan baru.
Inilah gambar bagus yang saya temukan yang menggambarkan hal ini dengan baik:

Siapakah insinyur data itu, dan bagaimana Anda menjadi insinyur data?

Dan ya, ingatlah untuk menghindari kelelahan dan istirahat. Ini juga sangat penting. Semoga beruntung!

Apa pendapat Anda tentang artikel itu, teman-teman? Kami mengundang Anda untuk webinar gratis, yang akan berlangsung hari ini pukul 20.00. Selama webinar, kita akan membahas bagaimana membangun sistem pemrosesan data yang efektif dan terukur untuk perusahaan kecil atau startup dengan biaya minimal. Sebagai praktiknya, kita akan berkenalan dengan alat pengolah data Google Cloud. Sampai jumpa!

Sumber: www.habr.com

Tambah komentar