سال ۹۷، ادامه یک ماجراجویی


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

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

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

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

این در حالی هستش که در حال حاضر کمپانی‌های مختلف برای پروژه‌های موبایلیِ خودشون نیاز به نسخه برنامه موردنظر روی هر دو سیستم‌عامل اندروید و iOS دارن و اینکه بیان یک دولوپر اندروید و یک دولوپر iOS جدا استخدام کنن و به هرکدوم هم دست‌مزد یک برنامه‌نویس ارشد رو بدن یک حرکت گرون و کمیابی هست و ترجیح میدن یک نفر رو بیارن و بعد یک تایم مشخص و با نصف اون هزینه، پروژه رو توی هر دو سیستم‌عامل با خروجی نسبتن مطلوب تحویل بگیرن.

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

با این اوصاف، وقت گذاشتن و تبدیل شدن به یک سنیور دولوپر اندروید کار توجیه‌پذیری برای من نبود. (البته که این دلایل شخصی من هستند و نه یک نسخه عمومی برای همه)

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

مطلب بعدی اینکه خیلیا میپرسن کدوم حوزه درآمدش بیشتره؟! بازارکار بهتری داره؟!

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

پس اگر جایی دیدین کسی از برتری فریمورک یا زبان برنامه‌نویسی یا حوزه‌ی کاری داره حرف میزنه بدونین هنوز اول کاره و تخصص لازم توی این حوزه رو نداره.

خلاصه بعد از تمام این اتفاقات و تحلیل‌ها من تصمیم گرفتم برم سمت وب. برای شروع، طبق قاعدش با html ,css, کمی جاوااسکریپت, BootStrap و JQuery شروع کردم و به صورت پروژه محور جلو رفتم. بعد از این، از اونجایی که هدفم بک‌اند بود، زمان انتخاب یک زبان برنامه‌نویسی و فریمورک سمت سرور بودش …

رودمپ برای مسیر فرانت‌اند دولوپر شدن چیز دیگه‌ای هستش! از اینجا میتونین رودمپ هر دو مسیر رو به صورت جامع ببینین.

با کلی سر و کله زدن با برنامه‌نویس‌های سابقه‌دار، دوستان، اینترنت، بنچ‌مارک‌ها، بررسی بازارکار، بررسی سابقه‌ی برنامه‌نویسی خودم، علاقم، آینده اون زبان و فریمورک در ۵ سال بعد و تست کردن خیلی از معروفاشون، تصمیم گرفتم که به صورت جدی روی ASP.NET Core با زبان سی‌شارپ تمرکز کنم. از اینجا میتونین اسلاید ارائه‌ام در مورد این فریمورکِ جوونِ مایکروسافت رو ببینین.

برای شروع این داستان، اول باید ASP.NET MVC رو یاد میگرفتم. با استفاده از داکیومنت جامع خود مایکروسافت، دوره‌های یودمی و لیندا شروع به یادگیری پروژه‌محور این فریمورک کردم و در کنارش هم تکنولوژی‌های مرتبط باهاش مثل Linq, Entity Framework, … رو یاد گرفتم و در نهایت دیتابیس‌های مختلف مثل  SqlLite, Sql Server, PostgreSql  رو به طور جدی‌تر روشون متمرکز شدم. حالا نوبت این شده بود که روی خود ASP.NET Core سوییچ کنم و ویژگی‌های جدیدشو یاد بگیرم.

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

برای آشنایی کلی با ویژگی‌های فریورک انگولار و مقایسش با سایر فریمورک‌ها میتونین به این اسلاید یک سری بزنین.

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

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

برنامه‌هایی که در حال حاضر برای سال ۹۷ در نظر گرفتم و نیاز هست که روشون مسلط بشم رو اگر بخوام خیلی تیتروار و خلاصه بگم شامل کار کردن با دیتابیس‌های no-sql مثل MongoDb و … ، انجام و نوشتن Unit testing و Integration test و کلن مقوله CI یا Continuous Integration ، عمیق‌تر شدن روی Docker و انجام پروژه‌های اسکیل‌پذیر با اون، کار با ORM های دیگه مثل Dapper, … و Identity Server و احتمالن موارد دیگه که موقع نیاز به این لیست اضافه میشن!

سال ۹۶، سال خیلی خوبی واسم بود و تقریبن هر هفته با هفته قبلم قابل قیاس نبود و این برام خیلی خوشحال‌کننده هستش. امیدوارم سال جدید هم به همین شکل برم جلو و اتفاقات خوبی واسه هممون بیفته 🙂

مرسی که تا اینجای مطلبو خوندین و باهام همراه بودین.

