مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

دوباره سلام! عنوان مقاله خود گویای آن است. در آستانه شروع دوره مهندس داده پیشنهاد می کنیم بدانید مهندسان داده چه کسانی هستند. لینک های مفید زیادی در مقاله وجود دارد. خواندن مبارک.

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

یک راهنمای ساده برای اینکه چگونه موج مهندسی داده را بگیرید و اجازه ندهید که شما را به ورطه بکشاند.

به نظر می رسد این روزها همه می خواهند دانشمند داده شوند. اما در مورد مهندسی داده چطور؟ اساساً، این نوعی ترکیبی از یک تحلیلگر داده و یک دانشمند داده است. یک مهندس داده معمولاً مسئول مدیریت گردش کار، پردازش خطوط لوله و فرآیندهای ETL است. با توجه به اهمیت این توابع، در حال حاضر این یکی دیگر از اصطلاحات حرفه ای محبوب است که به طور فعال در حال افزایش است.

حقوق بالا و تقاضای زیاد تنها بخش کوچکی از جذابیت این شغل است! اگر می خواهید به صف قهرمانان بپیوندید، هرگز برای شروع یادگیری دیر نیست. در این پست تمام اطلاعات لازم را برای کمک به شما در برداشتن اولین قدم ها جمع آوری کرده ام.

بنابراین ، بیایید شروع کنیم!

مهندسی داده چیست؟

راستش هیچ توضیحی بهتر از این وجود ندارد:

"یک دانشمند می تواند ستاره جدیدی را کشف کند، اما نمی تواند آن را ایجاد کند. او باید از یک مهندس بخواهد که این کار را برای او انجام دهد."

-گوردون لیندسی گلگ

بنابراین، نقش یک مهندس داده بسیار مهم است.

همانطور که از نام آن پیداست، مهندسی داده با داده ها، یعنی تحویل، ذخیره سازی و پردازش آن سروکار دارد. بر این اساس وظیفه اصلی مهندسان فراهم کردن زیرساخت قابل اعتماد برای داده ها است. اگر به سلسله مراتب نیازهای هوش مصنوعی نگاه کنیم، مهندسی داده 2 تا 3 مرحله اول را اشغال می کند: جمع آوری، جابجایی و ذخیره سازی، آماده سازی داده ها.

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

یک مهندس داده چه کاری انجام می دهد؟

با ظهور داده های بزرگ، دامنه مسئولیت به طور چشمگیری تغییر کرده است. اگر قبلاً این متخصصان پرس و جوهای بزرگ SQL را می نوشتند و داده ها را با استفاده از ابزارهایی مانند Informatica ETL، Pentaho ETL، Talend استخراج می کردند، اکنون الزامات برای مهندسان داده افزایش یافته است.

اکثر شرکت هایی که فرصت های شغلی خالی برای موقعیت مهندس داده دارند، شرایط زیر را دارند:

  • دانش عالی SQL و Python.
  • تجربه با سیستم عامل های ابری، به ویژه خدمات وب آمازون.
  • ترجیحاً آشنایی با جاوا/اسکالا
  • درک خوب از پایگاه های داده SQL و NoSQL (مدل سازی داده، انبار داده).

به خاطر داشته باشید، اینها فقط موارد ضروری هستند. از این لیست می توان فرض کرد که مهندسان داده متخصص در زمینه توسعه نرم افزار و باطن هستند.
به عنوان مثال، اگر یک شرکت شروع به تولید مقدار زیادی داده از منابع مختلف کند، وظیفه شما به عنوان یک مهندس داده سازماندهی مجموعه اطلاعات، پردازش و ذخیره سازی آن است.

