آکادمی روشنا: راهنمای شغلی برنامه نویسی
امروزه و به خصوص در سالهای اخیر زندگی ما با علوم کامپیوتر و فناوری اطلاعات گره خورده و حتی در موقعیتهای روزمرهمان نیاز به آن را به طور جدی حس میکنیم. این همهگیری باعث شکلگیری موقعیتهای شغلی متعدد و متنوع هم شده است؛ در هر حوزه از خدمات مثل وب، موبایل، سیستمهای نهفته (Embedded Systems)، هوش مصنوعی، کلانداده، توسعه کسبوکار، رمزارزها، خدمات بانکی و… مسئولیتهای متعددی وجود داشته که توسط برنامهنویسان و مهندسان کامپیوتر انجام میشود.
با توجه به حوزههای فعالیت روشنا و با بهرهگیری از تجربهای که افراد تیم ما از سالها فعالیت در زمینه تخصصشان جمعآوری کردهاند، در آکادمی روشنا راهنمایی جامع برای یادگیری و تقویت مهارت در مسیرهای شغلی مرتبط با صنعت IT تدارک دیدهایم. مسیر شغلی پیشنهادی ما به شما کمک میکند از صفر تا تبدیل شدن به یک نیروی حرفهای، مراحل یادگیری را طی کرده و مباحث و مهارتهای مورد نیاز را یاد بگیرید.
در نظر داشته باشید که دانش و ابزارهایی که امروزه در عمل به کار میروند، وسعت و تنوع بیشتری پیدا کرده و برای این که در هر یک از حوزههای نامبرده توسعه دهنده موفقی باشید، نیاز به یادگیری طیف وسیعی از مباحث دارید. همچنین موضوعاتی هستند که شاید مستقیماً در کار از آنها استفاده نکنید اما آشنایی با آنها و دانستن نحوه عملکردشان دید وسیعتری به شما داده و باعث میشود تصمیمات حرفهایتری بگیرید.
از طرف دیگر منابع متنوعی برای یادگیری و کسب مهارت وجود داشته که کیفیت و حجم مطالب مختلفی دارند. برای همین در این مطلب راهنمای جامعی برای یادگیری دانش و ابزار توسعهدهندگی در حوزههای مختلف مهندسی کامپیوتر و برنامه نویسی را برای شما فراهم کردهایم. در کنار مهارتهای مورد نیاز، ترتیب یادگیری آنها، منابع مناسب برای یادگیری و فوتوفنهای دیگری که بینش وسیعتری به شما ارائه میکنند هم آورده شدهاند.
اولین راهنمای ما در حال حاضر به مسیر تبدیل شدن به توسعهدهنده بک اند (Backend) اختصاص داشته و در آیندهای نزدیک مسیر شغلی توسعهدهنده فرانت اند (Frontend)، اندروید (Android)، دِوآپس (DevOps) و… را نیز در اختیار شما خواهیم گذاشت. به این ترتیب اگر قصد فعالیت در حوزه وب به عنوان برنامهنویس بک اند را دارید از لیست زیر میتوانید مطلب مربوط به آن را پیدا کرده و مطالعه کنید.
راهنمای شغلی
راهنمای توسعه دهنده بک اند (Backend)
یکی از موقعیتهای شغلی محبوب و پرتقاضا در زمینه برنامهنویسی وب، توسعهدهنده بک اند (Backend Developer) است. بهطور کلی وظیفه شما در این موقعیت شغلی ساخت، توسعه و نگهداری از سرویسهایی است که در پشت پرده فعالیت داشته و باعث میشوند یک سرویس وب (اپلیکیشن موبایل یا وبسایت) عملکرد صحیحی داشته، در دسترس بوده و در زمان مناسب نیاز کاربر را به درستی رفع کند. برای تبدیل شدن به برنامهنویس بک اند نیاز به یادگیری طیف وسیعی از مهارتها دارید؛ در مرحله ابتدایی تسلط بر یک زبان برنامهنویسی متداول، تفکر الگوریتمی و حل مسئله، پایگاهدادههای رابطهای، ابزار مدیریت نسخه (Version Control) مثل گیت و مقدمات سیستمعامل و شبکههای کامپیوتری.
سپس باید به سراغ مباحث پیشرفتهتر از جمله ساختار وب، آزمون یا تست نرمافزار، فریمورکهای (Framework) برنامهنویسی وب، معماری سرویس، مفاهیم امنیت و اعتبارسنجی (Authentication & Authoriztion) و… بروید. نهایتاً برای این که بتوانید شغلی به عنوان توسعه دهنده بک اند داشته باشید باید به یادگیری پایگاهدادههای غیررابطهای، ساختار و عملکرد وبسرورها، ابزارهای زیرساختی مثل داکر سیستمهای کش کردن (Caching) و… بپردازید.
اگر قصد تبدیل شدن به توسعهدهنده بک اند را دارید به زودی راهنمای مسیر شغلی آن برای اطلاعات دقیقتر و جامعتر در آکادمی روشنا منتشر خواهد شد.
راهنمای توسعه دهنده فرانت اند(Frontend)
یکی دیگر از موقعیتهای شغلی شناختهشده و بهروز در زمینه برنامهنویسی وب، توسعهدهنده فرانت اند (Frontend Developer) است. مسئولیت اصلی شما در این موقعیت شغلی ساخت، توسعه و نگهداری آن قسمتی از سرویس است که کاربر به طور مستقیم با آن سروکار دارد؛ درواقع همه چیزهایی که کاربر در تعامل با وبسایت یا سرویس شما آن را میبیند. برای تبدیل شدن به برنامهنویس فرانت اند نیاز به یادگیری طیف وسیعی از مهارتها دارید؛ در مرحله ابتدایی تسلط بر HTML به عنوان ابزار اصلی برنامهنویسی و سپس CSS، تفکر الگوریتمی و حل مسئله، یادگیری جاوا اسکریپت و مقدمهای از معماری CSS و مدیریت تسکها و بستهها.
سپس باید به سراغ مباحث پیشرفتهتر از جمله پیشپردازشگر (Pre-processor) در CSS، فریمورکهای CSS، لینتر و فرمتر و ابزارهای باندل کردن در CSS و ترکیب جاوا اسکریپت با CSS بروید. نهایتاً برای این که بتوانید شغلی به عنوان توسعه دهنده فرانت اند داشته باشید باید به یادگیری ابزارهای تست فرانت، ساختارهای برنامههای وب پیشرونده (Progressive Web Apps)، تایپچکرها، ابزارهای رندر سمت سرور و… بپردازید.
اگر قصد تبدیل شدن به توسعهدهنده فرانت اند را دارید به زودی راهنمای مسیر شغلی آن برای اطلاعات دقیقتر و جامعتر در آکادمی روشنا منتشر خواهد شد.
راهنمای مهندس دِوآپس (DevOps)
یکی دیگر از موقعیتهای شغلی محبوب و پرتقاضا در زمینه مهندسی کامپیوتر و توسعه نرمافزار، دِوآپس (DevOps) است. بهطور کلی وظیفه مهندس دِوآپس طراحی، نگهداری و پشتیبانی زیرساختهای سرویس و فرآیندهای توسعه نرمافزار است. در این نقش تلاش میکنید تا مسیر توسعه نرمافزار را کوتاهتر کرده، فضا را برای استقرار پیوسته سرویس فراهم کرده و از کیفیت و درستی عملکرد سرویس اطمینان حاصل کنید.
برای تبدیل شدن به مهندس دِوآپس نیاز به یادگیری طیف وسیعی از مهارتها دارید؛ در مرحله ابتدایی تسلط بر یک زبان برنامهنویسی متداول مثل پایتون، جاوا و یا گو مورد نیاز است. همچنین باید مفاهیم پایهای سیستمعامل و مدیریت سیستم (معمولاً یکی از توزیعهای لینوکس) را بیاموزید.
سپس باید به سراغ مباحث پیشرفتهتر از جمله شبکههای کامپیوتری و امنیت، زبان بش و کار با قابلیتهای ترمینال، ساختار و راهاندازی سرورها با استفادههای مختلف و… بروید. نهایتاً برای این که بتوانید شغلی در این زمینه داشته باشید باید به یادگیری ابزارهای زیرساختی مثل کانتینرها (Containers)، مدیریت تنظیمات (Config Management)، خودکارسازی کانتینرها و ابزارهای نظارت بر زیرساخت و نرمافزار و در آخر ابزارهایی که برای مدیریت فرآیند توسعه و استقرار و سامانههای ابری بروید.
اگر قصد تبدیل شدن به مهندس دِوآپس را دارید به زودی راهنمای مسیر شغلی آن برای اطلاعات دقیقتر و جامعتر در آکادمی روشنا منتشر خواهد شد.
راهنمای توسعه دهنده موبایل - اندروید (Android)
اندروید در حال حاضر بیش از ۳ میلیارد کاربر داشته و همین گستردگی باعث شده تا توسعهدهندگی اندروید موقعیت شغلی پرتقاضا و محبوبی باشد. امروزه بخش مهمی از هر کسبوکاری یک اپلیکیشن موبایل است به این ترتیب اگر یک برنامه نویس حرفهای اندروید باشید تقریباً خیالتان از پیدا کردن شغل جدید راحت است. وظیفه شما به عنوان توسعهدهنده اندروید ساده است: تولید اپلیکیشنهای بهینه برای گوشیهای اندرویدی!
در مسیر تبدیل شدن به توسعهدهنده اندروید باید با یادگیری یکی از زبانهای جاوا یا کاتلین شروع کنید. سپس به یادگیری شیگرایی و ساختماندادهها و الگوریتمهای زبان، آشنایی با ساز و کار اندروید استودیو (Android Studio) و ابزارهای مدیریت نسخه مثل گیت بپردازید. در مرحله بعد باید شروع به ساخت یک اپلیکیشن کنید و در مسیر ساخت آن یکی یکی مفاهیم پایهای اندروید را یاد بگیرید.از بین این مفاهیم میتوان به استفاده از فعالیتها (Activity) و چرخه عمر فعالیتها، ساخت رابط کاربری (Interface)، استفاده از اینتنت (Intent)، ساختار کانتکست (Context)، استفاده از کامپوننتهای مختلف از جمله Binding و نهایتاً ابزار تست و دیباگ اندروید استودیو اشاره کرد.
نهایتاً برای این که بتوانید به عنوان یک نیروی حرفهای در این حوزه فعالیت کنید باید سراغ مفاهیم مرتبط با سیستمعامل از جمله چندنخی (Multithreading) و مدیریت نخها رفته، امنیت و تست اپلیکیشنها، مدیریت وابستگی (Dependency) و همروندی (Concurrency) بروید. در نظر داشته باشید که در طی این مراحل نیاز به یادگیری معماری نرمافزار، کار با پایگاهداده و سیستمهای کش، شبکههای کامپیوتری و ساختار وب و ساختار متداول کدهای اندرویدی هم دارید.
اگر قصد تبدیل شدن به توسعهدهنده اندروید را دارید به زودی راهنمای مسیر شغلی آن برای اطلاعات دقیقتر و جامعتر در آکادمی روشنا منتشر خواهد شد.
راهنمای توسعه دهنده موبایل - آیاواس (iOS)
در حال حاضر نزدیک به ۱٫۳ میلیارد نفر از آیفون به عنوان گوشی همراه خود استفاده میکنند و این گستردگی باعث شده تا موقعیتهای شغلی زیادی برای توسعهدهندگان آیاواس در دسترس باشد. مسئولیت شما به عنوان یک توسعهدهنده آیاواس ساده است: تولید اپلیکیشنهای بهینه برای گوشیهای آیفون!
اولین گام برای فعالیت در این موقعیت شغلی، شروع یادگرفتن یکی از زبانهای سوییفت (Swift) و یا سی شیگرا (Objective-C) است. اگر بخواهید به صورت نیتیو برای دستگاههای آیفون کد بزنید میتوانید با سوییفت شروع کنید. در همین حین باید با تفکر الگوریتمی و ساختماندادهها آشنا شده و به زبانی که انتخاب کردید مسلط شوید. در این گام باید مباحثی مثل الگوی طراحی Cocoa، معماری و ساختار اپهای آیفون، نحوه تعامل با امکانات سیستمعامل آیاواس و برنامهنویسی برای شبکه را یاد بگیرید.
در گام بعدی باید قابلیتهای پیشرفتهتر مثل مدیریت حافظه، مدیریت همروندی (Concurrency)، استانداردهای فریمورک آیاواس و برنامهنویسی واکنشگرا (Reactive Programming) را بیاموزید. ضروری است که در این مرحله از یادگیری مدیریت پردازهها در سطح سیستمعامل، کار با داده و پایگاهدادهها و فرآیندهای مدیریت نسخه را هم بیاموزید. در نهایت برای تبدیل شدن به یک برنامهنویس حرفهای آیاواس نیاز به یادگیری ابزارهای دیباگ و تست اپلیکیشن، مدیریت منابع دستگاه، ابزارهای ساخت و استقرار اپلیکیشن و ابزارهای تحلیل عملکرد اپلیکیشن خواهید داشت.
اگر قصد تبدیل شدن به توسعهدهنده iOS را دارید به زودی راهنمای مسیر شغلی آن برای اطلاعات دقیقتر و جامعتر در آکادمی روشنا منتشر خواهد شد.
راهنمای مهندس داده (Data Engineer)
به اعتقاد بسیاری از فعالان حوزه آیتی و کسبوکار دادهها طلای دنیای دیجیتال هستند و امروزه مدیریت دادهها برای به دست آوردن آگاهیهای جدید درمورد رفتار کاربران و یا ارائه خدمات متنوعتر بسیار ارزشمند و فراگیر شده است. در این میان مهندسان داده به عنوان افرادی که کار جمعآوری و نگهداری داده برای مصارف تخصصیتر را انجام میدهند نقش کلیدی دارند. به طور کلی نقش شما به عنوان مهندس داده جمعآوری داده از منابع مختلف، نگهداری آنها و ساخت پایپلاینهایی است که از طریق آنها دیتای آماده برای مصرف تیمها و افراد دیگر آماده باشد.
مسیر یادگیری این موقعیت شغلی با یادگیری مباحث پایهای مهندسی کامپیوتر مثل شبکههای کامپیوتری، مدیریت نسخه، ساختار وب، کار با ابزارهای ترمینال سیستمعامل و آموختن یک زبان برنامهنویسی (معمولاً پایتون یا جاوا) آغاز میشود. سپس باید با مفاهیم پایگاهداده و پایگاهدادههای رابطهای آشنا شده و به خوبی آنها را یادگرفته و سپس به سراغ پایگاهدادههای غیررابطهای بروید. پس از تسلط بر موارد گفته شده نوبت یادگیری انبارهای داده (Data Warehouse) است. در نهایت باید با ابزارهای ابری مدیریت و ذخیره داده و ابزارهای پردازش داده آشنا شوید.
برای این که بتوانید به عنوان مهندس داده مشغول به کار شوید باید با مباحث پیشرفتهتر از جمله ابزارهای پیامرسانی (Message Broker)، مدیریت جریان کار، ابزارهای پایپلاین، مباحث مربوط به شبکههای کامپیوتری و پیادهسازی و مدیریت زیرساخت با کد و در نهایت مبانی امنیت و اعتبارسنجی در کار با سامانههای Big Data آشنا شده و بر آنها مسلط شوید.
اگر قصد تبدیل شدن به مهندس داده را دارید به زودی راهنمای مسیر شغلی آن برای اطلاعات دقیقتر و جامعتر در آکادمی روشنا منتشر خواهد شد.