مهندسی کامپیوتر دانشگاه علامه طباطبایی ، عاشق کامپیوتر ، برنامه نویس ، دواپس ، اصرار بر متن باز
نقشه راه در رشته کامپیوتر
خیلی از من می پرسن چطور میشه در رشته کامپیوتر خبره شد یا بنظرت فلان مهارت رو باید یاد بگیریم یا نه ؟اینم جواب های منه!!
از کجا شروع کنیم ؟
اگر فک کردید با رفتن به رشته های مرتبط به کامپیوتر در دانشگاه باعث میشه شما موفق بشید یا در آینده شغل خوبی در کامپیوتر داشته باشید سخت در اشتباهید!!
البته که مدرک امتیاز محسوب میشود ولی مدارک معتبر بین المللی به مراتب اهمیت بالا تری دارند.
قبل از هر کاری باید فیلد شغلی و کاری خود را در شاخه های کامپیوتر تعیین کنید.
البته که شما باید از هرکدام از شاخه ها یک دانش نسبی داشته باشید،بخاطر همین خیلی از من سوال میشه که چقدر دانش برای اطلاعات عمومی از رشته لازم است.
اینجا من هرکدام از رشته ها رو برسی میکنم و با 3 سطح و مثال مشخص میکنم ، سطح 1 اطلاعات عمومی سطح 3 اطلاعات تخصصی ، ولی قطعا عمق هر یک از این رشته ها بیش از این 3 سطح است.
سخت افزار
- سطح 1 : آشنایی با تمام مدل ها ی قطعات کامپیوتر (CPU,GPU) و مقاسه ی آن ها ( مثلا Ryzen 5 5600x بهتر از i7 9700k ) ، آشنایی با کاربرد هر یک از قطعات(مثلا برای بازی با کیفیت 1080 چه مدل GPU بهتر است)
توانایی تشخیص و انتخاب برای خرید یک لپ تاپ یا PC بر هر موجود دو پایی الزامی است.
- سطح 2 : توانایی تشخیص تفاوت ها بنیادی قطعات(مثلا طراحی CPU با GPU چه فرقی داره)،قابلیت نصب قطعات کامپیوتر و سرور
- سطح 3 : آشنایی کامل بر طراحی های مشهور قطعات و قابلیت طراحی ساده قطعات
بازار کار با رسیدن به سطح 2 وجود دارد،البته برای سطح 3 کاری در ایران وجود ندارد و بیشتر شرکت های تولید چیپ به این مهارت ها نیاز دارند.
اما اگر بخواهم یه آگهی از سطح 3 بزارم میشه این آگهی :
نرم افزار
به شکل کلی نرم افزار سطح بندی ندارد و انتخاب یک زیرشاخه و ادامه آن مهم است ولی:
آشنایی به پایتون بر هر جنبنده ای واجب است.
- برنامه نویس وب(Web Developer)
بازار کار در وب بسیار وسیع است چرا که تمام شرکت ها به وبسایت نیاز دارند
برنامه نویسی بک اند (Back-End Web Developer) : به شکل کلی تمام در خواست هایی که وب سایت ها به سرور میدهند باید یک برنامه نویس بک اند هندل کنه مثل لیست یوزرها،اطلاعات راجب یک کالا و...
زبان های برنامه نویسی مشهور آن : SQL,PHP, تسلط به API
فرانت اند(Front-end Web Developer) : هر چیزی که در سایت نمایش میدهد فرانت اند محسوب میشود مثل منو ها، نمودار ها و ...
زبان های برنامه نویسی مشهور آن : HTML,CSS,JS
معمولا شرایط شغلی که هم شامل فرانت و بک باشه(Full Stack Web Developer) بهتره و حقوقش بهتره ولی به شکل جدا هم امکان استخدام وجود داره.
- برنامه نویس موبایل (Mobile App Developer)
اگرچه که بازار کار برنامه نویسی موبایل وسیع است ولی به اندازه وب نیست.چراکه تمام شرکت ها نیاز به اپ موبایل ندارند.
نیتیو(Native) : برنامه ای برای یک پلت فرم نوشته شده باشد بهش نیتیو میگن.
برای Android ، جاوا و برای ios ، سوئیفت استفاده میشوند البته هر کدام تکنیک های خاصی داره مثلا با سوئیفت Objective-C نیز استفاده میشه.
کراس پلتفورم(Cross Platform App Development) : با بعضی از زبان های برنامه نویسی میتوان هم برای ios و هم برای java وحتی میشه وب هم درآورد.
دوتا از محبوب ترین ها Dart هست که برای شرکت گوگل و فریم ورک React Native برای شرکت فیس بوک
تفاوت بین نیتیو و کراس از هدف های این مقاله خارجه ولی به طور کلی باهم دیگه استخدام میشه ولی معمولا استخدام در خارج به نام Software Development استخدام انجام میشه و نیاز به هر دو مهارت داره.
- برنامه نویس بازی (Video game developer)
اگرچه اجباری به استفاده از موتور بازی سازی نیست ولی معمولا در طراحی بازی های امروزه از موتور بازی سازی استفاده مشود ، 2 تا از موتور های بازی سازی مشهور Unreal Engine , Unity هست.اگرچه برای بازی سازی اجباری بر برنامه نویسی نیست ولی برای داشتن مهارت خلق بازی قابل قبول الزامی است به علاوه مهارت در زمینه های گرافیکی مثل Maya بشدت کاربردی است.
زبان های برنامه نویسی مورد نیاز: سی پلاس پلاس ، سی شارپ ، جاوا
برنامه نویس بلاک چین (Blockchain developer):
برنامه نویسی بلاکچین معمولا زیر مجموعه ای از برنامه نویس وب بحساب می آید و نیاز به پایه هایی از دانش الگوریتم نیز دارد. اول از همه باید مفهوم شبکه بلاکچین رو درک کنید.
زبان های برنامه نویسی مورد نیاز:سی پلاس پلاس ،پایتون، اس کیو ال ( SQL)
بازار کار بلاکچین در ایران در حال حاظر کم ولی رو به رشد است با این حال بازار کار این شاخه هم در خارج و هم در ایران محدود است.
شبکه
مهارت عمومی (سطح 1): مبانی شبکه و مدرک NetWork+ به حساب می آید البته دانش سطحی از امنیت شبکه هم بسیار خوب هست.
آشنایی به مبانی شبکه بر همگان واجب است.
مهارت سطح 2: آشنایی با Docker , Kubernetes دانست که برای برنامه نویسان یه امتیاز بسیار عالی به حساب می آید.
- دواپس (DevOps)
معمولا پلی بین برنامه نویسی و شبکه هست. پس از نوشتن برنامه توسط برنامه نویسان تجاری سازی آن توسط DevOps ها انجام میشود.DevOps شدن آسان نیست چون علاوه بر تسلط به شبکه تسلط به برنامه نویس هم میخاد.
تکنیک های موردنیاز : Coding ، Building ، Testing ، Releasing ، Configuring
بازار کار این حوزه بسیار عالی است و حقوق های آن در ایران معمولا از 15 میلیون شروع میشود و در خارج سالی 100 هزار دلار .
- راه اندازی و پشتیبانی
این شاخه شما باید بلد باشید چگونه شبکه برای یک سازمان یا یک شرکت ببندید از کانفیگ روترها تا تپولوژی شبکه با شما است و حتی در صورت برخورد شبکه به مشکل نیز شما پشتیبان آن خواهید بود.
Certification: CCNA , CCNP , CCIE , MCSE
- امنیت شبکه(Network security)
امنیت شبکه در دوشاخه قبلی وجود دارد و همچنین متخصص امنیت شبکه نیز باید با دو شاخه قبلی نیز آشنایی داشته باشد و حتی برنامه نویسی هم باید بلد باشد.
شغل امنیت شبکه میتوان تست امنیت و شبیه سازی حمله پس از پیاده سازی کامل دانست یا پس از نوشتن کد ، ارزیابی کد نیز دانست.
Certification: CEH , CISSP , CISM , NCSF , OWASP , Security+
چند نکته مهم
- در انتخاب شاخه باید بسیار دقت و تحقیق انجام بشه و علاقه یکی از مهم ترین عوامل انتخاب باید باشد.
- شرکت های مختلف انتظارات متفاوتی دارند پس ممکن است آگهی ها متفاوتی در یک شاخه پیدا کنید به همین دلیل حتما در سایت های کار یابی چک کنید.
- لینک های آگهی ایرانی از سایت jobinja و آگهی خارجی از سایت indeed
- اگر شما کمی تحقیق کرده باشید یا از قبل بدانید جای خالی شاخه هایی مثل هوش مصنوعی یا دیتاساینس را حس میکنید.این رشته ها نیازمند ریاضی تخصصی و برای شروع انتخاب های مناسبی نیستن.
مطلبی دیگر از این انتشارات
جزئیات، جزئیات و جزئیات
مطلبی دیگر از این انتشارات
فوقالعاده زرد ، فرا قهوهای
مطلبی دیگر از این انتشارات
مدینه ی فاسده! - دیستوپیا (پادآرمانشهر) و آثار برتر این ژانر