لیست ابزارهای مورد استفاده در این مورد ممکن است متفاوت باشد، همه اینها به حجم این داده ها، سرعت دریافت و ناهمگنی آن بستگی دارد. اکثر شرکت ها به هیچ وجه با داده های بزرگ سروکار ندارند، بنابراین به عنوان یک مخزن متمرکز، به اصطلاح انبار داده، می توانید از پایگاه داده SQL (PostgreSQL، MySQL و غیره) با مجموعه کوچکی از اسکریپت ها استفاده کنید که داده ها را به داخل می دهد. انبار.

غول های فناوری اطلاعات مانند گوگل، آمازون، فیس بوک یا دراپ باکس نیازمندی های بالاتری دارند: دانش پایتون، جاوا یا اسکالا.

  • تجربه با داده های بزرگ: هادوپ، اسپارک، کافکا.
  • آشنایی با الگوریتم ها و ساختار داده ها
  • آشنایی با اصول سیستم های توزیع شده
  • تجربه با ابزارهای تجسم داده مانند Tableau یا ElasticSearch امتیاز محسوب می شود.

یعنی یک تغییر واضح به سمت کلان داده، یعنی در پردازش آن تحت بارهای بالا وجود دارد. این شرکت ها الزامات تحمل خطای سیستم را افزایش داده اند.

مهندسان داده در مقابل دانشمندان داده

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟
بسیار خوب، این یک مقایسه ساده و خنده دار بود (هیچ چیز شخصی نیست)، اما در واقعیت بسیار پیچیده تر است.

ابتدا باید بدانید که در تعیین نقش ها و مهارت های یک دانشمند داده و یک مهندس داده ابهامات زیادی وجود دارد. به این معنی که شما به راحتی می توانید در مورد مهارت های مورد نیاز برای یک مهندس داده موفق گیج شوید. البته، مهارت های خاصی وجود دارد که با هر دو نقش همپوشانی دارند. اما تعدادی مهارت کاملاً متضاد نیز وجود دارد.

علم داده یک تجارت جدی است، اما ما به سمت دنیای علم داده عملکردی حرکت می کنیم که در آن پزشکان قادر به انجام تجزیه و تحلیل خود هستند. برای فعال کردن خطوط لوله داده و ساختارهای داده یکپارچه، به مهندسان داده نیاز دارید، نه دانشمندان داده.

آیا یک مهندس داده بیشتر از یک دانشمند داده تقاضا دارد؟

- بله، زیرا قبل از اینکه بتوانید کیک هویج درست کنید، ابتدا باید هویج را جمع آوری کنید، پوست بگیرید و ذخیره کنید!

یک مهندس داده بهتر از هر دانشمند داده ای برنامه نویسی را می فهمد، اما وقتی صحبت از آمار به میان می آید، برعکس است.

اما در اینجا مزیت یک مهندس داده وجود دارد:

بدون او، ارزش مدل نمونه اولیه، که اغلب شامل یک قطعه کد با کیفیت وحشتناک در یک فایل پایتون است، که از یک دانشمند داده به دست می‌آید و به نوعی نتیجه می‌دهد، به صفر می‌رسد.

بدون مهندس داده، این کد هرگز به پروژه تبدیل نخواهد شد و هیچ مشکل تجاری به طور موثر حل نخواهد شد. مهندس داده در تلاش است تا همه اینها را به یک محصول تبدیل کند.

اطلاعات اولیه ای که یک مهندس داده باید بداند

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

بنابراین، اگر این شغل نور را در شما روشن کند و شما مشتاق باشید - می توانید آن را یاد بگیرید، می توانید بر تمام مهارت های لازم تسلط پیدا کنید و به یک ستاره راک واقعی در زمینه مهندسی داده تبدیل شوید. و، بله، شما می توانید این کار را حتی بدون مهارت های برنامه نویسی یا دانش فنی دیگر انجام دهید. سخت است، اما ممکن است!

اولین قدم ها چیست؟

شما باید یک ایده کلی از آنچه چیست داشته باشید.

