یک جور راهنمای انتخاب رشته لیسانس برای کسانی که کامپیوتر رو دوست دارن

خب این راهنمای انتخاب رشته نیست. سعی کردم در عنوان هم بگم که احتمال داره به نظر شما چیزهای مهملی بیاد. ولی به هرحال نظر منه. منی که ۲۰ سال پیش رفتم دانشگاه،‌ زمانی که چیزی به اسم هوش مصنوعی و علوم کامپیوتر و امنیت و این چیزها در دانشگاه‌ها نبود. ما به سادگی یک برق داشتیم و یک کامپیوتر و یک عمران و یک مکانیک و چند تا رشته دیگه. بعد که می رفتیم تو،‌در سال دوم تازه گرایش انتخاب می کردیم. هنری بود که اون سال ها زده بودن (: بد هم نبود.

اما راهنمای انتخاب رشته من نسبتا خلاصه است و چند تا بند داره:

به دانشگاه برین و مدرک رو بگیرین

به نظر من رفتن به دانشگاه و گرفتن مدرک مثبته. اینکه خودم کار می کنم و خودم می خونم و وقتم رو تلف نمی کنم شاید برای بعضی ها کار کنه (و کسانی رو می شناسم که کار کرده)‌ ولی در کل رفتن به دانشگاه به دلایل بسیار متنوع خوبه. بعضی هاش رو اینجا گفته ام.

چیزی رو انتخاب کنین که دوست دارین

منطقا باید چیزی رو انتخاب کنین که دوست دارین. اینکه الان عمران مشهوره پس برم عمران بخونم ایده مسخره ای است. شما بهتره علاقمندی خودتون رو در اولیت بذارین چون به هرحال این مدرک تا ابد با شما خواهد بود.

اما خیلی نگران کار اون رشته نباشین

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

اسم دانشگاه

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

ترجیحا مالتی دیسیپلیناری نخونین

نفهمیدم تیتر رو چی بذارم و از «میان رشته‌»ای استفاده کردم. رشته‌های بین رشته‌ای اونهایی هستن که به چند حوزه مختلف نیاز دارن. زمان ما ایران خیلی تو فاز ساختن موشک پوشک بود و رشته هوا-فضا درست شد. چیزی بین مکانیک و الکترونیک و احتمالا فیزیک و مکانیک (: این تیپ رشته‌ها در دنیای پیشرفته در سطوح بالاتر ارائه می‌شن. یعنی یک نفر مکانیک می خونه و بعد در دکترا به سراغ موشک ساختن می‌ره (: رشته های مالتی دیسیپلیناری (صنایع، هوا-فضا،‌ امنیت شبکه، …) چیزهایی هستن که هر بخششون از یک علم قرض رگفته شده و منطقا بهتره در مقاطع بالاتر سراغشون رفت. بخصوص که گاهی بعضی هاشون مد می شن و کلا چند سال بعد می بیننین ازش خبری نیست (:

کامپیوتر رفت و برگشت داره

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

خوش بگذرونین

و مهمترین اصل اینه که تازه ۱۸ و ۱۹ و ۲۰ سالتونه و هر چی خوش بگذرونین بهتره. معنی خوش گذرونی لش کردن نیست (: خوش گذرونی یعنی هی بچرخین، از هر چیز کمی تجربه کنین. علم های جدید رو یاد بگیرین و به دانشگاه و خر خونی توش محدود نباشین. در حد تموم شدن دانشگاه و حتی نمره های خوب تلاش کنین و عالیه ولی دائما به چیزهای دیگه سر بزنین و خودتون رو آماده بازار کاری کنین که تقریبا دانشگاه هیچ چیزی ازش نمی دونه. از فلسفه و رمان خوندن گرفته تا زبان و لینوکس و یادگیری ماشین و شبکه به شما برای داشتن پارتنر تا شغل تا زندگی بهتر به شما کمک خواهد کرد. وقت دانشگاه رو استفاده کنین و خوش باشین که زندگی کوتاهتر از این حرفها است.

راهنمایی برای اولین سفر (هوایی) به خارج

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

تصور این متن اینه که شما در تهران هستین و دارین می‌رین ترکیه ولی ممکنه هر مسیر دیگه‌ای باشه.

گرفتن کارت پرواز

اگر اولین بار است، بهتره زودتر بریم تا دیرتر. توصیه عمومی می‌گه ۳ ساعت قبل از پرواز خارجی باید توی فرودگاه باشین. من پنج ساعت قبل از پرواز روی نقشه «فرودگاه امام خمینی» رو سرچ می‌کنم و براش یک تپسی یا اسنپ می‌گیرم. به شیوه یه دوست روسی‌ام، چند لحظه چشمام رو می‌بندم و آروم در ذهنم وسایل رو مرور می‌کنم. این روزها تنها چیز مهم پول است و پاسپورت و در مرحله بعد وسایل بهداشت شخصی، لباس زیر، لباس مناسب و شارژرها و …

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

مرحله بعدی گرفتن کارت پرواز است. شما الان در سالنی شبیه این هستین:

و کافیه اینجا توی مانیتورهای کوچیک دنبال پرواز خودتون بگردین و تو صف بایستین. اگر خیلی زود رسیده باشین ممکنه هنوز به مرحله check-in نرسیده باشین و مجبور بشین منتظر بمونین. ولی زود رسیدن بهتر از دیر رسیدن است! یک تابلوی بزرگ اسم همه پروازهای آینده و وضعیت اونها رو نوشته. وقتی مال شما هم به چک-این رسید، به صف مربوطه برین و وقتی نوبتتون شد، فقط پاسپورت رو به مسوول چک-این بدین. اون خودش فهرست مسافرها رو داره و بعد از اینکه باری که قراره تحویل بدین رو روی نقاله مورد نظر گذاشتین، اونو وزن می‌کنه،‌ برچسب می‌زنه و به شما یک کارت پرواز می‌ده. شما بار خودتون رو در مقصد نهایی تحویل خواهید گرفت و فقط می‌تونین یک چمدون کوچیک یا ساک یا کوله رو توی هواپیما ببرین.

رد کردن پاسپورت چک

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

به سمت هواپیما

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

فرود و ورود

هواپیما بالاخره فرود می‌یاد! کمی صبر می‌کنین و درها باز می‌شه و یک ماشین یا راهرو شما رو به داخل فرودگاه می بره. اگر مقصد شما ترکیه است، باید دنبال Luggage Claim (تحویل چمدان) یا تابلوهایی با مضمون «ورود به ترکیه» بگردین. اگر از اینجا باید سوار هواپیمای دیگه‌ای بشین احتمالا تابلوی مورد نظر شما Transfer است. در واقع باید ببینین شما دنبال چمدون گرفتن و ورود به ترکیه می‌گردین یا منتقل شدن به یک هواپیمای دیگه. مسیر Luggage Claim به زودی شما رو به صفی می‌رسونه تقریبا شبیه صف «پاسپورت چک» خود ایران. یکسری غرفه که پاسپورت رو نگاه می‌کنن و مهر می‌زنن و شما وارد ترکیه می‌شین! این پلیس ممکنه چند سوال مثل اینکه کجا اقامت دارین، هدف از اومدن چیه، بلیت برگشت دارین یا نه و این چیزها رو هم بپرسه. عالیه اگر رزرو هتل، آدرس جای موندن، بلیت برگشت و اینجور چیزها رو پرینت شده همراه داشته باشین.

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

نکات تکمیلی

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

خنده دار بود؟ (: اولین بار برای من کمی سردرگمی داشت. امیدوارم این مطلب سردرگمی بقیه رو کمتر کنه.

انتخاب توزیع گنو/لینوکس مناسب سرور

create_distro

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

لینوکس تنوع داره دقیقا به این خاطر که آدم ها و نیازهاشون تنوع دارن. هر کس ممکنه از چیزی خوشش بیاد و چیزی براش بهتر باشه. جواب نهایی در این مورد وجود نداره!

خب قبول! ولی اکثریت نیازهای ما با چه چیزی جواب داده خواهد شد؟

اولین سوال: دب یا آر پی ام

اولین نکته در انتخاب یک توزیع برای سرور اینه که شما می خواین از مدیر بسته های دبیانی (فایل های deb و دستورات apt) استفاده کنین یا ردهتی (فایل های rpm و مدیر بسته های yum یا dnf). این تا حد زیادی یک سلیقه و تجربه شخصی است. اکثر ما روی دسکتاپ با توزیع‌های مبتنی بر دبیان (مثلا اوبونتو یا مینت) شروع می کنیم و در نتیجه روی سرور هم اونها برامون راحتتر هستن. در مقابل شرکت های بزرگی مثل اوراکل و ردهت و سوزه توزیع سرور خودشون رو مبتنی بر rpm عرضه می کنن و اگر وارد دنیای حرفه ای بشین، بیشترین چیزی که می بینین اینها هستن. این انتخاب بین rpm و deb قدم اول شما برای رسیدن به توزیع مورد نظر است و تفاوت عجیبی هم با هم ندارن. البته من شخصا در کارهای شخصی (مثلا وب سرور خودم) سیستم های مبتنی بر دبیان رو ترجیح می دم و در سیستم های تجاری اداری (مثلا بانک یا مخابرات) سیستم های rpm رو.

دبیانی‌ها

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

آر پی امی‌ها

مطمئنا رقیب بلامنازع دنیای rpm برای سرورها، ردهت و لینوکس rhel است ولی ردهت یک شرکت تجاری و آمریکاییه که نصب کردن و ساپورت و آپدیت صحیحش نیاز به اشتراک و غیره داره. من اگر بخوام روی یک سرور کار کنم که بعدا قراره تحویل کس دیگه ای بشه – بخصوص در حوزه صنایع و تجارت های بزرگ مثل بانک و مخابرات – حتما انتخابم نمونه آزادتر ردهت یعنی سنت او اس است. در حال حاضر سنت او اس ۷ آخرین و مرسوم‌ترین نسخه است.

بقیه لینوکس‌ها

مطمئنا توزیع های گنو/لینوکس‌ زیاد دیگه ای هم برای سرور موجود هستن و هر کدوم رو به هر دلیلی که استفاده کنین خوبه – حتی کنجکاوی! توی این نوشته کوتاه فقط به چیزهای مرسوم اشاره کردیم ولی خیلی وقت ها اتفاقات خوب با رفتن از راه های کشف نشده اتفاق می افتن! هرچند که دو نکته دیگه باید قبل از پایان متن گفته بشه.

آرچ؟!

نصب آرچ سخت نیست ولی نیاز به کمی انگلیسی دونستن، حوصله و پهنای باند داره و به همین دلیل برای بعضی ها دور از دسترس به نظر می رسه. اسمش هم جور جالبی توی دهن میچرخه و در نتیجه وقتی کسی می شنوه یکی دیگه با آرچ کار می کنه معمولا احساس رعب می کنه؛ چیزی که می تونیم اسمش رو بذاریم وهم آرچی! این وهم مثل هر ترس دیگه در انسان‌ها باعث یک کشش و علاقه هم می شه و در نتیجه گاهی آدم ها در مقال چیزی که ازش می ترسن / می ترسیدن اونقدر خاشع می شن که می گن حتی دوستش دارن و به پرستش و اظهار ارادت های های بیجا هم می رسن. مثلا در دنیای گنو/لینوکسی این داستان، آرچ رو روی سرور نصب می کنن!

یکی از بهترین نقاط قوت آرچ در دسکتاپ، یکی از اصلی ترین نقطه ضعف های اون روی سرور است: غلطان بودن. غلطان بودن؛

  1. غلطان بودن باعث می شه سیستم خطرناک‌تر آپدیت بشه. نمی گم آرچ غیرپایدار است ولی اصولا از یک سیستم غلطان نمی شه انتظار پایداری صد در صد داشت چون به هرحال بسته ها با سرعت به آخرین نسخه ها آپدیت می شن و خطر همیشه در کمینه!
  2. غلطان بودن باعث می شه شما مطمئن نباشین که سیستم روی چه نسخه ای از هر لایبری یا نرم افزار ایستاده. اگر من دبیان پایدار نصب می کنم می دونم که پی اچ پی من روی فلان نسخه است و تغییر هم نمی کنه ولی در یک سیستم غلطان در هر مورد باید با دست مشخص بشه که می خوایم فلان بسته در فلان نسخه باشه. این روی سرور خطرناکه چون ممکنه سازگاری نرم افزارها یا نیازهای زیرساختی اونها به نسخه های خاص رو به هم بزنه.

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

بی اس دی چی؟

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

نکته جایزه!

حالا که تا اینجا اومدین و نتیجه رو دیدین که به شکل عمومی دبیان استیبل، اوبونتو سرور LTS و سنت او اس گزینه های مرسوم برای نصب روی سرورها هستن، این رو هم اضافه کنم که بسیار از نرم افزارها و شرکت های تجاری مهم، لینوکس خودشون با تنظیمات ریز و دقیق خودشون رو به شما تحمیل می کنن. مثلا اگر برنامه انتقال اسمس رو از فلان شرکت لهستانی بخرین حتما به شما می گه که این برنامه باید روی سنت او اس ۶ و مای اسکوئل ۴ اجرا بشه چون اونجا تست و بررسی شده. معمولا در کارهای حرفه ای اینطوری نیست که شما یک سیستم عامل رو کاملا مستقل از برنامه های روش انتخاب و نگهداری کنین. من توی آفریقا با زیمنس کار می کردم و تقریبا همه سرورها، گنو/لینوکس سوزه بودن؛ چرا؟ چون آلمانی است و شریک استراتژیک شرکت زیمنس (: