در دنیای بهشدت رقابتی امروز، این دادهها هستند که عامل موفقیت یا شکست کسبوکارها بهشمار میروند. به بیان دقیقتر، تمامی واحدهای مدیریتی، تحقیقاتی، آموزشی و تحلیلگران برای انجام درست وظایف خود نیازمند دادهها هستند. با اینحال، دادهها به خودی خود ارزش زیادی ندارند و باید پردازش شوند.
پردازش به این معنا است که فردی متخصص باید اطلاعات را طبقهبندی کرده و ارتباط ناپیدای میان دادهها را کشف کند. با توجه به اینکه انجام چنین کاری بهشیوه دستی برای مقادیر کمی از دادهها مناسب است، بنابراین ابزارهایی برای پردازش اطلاعات تعریف شدهاند تا کار متخصصان در این زمینه ساده شود.
بهطور معمول، شرکتها و سازمانهای بزرگ بانکهای اطلاعاتی بزرگ را برای نگهداری ساختیافته اطلاعات تعریف میکنند. در اصطلاح رایج به مجموعه بانکهای اطلاعاتی که برای نگهداری حجم عظیمی از اطلاعات استفاده میشوند مخزن گفته میشود. برای پردازش این دادهها شرکتها به افرادی نیاز دارند که مهندس داده (Data Engineer) نامیده میشوند.
پیشنهاد مقاله: متخصص علم داده کیست و چگونه یک کارشناس علم دادهها شویم؟
مهندس داده کیست و چه کاری انجام میدهد؟
قبل از آنکه به معرفی عنوان شغلی مهندس داده بپردازیم، ابتدا باید ببینم که مهندسی داده به چه معنا است. مهندسی دادهها به مجموعه اقدامات و کارهایی اشاره دارد که برای پیادهسازی زیرساختها با هدف ارائه مکانیزمهای قابل اعتماد برای جمعآوری دادهها انجام میشود. بر مبنای این تعریف، مهندس داده، فردی است که مسئولیت مدیریت و کنترل فعالیتهایی را بر عهده دارد که برای ذخیرهسازی دادهها انجام میشوند. مهندسان دادهها در بیشتر موارد، مسئول هستند تا کلان دادهها (Big Data) را به ماهیتی تبدیل کنند که امکان تحلیل آنها فراهم شود. برای این منظور، آنها باید زیرساختهای مدیریت داده با گسترشپذیری بالا را طراحی، مستقر و آزمایش کنند و در ادامه بهنگهداری از آنها بپردازند.
علاوه بر این، مسئولیت توسعه، ساخت، آزمایش و مدیریت الگوهایی که برای ذخیرهسازی دادهها در بانکهای اطلاعاتی و سامانههای پردازش دادهها در مقیاس بزرگ بهآنها نیاز است را بر عهده دارند. این عنوان شغلی تا حدودی الهام گرفته از کاری است که مهندسان تاسیسات فنی انجام میدهند. در دنیای فناوری اطلاعات مهندس داده، گذرگاههای انتقال داده که Pipeline نامیده میشود را تعریف میکند، آنها را بهیکدیگر متل میکند، اطلاعاتی که ارزش چندانی ندارند را حذف میکند تا اطلاعات از طریق این گذرگاههای انتقال داده به درون مخازن (بانکهای اطلاعاتی) وارد شوند. این گذرگاههای انتقال دادهها به سایر متخصصان فعال در حوزه تحلیل دادهها کمک میکند به مجموعهای قابل استناد از دادههای کاربردی که امکان تحلیل آنها وجود دارد دسترسی داشته باشند. با این توصیف باید بگوییم، مهمترین وظیفه یک مهندس داده طراحی و پیادهسازی کانالهای انتقال اطلاعات (گذرگاههای انتقال اطلاعات) است.
حقوق مهندس داده چقدر است؟
مهندسی داده یک شغل پردرآمد است. طبق گزارش سایت کاریابی Glassdoor که ژوئن 2021 منتشر کرد، متوسط حقوق این عنوان شغلی در ایالات متحده 111933 دلار است، هرچند برخی از مهندسان داده سالانه 164000 دلار درآمد دارند. حال این عنوان شغلی را با نمونههای دیگری مثل تحلیلگر داده (68000 دلار) یا مدیر پایگاه داده (81444 دلار) مقایسه کنید تا ببینید بازار کار مهندسان داده حسابی پر رونق است.
پیشنهاد مقاله: مشاغل مرتبط با هوش مصنوعی: 7 شغل جذاب با چاشنی دادهمحوری
آیا یک مهندس داده به مدرک کارشناسی نیاز دارد؟
بهعنوان یک مهندس داده باید به فکر یادگیری زبانهای برنامهنویسی و ابزارهایی باشید که روند استخدام را تسهیل میکنند. سازمانها از یک مهندس داده انتظار دارند در زمینه کار با ابزارهای تخصصی مهارتهای فنی کافی را داشته باشند. در کنار تسلط بر زبانهای برنامهنویسی، باید سطح دانش خود در ارتباط با نحوه پیادهسازی گذرگاههای انتقال دادهها را تقویت کنید. یعنی باید بدانید که Pipeline چیست، چگونه تعریف میشود و چگونه باید آنرا بهینهسازی کنید. اگر در نظر دارید یک مهندس دادههای قدرتمند شوید، باید بر مبنای یک الگوی کارآمد که در ادامه به آن اشاره میکنیم، گام بردارید.
در حالت کلی، مهندسان داده حداقل مدرک کارشناسی در رشته علوم کامپیوتر، آمار، ریاضیات، صنایع یا رشتههای مرتبط با فناوری اطلاعات را دارند. دریافت مدرک دانشگاهی به افراد کمک میکند با مباحث اولیه دنیای فناوری مثل برنامهنویسی، تعامل با بانکهای اطلاعاتی، نحوه پیادهسازی کوئریها (Queries) روی پایگاه دادههایی مثل SQL آشنا شوند. البته، برخی افراد هم هستند که ترجیح میدهند به شیوه تجربی، مهارتهای موردنیاز را کسب کنند یا از طریق مراجعه به آموزشگاهها و موسسات آموزشی مهارتهای موردنیاز را بهدست آورند. در هر دو حالت، مهندسان داده باید بر مبنای یک برنامهریزی دقیق گام بردارند. این برنامهریزی میتواند مشابه حالت زیر باشد:
- دریافت مدرک کارشناسی در رشتههایی که اشاره شد یا مراجعه به آموزشگاهایی که روی این حوزهها کار میکنند و در ادامه کار روی پروژههایی که مرتبط با تجزیه و تحلیل دادهها هستند. یکی از بهترین روشهایی که کمک میکند پس از تحصیل یا هنگام تحصیل سطح مهارتهای فنی خود را ارتقا دهید، دورههای کارآموزی است. کارآموزی به شما کمک میکند در ارتباط با مباحثی مثل ساختمان دادهها، الگوریتمها، مدیریت بانکهای اطلاعات و برنامهنویسی مرتبط با بانکهای اطلاعاتی مهارت کسب کنید.
- در مرحله بعد باید به دنبال بهبود مهارتهای کاربردی و آشنایی با ابزارهایی بروید که برای تحلیل کلان دادهها در دسترس قرار دارند. با توجه به اینکه، بخش عمدهای از دادهها درون بانکهای اطلاعاتی رابطهای قرار میگیرند، بنابراین باید دانش خود در ارتباط با SQL را ارتقا دهید. SQL مهمترین مهارتی است که برای کار با پایگاههای دادهها به آن نیاز دارید. تسلط بر این زبان پرسوجوی ساخت یافته، اجتنابناپذیر است، زیرا همانگونه که اشاره شد، بخش عمدهای از دادهها در بانکهای اطلاعاتی رابطهای ذخیره میشوند. هنگامی که دانش خود در ارتباط با اسکیوال را ارتقا دادید، در ادامه باید بیاموزید که چگونه از این فناوری برای پیادهسازی محاورهها روی پلتفرمهایی مثل آپاچی هایو Apache Hive که بستری قدرتمند برای تحلیل دادهها ارائه میکند استفاده کنید.
در ادامه باید روی یادگیری زبانهای برنامهنویسی سرمایهگذاری کنید که مهمترین گزینهها در این زمینه زبانهای برنامه نویسی پایتون (Python) و آر (R) هستند. این زبانها به شما در تحلیلهای آماری و مدلسازی کمک میکنند. در مرحله بعد باید روی فناوریهای مهم این حوزه مثل اسپارک (Spark)، هدوپ (Hadoop) و کافکا (Kafka) سرمایهگذاری کنید. با توجه به اینکه مهندسان داده در قالب یک تیم کار میکنند، باید در ارتباط با مهارتهای دیگری همچون اسکرام، طراحی چابک و….. دانشاندوزی کنید؛ زیرا در بیشتر موارد تیمها در تشریح وظایف از اصطلاحاتی مثل اسپرینت استفاده میکنند که باید در مورد آنها شناخت کافی داشته باشید. آشنایی با مباحث یادگیری ماشین، پیادهسازی درست و کارآمد بانکهای اطلاعاتی، داده کاوی و پیادهسازی گذرگاههای انتقال داده با فناوریهای ابرمحوری مثل Amazon Web Services اهمیت زیادی دارد.
پیشنهاد مقاله: چگونه از پایتون برای داده کاوی استفاده کنیم؟
- در مرحله بعد باید مطالعه دقیقی در ارتباط با تکنیکها، الگوهای طراحی (Design Patterns) و الگوریتمهایی باشید که در زمینه پردازش دادهها کاربرد دارند یا به تازگی به دنیای فناوری وارد شدهاند. بهترین راه برای شناخت الگوهای طراحی در برنامهنویسی انجام کارهای عملی است. بنابراین سعی کنید شغلی به عنوان برنامهنویس در شرکتی پیدا کنید. اینکار به شما کمک میکند اطلاعات ارزشمندی در ارتباط با کدنویسی بهدست آورید و علاوه بر این با فرهنگ سازمانی آشنا شوید. کار در شرکتها به شما کمک میکند تا نحوه تعامل با دیگران را بهدست آورید، به ویژه آنکه قرار است به عنوان مهندس داده با افراد مختلفی مشغول به کار شوید که هر یک تخصصهای خاص خود را دارند.
- در مرحله بعد باید به فکر دریافت گواهینامههای بینالمللی فناوری اطلاعات باشید که در زمینه کلان دادهها ارائه شدهاند. کسب مدارک بینالمللی حوزه فناوری اطلاعات که مرتبط با دادهها هستند، یک انتخاب هوشمندانه هستند. اگر در نظر دارید مهارت خاصی را بیاموزید که پیشرفته است، بهترین روش گواهینامههای تخصصی هستند. امروزه شرکتهای بزرگی مثل مایکروسافت، آمازون، گوگل، آیبیام و نمونههای مشابه در حوزه پردازش و تحلیل دادهها مدارک بینالمللی ارائه میکنند. از مدارک مهم در این زمینه میتوان به CDMP مخفف Certified Data Management Professional اشاره کرد.
- اگر از مسیر آکادمیک به این حوزه وارد شدهاید، باید به فکر دریافت مدرک کارشناسی ارشد در رشتههای علوم کامپیوتر، ریاضیات کاربرد، آمار و… باشید. این مدارک راه را برای ارتقا شغلی هموار میکنند.
اکنون که به سال 2022 وارد شدهایم و بخش عمدهای از فعالیتهای مشاغل به شکل دورکاری انجام میشود، تقریبا همه شرکتهای بزرگ نیازمند متخصصانی هستند که به آنها در پردازش دادهها کمک کنند. بههمین دلیل اکنون زمان مناسبی است که روی یادگیری مهارتهای مرتبط با تحلیل دادهها تمرکز کنید. همچنین، پیشنهاد میکنیم، اگر مشکلی از بابت ورود به دانشگاه ندارید، به فکر دریافت مدرک کارشناسی در رشتههای مرتبط با علوم کامپیوتر باشید.
بازار کار شغل مهندسی دادهها چگونه است؟
خوشبختانه فرصتهای شغلی مختلفی برای مهندسان داده وجود دارد، زیرا قبل از آنکه متخصصانی مثل برنامهنویسان یادگیری ماشین، هوش مصنوعی، پردازش زبان طبیعی و…. قادر به انجام وظایف خود باشند به مجموعه دادههای کاربردی نیاز دارند. بنابراین، این عنوان شغلی مورد توجه سازمانها قرار دارد. مهندسان داده به شرکتهای فعال در حوزه فناوری اطلاعات و صنایعی مثل خودروسازی، بهداشت و درمان، موسسات مالی و موارد مشابه کمک میکنند به بهترین شکل از منابع دادهای استفاده کنند.
شرح وظایف یک مهندس داده چیست؟
تعریف دقیقی در ارتباط با شرح وظایف یک مهندس داده نمیتوان ارائه کرد، زیرا هر شرکتی مسئولیتهای خاصی را برای یک مهندس داده تعریف میکند. بهطور معمول، مهندسی داده با مسئولیتهایی مثل ساخت الگوریتمهای با کارایی بالا، مدلهای پیشگویانه، توسعه مجموعه دادههای کاربردی برای مدلسازی و کاوش دادهها عجین شده است. با اینحال، در حالی کلی از مهارتهای مهم یک مهندس داده به موارد زیر باید اشاره کرد:
- تایید این موضوع که سامانه ذخیرهسازی و جمعآوری دادهها همسو با اهفدا تجاری و استانداردهای صنعتی است.
- یکپارچهسازی نرمافزارها و فناوریهای جدید مدیریت دادهها با معماریهای فعلی با هدف دستیابی به عملکرد بهتر.
- انجام پژوهشهای کاربردی با هدف شناسایی ابزارهای جدیدی که اجازه میدهند به شکل کارآمدتری به نمونهبرداری از دادهها اقدام کرد.
- استفاده از فناوریهای روز تا فرایند پردازش و جمعآوری دادهها خودکارسازی شده و تنها اطلاعات ارزشمند بهدست آیند.
طراحی و پیادهسازی مولفههای نرمافزاری با استفاده از زبانها و ابزارهایی که فرایند جمعآوری دادهها را خودکارسازی میکنند. مولفهها و ماژولها میتوانند با زیرساختها ادغام شوند که خود عامل مهمی در پیادهسازی یک زیرساخت تحلیلی قدرتمند برای تحلیل دادهها به شمار میروند.
یکی از نکات مهمی که در ارتباط با مبحث ذخیرهسازی و پردازش دادهها باید به آن دقت شود، ایمنسازی اطلاعاتی است که قرار روی در مخازن نگهداری شوند. بهطور معمول، این اطلاعات حساس هستند و اطلاعات شرکت و مشتریان را نگهداری میکنند، علاوه بر این، به خطمشیهای تجاری مهم سازمان اشاره دارند، بنابراین مهم است به شکل درستی از آنها نگهداری کرد.
جمعبندی بحث
در نهایت برای موفقیت در این مسیر شغلی جذاب و پرسود مسیری که باید پشت سر بگذارید به شرح زیر است:
مهارتهای مهندسی داده خود را توسعه دهید. به بیان دقیقتر، اصول رایانش ابری، مهارتهای کدنویسی و طراحی پایگاه داده را به عنوان نقطه شروعی برای یک حرفه در علم داده بیاموزید.
- کدنویسی: مهارت در زبانهای کدنویسی برای این نقش ضروری است، بنابراین به فکر یادگیری مهارتهای مرتبط با دنیای برنامهنویسی باشید. از زبانهای برنامهنویسی رایج و پر کاربرد در این زمینه باید به SQL، NoSQL، Python، Java، R و Scala اشاره کرد.
- پایگاههای داده رابطهای و غیر رابطهای: پایگاههای داده رایجترین راهحلها برای ذخیرهسازی دادهها هستند. شما باید با هر دو پایگاه داده رابطهای و غیر رابطهای و نحوه کار آنها آشنا باشید.
- سیستمهای ETL (استخراج، تبدیل و بارگذاری): ETL فرآیندی است که توسط آن دادهها را از پایگاههای داده و سایر منابع به یک مخزن واحد مانند انبار داده منتقل میکنید. از ابزارهای رایج ETL باید به Xplenty، Stitch، Alooma و Talend اشاره کرد.
- ذخیرهسازی دادهها: دادههای مختلف نباید بهطور یکسان ذخیره شوند، این نکته به ویژه در ارتباط با کلان دادهها صادق است. همانطور که راهحلهای داده را برای یک شرکت طراحی میکنید، باید بدانید که برای مثال، چه زمانی از یک دریاچه داده (Data lake) در مقابل یک انبار داده (Data Warehouse) استفاده کنید.
- اتوماسیون و اسکریپت نویسی: اتوماسیون یا همان خودکارسازی بخشی ضروری از کار با کلان داده است، زیرا سازمانها به راحتی قادر به جمعآوری حجم زیادی از اطلاعات هستند. شما باید بتوانید اسکریپتهایی بنویسید تا کارهای تکراری را خودکارسازی کنید.
- یادگیری ماشین: در حالی که یادگیری ماشین دغدغه اصلی دانشمندان داده است، درک مفاهیم اولیه برای درک بهتر نیازهای دانشمندان داده در تیم میتواند مفید باشد.
- ابزارهای کلان داده: مهندسان داده فقط با دادههای معمولی کار نمیکنند. آنها اغلب وظیفه مدیریت کلان داده را بر عهده دارند. ابزارها و فناوریها در حال تکامل هستند و بسته به شرکتها متفاوت هستند، اما از محبوبترین آنها باید به Hadoop، MongoDB و Kafka اشاره کرد.
- پردازش ابری: شما باید دانش کافی در ارتباط با فضای ذخیرهسازی ابری و محاسبات ابری داشته باشید، زیرا شرکتها بهطور فزایندهای سرورهای فیزیکی را با خدمات ابری جایگزین خواهند کرد. دورههایی مثل خدمات وب آمازون (AWS) یا Google Cloud مسیرهای خوبی برای یادگیری هستند.
- امنیت دادهها: برخی از شرکتها ممکن است تیمهای اختصاصی امنیت داده داشته باشند، با اینحال، بسیاری از مهندسان داده هنوز وظیفه دارند تا دادهها را به طور ایمن مدیریت و ذخیرهسازی کنند تا مشکل گم شدن یا سرقت به وجود نیاید.
پس از آنکه مجموعه مهارتهای یاد شده را فراگرفتید روی ساخت پروژههای مهندسی داده متمرکز شوید. این پروژهها، مسیر استخدامها را هموار میکنند و به استخدامکنندگان، مدیران استخدام و کارفرمایان بالقوه نشان میدهند که چه کاری میتوانید انجام دهید.
میتوانید پروژههای مهندسی دادهای را که بهطور مستقل یا بهعنوان بخشی از دورههای آموزشی تکمیل کردهاید، به یک وبسایت نمونه کار اضافه کنید (با استفاده از سرویسی مانند Wix یا Squarespace). متناوبا، کار خود را در بخش پروژههای نمایه لینکدین یا سایتی مانند GitHub پست کنید که هر سایتهای مهمی در دنیای حرفهای هستند. پیشنهاد میکنم،مهارتهای کلان داده خود را با انجام پروژههای مختلف ارتقا دهید تا هم سطح دانشتان بهبود یابد و هم به کارفرمایان نشان دهید که چه تواناییهایی دارید.
نویسنده: حمیدرضا تائبی
منبع:
https://www.coursera.org/articles/what-does-a-data-engineer-do-and-how-do-i-become-one