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

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

هدف این مقاله این است که یادگیری برنامه نویسی را برای هرکسی یک هدف دردسترس کند.

سوالاتی که اغلب پرسیده می شوند

به عنوان یک برنامه نویس،اغلب سوالات زیر از من پرسیده می شود:

به عنوان یک مبتدی کدام زبان برنامه نویسی را باید یاد بگیرم؟

کدام زبان برنامه نویسی بیشتر مورد نیاز بازار کار است؟

محبوب ترین زبان برنامه نویسی کدام است؟

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

اگر می خواهید با زبان های برتر سال 2019 آشنا شوید در بخش مقالات سایت دیجی دانش مقاله ای را برای این موضوع در اختیار شما قرار داده ایم با آن مقاله می توانید بررسی کنید که آیا یک زبان برنامه نویسی خاص امروزه نیز استفاده می شود یا نه اما اگر یک برنامه نویس تازه کار هستید من توصیه نمی کنم که تنها با یک مقاله زبان مورد نظر خود را انتخاب کنید.

چگونه یک زبان برنامه نویسی انتخاب کنیم؟

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

زمان طراحی یک برنامه تحصیلی یا یک مسیر یادگیری مباحث گسترده باید به شدت مورد توجه قرار بگیرند بنابراین یک زبان برنامه نویسی را به خاطر رتبه ی برتر آن انتخاب نکنید بلکه یک زبان برنامه نویسی را انتخاب کنید که یک مسیر یادگیری کامل و بدون هیچ پیش نیازی از آن را داشته باشید.

چند توصیه

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

قانون اول: بپذیرید که سناریوی زیر برای شما اتفاق می افتد:

موضوعی به شما معرفی می شود که هیچ آشنایی با آن ندارید.

این سناریو بار ها و بار ها برای شما اتفاق می افتد و تنها فاکتور مهمی که موفقیت شما را مشخص می کند، نحوه ی برخورد شما درهر بار است.

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

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

اگر آموزش (یا کتاب) که در حال استفاده از آن هستید به اندازه کافی موضوعات را توضیح نداده است، منابع دیگری را پیدا کنید که به درد شما بخورد. اینکه آموزش مورد استفاده شما مباحث را بطور کارا پوشش نداده است، دلیلی برای تسلیم شدن نمی باشد. شما می توانید هرچیزی که درحال یادگیری آن هستید را بطور رایگان در یوتیوب پیدا کنید.

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

بسیاری از موضوعات درهمان بار اول مفهوم نیستند بنابراین از افکار منفی خودداری کنید. هدف این است که هنگام یادگیری از درک خود آگاه باشید. همانطور که در مسیر یادگیری پیش می روید باید بازخوردی از خودتان داشته باشید. هر موضوعی را که پوشش می دهید از خودتان سوال های زیر را بپرسید:

آیا این موضوع برای من مفهوم است؟

ایا اصطلاحات جدیدی وجود دارد؟ اگر وجود دارد تعریف رسمی ارائه شده برای هرکدام از آن ها چیست؟

آیا برای من مهارت های جدیدی وجود دارد؟ آیا متوجه شده ام که هر مهارت جدیدی چگونه در اپلیکیشن استفاده می شود؟ آیا من می توانم مهارت خود را با حل مسائل تمرینی نشان دهم؟

آیا من مواردی را که فردا یا روز های دیگر یاد بگیرم را به خاطر خواهم آورد؟ اگر نه چگونه می توانم آن ها را در حافظه خود ثبت کنم؟

یک توصیه دیگر:هیچگاه قدرت حفظ کردن را دست کم نگیرید. حفظ کردن یک رویکردی است که کاملا در یادگیری استفاده نمی شود. بله درک یک مطلب هدف نهایی است اما درک مباحث زمان بر است. اگر شما واقعا درتلاش برای درک مباحث هستید آن ها را به مباحث کوچک تر بشکنید و قسمت های مهم آن را حفظ کنید. اگر درک نمی کنید که چگونه یک چیز کار می کند، هدف اولیه ی خود را حفظ کردن بگذارید. اگر برای حفظ کردن به کمک نیاز دارید از فلش کارت ها استفاده کنید.

