به قلم: دکتر امید غیبی
سلام دوستان
تبریک میگم خدمتتون بابت فرصتی که براتون حاصل شده و امیدوارم که در انتهای دورهای از عمرتون که در این دانشگاه و دانشکده سر میکنید، احساس کنید که به طریقهٔ درستی از این فرصت بهدستآمده برای ادامهٔ زندگیتون استفاده کردهاید.
دوستان سالبالایی شما از من خواستن که اگر پند و نکتهای در باب درس مبانی برنامهسازی و ترمهای اول دارم برای شما بنویسم؛ و خب شاید این درخواست از این باب بود که من هم مثل شما چند صباحی رو در این دانشگاه و دانشکده درس خوندم و درس دادم.
حقیقت اینکه پند و نکتهای ندارم برای اینکه به برکت حضور سالبالاییهاییتون(اشخاصی که عمدهٔ مسیرهایی که برای شما مبهم هستن رو حداقل یه بار رفتن یا در حال عبور ازش هستن) که در طی زمان باهاشون آشنا میشید و خرد جمعیای که به خرج میدید و گروههایی که شکل میدید یا در اونها بسته به علاقه و تواناییهاتون عضو میشید، نقاط مبهم براتون روشن میشه و جای هیچ نگرانیای نیست.
در هر حال مواردی رو که به نظرم شاید براتون مفید واقع بشه خدمتتون عرض میکنم. اولین مورد مربوط میشه به درس مبانی برنامهسازی شما که به دو دلیل اهمیت بالایی داره: اول از نظر علمی و دوم از نظر انسانی. فقط به این نکته توجه داشته باشید که مواردی که خدمتتون عرض میکنم صرفا نقطهٔ شروعیه که در درس مبانی در موردش میشنوید ولی در سالهای آتی دانشگاه و درس و کارِتون، تماما و به صورت مکرر ازشون استفاده میکنید. بنابراین این موضوع به ذهنتون خطور نکنه که چرا باید برای یه درس اینقدر زحمت بکشیم! و همواره به این موضوع فکر کنید که این مطالب توشهٔ راه شما خواهند بود! که اگر الان تمرینش نکنید و با دوستانتون همراه نشید در ترمهای آتی و یا در شغل آیندهتون قطع به یقین درگیرش خواهید شد.
خیلی دور از ذهن نیست که شما قبل از اینکه وارد دانشگاه شده باشید تسلّط کافی رو به مبانی برنامهسازی پیدا کرده باشید. امّا همیشه مباحثی هست که میشه دقیقتر مطالعهشون کرد. از اونجایی که در درسهای دیگهتون هم مکرراً به این مباحث برمیخورید خوبه که کمی عمیقتر و دقیقتر به دانستههای قبلیتون توی این درس بپردازید. اگر هم از قبل دانشگاه با این مباحث آشنا نبودید که اصلا نگران نباشید. فقط باید حواستون باشه که درستون از مبحث اشارهگرها به بعد -که یکی از مهمترین مباحث این درس هم هست- با سرعت بیشتری جلو میره و بهتره که براش برنامهٔ قبلی داشته باشید.
نکتهٔ دیگه اینه که شما باید بعد از اتمام این درس اصطلاحا «دستبهکد» شده باشید، یعنی به راحتی بتونید عمدهٔ مسائلی که بهش برخورد میکنید رو حل کنید و مهمتر از اون، کدش رو بنویسید. بنابراین، یکی از فرقهای عمدهٔ این درس با همهٔ درسهای معمولی که تا به الان داشتید اینه که بیشتر از اینکه برای این درس مطالعه کنید، باید براش کد بزنید و تمرینش کنید. هر وقت جایی رو نمیفهمید، بهترین راه اینه که نمونهٔ کدی پیدا کنید و شروع کنید با اون کد بازی کردن و نحوهٔ کارکرد اون کد رو یاد بگیرید. بنابراین بدونید که بخش عمدهای از این درس همین سر و کلّهزدن با کُده.
بسیاری از مباحث بهدردبخور شما برای آینده، در کلاس حل تمرین این درس گفته میشه. مثلا اینکه چطور کدتون رو خطایابی کنید و یا اینکه چطور به راهحلهای مختلف برای یک مسئله برسید. بنابراین در کلاسهای حل تمرین چنین مباحثی حتما شرکت کنید.
نکتهٔ بعدی اینکه توی این درس به صورت غیر مستقیم با پیچیدگیهای پشتصحنهٔ کامپیوترتون مواجه میشید که شاید بعدها و شاید هم هیچوقت خودتون به تنهایی دلیلش رو متوجه نشید! بنابراین توصیه اکیدم اینه که حتما یه اکانت استکآورفلو برای خودتون درست کنید و سعی کنید سؤالهاتون رو اونجا بپرسید. اگر در این امر تازهکار هستید، قبلش مطالعهای داشته باشید که چطور میتونید سؤالتون رو طوری مطرح کنید که افراد خیلی بلدتر از شما متوجه سؤالتون بشن، و حتما قبلش مطمئن باشید که سؤال شما رو قبلا کسی نپرسیده باشه و به اون سؤال کسی جواب نداده باشه. مضاف بر اینکه میتونید سؤالهای مرتبط با تگ زبان برنامهنویسی C رو که قبلا پرسیده شده مطالعه کنید و مطالب مرتبط با درس خودتون رو ازش برداشت کنید. فقط یه نکتهٔ مهم: این اکانت یه اکانت درسی نیست! بنابراین نه نمرهای داره و نه تشویقی! ولی اگر این قضیه رو جدی بگیرید به مرور متوجه میشید که میتونه در آیندهٔ شغلی و علمیتون نقش مهمی رو ایفا کنه.
عمدهٔ منابعی که باهاشون سروکار دارید به زبان انگلیسی هستن. این مورد بهترین فرصت برای این موضوعه که تلاشتون رو بکنید و کتابهای زبان اصلی بخونید. ممکنه این کتابها ترجمههایی هم داشته باشن ولی خوندن اونها صرفا فرار از مواجهه با زبان انگلیسیه. شاید در ابتدای امر خوندن یه کتاب انگلیسی براتون سخت باشه ولی اگر این فرصت رو غنیمت بشمرید، علاوه بر اینکه تسلط کافی به لغات تکنیکی حوزهٔ درسیتون پیدا میکنید، میتونید در ادامه متون دیگهای -که لزوما ترجمه هم نشدهان- رو بخونید و خب این برای آیندهٔ آکادمیک و شغلیتون بسیار مفید خواهد بود.
این درس پروژهای در انتها خواهد داشت که علاوه بر آوردههای انسانیِ اون که بهش اشاره میکنم، میتونه پایهگذار تجربهها و مهارتهای برنامهنویسی بسیاری برای شما باشه. استفاده از ابزارهای کنترلی کد مثل «گیت» روی سروری مثل «گیتلب» یکی از مهمترینهای این مهارتهاست. اینکه شما بتونید به صورت همزمان و گروهی روی یه پروژهٔ مشترک به راحتی کار کنید و از وقوع اتفاقهای بد جلوگیری کنید! شایعترین اتفاق بد هم در اوایل کار اینه که کدی که زدید از روی کامپیوترتون پاک بشه یا اینکه کامپیوترتون خدایی نکرده بسوزه! که اگر در اون صورت به صورت منظم کدهاتون رو روی اکانتی مثل گیتلب داشته باشید، خیالتون از این باب راحت خواهد بود. هر چند که این کمترین آوردهٔ استفاده از گیت خواهد بود!
بعد از ذکر موارد علمی به موارد انسانی این درس میرسیم. این درس اولین درس در دورهٔ آکادمیک شماست که پروژه داره و اون پروژه رو ممکنه به صورت گروهی انجام خواهید داد. بنابراین بهترین فرصت خواهد بود برای اینکه بتونید دوستها و همگروهیهای خوبی رو برای خودتون پیدا کنید. مهمتر اینکه بهترین زمان برای یاد گرفتن کار گروهی بر روی یه پروژهٔ برنامهنویسیه که در آیندهٔ شغلی و آکادمیکتون به صورت مستقیم باهاش درگیر هستید. قطعا بعضیها با مشکلات انسانیای در این زمینه مواجه خواهند شد، از جمله اینکه یکی از اعضای گروه به دلیل کمکاری و یا مشکلات دیگهای نتونه کد مربوط به خودش رو برسونه و اینکه وظایف و کدها به طریق درستی بین اعضای تیم تقسیم نشده باشن و از این دست موارد؛ بررسی و حل این موارد از بزرگترین آوردههای شما برای آیندهتون خواهد بود.
به دلیل ماهیت رشتهای که انتخاب کردید، خیلی از شما سریعتر از اونچه که فکر کنید، وارد فضای جدیتر صنعت مرتبط با رشتهتون میشید، بعضیها در قالب کارهای استارتاپی و بعضی هم به صورت کار در شرکتهای ریز و درشت فعلی. اگر اینطور شد، اولویتها رو در ابتدا از مباحث مالی و پایداری شغلی، به سمت محیطهای حرفهای و کسب تجربهٔ بیشتر در حوزهٔ مورد علاقهتون تغییر بدید تا رشد لازم براتون حاصل بشه و مسیر شغلی خوبی برای خودتون ساخته باشید.
این موضوع رو به خاطر داشته باشید که کار در فضای صنعتی هیچ تضادی با درس شما نداره و اگر برنامهریزی درستی داشته باشید فضای کاری برای شما آوردههای علمی بسیار خوبی هم خواهد داشت. البته دوستانی که بیشتر به مباحث تئوری این رشته علاقه دارن و مایل به ادامه در باب این مباحث هستن کمتر به فضاهای کاری ورود پیدا میکنن. این موضوع به انتخاب شخصی و برنامهای که برای زندگی خودتون متصور هستید، برمیگرده و نمیشه نسخهای عام براش ارائه داد.
در همینجا عرض خودم رو به پایان میبرم. امیدوارم که تونسته باشم اندکی در جهتگیری ذهن شما کمک کرده باشم و اینکه هر تصمیمی که در ادامهٔ زندگی میگیرید ختم به خیر باشه. همواره شاد و خوشحال و خندان و سلامت باشید. ارادتمند، امید غیبی.