دانشجوی کارشناسی نرم افزار - برنامه نویس php - توسعه دهنده وب - عضو تیم مدیریت سمی لرن - آهنگساز و پیانیست
برنامه نویسی را از کجا آغاز کنیم؟
در این مقاله قصد دارم تا به این پرسش مهم و کلیدی، یعنی برنامه نویسی را از کجا آغاز کنیم؟ پاسخ دهم.
با توجه به افزایش روز افزون تکنولوژی های مبتنی بر کامپیوترهای شخصی، گوشی های هوشمند و اینترنت، میل مردم به خصوص جوانان علاقه مند به دنیای کامپیوتر به یادگیری برنامه نویسی افزایش چشمگیری داشته. البته نباید این موضوع را نیز نادیده گرفت که برنامه نویسی پایه در آینده ای نه چندان دور مانند الفبا برای مشاغل مختلف و حرفه ها می باشد.
اما سوالی که ذهن خیلی از علاقه مندان را درگیر کرده این است که اصلا برنامه نویسی را از کجا باید شروع کرد؟
در ابتدا باید این موضوع را در نظر داشت که شاید لفظ برنامه نویسی برای خیلی ها به اشتباه معنی شده باشد. برنامه نویسی علم استفاده از ابزار های تخصصی برای توسعه نرم افزار می باشد. یا به زبان ساده تر در واقع برنامه نویسی مانند یادگیری استفاده از یک ابزار مثل آچار برای یک تعمیرکار است. و این بدان معناست که دانستن برنامه نویسی به تنهایی نمیتواند کاربردی باشد و موجب درآمد زایی شود.
بسیاری از ما با این تصور رشد کرده ایم که برنامه نویسی میتواند حلال تمامی مشکلات ما باشد اما اینطور نیست بلکه این خودمان هستیم که ایده ها و برنامه های ذهنی خود را توسط ابزاری مانند برنامه نویسی پیاده میکنیم.
بگذریم. بپردازیم به سوال اصلی. بگذارید این سوال را به یک مثال توضیح دهم. یک دانشجوی پزشکی را در نظر بگیرید. دانشجویان پزشکی مدت زیادی را صرف تبدیل شدن به یک پزشک عمومی میکنند و بعد از آن اقدام به یادگیری یک تخصص میکنند. پس در واقع پزشکی عمومی یک نیاز برای تمام متخصصان است.
دنیای کامپیوتر نیز اینگونه است. ما شغلی تحت عنوان برنامه نویس نداریم. بلکه باید تخصص خاصی مد نظرتان باشد. برای مثال، برنامه نویس وب، برنامه نویس اندروید، برنامه نویس بازی های ویدیویی. اما با این حال برنامه نویسی مقدماتی و مبانی، مانند همان پزشکی عمومی می باشد. پس شما برای شروع و راه یافتن به هریک از این تخصص ها ابتدا باید مبانی برنامه نویسی را بیاموزید.
آموزش های پایه مورد نیاز برای شروع
در زیر مواردی را ذکر کرده ام که برای یادگیری پایه های اصلی برنامه نویسی به آن نیاز دارید:
- یادگیری الگوریتم نویسی پایه
- یادگیری مبانی برنامه نویسی (این مباحث بستگی به زبان خاصی ندارند و 90 درصد آن در همه زبان ها شکلی یکسان دارند)
- شی گرایی یا برنامه نویسی OOP (در دانشگاه در درس برنامه سازی پیشرفته تدریس میشود)
- انتخاب یک تخصص و یادگیری مباحث مورد نیاز برای آن
در زیر تعریف کوتاهی از هر یک از موارد بالا را آورده ام.
الگوریتم نویسی پایه. الگوریتم در واقع نوشتن دستورالعمل و بخش های مورد نیاز برای پیاده سازی برنامه به زبان ساده است. برای مثال:
1- شروع
2- عدد a را بگیر
3- عدد b را بگیر
4- نتیجه a+b را چاپ کن
5- پایان
این یک الگوریتم خیلی خیلی ساده است. الگوریتم باعث میشود در طول توسعه برنامه خود سردرگم نشوید و جزئیات جا نماند.
مبانی برنامه نویسی. در دنیا زبان های برنامه نویسی زیادی وجود دارد که هرکدام کاربرد و ویژگی های خاص خود را دارند اما با این حال مفاهیمی تحت عنوان مبانی برنامه نویسی وجود دارد که بحث های پایه ای و یکسان در بیشتر زبان های برنامه نویسی دلالت دارد. مفاهیمی مانند حلقه ها، نوع داده ها، آرایه ها و... . پس اگر قصد شرکت در دوره ای برای مبانی برنامه نویسی دارید خیلی فرق نمیکند که با چه زبانی این مفاهیم تدریس شود.
شی گرایی یا برنامه نویسی OOP. شی گرایی از مفاهیم پیشرفته تری در برنامه نویسی می باشد و یکی از مهم ترین و کلیدی ترین مفاهیم ممکن است که تعریف آن در این مقاله نمیگنجد. تنها چیزی که نیاز دارید بدانید در ابتدا این است که شی گرایی را به هیچ وجه نمیتوان نادیده گرفت و ضعف در آن به معنای یک نقطه ضعف خیلی بزرگ است. این مفهوم نیز دارای تعاریف یکسان است اما در پیاده سازی آن در زبان های مختلف کمی تفاوت وجود دارد که با چند جستجوی ساده در گوگل برطرف میشود.
انتخاب تخصص. پس از آنکه مبانی را به صورت کلی آموختید میتوانید یک تخصص را انتخاب نمایید و با توجه به تخصصتان زبان های مورد نظر و آموزش های تخصصی را میگذرانید. برای مثال برای برنامه نویسی اندروید یکی از زبان های مورد نیاز میتواند زبان جاوا باشد و شما باید با XML نیز آشنایی داشته باشید و یا برای برنامه نویسی وبسایت شما باید به مفاهیم برنامه نویسی رابط کاربری و سپس برنامه نویسی سمت سرور و پایگاه داده مسلط باشید.
امیدوارم این مقاله توانسته باشد کمی مسیر شما را برای آغاز برنامه نویسی روشن کند. بنده سعی میکنم این مقاله را در آینده ادامه داده و اطلاعات کامل تری را ارائه کنم.
با تشکر از وقت شما
مطلبی دیگر از این انتشارات
زبان های ذخیره داده SQL و NoSQL و تفاوتشون
مطلبی دیگر از این انتشارات
مفهوم JDK و SDK و NDK و JVM و DVM و ART وJRE در اندروید
مطلبی دیگر از این انتشارات
معنی برخی از پرکاربرد ترین اصطلاحات دنیای کامپیوتر (بخش دوم)