..

چه شغل آی تی به درد من میخوره ؟

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

حوزه های مختلف صنعت ای تی شامل چندین حوزه اصلی میشن :

۱ - حوزه مدیریتی

۲ - حوزه مالی

۳ - حوزه زیرساخت

۴ - حوزه توسعه

۵ - حوزه پشتیبانی

۶ - حوزه امنیت اطلاعات

در دومورد اول تخصصی ندارم و نمیتونم راهنمایی مناسبی رو به شما بدم در چهار مورد بعدی میشه مفصل تر صحبت کرد.

۳ -۱ حوزه زیرساخت: شامل مباحثی مثل شبکه و فناوری اطلاعات و ارتباطات میشه. برای دوستانی که علاقه مند هستن در دیتاسنتر ها یا به زبان فارسی مراکزداده کار کنن تسلط بر خطایابی شبکه و مشکلاتی که ممکن هستش به وجود بیاد امر حیاتی هستش البته ترند های این صنعت شامل مباحثی مثل HA و امنیت اطلاعات و IaaS (زیرساخت به شکل سرویس ) یا در تعریف کلی پردازش ابری یا فضای ابری هستش. برای شروع تو این حوزه درک مفاهیم ابتدایی شبکه میتونه به شدت در مراحل بعدی کمک کننده باشه . برای دوستانی که به این مسیر علاقه مند هستند دوره های شبکه سیسکو رو پیشنهاد میدم که تقریبا تمام مسائل این حوزه رو پوشش میده . ۳ -۲ حوزه دیگه زیرساخت مخابرات هستش مفاهیمی مثل شبکه های سلولی و gsm و سیگنال و پروتکول های روتینگ در حوزه بکبون میشه . متاسفانه دوره هایی در این سطح فقط توسط شرکت های چند ملیتی و توسط شرکت مخابرات و وندور ها برگزار میشه و داشتن مدرک مرتبط در زمینه مخابرات الزامی هستش.

بقیه شغل هایی که با زیرساخت در تعامل مستقیم هستن میشه به شرکت های ٰVAS و CDN و VOD اشاره کرد

۴ - حوزه توسعه به شدت وسیع خودش و به چندین بخش تقسیم میشه که هر کدوم از اون بخش ها هم خودشون به چندین بخش.

  • توسعه نرم افزار

  • توسعه سخت افزار

  • طراحی گرافیک

  • طراحی رابط کاربری و تجربه کاربری

توسعه نرم افزار خودش به چندین بخش زیر تقسیم میشه:

  • طراحی و توسعه نرم افزار های مبتنی بر دسکتاپ

  • طراحی و توسعه نرم افزار های مبتنی بر وب

  • طراحی و توسعه نرم افزارهای مبتنی بر سرور

  • طراحی و توسعه سیستم های اطلاعاتی

  • طراحی و توسعه بازی های کامپیوتری

  • تحلیل داده و بیگ دیتا ( دیتاساینس یا علم داده )

۴-۱-۱ طراحی و توسعه نرم افزار های مبتنی بر دسکتاپ با بالاتر رفتن سرعت اینترنت و هزینه پایینی که کاربران برای اشتراک ماهیانه در سرویس های انلاین پرداخت میکنن رونق گذشته رو نداره و جز در طراحی نرم افزار های سیستم اطلاعاتی مثل حسابداری و سیستم های مدیریت اطلاعات بیمارستانی و کارتابل شرکت ها استفاده چندانی نداره و نمیشه آینده پرباری رو براش متصور بود ولی کماکان تقاضا برای c# دولوپر زیاد هستش و اگر به این زبان و محیط توسعه ویژوال استودیو علاقه مند هستین حتما کاری مناسب خودتون در بازار پیدا میکنید.

۴-۱-۲ طراحی و توسعه مبتنی بر وب

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

طراحی و توسعه وب خودش به سه بخش تقسیم میشه

  • front-end development

  • back-end development

  • DevOps

تعداد تکنولوژی هایی که در زمینه وب برای فول استک بودن در هر کدوم از زمینه ها نیازه به شدت بالا پس من از تصاویری که دوست عزیزمون kamranahmedseدر گیتهاب خودش گذاشته استفاده میکنم تا بگم که از کجا شروع کنید و به کجا برسید

