چه زبانی برای تخصص من لازم است؟ (بخش اول)

بسیاری از دانشجویان و علاقه مندان به دنیای کامپیوتر پس از اینکه مبانی پایه برنامه نویسی را آموختند و قصد شروع یک تخصص حرفه ای تر را دارند، با سوال جدیدی رو به رو می شوند. چه زبانی برای تخصص مورد نظر من لازم است؟ برای پاسخ به این سوال میتوان یک پرس و جوی ساده کرد و یا جستجویی در گوگل کرد تا به سادگی به جواب رسید. بنده نیز قصد دارم در این مقاله به این موضوع بپردازم.برخی از تخصص ها و زبان های مورد نیاز آن ها را میتوانید در پایین ببینید.طراحی وبسایتطراحی وبسایت یکی از پرنیاز ترین و پرکاربرد ترین مشاغل دنیا می باشد. قبل از اینکه بخواهیم به زبان های مورد نیاز بپردازیم، باید کمی در مورد این تخصص اطلاع داشته باشیم.طراحی وبسایت تلفیقی از دو تخصص کلی است، که هر کدام از این تخصص ها نیز خودشان زیر شاخه های اصلی دارند.· طراحی و پیاده سازی رابط کاربری یا فرانت اند (front-end)· توسعه سمت سرور یا بک اند (back-end)فرانت اند. طراحی و پیاده سازی رابط کاربری یا همان فرانت اند همانطور که از اسمش مشخص است مربوط به ظاهر یک سیستم و بخش هایی است که کاربر از آن طریق با سیستم ارتباط بر قرار میکند. فرانت اند بخشی است که کاملا در دید کاربر قرار میگیرد و نقش بسیار مهمی در سادگی کار با سیستم، سئو و حفظ کاربران یک سیستم دارد. فرانت اند فقط مربوط به وبسایت ها نیست و هر سیستمی که نیاز به رابط کاربری داشته باشد مانند اپلیکیشن های گوشی های هوشمند و یا کامپیوتر های شخصی را شامل میشود.فرانت اند به صورت کلی خود شامل تخصص های جامع و کاملی مانند گرافیک،طراحی UX(تجربه کاربری) و پیاده سازی UI(رابط کاربری) می باشد که هر کدام به عنوان یک شغل کامل شناخته می شوند.بک اند. همانطور که از نام آن مشخص است، این تخصص مربوط به بخش هایی است که کاربر نمیتواند به صورت مستقیم ببیند. برای مثال، شما وقتی در یک سایت عضو می شوید تنها یک فرم می بینید که باید اطلاعاتی در آن وارد کنید و وقتی فرم را پر کردید و تایید کردید عضویت شما انجام میشود. اتفاقاتی که برای اطلاعات ارسالی شما در پشت صحنه می افتد و فرآیندهایی که نهایتا منجر به ثبت نام شما میشود در بخش بک اند می باشد. به صورت کلی این بخش هم شامل تخصص های کاملی درون خود می باشد مانند پیاده سازی پایگاه داده.یک طراح سایت که میخواهد به صورت تنها کار کند و نه به صورت تیمی، نیاز دارد تا به صورت کلی با مباحث فرانت اند آشنایی داشته باشد و بتواند صفحات را در حد خوبی طراحی کند و همچنین نیاز به تسلط نسبی در بخش برنامه نویسی بک اند دارد. برای پایگاه داده، دانش پایه نیز میتواند کافی باشد. البته تمام این مسائل بستگی به پروژه نیز دارد.اما چه زبان هایی؟برای رابط کاربری، حداقل نیاز شما تخصص کامل در htmlو css و دانش پایه ای و مورد نیاز JavaScript می باشد. (مباحث تخصصی تری مانند Jquery،bootstrap یا فریم ورک هایی مانند انگولار یا ری اکت بستگی به علاقه شما به این تخصص دارد و همچنین به پروژه نیز بستگی دارد)برای بک اند، شما نیاز به تسلط به یکی از فریم ورک های سمت سرور مانند ASP.Net، لاراول، سمفونی، Node JS و... دارید که هرکدام از زبان های خاصی پشتیبانی میکنند. برای مثال .Net نیاز به C# یا Visual Basicدارد، لاراول و سمفونی نیاز به PHP و Node JS نیاز به دانش جاوااسکریپت دارد.برای پایگاه داده نیز چون گزینه های مختلفی وجود دارد نمیتوان دقیقا چیز خاصی را مطرح کرد اما حداقل نیاز شما داشتن اطلاعات کافی راجب مباحث پایگاه داده و زبان SQL است.طراحی اپلیکیشن های اندرویدی یا iOSیکی دیگر از پرکاربردترین تخصص ها طراحی اپلیکیشن برای گوشی های هوشمند است. نمیخواهم مثل طراحی سایت پرچانگی کنم برای همین مستقیم میروم سر اصل مطلب.طراحی اپلیکیشن تخصصی است که پایه یکسانی دارد اما پیاده سازی متفاوتی بسته به سیستم عامل و دیوایس های مختلف دارد. همانطور که در بالا گفتیم هر سیستمی که نیاز به ارتباط با کاربر دارد، بخشی برای توسعه رابط کاربری نیز دارد. برای همین در این تخصص نیز طراحی رابط کاربری نقش فوق العاده مهمی دارد.همچنین در اینجا نیز ما با بحثی تحت عنوان بک اند مواجه هستیم که در اپ های آنلاین دیده میشود. به صورت کلی توسعه سمت سرور در هر نوع سیستمی که اتصالات آنلاین دارد یک امر بدیهی و غیر قابل انکار است و با توجه به توسعه اینترنت در عصر حاضر پس توسعه بک اند یک تخصص خیلی کاربردی است.اما برای توسعه بخش های غیر رابط کاربری در اپ که مربوط به اتصالات آنلاین نیز نباشد نیز نوعی تخصص است در واقع طراحی یک اپ (آفلاین) یک بخش رابط کاربری، یک بخش توسعه اپ و در صورت نیاز پایگاه داده است.اما چه زبانی؟برای توسعه رابط کاربری اپ شما نیاز به دانش زبان XML و گاهی html دارید.برای توسعه خود اپلیکیشن اندرویدی شما میتوانید از جاوا، کاتلین یا سی شارپ استفاده کنید (گزینه های دیگری نیز موجود است) و برای iOS عمدتا از swift استفاده میشود. (گزینه های دیگری نیز موجود است)برای بک اند و پایگاه داده نیز مانند طراحی سایت و البته دانش کار با Web API نیاز است.در بخش دوم این مقاله به تخصص های بازی سازی و توسعه نرم افزار های کامپیوتر های شخصی خواهیم پرداخت.با تشکر از وقت شما