اول از همه، مهندسی داده به علم کامپیوتر اشاره دارد. به طور خاص، شما باید الگوریتم های کارآمد و ساختارهای داده را درک کنید. ثانیاً، از آنجایی که مهندسان داده با داده ها کار می کنند، درک اصول پایگاه های داده و ساختارهایی که زیربنای آنها هستند ضروری است.

به عنوان مثال، پایگاه‌های داده SQL B-tree معمولی بر اساس ساختار داده B-Tree و همچنین در مخازن توزیع شده مدرن، LSM-Tree و سایر تغییرات جداول هش هستند.

*این مراحل بر اساس یک مقاله عالی است آدیلیا خشتامووا. پس اگر روسی بلدید از این نویسنده حمایت کنید و بخوانید پست او.

1. الگوریتم ها و ساختارهای داده

استفاده از ساختار داده مناسب می تواند عملکرد یک الگوریتم را به میزان قابل توجهی بهبود بخشد. در حالت ایده آل، همه ما باید در مورد ساختارهای داده و الگوریتم ها در مدارس خود یاد بگیریم، اما این موضوع به ندرت پوشش داده می شود. در هر صورت، هیچ وقت برای آشنایی دیر نیست.
بنابراین در اینجا دوره های رایگان مورد علاقه من برای یادگیری ساختارهای داده و الگوریتم ها وجود دارد:

به علاوه کار کلاسیک توماس کورمن در مورد الگوریتم ها را فراموش نکنید - مقدمه ای بر الگوریتم ها. این مرجع عالی برای زمانی است که باید حافظه خود را تازه کنید.

  • برای بهبود مهارت های خود، استفاده کنید لیت کد.

همچنین می‌توانید با ویدیوهای شگفت‌انگیز از دانشگاه کارنگی ملون در یوتیوب وارد دنیای پایگاه‌های داده شوید:

2. SQL را یاد بگیرید

تمام زندگی ما داده است. و برای استخراج این داده ها از پایگاه داده، باید به همان زبان با آن "صحبت" کنید.

SQL (زبان پرس و جوی ساختاریافته) زبان ارتباطی در حوزه داده است. صرف نظر از اینکه کسی چه می گوید، SQL زنده است، زنده است و برای مدت طولانی زنده خواهد ماند.

اگر برای مدت طولانی در حال توسعه بوده اید، احتمالا متوجه شده اید که شایعات مربوط به مرگ قریب الوقوع SQL به صورت دوره ای ظاهر می شوند. این زبان در اوایل دهه 70 توسعه یافت و هنوز در بین تحلیلگران، توسعه دهندگان و علاقه مندان به سادگی بسیار محبوب است.
بدون دانش SQL در مهندسی داده کاری نمی توان انجام داد زیرا ناگزیر باید برای بازیابی داده ها کوئری ایجاد کنید. همه انبارهای داده بزرگ مدرن از SQL پشتیبانی می کنند:

  • آمازون Redshift
  • HP Vertica
  • وحی
  • SQL سرور

... و خیلی های دیگر.

برای تجزیه و تحلیل یک لایه بزرگ از داده های ذخیره شده در سیستم های توزیع شده مانند HDFS، موتورهای SQL اختراع شدند: Apache Hive، Impala، و غیره. ببینید، به جایی نمی رسد.

چگونه SQL را یاد بگیریم؟ فقط آن را در عمل انجام دهید.

برای انجام این کار، توصیه می کنم یک آموزش عالی را بررسی کنید، که اتفاقاً رایگان است تجزیه و تحلیل حالت.

  1. SQL متوسط
  2. اتصال داده ها در SQL

چیزی که این دوره ها را خاص می کند این است که آنها یک محیط تعاملی دارند که می توانید پرس و جوهای SQL را درست در مرورگر خود بنویسید و اجرا کنید. منبع SQL مدرن اضافی نخواهد بود. و شما می توانید این دانش را به کار ببرید وظایف Leetcode در بخش پایگاه های داده

3. برنامه نویسی در پایتون و جاوا/اسکالا