البته لازمه تمام این ها تسلط بر زبان تخصصی کامپیوتر یعنی انگلیسی هستش اگر در این زمینه وارد نیستین سعی کنید تنها داکیومنت های انگلیسی بخونید و با man page ها بیشتر سروکله بزنید.

قبل از همه چی مسائل پایه ای هستن که لازمه در تمامی این تخصص ها بدونین که شامل http و version control system ها کامند های بسیک ترمینال میشه ( توصیه میکنم اگر از سیستم عامل ویندوز برای توسعه استفاده میکنید کنار بزارین و به سمت یکی از توزیع های گنو لینوکس بیاین برای شروع میتونین از این داکیومنت فرود استفاده کنید لینوکس برای تازه کار ها ) basic درمورد انتخاب اینکه کدوم یکی از مسیر هارو میرین میتونین تجربه گرا باشین و هرکدوم رو تست کنید تا ببینید کدوم یکی رو بیشتر دوست دارین یا اینکه از روحیات خودتون خبر دارین و میدونید کدوم یکی بیشتر به دردتون میخوره .

Front-end developer با لایه نمایش داده سروکار دارن درواقع اطلاعاتی که black-end دولوپر ها تو لایه منطقی و ذخیره اطلاعات به اون ها از طریق api یا سشن میدن رو به کاربر از طریق وب نمایش میدن . کار دیگه front-end developer ها در ایران معمولا در کنار کد زدن طراحی و توسعه رابط کاربری هستش درسته که فرانت اند لزوما نباید این کار رو بکنن ولی آشنایی با ترندهای این صنعت میتونه کمک بزرگی تو کیفیت کارشون داشته باشه . شروع فرانت از نظر فنی شاید زیاد سخت نباشه و واسه دوستانی که تازه میخوان وارد وب بشن ولی تخصص توش قطعا ذوق سلیقه و تلاش زیادی رو میطلبه. front-end

back-end developer با منطق برنامه های تحت وب سروکار دارن ، یه ضرب المثل هست که میگه بکند دولوپر خوب بیکار نمیمونه back-end

DevOps درسته دواپس یه کانسپت هستش نه فرد یا شغل ولی فعلا به سیس ادمین هایی که کار اتوماتیک سازی فرایندها و مانتیتورینگ بر اساس متریک و QA رو تو سازمان های ای تی انجام میدن میگن دواپس. راستیتش دواپس طیف زیادی از ابزار ها و دانش هارو شامل میشه . میشه گفت زیرساخت و معماری سیستم و بکند و شبکه و امنیت اطلاعات و خطایابی و درواقع میشه گفت با تمامی سرویس ها و مشکلاتی که سازمان IT ممکنه باهاش روبه رو بشه . دواپس شدن قطعا نسبت به دو مورد دیگه بکند و فرانت اند زمان بیشتری رو برای یادگیری میطلبه و شاید چندین سال طول بکشه تا کسی به تمام مفاهیم این حوزه مسلط بشه ولی جذابیت ها و چالش ها و سطوح دسترسی بالاتری داره. DevOps

۴-۱-۳ طراحی و توسعه نرم افزار های مبتنی بر سرور

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

۴-۱-۴ طراحی و توسعه سیستم های اطلاعاتی

بازار ایران پر هستش از شرکت های قدیمی که برای مدت زیادی هستش که سیستم های مدیریت اطلاعات مالی و بیمارستانی و شرکت ها و دانشگاه ها تولید میکنند . نوشتن و برنامه نویسی سیستم های اطلاعاتی نیازمند تفکر و شناخت دقیق از سیستم ها هستش و صرفا کد زدن نیست. پس اگر تحلیل بالایی دارین و علاقه مند به کار تیمی هستید تحلیل و توسعه سیستم برای شما ساخته شده . درسته که بازار اغلب به سمت C# گرایش داره ولی زبان برنامه نویسی در این حوزه چندان مهم نیست مهم درک و فهم درست از سیستم هستش که توصیه من این که کتاب های مهندسی نرم افزار در این حوزه خونده بشه . برای مثال خوندن کتاب روشهای نوین تحلیل و طراحی سیستم ها پروفسور محمد حسین فاضل زرندی رو به همه علاقمندان این حوزه توصیه میکنم. آشنایی با متدهای مهندسی نرم افزار مثل اجایل و متد های تحلیل نرم افزار مثل ERD و سنتی تر مثل DFD خیلی میتونه تو پیدا کردن شغل مناسب در این زمینه به شما کمک کنه .

