یک مهندس نرمافزار در دیوار.
چقدر دانشگاه در تعیین آینده منِ برنامهنویس تاثیر داره؟
این چند وقته سردرگمی زیادی در میان کسایی که تازه میخوان مسیرشون رو توی دنیای برنامهنویسی شروع کنن دیدم و دوس داشتم کمی درباره این مسئله صحبت کنم. واقعیتش این چند ساله، برنامهنویسی طرفدار های زیادی پیدا کرده و بخاطر همین هم بهای بیشتری بهش داده میشه و خب کسی که تازه میخواد وارد این مسیر بشه با تعداد زیادی زبون برنامهنویسی، تکنولوژی ، دورههای برنامه نویسی، بوت کمپ، و حتی رشتههای دانشگاهی مواجه میشه و خب آدمهایی رو هم میبینه که بدون گذروندن حتی یکی از اینها یا با گذروندن همه اینجا به چیزی که میخواستن رسیدن! و این سوال خب چیکار کنم؟ کدوم برای من بهتره؟ شروع تمام سردرگمی ها میشه. قبل از اینکه ادامه مقاله رو بخونی پیشنهاد میکنم اول این ویدیو که به همکاری مجموعه آموزش برنامه نویسی سون لرن تهیه شده رو ببینی .
کسی که تازه 18 سالشه، 5 سال آیندشو چطور میبینه؟
دنیای کامپیوتر و برنامهنویسی، برعکس بقیه رشتههای دیگه بخصوص مهندسی، نیاز به سختافزار یا ابزارهای مخصوص و گرون قیمت برای شروع کار نداره. با ساده ترین لپتاپ یا کامپیوتر که ارزونتر از یک تلفنهمراه هوشمند هستند میتونید مسیر خودتون رو شروع کنید. پس چیزی که مهمه محتوا و زمانی هست که برای تمرین و یادگیری میذاریم. پس مهم ترین چیز برای کسی که میخواد تازه شروع کنه محتوایی هست که یاد میگیره و زمانی هست که برای یادگیری و تمرین میذاره.
آدم بخواد واقعبین باشه، ما هرچقدر هم تلاش کنیم؛ کنترلی بر روی آینده خودمون نداریم چراکه پارامتر های زیادی روی اتفاقات آینده تاثیرگذار هست. یعنی حتی 20درصد یا 50درصدشو بخوایم کنترل کنیم هیچ وقت 100 درصد نمیشه.آدم نمیدونه فرداش قراره چطور بشه و من نمیتونم هیچ وقت بگم حتما تا دوسال آینده این مباحث رو یادمیگیرم، نه کمتر نه بیشتر. برای همین همیشه یک برنامه کوتاه مدت داریم و میگیم به احتمال زیاد به اکثر اون چیزی که میخوایم میرسیم و در کنارش یک برنامه بلند مدت داریم که صرفا کلیت مسیر ما رو مشخص میکنه و چیزی که در اون مسیر اتفاق میوفته اکثرا واکنش ما به اتفاق های محیطه، نه چیزی که برنامهریزی کردیم.حالا کسی که 18 سالشه چطور میتونه مطمئن باشه و به خودش بگه اگه من توی 23 سالگی بخوام به فلان سطح برسم حتما حتما باید این مسیر رو برم؟
متغیرهای بیرونی و درونی
باید قبول کنیم آدمها با هم متفاوت هستن. درسته که شباهتهای زیادی رو میتونیم توی همدیگه ببینیم اما کوچکترین تفاوتها خیلی وقتها میتونن مسیر دونفر رو کاملا متفاوت کنن. این تفاوتها فقط شامل متغیرهای درونی ما نمیشوند، خانوادهایی که توش بدنیا اومدیم، شهری که توش زندگی میکنیم، اگر سر کنکور مریض شده بودیم! و خیلی مثال های دیگه که اونها هم کنترلشون دست ما نیست و توی زندگی همه پیش میان. همهی اینها دست به دست هم میدن که یک طورایی خیال مارو راحت کنن که اگر یک شخصی با یک روشی به چیزی که میخواست رسید، لزوما اگه اون مسیر رو ما نرفتیم دلیل بر این نیست که اشتباه کردیم. پیشبینی آِینده تقریبا غیرممکنه. پس بیایم به اون مسیری که در لحظه داریم طی میکنیم و با تحقیق و تجربههای قبلی بهش رسیدیم ایمان داشته باشیم و دلسرد نشیم.
آیا برای برنامهنویس خوب شدن، به دانشگاه، آموزشگاه، بوتکمپ و .. نیاز هست؟
جواب این سوال بله و خیر نیست. بیاید یک مثال بزنم. آدمی که بره بهترین دانشگاه ولی به 100% درسها توجه نکنه توی مسیر کاریش پیشرفت میکنه یا آدمی که دانشگاه نرفته ولی حالا بخاطر تجربههایی که داشته یا تلاش خودش برای یادگیری اکثر اون مباحث رو یادگرفته و باهاشون تجربه داشته؟ قطعا جواب دومی هستش. دانشگاه، بوتکمپ، آموزشگاه، کارآموزی، ... همه نقش کاتالیزگر رو دارن. یعنی شما وارد محیطی میشید که از قبل افرادی انرژی مصرف میکنند که شما برای درک یک سری مطالب انرژی کمتری مصرف کنید.
بیایم واقعبین باشیم، توی دانشگاه مفاهیم بسیار ارزشمندی آموزش داده میشه که حتی طرح خود سرفصلها باعث میشه با مفاهیمی که قبلا هیچ ایدهایی در موردشون نداشتیم آشنا بشیم و حتی اگر بدترین اساتید رو هم داشته باشیم خودمون میتونیم از این فرصت برای یادگیری استفاده کنیم، اگر استاد خوبی هم داشته باشیم چه عالی! اما باز هم چیزی که این وسط تاثیر بیشتری میذاره اینه ما باید تلاش کنیم و انرژی مصرف کنیم چون دانشگاه به تنهایی کافی نیست. بوتکمپ چطور؟ پکیجهای آموزشی چطور؟ واقعیت اینه اینها هم تفاوت آنچنانی ایجاد نمیکنند مگر همراه باشند با تلاش و تمرین ما.
- چیزی که دانشگاه رو با بقیه متمایز میکنه این هست توی محیط آکادمیک توسط اساتیدی که دانش آکادمیک دارند یاد میگیریم و هضم کردن مطالب تئوری، که پیشنیاز یک مهندس نرمافزار هستند، برای ما راحت تر میشود. ( البته سربازی رو هم نباید نادیده گرفت، بخصوص برای پسرها)
- چیزی که پکیجهای آموزشی رو با بقیه متمایز میکند این هست که یک دوره برای مثال پروژه محور با تمرکز روی مهارت های برنامه نویسی آشنایی ما با تکنولوژیهای مورد استفاده در بازار کار را بیشتر میکند و آشنایی و استفاده از این تکنولوژیها برای ما راحت تر میشود.
- چیزی که بوتکمپ رو با بقیه متمایز میکند این هست علاوه بر یادگیری تکنولوژیهای روز بازار، در محیطی مشابه محیط کاری soft skills خودمون رو تقویت میکنیم و آماده برای کارکردن به عنوان یک نیروی تازهکار، در شرکتها میشویم.
تاثیر دانشگاه بر مهاجرت و استخدام
برای استخدام شدن در شغلهای رایج توسعه وب، موبایل و نرمافزار، اکثرا شرکتها مدرک دانشگاهی یا معادل آن تجربه کاری میخواهند. حالا هستند شرکتهایی که مدرک برای آنها الزامی هست. شما اگر تجربه و مهارت کافی داشته باشید میتونید بدون مدرک چه در ایران و چه در خارج ایران (اگر مسئله خدمت حل شده باشد) کار کنید چون در نهایت دانشگاه نقش کاتالیزوری دارد که به افزایش دانش و مهارت شما میخواهد کمک کند.
باید واقع بین باشیم، دانشگاه و ادامه تحصیل میتواند سادهترین روش برای مهاجرت باشد، بخصوص برای کسایی که به ادامه تحصیل کشورهایی مثل کانادا و آمریکا علاقهمند هستند. مهاجرت کاری در کشورهای اروپایی اتفاقا بسیار شدنی هست اما در کشورهای آمریکای شمالی مقداری سختتر.
سخن آخر
همه اینها را گفتم که بگم اگر هدفی دارید براش تلاش کنید، تجربه دیگران بسیار ارزشمند هست اما اگر تجربه آنها متفاوت از مسیر شما بود دلسرد نشوید، خیلی منطقی هست که آدمها تجربیات مختلفی داشته باشند. و به این نکته نیز توجه کنید که هرگز خودتان را با فرد دیگری مقایسه نکنید، شما قرار است ورژن ارزشمندی از خودتان باشید نه افراد دیگر.
مطلبی دیگر از این انتشارات
زبان برنامه نویسی دارت (Dart) چیست؟ و چه کاربردی دارد؟
مطلبی دیگر از این انتشارات
متدولوژی توسعه نرم افزار اجایل چیست؟
مطلبی دیگر از این انتشارات
پنج نکته که ما رو به عضوی قابل اعتماد در سازمانمون تبدیل میکنه