چرا باید زبان برنامه نویسی پایتون را یاد بگیرید، قبلاً در مقاله نوشتم پایتون در مقابل R. انتخاب بهترین ابزار برای هوش مصنوعی، ML و علم داده. وقتی صحبت از جاوا و اسکالا به میان می آید، بیشتر ابزارهای ذخیره و پردازش حجم عظیمی از داده ها به این زبان ها نوشته شده اند. مثلا:

  • آپاچی کافکا (اسکالا)
  • هادوپ، HDFS (جاوا)
  • آپاچی اسپارک (اسکالا)
  • آپاچی کاساندرا (جاوا)
  • HBase (جاوا)
  • Apache Hive (جاوا)

برای اینکه بفهمید این ابزارها چگونه کار می کنند، باید زبان هایی که به آن ها نوشته شده اند را بدانید. رویکرد عملکردی اسکالا به شما اجازه می دهد تا به طور موثر مشکلات پردازش داده های موازی را حل کنید. متأسفانه پایتون نمی تواند به سرعت و پردازش موازی ببالد. به طور کلی، دانش چندین زبان و پارادایم های برنامه نویسی برای وسعت رویکردهای حل مشکلات خوب است.

برای شیرجه زدن به زبان اسکالا، می توانید بخوانید برنامه نویسی در اسکالا از نویسنده زبان. توییتر همچنین یک راهنمای مقدماتی خوب منتشر کرد - مدرسه اسکالا.

در مورد پایتون، من معتقدم پایتون روان بهترین کتاب سطح متوسط

4. ابزار کار با داده های بزرگ

در اینجا لیستی از محبوب ترین ابزارها در دنیای داده های بزرگ آورده شده است:

  • جرقه آپاچی
  • آپاچی کافکا
  • Apache Hadoop (HDFS، HBase، Hive)
  • آپاچی کاساندرا

شما می توانید اطلاعات بیشتری در مورد ساخت بلوک های داده بزرگ در این شگفت انگیز بیابید محیط تعاملی. محبوب ترین ابزارها اسپارک و کافکا هستند. آنها قطعا ارزش مطالعه را دارند، بهتر است درک کنید که چگونه از درون کار می کنند. جی کرپس (همکار نویسنده کافکا) در سال 2013 اثری به یاد ماندنی منتشر کرد گزارش: آنچه که هر توسعه‌دهنده نرم‌افزاری باید درباره انتزاع جمع‌آوری داده‌های بلادرنگ بداندبه هر حال، ایده های اصلی این تلمود برای ایجاد آپاچی کافکا استفاده شد.

5. پلتفرم های ابری

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

دانش حداقل یک پلتفرم ابری در لیست الزامات اولیه متقاضیان موقعیت مهندس داده است. کارفرمایان خدمات وب آمازون را ترجیح می دهند که پلتفرم ابری گوگل در جایگاه دوم قرار دارد و مایکروسافت آژور سه رتبه برتر را تکمیل می کند.

شما باید دانش خوبی از Amazon EC2، AWS Lambda، Amazon S3، DynamoDB داشته باشید.

6. سیستم های توزیع شده

کار با داده های بزرگ به معنای وجود خوشه هایی از رایانه های مستقل است که ارتباط بین آنها از طریق یک شبکه انجام می شود. هر چه خوشه بزرگتر باشد، احتمال شکست گره های عضو آن بیشتر است. برای تبدیل شدن به یک دانشمند بزرگ داده، باید مشکلات و راه حل های موجود برای سیستم های توزیع شده را درک کنید. این منطقه قدیمی و پیچیده است.

اندرو تاننباوم را پیشگام در این زمینه می دانند. برای کسانی که از نظریه نمی ترسند، کتاب او را توصیه می کنم "سیستم های توزیع شده"، ممکن است برای مبتدیان دلهره آور به نظر برسد، اما واقعا به شما کمک می کند تا مهارت های خود را تقویت کنید.