24 دیدگاه On سال ۹۷، ادامه یک ماجراجویی

  • سلام سال ۹۷ فوق العاده ای رو برات آرزو میکنم
    توضیحات خیلی خوبی رو دادی و خوشحالم که تونستی رودمپ خودتو پیدا کنی 🙂
    امیدوارم که همه ی برنامه هایی که برای امسال میخوای رو بتونی به بهترین شکلش انجام بدی

  • سلام…
    خیلی جالب بود اشکان جان…
    خیلی خوب و غیر کلیشه ای، عدم مناسب بودن اندروید(حداقل برای خودت) رو توضیح دادی
    و ادامه ی مطلب هم مثل ارائه ت( ASP CORE) جالب و انگیزشی بود… حداقل باعث شد من به مسیرم بیشتر ایمان بیارم! 🙂
    سال بسیار خوبی داشته باشی…😍
    سپاس فراوان

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

  • ممنونم‌ از مطالب و دیدگاه‌ت.
    موفق باشی انشالله امسال هم به همین منوال پیشرفت داشته باشی.

  • بهترین ها رو برات آرزو میکنم و امیدوارم سال ۹۷ از تمام سالهای قبلی زندگیت برات بهتر باشه. 。^‿^。
    اینکه در این مسیر من هم در کنارت هستم و هر روز پیشرفتت رو میبینم خیلی برام لذت‌بخشه ^_^¦¦¦

  • مثل همیشه خعلی خوب و عالی بود
    من خودم بعد این مدت ها به این نتیجه رسیدم بازار کار یک زبون یا فریم ورک رو به علاقه خودم ترجیح بدم
    موفق باشی…به امید دیدن روزهای بهتر 🙂

  • خیلی خوب بود، در کل این وبلاگ ایده ی جالب و غیرِ تکراری ای هست.

  • پینگ بک: چرا مهندسی کامپیوتر و چرا نه؟! - ایده طلایی ()

  • عالی بود چقدر خوب همه چی رو توضیح دادین
    منم عاشق اندرویدم ولی هر چی میرم سمتش عمیق تر میشه نمیدونم چرا دنیای اندروید رو گسترده میبینم..
    یکم حرفاتون ناامید کننده بود برام اما الان بهتر میتونم برای همچین موقعیت هایی که گفتین آماده باشم. علاقست دیگه کاریش نمیشه کرد فکر کنم 🙂

    ایشالا سال ۹۷ رو پربار تر بسازین.
    تشکر ازتون..

  • پینگ بک: چرا مهندسی کامپیوتر و چرا نه؟! - زندگی یک دولوپر خوشحال ()

  • سلام ،یه سوال داشتم .من در مقطع دبیرستان در رشته ریاضی در حال تحصیلم ولی هنوز مردد هستم که چه رشته ای رو انتخاب کنم،درباره رشته ها هم تحقیق کردم ولی تصورم این هست که تئوری رشته ها خیلی متفاوت با کار عملیشون هست ،میشه در این مورد یکم راهنمایی کنید؟

    • سلام
      برای انتخاب رشته توی دبیرستان باید آینده رشته هایی که میخوای در آینده توی دانشگاه بخونی رو دنبال کنی ببینی علاقت به کدوم سمته اما در کل به طور حتم مباحث تئوری با عملی توی هر رشته‌ای خیلی متفاوته باید ببینی کدوم مسیر رو میخوای انتخاب کنی.

      در مورد رشته کامپیوتر و تفاوت‌هاش با محیط واقعی کار اینجا توی این پست یک سری موارد رو نوشتم. احتمالن جواب بعضی سوالاتت رو بگیری:

      http://ashkanam.ir/blog/computer-science/

  • سلام من دو دلم تو رشته کامپیوتر و هدفم هم دقیق مشخص نیست و نمی دونم باید چیکار کنم میشه کمی راهنمایی کنید؟
    من به کد نویسی علاقه دارم ولی اگه برنامه عیب داشته باشه دقیق مشکلشو نمی فهمم و زمان طولانی میبره تا عیبو پیدا کنم
    الان پایه یازدهم رشته ریاضی هستم و سال دیگه کنکور دارم.
    ولی دقیق نمی فهمم تو کدوم حوزه کامپیوتر موفق ترم میشه کمی راهنمایی کنید؟
    و پیشنهادتون برام چیه؟

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

  • سلام. من یک ماهی هست که به دلیل شنیده هام از خوب بودن رشته کامپیوتر از خیلی ها و بازار کار خوبش، دارم در مورد این رشته تحقیق میکنم تا اینکه امروز به مطلب شما در مورد رشتتون برخوردم. تا قبل از این یک ماه اخیر، اصلا حتی یک لحظه هم به این رشته فکر نکرده بودم چون تو سه سال دبیرستان اصلا میونم با برنامه نویسی خوب نبود و به زور درس کامپیوترمو پاس میکردم. همینطور در کل میونم با کسسته و امار و احتمال خوب نبوده و نیست(تنها درسی که مطمینم بهش علاقه ای ندارم) از طرفی عاشق طراحی و انیمیشن هستم و تو راهنمایی باهاش اشنا شدم. طبق نوشته هات در مورد کامپیوتر، فهمیدم چیز زیادی از طراحی و انیمیشن تو دانشگاه نصیبم نمیشه. با توجه به اینکه از دروس ترمای اول کامپیوتر کسستست شک دارم که همون ترمای اول پشیمون نشم چون همونطور که گفتم اصلا میونم با این درسا خوب نیست. فقط با توجه به صحبت های اطرافیانم در مورد این رشته دارم بهش فکر میکنم.(خیلی از فارغ التحصبلای رشته های دیگه از دانشگاه های تاپ،بهم گفتن اگر برمیگشتن عقب کامپیوتر میخوندن). علاقه ی شدید خودم معماریه. ولی همه در مورد اینده کاریش میترسونمن. فکرم اینه که تو دوره ی لیسانس یا حداکثر تا اخرش برم از ایران. تا پنج روز دیگه وقت دارم برای انتخاب رشته. ممنون میشم کمکم کنی چون واقعا گیجم و برام خیلی ترسناکه که وارد این رشته شم و نتونم ادامه بدم.ببخشید زیاد شد سعی کردم کل شرایطو توضیح بدم. واقعا به کمک یکی مثل شما نیاز دارم اگه ممکنه این لطف رو بهم بکن 🙂

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

      تنها علاقه‌تون رو دنبال کنید…

پاسخ بده:

آدرس ایمیل شما به صورت عمومی منتشر نخواهد شد.

فوتر سایت

تمامی مطالب تحت مجوز کریتیو کامنز ۴ منتشر میشوند.