خیلی ها این سوال را دارند که برنامه نویسی را از کجا شروع کنیم؟
برای اینکه بخواهم خطی داده باشم، لازم است که بگویم در این قسمت چه چیزهایی را خواهم گفت:
برنامههای کاربردی رو همهی شما میشناسید. همین اپلیکیشنهایی که هر روز استفاده میکنید، شبکههای اجتماعی، اپلیکیشنهای مختلف...
نرمافزارهایی که برای کمک کردن به کسب و کارها نوشته میشن. که خب خیلی جاها با کاربر هم درگیر میشه و نمیشه مرز دقیقی بین این تیپ از نرمافزارها و برنامههای کاربردی قائل شد چون این خطها فقط خطهای فرضی هستند که هیچ وقت قبلا وجود نداشتند و در آینده هم وجود نخواهند داشت. فقط برای اینکه مطلب جا بیافتد داریم از این تقسیم بندی استفاده میکنیم. نرمافزارهای تجاری بیشتر به محاسبات مالی میپردازند و به آدمها کمک میکنند که دور ریز کمتر و بهرهوری بالاتر داشته باشند. گزارشهای مختلف عملکرد و رضایت مشتریان و ... رو میشه توی این تیپ نرمافزارها داشت. رشتههای خیلی جذابی مثل هوش تجاری آیندهی این رشته هستند و درامد فوقالعاده خوبی دارند.
خانههای هوشمند، اینترنت اشیا، اسباب بازیها، هواپیماهای جنگنده و موشک، رقص نور، آبنماهای خیلی لوکس، خودروهای با استاندارد بالاتر از خودروهای زیر استاندارد خودمان، و هرچیزی که فکرش را بکنید در این دستهبندی قرار میگیرد . بخواهم از کاربردها بگویم تا فردا هم کافی نیست. گوگل کنید. به چیزهای جالبی میرسید. مثلا ردیابها، کشاورزی مدرن و گلخانه، همین سیستم کارت زنی و رزوغذا، و خیلی چیزهای دیگر.
مثلا فرض کنید قرار است وسط خلیج فارس به دنبال لکههای نفتی یا پسماند قایقهای ماهیگیری بگردید! یا قرار است آیندهی انتخابات ریاست جمهوری را پیشبینی کنید! میخواهید برنامهای بنویسید که صدای کسی را تقلید کند! قصد دارید یک دستیار هوشمند بسازید! میخواهید در میلیاردها رکورد تراکنش بانکی، افرادی که وامهای عجیب و غریب گرفتند را شناسایی کنید! یا در بانک اطلاعات ژنتیک به دنبال ویژگی خاصی بگردید! همهی اینها در علوم داده و هوش مصنوعی بحث میشوند.
تا به حال فکر کردید که اینترنت چگونه اجرا میشود؟ ترافیک در شبکه چگونه منتقل میشود؟ از شرکتهایی که در ایران فناوریهای شبکه را توسعه میدهند خبر دارید؟ برایتان جذاب نیست که فلان سایت چرا با سرعت خیلی زیاد فیلمها را در ضعیفترین اینترنت پخش میکند؟ بگذریم. تا به حال به این فکر کردهاید که همین ویندوز را چه کسانی و با چه روشهایی ساختهاند؟
حتی اگر امنیت روزی تمام شود، تفریح و خوشگذرانی مردم را بعید میدانم!!! هیچ گاه تا به امروز صنعت سرگرمی وابسته و مدیون برنامهنویسها نبوده است. Need for Speed، FIFA، کانتر و ... که مثالهای بزرگ هستند. بازیهای ساده اما پر طرفدار مثل فروتنینجا یا 2048. بازیسازی آینده دارد.
اگر سرتان برای اعداد درد میکند و یا به دنبال کشف الگوهای آشکار پنهان شده در جهان هستی هستید، این عرصه شما را میطلبد.
برنامهنویسها معمولا خودشان خودشان را به دو سه چهار پنج n گروه تقسیم میکنند.
برنامهنویسهای فرانتاند، خوشسلیقه ترین برنامهنویسها را شامل میشوند. پوستهی برنامهها و تجربهی کاربری معمولا توسط این برنامهنویسها ساخته میشود. یعنی چه؟ یعنی که اگر شما دکمهای را میفشارید، یک برنامهنویس فرانتاند آن دکمه و واکنشآن نسبت به کلیک شما را طراحی و برنامهنویسی کرده است.
پشت صحنهی این تئاتر، افرادی هستند که دائما در حال تلاش و کوشش و آماده کردن وسائل و اوضاع هستند. برنامهنویسهای بکاند مسولیت ذخیرهی دادههای افراد در پایگاههای داده و رساندن به موقع آنها به فرانتاند را بر عهده دارند. اینکه شما میتوانید اطلاعات خود در فلان پیام رسان را همهجای دنیا در دسترس داشته باشید، مدیون برنامهنویسهای بکاند آن پیامرسان است.
خوب. لازم نیست انیشتین باشید تا استدلال کنید که هیچ زبانی «بهترین زبان برنامهنویسی» نیست. بلکه هر زبانی کاربردی دارد. برای مثال برای ریاضی میتوان از Matlab استفاده کرد (بنویسید متلب، نه مطلب). یا مثلا برای برنامهنویسی دادهها زبان R توصیه میشود. اگر بخواهید برنامه آیاواس بنویسید احتمالا از سوییفت استفاده خواهید کرد یا یک وبسایت را با استفاده از C# تولید میکنید. در این میان چیزهای دیگری غیر از زبان برنامهنویسی هم وجود دارند که به شما برای تولید نرمافزار کمک میکنند. اینها معمولا کتابخانهها یا فریمورکها هستند که کم کم به معرفی آنها خواهیم پرداخت.
بدانید و آگاه باشید که روند برنامه نویس شدن پیچیده نیست. ابتدا کمی از مبانی و اصول سر در میآورید (در حد میک جزوه چهل صفحهای) سپس شروع میکنید به یادگرفتن یک زبان برنامه نویسی که احتمالا زبان تخصصی شما در آینده هم خواهد بود و نهایتا به یادگیری فریمورکها خواهید پرداخت. فریم ورکها و کتابخانه ها کد های آمادهای هستند که دیگران آنها را نوشته اند و شما از آنها استفاده میکنید تا سریعتر پروژه نرمافزاری خود را به اتمام برسانید و اصطلاحا «چرخ را دوباره اختراع نکنید».
دوباره مرور کنیم: ۱- آشنایی با مبانی ۲- آموزش دیدن و تمرین و حل مسئله در یک زبان دلخواه ۳- یادگرفتن یک فریمورک ۴- همیشه به روز نگه داشتن دانش