Android & Flutter
مسیریادگیری فرد علاقه مند به رشته کامپیوتر از تجربه فیلدهای مختلف تا رسیدن به برنامه نویسی اندروید(قسمت اول)
با سلام و وقت بخیر خدمت شما عزیزانی که تصمیم گرفتین این مطلب رو بخونین
هدف من از نوشتن این مطلب به اشتراک گذاری تجربیات خوب و بدی که تو چند سال گذشته کسب کردم ، با شما عزیزانی هست که رشته کامپیوتر رو انتخاب کردین و قصد دارین توی یه زمینه ای خاص تخصص پیدا کنین و وارد بازار کار بشین.
در ابتدا این مسئله رو عرض کنم که به ممکنه یه خورده متن طولانی بشه و سعی من بر این هست که تا جایی که میتونم کوتاه کنم و ممکنه توی دو قسمت اون رو منتشر کنم.
قسمت اول کلیت انتخاب مسیر یادگیری هست و قسمت دوم مربوط به مسیر یادگیری برنامه نویسی اندروید هست که توصیه میکنم حتما قسمت اول رو بخونین
وهدفم این هست که به صورت موضوعی بحث کنم و پاسخگوی سوالاتی باشم که ممکنه برای شما به وجود بیاد.
چه سوالاتی؟
- دانشگاه برم یا نه؟
- چه زمینه ای رو برای یادگیری انتخاب کنم؟برنامه نویسی،شبکه،امنیت و ... ؟
- حالا که من مسیرم رو انتخاب کردم چطور منبع اموزشی خوب برای یادگیری گیر بیارم؟چقد طول میکشه تا متخصص شم؟
و خیلی از سوالات دیگه ای که به عنوان کسی که رشته کامپیوتر رو انتخاب کرده ممکنه توی ذهن شما پیش بیاد، که قراره من در ادامه تا جایی که میتونم و تجربه کردم رو برای شما به اشتراک بزارم و بیشترین موردی که روش تاکید دارم سوال دوم هست که چه زمینه ای رو انتخاب کنم ،من که نمیدونم علاقم رو کدومه و کدوم درامد بیشتری برای من داره و ...؟
خوب آماده اید بریم سراغ اصل مطلب؟
دانشگاه برم یا نه؟
راستش این سوال دانشگاه برم یا نه بیشترین سوالی هست که دیدم پرسیده میشه و سوال خودم هم بود...و از هرکی که صاحب نظر بود میپرسیدم این جواب رو میشنیدم،نه میگم نرو نه میگم برو؟D:
و میدونم که خیلی این جواب رو شنیدین...
دوستان بدون مقدمه در این مورد این رو عرض کنم ، شخصی که وارد دانشگاه میشه به عنوان کسی که سال ها تلاش کرده و درس خونده حداقل انتظار داره بعد این که مدرکش رو گرفت، بتونه توی یه زمینه ای متخصص شده باشه و وارد بازارکار بشه ،ولی متاسفانه اینطور نمیشه و شخصی مثلا کارشناسی ارشد نرم افزار داره به جز ویندوز عوض کردن کاری نمیتونه انجام بده،که خیلی این رو مشاهده کردین بین دوستانتون، متاسفانه بیشترین بیکاری بین رشته ها هم مربوط رشته کامپیوتر هست.چرا؟
حالا این علت های زیادی داره یکی از این علت ها بی سوادی خیلی از اساتید هست که متاسفانه تخصص ندارن و نمیتونن مطلبی رو با دانشجو به اشتراک بزارن
(البته با احترام زیاد نسبت به اساتیدی که واقعا متخصص هستن ولی انگشت شمارن)
و اگرم مطلبی رو که خوب تدریس میکنن ممکنه خیلی قدیمی باشه به درد الان نخوره و ضعف های دیگه ای که همه شاهدش بودیم....
و متاسفانه چون اساتید صرفا کتاب رو خوندن و حفظ کردن و دیدی درمورد کار عملی ندارن حتی نمیتونن به شما سرنخ بدن و شمارو توی مسیری که دوست دارین ادامه بدین راهنمایی کنن
این ضعف های خیلی زیاد و مهم باعث میشه که ادم خیلی تمایلی به دانشگاه رفتن یا ادامه تحصیل نداشته باشه.
نتیجه گیری؟
- حالا با این ضعفا پس دانشگاه به چه دردی میخوره ؟
دوستان این ضعف هایی که گفتم رو قطعا اکثر جاها هست ولی دانشگاه رفتن فایده هایی هم داره که نمیشه ازش چشم پوشی کرد؟
یکی از فایده هاش این هست که ما با مفاهیم پایه ای رشته کامپیوتر اشنا میشیم...مثل ساختمان داده،پایگاه داده و یادگیری پایه زبان های برنامه نویسی که یه دید کلی بهمون در مورد رشته کامپیوتر میده و مهم هستن، براتون مثال بزنم: مفاهیمی رو توی دانشگاه خوندم مثل استک و صف و با خودم میگفتم این به چه درد من میخوره و قدیمیه...جلوتر که اومدم توی یه تخصصی که یه سال کار کردم به استفاده از مفاهیمی برخوردم که توی دانشگاه خونده بودم و دید خوبی بهم داده بود خوندنشون
(ولی واقعا اونقدی مهم نبودن مباحث، که بخوام به خاطرش دانشگاه برم)
و فایده دیگش هم این هست جدای از یادگرفتن اداب معاشرت با دیگران ،دوستان خوبی هم گیر میاریم که ممکنه متخصص باشن توی یه زمینه ای و ما بتونیم با کمک اونا پیشرفت کنیم.
و فایده هایی زیاد دیگه ای که قلمم عاجزه از نوشتنشون(هیچ فایده دیگه ای نداره) D:
خیلی ها میگن بیل گیتس،مارک زاکربرگ .. ترک تحصیل کردند ،پس منم ترک تحصیل کنم،موفق میشم.
دوستان اینطور نیست این افراد یه چیزایی بلد بودن یه کاری رو راه انداختن و دیدن که وقت نمیکنن برن دانشگاه و ترک تحصیل کردن(نکتش این مورد هست)
پس این بهانه هست...
و نکته اصلی اینجاست: درس خوندن تو دانشگاه هیچ منافاتی با یادگیری تخصص نداره...اگه توجه کنیم حتی وقتی دانشگاه میریم خیلی وقت ازاد داریم تو روز،میتونیم زمان بزاریم و متخصص شیم تا وقتی دانشگاهمون تموم شد و راحت بتونیم وارد بازار کار بشیم.
من خودم کارشناسی رو چند ماه پیش گرفتم و دیدم دیگه نیاز نیست ارشد بخونم و باید یه خورده برای تخصصم وقت بیشتری بزارم و وارد بازارکار بشم.
پس پیشنهادم حداقل برای رشته ما این هست که اگه دوست دارین مدرک اکادمیک داشته باشین و صرفا با دید گرفتن مدرک برین دانشگاه! که خدایی نکرده لطمه نخورین! و هیچ انتظاری از محیط دانشگاه برای یادگیری نداشته باشین
اگرهم مدرک برای شما مهم نیست دانشگاه هم نرید چیزی از دست ندادین
و مجدد تکرار میکنم حتی اگه دانشگاه رفتین منافاتی با یادگیری شما در بیرون از دانشگاه نداره.
و ممکنه بگین فلان دانشگاه بهتره و این دید اشتباهی هست چون برای رشته های عملی خیلی دانشگاه فرقی نمیکنه
پس لطفا دیگه پرونده دانشگاه برم یا نه،کدوم دانشگاه بهتره و... رو ببندید،چون صرفا وقتتون تلف میشه.
قسمت دوم:
خوب حالا بریم سراغ قسمت دوم که چه زمینه ای رو برای یادگیری انتخاب کنم و ...
این قسمت خیلی مهمه و ممکنه یه خورده طولانی بشه،ولی صبر به خرج بدید و مطمئنم کمکتون خواهد کرد که زودتر تصمیمتون رو بگیرین و وقت خودتون رو تلف نکنین
ابتدا مسیر یادگیری خودم رو شرح میدم، که بعد بگم معایب این مسیر چی بوده و شما مسیری مشابه مسیری که من سپری کردم رو طی نکنید.
با من همراه باشید...
به عنوان کسی که از کودکی علاقه مند به کامپیوتر بودم از کلاس پنج یا هفت ...ازم میپرسیدن میخوای چه کاره شی؟
همه میگن دکتر و خلبان و ... من میگفتم دوست دارم برم رشته کامپیوتر ،البته اون موقع دید کاملی نداشتم چون سنم کم بود ،صرفا به خاطر بازی کردن میگفتم ،بازی کردن رو خیلی دوست داشتم
اومدم جلوتر کم و بیش یه ویندوز عوض میکردم که xp بود و خیلی لذت میبردم ،رسیدم به پایه اول دبیرستان حالا همه میگفتن بهم تو ریاضیت خوبه برو رشته ریاضی بعدش تو دانشگاه اگه دوست داری برو کامپیوتر ولی من دوست داشتم برم رشته فنی که زودتر وارد رشته کامپیوتر بشم.
رفتم رشته فنی چند ماه گذشت یه مقدار در مورد html و .. به ما توضیح دادن من علاقه مند شدم به یادگیری طراحی سایت ،توی اینترنت در موردش خوندم البته خیلی جدی نگرفتم ..
بیشتر مشغول بازی کردن بودم(cod 4) بودم ،که کاش نمیبودم،چون خیلی وقتم رو میگرفت ولی لذت داشتD:
یه مقدار زمان گذشت یه دوستی در مورد وردپرس بهم توضیح داد،زمان گذاشتم و یادگیریش رو ادامه دادم و با هم یه سایت دانلود نرم افزار با وردپرس راه انداختیم..که متاسفانه ادامه ندادیم،بعد گفتم باید حرفه ای تر شم و اتقافی با اموزش طراحی وب اقای آوند سایت 7 لرن آشنا شدم که css و html کار کردم ،گذشت دوره php رو خریداری کردم و تمرینی یه سری قالب طراحی میکردم.که اندک درامدی هم داشتم توی طراحی سایت
که واقعا اموزش های 7 لرن فوق العاده هستن که توی قسمت بعدی درمورد منابع بیشتر توضیح میدم
چندماهی که گذشت یه دوستی داشتم بهم گفت اگه فتوشاپ بلدی قراره چاپ بنر بزنم ،بیا پیش خودم کار کن
یه دفعه طراحی وب رو کنار گذاشتم و رفتم فتوشاپ رو یادگرفتم ،ابتدا به صورت رایگان چندماهی کارکردم و بعد کسب تجربه نزدیک به یک سالی توی شرکتای مختلف کار کردم با حقوق نسبتا پایین
یکسال که از یادگیر فتوشاپم گذشت،گفتم عدم تمرکز فایده نداره، باید یه زمینه ای رو انتخاب کنم و اون رو ادامه بدم و اومدم وقتم رو گذاشتم رو مباحث امنیت ،خیلی وقت گذاشتم لینوکس رو یادگرفتم و مباحث مختلف و بعد چند ماه بعد به دوره هک و امنیت سایت اشیانه رفتم ...که راستش دوره قوی نبود برعکس تبلیغات و بزرگنمایی
ولی دوستان خوبی پیداکردم،دو سالی گذشت ،دیدم که واقعا صرفا یه تصمیم هیجانی بوده و شاید خیلی علاقه ندارم،صرفا به خاطر جذابیت این زمینه بوده،البته خیلی چیزا یادگرفته بودم
و یه نکته هم بگم درمورد یادگیری مباحث مربوط به هک امنیت اگه بخواین یه متخصص واقعی باشین به تمرکز و صبر و زمان خیلی زیادی نسبت به سایر رشته ها نیاز هست،باید نسبت به همه فیلدها دید داشته باشین،البته منظور من هکر واقعی هست نه کرکر
و این هم گذشت...
اومدم یه خورده برنامه نویسی اندرویدکار کردم دیدم که ازهمه کارهایی که قبلا انجام دادم و یادگرفتم برام جذابیت بیشتری داره
حالا چرا این همه توضیح دادم؟توی این همه زمینه زمان گذاشتم به نتیجه ای رسیدم؟تقریبا این فیلدها 4 5 سال از وقتم رو گرفتن؟ارزششو داشت؟
یه جمله معروف هست که میگن طرف اقیانوسی هست به عمق یک سانتی متر، یعنی از زمینه های مختلف اطلاع داره ولی توی هیچکدوم عمیق نیست
حالا تصورکنید من اگه 5 سال گذشته تا الان فقط طراحی وب کار میکردم الان کسی بودم که 5 سال سابقه داره و بدون شک با تخصص خیلی بالا و حقوق بالا
و ممکنه شما پیش خودتون بگین که الان درمورد خیلی چیزا اطلاع داری و این که خیلی خوبه، ولی اینطور نیست، شما باید تمام تمرکزتون رو بزارید روی یه تخصص و درکنارشم دوست داشتین درمورد فیلدای دیگه مطالعه کنین،ولی هدف اصلی و تخصص شما باید تمرکز و یادگیری توی یه فیلد خاص باشه
حالا چطور بفهیم که ما به چه فیلدی علاقه داریم؟
بهترین راه این هست طبق نظر اساتید صاحب نظر که اول علاقه هاتون رو محدود کنید و مثلا میرسید به دوتا فیلد یا سه تا فیلد،حالا سه ماه زمان بزارید و یه ماه رو به هرکدوم اختصاص بدین و بعد سه ماه تجربه کار با همه رو دارین در حد مقدماتی، قطعا یکیشون جذابیت بیشتری براتون داره و همون رو انتخاب کنید.ولی بیشتر از این وقتتون رو تلف نکنید
میشه 4 سال من رو شما تو سه ماه تجربه کنید.
مثلا من برنامه نویسی اندروید کار کردم ،وقتی نرم افزاری که روش کارکردم رو روی گوشیم میدیدم لذت بیشتری برام داشت تا یه وبسایت طراحی کنم!
پس نزارید انتخاب زمینه برای یادگیری بیشتر از این زمان وقتتون رو بگیره!
حالا ممکنه بگین مثلا من به طراحی وب علاقه مند هستم ولی برنامه نویسی موبایل درامد بیشتری داره؟
این دیدگاه اشتباهی هست که وجود داره مطمئن باشین توی هر زمینه ای متخصص بشین به شرطی که صبور باشین و علاقه داشته باشین به نتیجه میرسین و درامد بالایی هم در انتظارتون خواهد بود،پس این دیدگاه اشتباه رو دور بریزین
و اخرین موضوع قسمت اول :
حالا ما انتخاب کردیم چه فیلدی رو ادامه بدیم،چقد طول میکشه به نتیجه برسیم؟
دوستان وقتی به این مرحله رسیدید مهم ترین مسئله داشتن هدف هست،باید یه هدف بلند مدت داشته باشید یه هدف میان مدت و یه هدف کوتاه مدت چطور؟
من میگم سه سال دیگه باید برنامه نویس ارشد یه شرکت باشم(هدف بلند مدت)،و 1.5 سال دیگه باید بتونم وارد بازار کار بشم و کارم رو شروع کنم(میان مدت) و شش ماه دیگه باید بتونم پروژه های کوچیکی که توی ذهنم هست برای یادگیری انجام بدم(کوتاه مدت)
نکته ای رو که باید در نظر بگیرید این هست که زمان این هدف گذاری کاملا به خودتون بستگی داره و کسی که روزی 10 ساعت مثلا وقت میزاره با کسی که روزی دو ساعت وقت میزاره قطعا زمان رسیدن به هدف متفاوت هست.
ولی چیزی که گفتم تقریبا استاندار هست برای کسی که روزی 4 5 ساعت وقت میزاره،حالا هدف گذاری چه فایده ای داره؟
هدف گذاری بلند مدت باعث میشه که ما بلندپروازی الکی نداشته باشیم و بگیم مثلا من باید شش ماه دیگه مایی 10 میلیون حقوق داشته باشم و هدف گذاری کوتاه مدت و میان مدت باعث اشتیاق در کارکردن و یادگیری میشه
و چند نکته هم که خیلی مهم هستن توی یادگیری:
- الانِ خودمون که شش ماه کار کردیم رو نباید با کسی که 5 سال کارکرده مقایسه کنیم چون باعث ناامیدی میشه
- باید صبور باشیم،چون قطعا متخصص شدن زمان زیادی رو از ما میگیره
- به جای این که یک هفته روزی 10 ساعت کار کنیم و یک هفته اصلا کار خاصی انجام ندیم. باید ریتم مرتبی برای یادگیری داشته باشیم، برای مثال عهد ببندیم روزی 4 ساعت کار کنیم ولی به طور منظم و در طولانی مدت
- تمرین و تلاش و صبر مهم ترین نکات هستند توی برنامه نویسی و توی رشته کامپیوتر برای متخصص شدن در یک زمینه خاص
- ممکنه بعد یه مدت بی انگیزگی سراغ ادم بیاد ،این جور موقعی باید یه اقدام کوچک کنیم و وقتی نتیجه کوچیکی میبنیم دوباره انگیزه برمیگرده،پس اقدام خیلی مهمه
دوستان امیدوارم که از خوندن مطلب لذت برده باشین و اگه نظری داشتین خوشحال میشم بشنوم.
و ببخشید اگر که متن ضعفی داشت یا نکته ای رو من فراموش کردم،سعی کردم تجربیاتم رو با شما به اشتراک بزارم.
در قسمت بعدی در مورد مسیر یادگیری اندروید صحبت میکنم.
امیدوارم که موفق باشین
با تشکر از دوست عزیزم کیوان
مطلبی دیگر از این انتشارات
ما برنامه نویس ها « از کجا ، به کجا ؟! »
مطلبی دیگر از این انتشارات
VIVADO HLS نرم افزار قدرتمند برنامه نویسی برای طراحی سخت افزار
مطلبی دیگر از این انتشارات
آموزش مجازی معادلات دیفرانسیل، آنالیز عددی و برنامهنویسی C