تکنولوژیها
- ScalaApache SparkJavaHadoopBig Data
یک «مهندس داده حسابی(یا همان حسابایی!)» کیست؟
در پروژههای علوم داده، بسیاری از مسائلی که با آنها سروکار داریم دادههایی دارند بس حجیم و بزرگ! و خب همانطور که به نظر میآید، کارکردن با این دادهها چالشهایی جذاب و البته بعضا پیچیده مخصوص خود را دارد. یک مهندس داده در حسابا، میتواند با کمک ابزارهای مهداده (Big Data)، زیرساختهای نرمافزاری لازم را هم برای نگهداری این دادهها و هم برای نوشتن برنامهها و سرویسها روی این دادهها فراهم کند و آنها را به نحو بهینهای مدیریت کند.
پس یک مهندس داده حسابی، این ویژگیهای فنی را دارد:
- تسلط به برنامهنویسی و مفاهیم شیگرایی: برنامهنویسی، عصای دست یک مهندس داده است! پس یک مهندس داده خوب، تسلط بالایی به برنامهنویسی دارد؛ به طوریکه به راحتی میتواند طراحیهای مختلف انجام دهد و با رعایت اصول کدنویسی، به طور بهینهای آنها را پیادهسازی کند.
- آشنایی با تحلیل داده: در یک پروژه علوم داده، افراد با تخصصهای مختلف (مثل تحلیلگر و مهندس داده) با هم کار میکنند تا یک پروژه را به سرانجام برسانند. اما با اینکه تمرکز هر کدام از افراد بر یک حوزه خاص است، این اشخاص به خوبی میتوانند با هم تعامل کنند. به همین دلیل است که یک مهندس داده خوب، هم به مبانی نظری تحلیل داده آشناست و هم با ابزارهای تحلیل داده مثل R یا Python کار کرده است.
- تسلط به دانش پایهای علوم کامپیوتر (دادهساختارها و الگوریتمها) : مهندسی داده، مجموعهای از چالشهای جذاب و پیچیده فنی را در بر دارد؛ به طوری که فهم بالا از دادهساختارها و الگوریتمها یک پیشنیاز برای مهندس دادهای است که میخواهد طراحیهای بهینه و درست انجام دهد. به عبارتی، چنین مهندس دادهای راهحلهایش را طوری بهینه میکند که با منابع محدود بتواند بازدهی بالایی کسب کند.
- تجربه عملی در مهندسی نرمافزار و توسعه محصول: مهندس داده خوب، علاوه بر دانش بالایی که دارد، تجربه به ثمررساندن پروژههای نرمافزاری را نیز دارد تا گنجینه علم و عملش کامل باشد!
- تسلط به زبان برنامهنویسی Java یا Scala
- آشنایی با مفاهیم سیستمهای توزیعشده (Distributed Systems): فرآیند کار با مهدادهها، حجم محاسبات بسیار بالایی را نیاز دارد. بنابراین لازم است تا پردازشهای مختلف روی دادهها، به جای یک سیستم متمرکز، توسط مجموعهای از سیستمهای توزیعشده انجام شود تا سرعت پردازشها بهبود پیدا کند.
- آشنایی با ابزارهای Hadoop و Spark: از آنجا که نیازی نیست تا چرخ را از نو اختراع کنیم، برای کار با مهدادهها هم نیازی نیست تا همه کدها را از ابتدا بنویسیم. به همین دلیل، آشنایی با این ابزارهای آماده، مثل Hadoop و Spark، برای یک مهندس داده از اوجب واجبات است!
- - آشنایی با پایگاههای داده توزیعشده (مثل Cassandra یا HBase): برای نگهداری مهدادهها، پایگاههای داده سنتی و متمرکز کارا نیست؛ برای همین نیاز است تا از پایگاههای دادهای استفاده شود که به صورت غیرمتمرکز در سرورهای مختلف داده را نگه دارد.
- - آشنایی با سیستم عامل لینوکس: اهمیت لینوکس در کارهای نرمافزاری بر اهلش پوشیده نیست! به همین دلیل است که مهندس داده، باید با سیستم عاملی که میخواهد کارهایش را روی آن انجام دهد آشنایی داشته باشد تا در صلح و صفا و با تعامل دوستانه با سیستم عامل کدش را بزند و اجرا کند!
- آشنایی با شبکههای کامپیوتری: برای استفاده از سیستمهای توزیعشده، که اعضای آن ممکن است از نظر جغرافیایی با هم کیلومترها فاصله داشته باشند، نیاز است تا با کمک شبکهها آنها را به هم متصل کنیم تا به صورت یک مجموعه سیستم قابل استفاده شوند. به همین دلیل است که فهم خوب از شبکههای کامپیوتری برای یک مهندس داده خیلی وقتها میتواند کمککننده باشد.
و البته این ویژگیهای عمومی هم برای هر حسابایی، از نان شب واجبتر است:
- توانایی حل مسئله: میتوان گفت که هر داده و پروژه، یک مسئله جدید است که قبلا ندیدهایم! به همین دلیل است که یک حسابایی میتواند به خوبی به مسائل جدید حمله کند تا آنها را از پا دربیاورد.
- دارای روحیه کار تیمی: در حسابا هم طبیعتا این «تیم» است که پروژهها را انجام میدهد و نه «شخص» و نه حتی مجموعهای از «شخصها»! بنابراین توانایی کار کردن با یک تیم، یکی از مهمترین ویژگیهای یک حسابایی است.
- دارای روحیه علمی و پژوهشی: در حسابا، خیلی اوقات به خاطر طبیعت پیچیده یک مسئله نیاز به پژوهش و تحقیق در لبههای دانش داریم؛ یعنی باید پژوهشهای علمی و نظری حول مسائلمان انجام دهیم تا بتوانیم حلشان کنیم.
- علاقهمند به یادگیری: در علوم داده هم مثل خیلی از حوزههای فناوری و دانش، ابزارها و دانشها دائما در حال تحول و پیشرفت هستند. به همین دلیل، علاقه به یادگیری فناوریهای جدید یکی از تواناییهای مهم یک حسابایی است که میخواهد همیشه با استانداردهای بالا کارهایش را انجام دهد.
پس اگر به نظرتان میآید همه یا اکثر ویژگیهای یک مهندس داده حسابی را دارید، خوشحال میشویم که رزومهتان را برایمان بفرستید :)
(لازم به توضیح است که امکان همکاری به صورت پارهوقت نیز فراهم است.)
مزایا
- ناهار و پذیرایی میانوعده
- حقوق مناسب و رقابتی
- ساعتکاری منعطف
- فرصت یادگیری و رشد علمی و مهارتی
- موقعیت مکانی با دسترسی مناسب
- هدیه ازدواج و تولد فرزند
- بیمه و بیمه تکمیلی
- سرگرمیهای روزانه
- فضای استراحت
- پارکینگ اختصاصی