پرونده دانشجویی: قسمت سوم - برنامه نویسی را از کجا شروع کنیم؟

تئوری همه چیز!

خیلی ها این سوال را دارند که برنامه نویسی را از کجا شروع کنیم؟

برای اینکه بخواهم خطی داده باشم، لازم است که بگویم در این قسمت چه چیز‌هایی را خواهم گفت:

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

کاربرد‌های برنامه‌نویسی در دنیای واقعی

برنامه‌های کاربردی

برنامه‌های کاربردی رو همه‌ی شما می‌شناسید. همین اپلیکیشن‌هایی که هر روز استفاده می‌کنید، شبکه‌های اجتماعی، اپلیکیشن‌های مختلف...

راه‌کار‌های نرم‌افزاری برای تجارت

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

برنامه نویسی سخت‌افزار و الکترونیک

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

علوم داده و هوش مصنوعی

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

سیستم‌های عامل و شبکه

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

بازی سازی

حتی اگر امنیت روزی تمام شود، تفریح و خوش‌گذرانی مردم را بعید می‌دانم!!! هیچ گاه تا به امروز صنعت سرگرمی وابسته و مدیون برنامه‌نویس‌ها نبوده است. Need for Speed، FIFA، کانتر و ... که مثال‌های بزرگ هستند. بازی‌های ساده اما پر طرفدار مثل فروت‌نینجا یا 2048. بازی‌سازی آینده دارد.

محسبات ریاضی، مدل سازی و شبیه‌سازی

اگر سرتان برای اعداد درد می‌کند و یا به دنبال کشف الگو‌های آشکار پنهان شده در جهان هستی هستید، این عرصه شما را می‌طلبد.

تقسیم بندی برنامه‌نویسی

برنامه‌نویس‌ها معمولا خودشان خودشان را به دو سه چهار پنج n گروه تقسیم می‌کنند.

Front-end developers

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

Back-end developers

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

زبان‌های برنامه‌نویسی

خوب. لازم نیست انیشتین باشید تا استدلال کنید که هیچ زبانی «بهترین زبان برنامه‌نویسی» نیست. بلکه هر زبانی کاربردی دارد. برای مثال برای ریاضی می‌توان از Matlab استفاده کرد (بنویسید متلب، نه مطلب). یا مثلا برای برنامه‌نویسی داده‌ها زبان R توصیه می‌شود. اگر بخواهید برنامه آی‌او‌اس بنویسید احتمالا از سوییفت استفاده خواهید کرد یا یک وب‌سایت را با استفاده از C# تولید می‌کنید. در این میان چیز‌های دیگری غیر از زبان برنامه‌نویسی هم وجود دارند که به شما برای تولید نرم‌افزار کمک می‌کنند. این‌ها معمولا کتاب‌خانه‌ها یا فریم‌ورک‌ها هستند که کم کم به معرفی آن‌ها خواهیم پرداخت.

بدانید و آگاه باشید که روند برنامه نویس شدن پیچیده نیست. ابتدا کمی از مبانی و اصول سر در می‌آورید (در حد میک جزوه چهل صفحه‌ای) سپس شروع می‌کنید به یادگرفتن یک زبان برنامه نویسی که احتمالا زبان تخصصی شما در آینده هم خواهد بود و نهایتا به یادگیری فریم‌ورک‌ها خواهید پرداخت. فریم ورک‌ها و کتابخانه ها کد های آماده‌ای هستند که دیگران آن‌ها را نوشته اند و شما از آن‌ها استفاده می‌کنید تا سریع‌تر پروژه نرم‌افزاری خود را به اتمام برسانید و اصطلاحا «چرخ را دوباره اختراع نکنید».

دوباره مرور کنیم: ۱- آشنایی با مبانی ۲- آموزش دیدن و تمرین و حل مسئله در یک زبان دلخواه ۳- یادگرفتن یک فریم‌ورک ۴- همیشه به روز نگه داشتن دانش