من فکر می کنم طراحی برنامه های کاربردی داده فشرده توسط مارتین کلپمن بهترین کتاب مقدماتی به هر حال، مارتین فوق العاده است وبلاگ. کار او به سیستم‌بندی دانش در مورد ایجاد زیرساخت مدرن برای ذخیره‌سازی و پردازش داده‌های بزرگ کمک خواهد کرد.
برای کسانی که دوست دارند ویدیوها را تماشا کنند، یک دوره آموزشی در یوتیوب وجود دارد سیستم های کامپیوتری توزیع شده.

7. خطوط لوله داده

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

خطوط لوله داده چیزی است که شما نمی توانید بدون آن به عنوان یک مهندس داده زندگی کنید.

اغلب اوقات، یک مهندس داده به اصطلاح خط لوله داده ایجاد می کند، یعنی فرآیندی را برای تحویل داده ها از یک مکان به مکان دیگر ایجاد می کند. اینها می‌توانند اسکریپت‌های سفارشی باشند که به API یک سرویس خارجی می‌روند یا یک پرس و جوی SQL ایجاد می‌کنند، داده‌ها را تقویت می‌کنند و آن‌ها را در یک فروشگاه متمرکز (انبار داده) یا یک ذخیره‌سازی داده بدون ساختار (دریاچه‌های داده) قرار می‌دهند.

به طور خلاصه: چک لیست اساسی برای یک مهندس داده

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

به طور خلاصه، درک خوبی از موارد زیر لازم است:

  • سیستم های اطلاعاتی؛
  • توسعه نرم افزار (Agile، DevOps، Design Techniques، SOA)؛
  • سیستم های توزیع شده و برنامه نویسی موازی؛
  • مبانی پایگاه داده - برنامه ریزی، طراحی، بهره برداری و عیب یابی؛
  • طراحی آزمایش‌ها - تست‌های A/B برای اثبات مفاهیم، ​​تعیین قابلیت اطمینان، عملکرد سیستم و توسعه مسیرهای قابل اعتماد برای ارائه سریع راه‌حل‌های خوب.

اینها تنها تعدادی از الزامات برای تبدیل شدن به یک مهندس داده است، بنابراین سیستم های داده، سیستم های اطلاعاتی، تحویل مداوم/استقرار/ادغام، زبان های برنامه نویسی و سایر موضوعات علوم کامپیوتر (نه همه حوزه های موضوعی) را بیاموزید و درک کنید.

و در آخر آخرین نکته اما بسیار مهمی که می خواهم بگویم.

مسیر تبدیل شدن به مهندسی داده آنقدرها هم که به نظر می رسد ساده نیست. او نمی بخشد، او ناامید می شود و شما باید برای این کار آماده باشید. برخی از لحظات در این سفر ممکن است شما را به تسلیم شدن سوق دهد. اما این یک کار واقعی و یک فرآیند یادگیری است.

فقط از اول آن را شکر نکنید. هدف اصلی سفر یادگیری هر چه بیشتر و آمادگی برای چالش های جدید است.
این یک عکس عالی است که من با آن برخورد کردم که این موضوع را به خوبی نشان می دهد:

مهندسان داده چه کسانی هستند و چگونه می توانید یکی شوید؟

و بله، به یاد داشته باشید که از فرسودگی و استراحت اجتناب کنید. این نیز بسیار مهم است. موفق باشید!

دوستان نظرتون در مورد مقاله چیه؟ شما را دعوت می کنیم وبینار رایگانکه امروز ساعت 20.00:XNUMX برگزار می شود. در طول وبینار، در مورد چگونگی ایجاد یک سیستم پردازش داده موثر و مقیاس پذیر برای یک شرکت کوچک یا استارت آپ با حداقل هزینه بحث خواهیم کرد. به عنوان یک تمرین، با ابزارهای پردازش داده های Google Cloud آشنا می شویم. به امید دیدار!

منبع: www.habr.com

اضافه کردن نظر