با سلام
من احمد عبداللهزاده هستم و قصد دارم در این مطلب در رابطه با گام هایی که هر برنامه نویس باید در ابتدای مسیر برنامه نویسی خودش محکم بردارد صحبت کنم.
ابتدا میتوانید در این مطلب در مورد دلایل اهمیت یادگیری برنامهنویسی مطالعه کنید و سپس به چگونگی یادگیری صحیح و اصولی برنامه نویسی بپردازیم.
امیدوارم براتون مفید باشه :-)
برنامه نویسی علمی نیست که آنرا یاد بگیرید، علمیست که باید آنرا درک کنید.
برای درک برنامه نویسی ابتدا باید شیوهی حل مسئله را بگونهای که برای کامپیوترها قابل فهم باشد یاد بگیریم.
کامپیوترها مانند مغز انسان توانایی درک و حل مسئله را ندارند و باید تک تک مراحل مورد نیاز برای حل یک مسئله را به آن بدهیم تا بتواند آنرا حل کند.
در نتیجه، برای درک برنامه نویسی ابتدا باید شیوهی حل مسئله را بیاموزیم، در واقع باید یاد بگیریم چگونه یک مسئله را به مسائل کوچکتر بشکنیم سپس هرکدام از مسائل کوچکتر را حل کرده و از تجمیع پاسخ های بدست آمده جواب نهایی را بدست آوریم که این فرایند طراحی الگوریتم نام دارد.
الگوریتم مجموعهای متناهی از دستورالعملها است، که به ترتیب خاصی اجرا میشوند و مسئلهای را حل میکنند. به عبارت دیگر یک الگوریتم، روشی گام به گام برای حل مسئله است.
برنامه نویسی چیزی نیست جز هنر حل مسئله یا طراحی الگوریتم.
در ادامه به توضیح آنها میپردازیم.
الگوریتمها دارای پیچیدگیهای مختلفی هستند و پیادهسازی کد مربوط به هرکدام ممکن است کوتاه و یا طولانی و شامل دستورات پیچیده باشد.
برای فهم بهتر یک الگوریتم برنامهنویسی و نحوه عملکرد آن میتوان از فلوچارت (FlowChart) استفاده کرد. فلوچارت نمایشی گرافیکی از فرایند یک برنامه است و از مجموعه شکلهای قراردادی تشکیل شده که به کمک آنها میتوان دستورات را به ترتیب ترسیم نموده و روند یک الگوریتم را سادهسازی کرد. کشیدن فلوچارت مربوط به قبل از شروع برنامهنویسی است و وابستگی به نوع زبان برنامهنویسی ندارد. فلوچارتها در تعیین روند اجرای دستورات و تعیین ورودی و خروجی برنامه نقش مهمی دارند.
در واقع فلوچارت به شما میآموزد چگونه یک مسئله را تحلیل و آنرا به اجزای کوچکتر شکسته و حل کنیم.
همچنین فلوچارت به شما منطق پشت برخی دستورات برنامه نویسی که در تمام زبان های برنامه نویسی مشترک هستند و در واقع بخشی از منطق برنامه نویسی را میسازند (مانند if، for, ...) را میآموزد ودرک دستورات برنامه نویسی را برای شما آسان میکند.
لازم نیست برای حل هر مسئله برنامه نویسی فلوچارت آنرا رسم کنید، رسم فلوچارت برای افزایش قدرت حل مسئله در شما در ابتدای دوران برنامه نویسی شماست و بعد از مدتی استفاده از آن را کاملا کنار خواهید گذاشت.
پس از یادگیری فلوچارتها نوبت به یادگیری یک زبان برنامه نویسی است تا با استفاده از آن مسائلی که در فلوچارت بصورت شماتیک حل کردهایم را کد نویسی کنیم.
اما کدام زبان برنامه نویسی را انتخاب کنیم؟
زبانهای C، CPP، C-sharp، Python، Rust و ... هر کدام میتوانند انتخاب مناسبی باشند، اما برای انتخاب اولین زبان برنامه نویسی زبانی مناسب است که فارق از تمرکز و درگیری با مباحث تخصصی و پیچیدهی برنامه نویسی (مانند شی گرایی، اشارگرها، برنامه نویسی موازی و ...) و یا بدون درگیری با انواع دادهها(integer، string و ...) بتوان با استفاده از آن صرفا روی حل مسئله تمرکز کرد تا توان حل مسئله در ما تقویت شود.
برای یادگیری یک زبان برنامه نویسی میتوانید از فیلم های آموزشی پولی یا رایگان موجود استفاده کنید یا برای تسلط بیشتر به مستندات آن زبان (برای مثال برای مستندات پایتون به اینجا مراجعه کنید) رجوع کنید.
زبانی مثل پایتون میتواند بهترین انتخاب باشد.
پایتون یک زبان برنامهنویسی شیءگرا، تفسیری، سطح بالا، و همه منظوره است. فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است.
ساختار زبانی و دیدگاه شیءگرا در پایتون به گونهای طراحی شدهاست که به برنامهنویس امکان نوشتن کد منطقی و واضح (بدون ابهام) را برای پروژههای کوچک و بزرگ میدهد.
کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شدهاند و در مقابل کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند.
تمام این ویژگی ها پایتون را به زبانی ساده برای یادگیری در عین حال کاربردی و پر استفاده تبدیل کرده است که در طیف وسیعی از گرایش ها و شاخههای رشته های مختلف (از رشته کامپیوتر گرفته تا دیگر رشتههای مهندسی و یا حتی شاخههای پزشکی) استفاده میشود.
پس از یادگیری اولین زبان برنامه نویسی خود، یادگیری یک زبان جدید میتواند بسیار آسان تر باشد و وقت کمتری نیز از شما بگیرد زیرا اکثر مباحث برنامه نویسی در زبانهای برنامه نویسی مختلف مشابه بوده و فقط تکرار شده اند.
برای انتخاب زبان برنامه نویسی بعدی خود به راهنمای انتخاب زبان برنامه نویسی مراجعه کنید.
count = 0 while count < 10: print("Hello world") count = count + 1
پس از یادگیری برنامه نویسی و افزایش قدرت طراحی الگوریتم در خودتان میتوانید سراغ یادگیری فریمورک های مختلف برنامه نویسی بروید تا بتوانید از قدرت یک فریمورک در توسعهی نرم افزار خود استفاده کنید.
متاسفانه اکثر افرادی که میگویند به برنامه نویسی علاقه ندارند یا در آن بی استعداد هستند از تمرین فراری اند و صرفا به دنبال یادگیری از طریق دیدن فیلم آموزشی یا شرکت در کلاس های آموزشی هستند و متاسفانه جسارت یا حوصلهی نشستن پشت کیبورد کامپیوتر و حل مسائل حتی ساده را هم ندارند.
تمرین مداوم، حل مسائل مختلف، خواندن کد دیگران، مطالعه ی مداوم تنها راه تضمینی برنامه نویس شدن هستند.
سعی کنید با حل مسائل برنامه نویسی و حتی حل یک مسئله به روش ها و با زبان های مختلف برنامه نویسی ذهن خود را به شیوهی حل مسائل به سبک کامپیوتر عادت دهید.
همانطور که با تماشای فوتبال فوتبالیست نمیشوید صرفا با تماشای فیلم آموزشی نیز برنامه نویس نخواهید شد.
بر خلاف فلوچارت، تمرین و حل مسائل و پروژه های برنامه نویسی باید در تمام دوران برنامه نویسی شما ادامه پیدا کند و تا آخر عمر برنامه نویسی خود باید آنرا ادامه دهید.
سایت های زیادی برای تمرین و برگذاری مسابقات برنامه نویسی وجود دارد، برای مثال میتوانید به leetcode مراجعه کنید.
همچنین تمرین و حل مسائل مختلف شما را با انواع Error های برنامه نویسی آشنا میکند و سرعت شما را در حل و عبور از آنها را بالا میبرد.
یک پیشنهاد این است که بعد از دیدن یک فیلم آموزشی یا خواندن کتاب خودتان مثال های زده شده در کتاب یا فیلم آموزشی را حل کنید.
یکی از موثر ترین راههای پیشرفت در برنامه نویسی خواندن کد دیگران و شرکت در پروژه های آنهاست.
سایتهای github و gitlab معروف ترین سایتها برای قرار دادن پروژه های اپن سورس است که میتوانید از آنها برای خواندن کد های دیگر برنامه نویسان و پروژه های شرکت های بزرگ حوزهی تکنولوژی و مشارکت در آنها، همچنین قرار دادن کدهای خودتان استفاده کنید.
برای استفاده از این دو سایت بهتر است ابتدا کار با گیت (git) را بیاموزید.
گیت (git) یک نرمافزار کنترل نسخه و از مدل نرمافزارهای آزاد و متنباز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برای دنبال کردن تغییر فایلهای کامپیوتری و دنبال کردن کارهای انجام شده روی آنها توسط افراد مختلف است. هدف اولیه این نرمافزار برای استفاده در پروژههای نرمافزاری بودهاست ولی میتوان از آن تنها برای دنبال کردن تغییر فایلها هم استفاده کرد.
به عنوان یک برنامه نویس حتما کار با git را یادبگیرید و همچنین در سایتهای github و gitlab فعال باشید.