1.اصول علوم کامپیوتر

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

2. منطق گزاره ای

نه شما نیاز ندارید که در ریاضیات قوی باشید. هارت ریاضیاتی می تواند مفید باشد اما برای شما مورد نیاز نیست. اگر شما به توانایی های خود ریاضیات اطمینان ندارید من به شما پیشنهاد می کنم که منطق گزاره ای را یاد بگیرید. اصولی که منطق گزاره ای را پوشش می دهد بلوک های برنامه نویسی را پوشش می دهند.

3. برنامه نویسی جاوا

بعد از اینکه شما اصول علوم کامپیوتر را یادگرفتید آماده هستید تا یک زبان برنامه نویسی را یادبگیرید. من خیلی تلاش کردم تا یک مسیر مناسب برای هرکسی و بدون درنظرگرفتن پیشنیاز ها طراحی کنم بنابراین من جاوا را برای این مسیر یادگیری انتخاب کردم زیرا جاوا زبانی است که من در آن تجربه ی بیشتری دارم.

جاوا یک زبان برنامه نویسی پرتقاضا است و در دسته ی زبان های برنامه نویسی شیئ گرا قرار دارد و برای ساخت اپلیکیشن های دسکتاپ،وب و موبایل مورد استفاده قرار می گیرد. اگر به دنبال یک آموزش ویدیویی هستید من فیلم های 19-1، 33-31 و 93 آموزش جاوا در یوتیوب توسط Derek Banas را توصیه می کنم.

اولین فیلم در آموزش یوتیوب شما را به دانلود یک برنامه کامپیوتری به نام Eclips راهنمایی می کند. Eclips یک محیط توسعه تجمعی (IDE) می باشد. شما می توانید یک IDE را مانند Word درنظر بگیرید که برای برنامه نویس ها ساخته شده است در واقع یک IDE یک اپلیکیشن کامپیوتری است که یک ویرایشگر متن برای برنامه نویسان و بسیاری ابزار های دیگر برای اجرای برنامه ها در اختیار شما قرار می دهد.

4. الگوریتم ها و ساختار داده ها

یک الگوریتم مجموعه ای از دستورالعمل ها (یا گام ها) برای انجام یک وظیفه خاص است که هرگام بطور واضح تعریف شده و برای اجرا مناسب است.

یک ساختار داده راهی برای مدیریت داده در حافظه است.

الگوریتم ها و ساختار داده ها دو موضوع بسیار چالش برانگیز در برنامه نویسی هستند. شما نیاز ندارید تا الگوریتم ها را در گام اول برنامه نویسی یاد بگیرید اما اگر درنظر دارید تا به عنوان یک مهندس کامپیوتر در یک شرکت معتبر کار کنید، از شما انتظار می رود تا درک خود از الگوریتم ها و ساختار داده ها را در مصاحبه ها نشان دهید.

5. توسعه اندروید

به نظر من توسعه اندروید یکی از جالب ترین قسمت های برنامه نویسی جاوا می باشد. اپلیکیشن های اندروید غالبا با جاوا برنامه نویسی می شوند بنابراین زمانی که شما جاوا را یاد گرفتید آماده هستید تا اندروید را نیز یاد بگیرید.

منابع مفید

Stack Overflow یک وبسایت است که در آن برنامه نویسان می توانند بطور رایگان از برنامه نویسان دیگر برای کد های خود کمک بگیرند. اگر شما در مساله ای گیر کرده اید و می خواهید سوال بپرسید اول آن را سرچ کنید، اگر پاسخ را پیدا نکردید در Stack Overflow یک اکانت بسازید و سوال خود را بپرسید.

سایت های بسیاری وجود دارند که می توانید از آن ها آموزش های برنامه نویسی پیدا کنید که برخی از موارد مورد علاقه ی من: Codecademy ، Udemy ، Udacity ، Team Treehouse و Khan Academy می باشد.