۴-۱-۵ طراحی و توسعه بازی های کامپیوتری راستش این مبحث خیلی تخصصی هستش و من دانشی در این زمینه ندارم خوشحال میشم دوستان کمک کنن و این سکشن هم برای ورود راحت تر دوستان به این حوزه آماده بشه

۴-۱-۶ تحلیل داده و بیگ دیتا ( دیتاساینس یا علم داده ) راستش این مبحث خیلی تخصصی هستش و من دانشی در این زمینه ندارم خوشحال میشم دوستان کمک کنن و این سکشن هم برای ورود راحت تر دوستان به این حوزه آماده بشه ۴-۳ گرافیک و طراحی و توسعه رابط کاربری راستش این مبحث خیلی تخصصی هستش و من دانشی در این زمینه ندارم خوشحال میشم دوستان کمک کنن و این سکشن هم برای ورود راحت تر دوستان به این حوزه آماده بشه

۴-۴ توسعه سخت افزار در زمینه سخت افزار با رشد توسعه بردهای توسعه و معماری SoC و اینترنت اشیا آینده بسیار روشنی جلوی متخصص های این زمینه هستش. برای یادگیری و مسلط شدن در این حوزه توصیه من این هستش که پروژه هایی که روی بردهای آماده مثل raspberry pi اجرا شده توی خونه و به وسیله سنسور های مختلف أزمایش کنید. شرکت ها هم در ایران به این سمت رفتن و از فاز سنتی کابل سریال خارج شدن و بستر اینترنت و شبکه موبایل آماده هستش.

۵ - حوزه پشتیبانی حوزه پشتیبانی شامل دو قسمت میشه:

  • front office

  • back office

در قسمت front office اوپراتورها به تماس تلفنی مشتری پاسخ میدن و در صورت وجود باگ یا مشکل فنی به back office انتقال میدن تا در لحظه مشکل برطرف بشه اگر مشکل مرتبط با operation باشه بچه های پشتیبانی وظیفه این رو دارن تا در سریع ترین شکل ممکن موضوع رو برطرف کنن و اغلب مجبور به وصله پینه زدن باگ هایی میشن که تیم دولوپمنت ایجاد میکنه . پس توی سازمان هایی که قرارداد های SLA سفت و سخت دارن تیم پشتیبانی نقش حیاتی داره . تو ایران متاسفانه به پشتیبانی به شکل درستی نگاه نمیشه و اغلب شرکت ها یا این واحد رو ندارن یا به شکل کار موقتی بهش نگاه میشه درحالی که پشتیبانی یکی از مهم ترین بخش های سازمان که میتونه فیدبک مشتریان و ایده های جالبی رو به سازمان تزریق کنه . توصیه نمیکنم حداقل در ایران کسی به سمت پشتیبانی فنی بره

۶ - حوزه امنیت اطلاعات کسی که امنیت اطلاعات کار میکنه اصولا نیازی به خوندن این مطب نداشته و به این بخش رسیده و کسی هم که میخواد کار بکنه باید متوجه باشه که امنیت اطلاعات یک شبه به وجود نمیاد درمورد تمامی موراد بالا یه مهندس امنیت اطلاعات علاوه بر درک صحیح از پرتکول های ارتباطی باید سطوح دسترسی و دردسترس بودن و یکپارچگی داده و جلوگیری از افزونگی رو مد نظر خودش داشته باشه . یه مهندس امنیت در قدم اول یه محقق خوبه . روزی نیست که نفوذپذیری جدید کشف نشه یا امنیت یه پروتکول زیر سوال نره پس باید به روز باشه و مطالعات مستمر داشته باشه . کانفیگ فایروال و ips/ids مهندس امنیت نمیسازه حتی داشتن مدرک CEH هم نمیتونه باعث بشه یه فرد مهندس امنیت باشه . یادگیری امنیت دیتاسنتر فیزیکی و غیرفیزیکی انواع روش های پن تست و نفوذپذیری. آشنایی با رمزنگاری میتونه شروع خوبی برای امنیت باشه ولی توجه کنید که این فیلد هیچوقت تموم نمیشه و همیشه دست بالای دست توش وجود داره