توصیه هایی به ورودی های ترم ۱ کامپیوتر

درود، هدفم از این مطلب راهنمایی کسانیه که مهندسی کامپیوتر (و درصد زیادی علوم کامپیوتر) قبول شدن و می‌خوان خودشون رو برای دانشگاه آماده کنند. البته برای دید پیدا کردن از محیط دانشگاه و رشته کامپیوتر هم مفید هست.۱-برنامه‌نویسی کنیدچیزی که توی درس‌های ترم۱ تون جدیده درس برنامه‌نویسی هست که درس جذابیه و می‌خواد شمارو با برنامه نویسی آشنا کنه،به نظر من یاد گرفتن برنامه‌نویسی پروسه زمان بری است و شما باید سعی کنید با تمرین و تلاش زیاد با کامپیوتر ارتباط بهتری برقرار کنید.اگر بخوام زبان برنامه نویسی برای شروع پیشنهاد بدم انتخاب هام به ++c و python محدود می‌شه( البته تا حدی java هم میشه برای شروع پیشنهاد کرد ).البته انتخاب زبان کاملا سلیقه‌ایه وخودم با ++c شروع کردم و بنظرم برای جا افتادن مفاهیم و الگوریتم ها ++c زبان خوبیه برای شروع.در مورد منابع شروع هم توی youtube تا دلتون بخواد آموزش هست ولی اگر با آموزش متنی راحت ترید خودم با آموزش های سایت geeksforgeeks خیلی ارتباط برقرار کردم. البته بازم خیلی منبع زیاده خودتون بهتر می‌دونید اما بطور کلی اگر بخوام چندتا منبع خوب پیشنهاد بدم پیشنهادم سایت های آموزش برنامه‌نویسی : udemy (دوره ها رو میتونید از سایتای داخلی سرچ و پیدا کنید) , w3schools ۲-لپتاپ بخریدبنظر من هر دانشجوی کامپیوتری نیاز به لپ تاپ داره به دلایل زیر:۱-مهمترین دلیل قابلیت حمل و نقل است.۲-توی خیلی از کلاسای آینده احتیاج به لپ تاپ دارید، برای بعضی از درس ها توی خود کلاس احتیاج دارید که همراه خودتون باشه.۳-برای تحویل پروژه احتیاج به لپتاپ خودتون دارید. ( البته اگه بازم برنگردیم به دوران تلخ کرونا :) )۴-از اونجایی که احتمالا تایم زیادی رو داخل دانشگاه هستید مجبور میشید یک سری از کارهاتون رو داخل دانشگاه انجام بدید پس حتما به لپ تاپ نیاز میشه.۳-محیط برنامه‌نویسی‌تون رو آماده کنیداول به یک ادیتور و به کامپایلر (یا مفسر) نیاز دارید، در مورد ادیتور گزینه‌های خوب vs code و ++notepad هستند که یکی رو انتخاب کنید و دانلود کنید و یا اینکه میتونید از ide استفاده کنید اما برای شروع کار توصیه نمیشه(برای متوجه شدن تفاوت ide و ادیتور حتما دربارشون سرچ کنید.)برای پیدا کردن کامپایلر یا مفسر زبان موردنظر می‌تونید تو اینترنت سرچ کنید.۴-تایپ یاد بگیریدتاکید میکنم شما احتیاج دارید در طول روز ساعت‌ها پشت کیبورد باشید و تایپ کنید پس چه بهتر اگه تو تایپ خوب باشید و سریع، فکر نکنید تا حالا چطوری تایپ می‌کردم پس تایپ ۱۰ انگشتی رو بنظرم حتما یاد بگیرید و تاثیرات شگفت انگیزش رو توی روحیه و سرعت برنامه نویسی حس کنید :) .هم تایپ فارسی و هم تایپ انگلیسی حتما توصیه می‌شود ولی اولویت با تایپ انگلیسیه، آموزش های یک سایت رو کامل دنبال کنید و جلو برید.سایت‌های خوب در این زمینه :من خودم از typing.com استفاده کردم و به شما هم همین سایت رو پیشنهاد میدم.آموزش سایت speedtypingonline هم خوبه.سایت‌های خوب آموزش فارسی(توجه کنید که اگر یه آموزشی پولی بود لزوما خوب نیست، آموزش‌های رایگان رو با اولویت بیش‌تر بررسی کنید):utype , typekadeh , typeoپ.ن۱:لطفا از سایت فارسی برای آموزش تایپ انگلیسی و برعکس استفاده نکنید، نتیجه خوبی نمی‌ده.۵-کتاب بخونیدیکی از بزرگترین اشتباهاتی که خیلی از کسانی که تازه وارد حوزه کامپیوتر میشن یا حتی کسانی که تجربه برنامه نویسی دارند اینه که فکر میکنن خوندن کتاب وقت تلف کردنه و با ویدیو دیدن سریع تر به هدفشون میرسن اما این تفکر بسیار اشتباهه و مطالب و نکاتی که داخل خیلی از کتاب ها هست رو ممکنه تو هیچ ویدیو یا داکیومنتی نبینید. اما اگر حس میکنید به هیچ وجه با کتاب خوندن ارتباط برقرار نمیکنید و سطح یادگیریتون خیلی میاد پایین میتونید از ترکیب ویدیو دیدن و کتاب خوندن استفاده کنید به این شکل که اول برای فهمیدن مفهوم کلی مطلب ویدیو میبینید و برای مسلط شدن به اون مطلب از کتاب استفاده کنید.(کتاب های مرجع و مناسب فیلدتون رو میتونید با سرچ تو گوگل به راحتی پیدا کنید)۶-کار با لینوکس یاد بگیریدشاید یه چیزایی از لینوکس شنیده باشید یا یسری میم راجع بهش دیده باشید ولی چیزی که باید در مورد لینوکس بدونید اینه که حتما یه جایی تو کارتون نیاز به لینوکس میشه و نیاز پیدا میکنید که مفاهیم اولیه این سیستم عامل رو بدونید حتی اگه خیلی ارتباط باهاش برقرار نکنید،پس حتما راجع به این سیستم عامل سرچ کنید و باهاش آشنا بشید(مثلا بدونید که من تو کل این متن گفتم لینوکس، در واقع صحیح نیست و گنو/لینوکس درسته)این نکته هم در نظر بگیرید که برای اینکه بیشتر با لینوکس آشنا بشید لازم نیست حتما سیستم عامل فعلیتون که احتمالا ویندوز هست رو جایگزین لینوکس کنید و میتونید از ماشین مجازی استفاده کنید و کار با این سیستم عامل محبوب رو امتحان کنید(گرچه این نکته به دلیل اینکه در اول مسیر هستید پیشنهاد میشه اما یکم که تجربه کسب کردید اگر دوست داشتید میتونید کاملا سوییچ کنید به لینوکس)۷-سرچ یاد بگیریدبدون هیچ گونه اغراقی توی این حوزه، شما همیشه نیاز به سرچ دارید، چه مبحثی رو خوب نفهمیدید یا چیز بیش‌تری رو می‌خواید بدونید یا می‌خواید اطلاعات بیش‌تری بگیرید یا یه مشکل دارید که کسی بلد نیست رفعش کنه، در خیلی مواقع نیاز به سرچ دارید.حتما سرچ توی گوگل رو یاد بگیرید.(البته گوگل هم مثل تمام پیشنهاد های دیگه من اجباری نیست و جایگزین خوبی مثل duckduckgo داره که خود منم ازشون استفاده می‌کنم!)بسیار به این نکته توجه کنید که سرچ کردن همیشه اولویت اولتون باشه و اگر اون سوالی که دارید با سرچ کردن به جواب نرسید میتونید از کسی که میدونه بپرسید اما سرچ رو حتما بذارید تو اولویت اولتون!حتما به سایت dontasktoask مراجعه کنید تا با نحوه درست سوال پرسیدن آشنا بشید و خیلی از اشتباهاتتون درباره درست سوال پرسیدن رفع بشه. ۸-سایت‌های خوب رو پیدا کنیدیه سایت خیلی مهم برای هر برنامه‌نویس سایت stackoverflow هستش که کلی سوال و جواب برنامه‌نویسی هست که بسیاری از سوالات و مشکلاتی که بهش برخوردیم رو یک نفر که قبل از ما با اون برخورد داشته و یک نفر دیگه کمکش کرده حل کنه، سایت‌های خوب مثل این رو بشناسید تا توی سرچ اگر چشمتون خورد به همچین سایتی بدونید جواب همین نزدیکیست.سایت های خوب برای تمرین برنامه نویسی:hackerrank (این سایت متاسفانه فیلتره) , codeforces , exercism , queraو خیلی سایت دیگه که با یه سرچ ساده میتونید پیداشون کنید.و سایتای خوب دیگه برای بقیه موارد:medium (نوشته‌های خوب برنامه‌‌نویس‌های دیگه رو می‌تونید پیدا کنید) , reddit , stackexchangeو سایت‌هایی که داکیومنتیشن زبان مورد استفاده‌تون رو داره خیلی مهمن.یه سری سایت خیلی مهم هم در زندگی دانشجویی شما سامانه‌های دانشگاه‌تون هستند که در بدو ورود سعی کنید همشون رو پیدا کنید و بهشون سر بزنید مثلا id بسازید برای خودتون یا وضعیت غذای سلف‌تون رو بررسی کنید.چندتا اصطلاح۱-دستیار استاد (TA)دستیار استاد یا (teacher assistant) TA یک نفر یا تعدادی آدم دل‌سوز :) هستند که در کنار استاد سعی میکنن شما اون درس رو بهتر یاد بگیرید (مدیونید فکر کنید هدف دیگه ای دارند :) ).آن‌ها برخی از کار‌های زیر را انجام می‌دهند: ۱− برگزاری کلاس‌های حل تمرین (غیر از ساعات درس استاد) ۲− مشخص کردن تمرین ۳− جواب دادن به سوال‌های درسی شما (تا جایی که وقتشان اجازه دهد) ۴− تصحیح تمرین‌ها و کوییز‌های شما ۵− برگزاری کارگاه جهت تفهیم بهتر مطالب۲-گرایش مهندسی کامپیوتر مثل بقیه رشته‌ها گرایش‌های مختلف دارد (نرم افزار و سخت افزار) ، واحد‌های غیر اصلی بسته به علاقه دانشجو قابل انتخاب هستند برای مثال می توان از ۳۰ واحد اختیاری، ۱۵ واحد مرتبط با نرم افزار، ۱۰ واحد مرتبط با سخت افزار و ۵ واحد مرتبط با فناوری اطلاعات برداشت.۳-انجمن علمی هر رشته ای یه انجمن مخصوص برای خودش داره که دانشجوهای همون رشته اونجا رو تشکیل میدن ( هر کس دیگه ای هم که داره باهاشون کار می کنه همکار انجمن تلقی میشه)انجمن شما هم انجمن علمی کامپیوتر (مهندسی یا علوم کامپیوتر) هستش، کاری که انجمن انجام میده اینه که شما رو وارد مباحث بروز می کنه ، دانشگاه رو بیشتر باهاتون آشنا می کنه ، می تونید سوال‌هاتون رو از دبیر انجمن بپرسید ( راجع به برنامه های فعلی انجمن و...)به نظر من برای ارتباط بیشتر و آشنایی با رشته تون با انجمن ارتباط بگیرید (معمولا یک سری دوره هم میذارن که خوبه) و چند ترم دیگه شما هم میتونید درخواست کاندید شدن برای انجمن بدید و اگر مورد تایید بود انتخابات برگزار میشه و بقیه دانشجوها به شما رای میدن و در صورتی که تو رقابت بین بقیه کاندیداها رای بالاتری کسب کرده باشید عضوی از انجمن علمی کامپیوتر محسوب میشید :) .خب تموم شد امیدوارم تو این مدتی که دانشجوی این رشته هستید نهایت لذت رو ببرید :)بازم اگر نکته‌ای به ذهنتون رسید که خوبه اضافه بشه یا سوال داشتید خوشحال میشم که بپرسید.