چگونه یک برنامه نویس شویم؟

چگونه یک برنامه نویس شویم؟


اگر ایده برای ساخت برنامه ویندوز و یا اپلیکیشن موبایل دارید ولی نمی‌دانید از کجا شروع کنید این مقاله را بخوانید.چرا به ساخت برنامه نیاز داریم؟اپلیکیشن‌های موبایلی که امروزه می‌شناسیم در ژوئن سال ۲۰۰۸ وارد صحنه شدند. زمانی که اپل برای اولین بار app store خود را معرفی کرد تنها چندماه بعد گوگل نسخه فروشگاهی خود را منتشر کرد ( Android Market که اکنون بعنوان google play شناخته می‌شود). از آن زمان، تقریباً 4 میلیون اپلیکیشن موبایل در هر دو سیستم عامل در دسترس قرار گرفته است که ده ها میلیارد دانلود در سراسر جهان را نشان می دهد.بهترین راه برای یادگیری کدنویسی چیست؟چگونه یک برنامه نویس شوم؟چگونه یک برنامه بسازم؟اینها سوالات متداولی است که هر روز توسط مبتدیانی که مشتاق یادگیری کدنویسی هستند، پرسیده می‌شود. بدون شک شما هم قبلاً در این راستا چیزی را در گوگل سرچ کرده اید و مقالات و یا پاسخ های کافی را تا جایی خوانده اید.۱- یک زبان برنامه نویسی انتخاب کنید.۲- آن زبان را یاد بگیرید.۳- موارد بیشتری از آن زبان را یادبگیرید و همیشه به یادگیری ادامه دهید.بگذارید یک مرحله ۰ هم به آن اضافه کنم: قبول کنید که همه افراد متفاوت یاد می‌گیرند! بیشمار پاسخ به مراحل ۱ و ۲ در اینترنت وجود دارد اما یک پاسخ خوب به مرحله ۱ انتخاب زبان Python یا Ruby را به عنوان زبان اول خود انتخاب کنید. تقریبا هربار بپرسید “چگونه برنامه نویس شوم”، توسعه دهندگان به شما می گویند چیزهایی را بسازید. زیرا ساختن چیزها باعث می‌شود به عنوان یک برنامه نویس پیشرفت کنید و این بهترین روش برای یادگیری است.اما چگونه برنامه خود را بسازید؟شما همیشه می‌توانید آموزش‌های موجود در مورد نحوه کدنویسی را در توییتر، پینترست، اینستاگرام و … را با هر زبان و فناوری که دوست دارید دنبال کنید، اما به خاطر داشته باشید که نویسندگان این آموزش‌ها بیشتر این کارها را برای شما انجام داده اند و تمام کاری که شما می‌کنید درک کد و منطق آنها است.در این مقاله سعی می شود طرح کلی به شما ارائه شود که بتوانید از ابتدا شروع به ساخت برنامه خود کنید. پیش نیازها:اکثر برنامه ها نیاز به یک پایگاه داده دارند، بنابراین اگر قصد دارید برنامه خود را خودتان بسازید (back-end و front-end)، احتمالاً باید یک زبان جستجوی پایگاه داده (معمولاً SQL) را بدانید. مگر اینکه چیزی را بسازید که نیازی به تعامل با پایگاه داده نداشته باشد.علاوه بر این، اگر می خواهید یک برنامه وب ایجاد کنید ، باید برخی از DevOps اساسی را بدانید تا بتوانید محیط توسعه/سرور خود را تنظیم کنید و بتوانید برنامه خود را راه اندازی کنید. (DevOps ترکیبی از فلسفه، شیوه ها و ابزارهای فرهنگی است که توانایی سازمان را در ارائه برنامه ها و خدمات با سرعت بالا افزایش می دهد. این سرعت، سازمان ها را قادر می سازد تا خدمات بهتری به مشتریان خود ارائه دهند و رقابت موثرتری در بازار داشته باشند)اگر فقط قصد دارید یک front-end باشید، می توانید مهارت های HTML ، CSS و JavaScript خود را در Codepen یا JSfiddle تقویت کنید. اگر فقط جاوا اسکریپت بلد هستید و نمی خواهید زبان دیگری یاد بگیرید، می توانید Node.js را امتحان کنید، زیرا یک پلتفرم جاوا اسکریپت برای توسعه پشتیبان است (همچنین می توانید از MongoDB به عنوان پایگاه داده خود استفاده کنید زیرا این برنامه بر پایه جاوا اسکریپت می‌باشد).در غیر این صورت، اگر قصد ایجاد یک برنامه وب را بصورت کامل دارید، باید یکی از زبانهای زیر را هم بدانید:Ruby – Python – PHP – Java – Go – C#اگر به دنبال ساخت بازی هستید، می توانید Lua را یاد بگیرید، اگرچه #C به لطف موتور بازی Unity 3D و جامعه گسترده آن نیز انتخاب بسیار خوبی است. در مورد توسعه برنامه های تلفن همراه بومی، باید Swift / Objective-C را برای توسعه iOS و Java را برای توسعه Android بدانید.اول و در درجه نخست چیزهایی را بسازید که به آن علاقه دارید. علاقه بهترین راه برای ایجاد انگیزه در خود است. بنابراین از خود بپرسید که به چه کاری اهمیت می دهید یا دوست دارید چه کاری انجام دهید. مثلا:از استفاده از چه برنامه هایی بیشتر لذت می برید؟بدون چه برنامه هایی نمی توانید زندگی کنید؟آیا دوست دارید بازی کنید؟آیا از طراحی لذت می برید؟علایق خود را شناسایی کنید تا در حال کار روی چیزی باشید که با آن سرگرم خواهید شد. به این ترتیب، احتمال اینکه از ادامه کار زده شوید و کار را نیمه رها کنید، کمتر است.پس از شناسایی علایق خود برای یک برنامه ساده، ایده ای ارائه دهید که کاری شسته رفته انجام دهد. مهم نیست که برنامه از قبل وجود داشته باشد یا خیر(در واقع اگر پروژه های مشابه از قبل وجود داشته باشند ممکن است به شما کمک کند). در اینجا چند ایده برای کمک به شما در گرفتن الهام می‌آوریم:اگر آشپزی را دوست دارید،یک برنامه ای برای مردم بسازید تا دستور العمل های پخت غذا را به نمایش بگذارد.اگر همیشه می خواستید بدانید که توییتر چگونه کار می کند، سعی کنید یک برنامه ساده شبیه توییتر بسازید.اگر دوست دارید ورق بازی کنید، سعی کنید یک بازی ساده بسازید.اگر رژیم دارید، برنامه ای را بسازید که کالری دریافتی شما را ثبت کند.بعد از اینکه مسیر خود را مشخص کردید، کاربران هدف برنامه خود را مشخص کنید. به آنچه برنامه شما می تواند انجام دهد فکر کنید و آنها را لیست کنید. در پایان بهتر است نگاهی به لیست بیندازید و از خود بپرسید آیا این برنامه واقعاً به ورود به فیس بوک نیاز دارد؟ آیا واقعاً برای کار نیاز به بارگذاری داده در برخی از ابرها است؟ داشتن یک پروژه رویایی با مشخصات عالی بسیار خوب است، اما در حال حاضر هدف این نیست که چیزی بسازید که با بسیاری از ویژگی های جالب، کامل باشد. به خاطر داشته باشید که هیچ برنامه ای هرگز کامل نیست و همه کارها ساده شروع می شود.اگر ساخت اولین پروژه شما خیلی سخت باشد ناامید و دلسرد خواهید شد. شما یک مبتدی هستید. نکته در حال حاضر سرگرمی است. سرگرمی کارآمدترین روش برای یادگیری است. بنابراین به لیستی از عملکردهایی که ایجاد کرده اید نگاهی بیندازید و اگر خیلی طولانی است، شروع به خط زدن بر روی ویژگی هایی کنید که برنامه شما بدون آن هم کار می‌کند.برای نمونه لیست اصلی عملکرد اصلی برای برنامه شبیه Reddit:کاربران می‌توانند یک حساب کاربری ایجاد کنند.کاربران می‌توانند رمزهای عبور گمشده خود را بازیابی کنند.کاربران می‌توانند رمزهای عبور خود را تغییر دهند.کاربران می‌توانند لینک‌های جدید ارسال کنند.کاربران می‌توانند در مورد لینک‌ها نظر دهند.کاربران می‌توانند به لینک‌ها رأی دهند.کاربران پروفایلی دارند که تاریخچه / فعالیت آنها را نشان می دهد.ویژگی های ذکر شده در بالا اصلی ترین ویژگی هایی هستند که باید در ابتدا روی آنها تمرکز کنید. سایر ویژگی ها مانند:کاربران می‌توانند پست ها را در شبکه های اجتماعی به اشتراک بگذارندکاربران می‌توانند نظرات را حذف یا ویرایش کنند.کاربران می‌توانند حساب خود را حذف کنند.این ویژگی ها، ویژگی های ثانویه هستند که می‌توانند بر روی نسخه 1.x ذخیره شوند. فقط پس از راه اندازی نسخه 1.0 می‌توانید روی آنها تمرکز کنید.هیچ چیز سریعتر از قلم و کاغذ نیست. در حال حاضر باید ایده ذهنی خود را ترسیم کنید. طراحی رابط کاربری (UI) محل قرار گیری دکمه ها، باکس ها، تصاویر و … است. یادداشت برداری کنید و نحوه کارکرد برنامه را بررسی کنید. هنوز در مرحله طوفان مغزی هستید بنابراین چیزهایی را تغییر دهید که بتوانید از برنامه خود راضی باشید. به یاد داشته باشید همه چیز را ساده نگه دارید. اگر لیست خود را در مرحله ۲ کوتاه کرده اید فقط به ترسیم طرح های ذکر شده اکتفا کنید. اگر نمی‌توانید به خودتان کمک کنید ۲ نسخه از برنامه خود را ترسیم کنید. یک نسخه اصلی و یک نسخه نهایی در رویاهایتان. در مجموع بدانید که این نگاه نهایی نیست بلکه یک قدم است که به شما کمک می‌کند درک محکم‌تری از برنامه خود داشته باشید.خیلی خوب. شما ایده خوبی در مورد شکل ظاهری برنامه خود، کارهایی که هر عنصر باید انجام دهد و نحوه تعامل کاربران با برنامه خود ایجاد کرده اید. اکنون وقت آن است که جریان رابط کاربری برنامه خود را درک کنید. به این معنی که چگونه یک کاربر باید از ابتدا تا انتها از برنامه شما استفاده کند. هر قدمی که باید بردارند و سناریویی که ممکن است با آن روبرو شوند را ترسیم کنید. سعی کنید هر ایتم مورد استفاده را در نظر بگیرید.تمام اقداماتی که کاربر می تواند انجام دهد را در نمودار جریان بگنجانید. به عنوان مثال،اگر برنامه شما نیاز به ورود کاربران دارد، چگونه حساب کاربری ایجاد کنند؟اگر کاربران رمز ورود خود را فراموش کنند، چه می شود؟اگر آنها گذرواژه اشتباهی را وارد کردند چه؟به طور کلی به کاربر کمک کنید در هر مرحله چه کاری انجام دهد. این کار با خودکار و کاغذ زودتر انجام می شود. باز هم می‌گوییم همانطور که برنامه شما باید کاملاً ساده باشد، نمودار شما هم نباید خیلی گسترده باشد.خیلی خوب! بعد از اینکه هر سناریوی احتمالی را برنامه ریزی کردید، به آن نگاهی بیندازید تا مشخص کنید چه نوع داده ای را باید نگهداری کنید. به عنوان مثال، اگر برنامه شما نیاز به ایجاد حساب کاربری کاربران دارد، باید هنگام ایجاد حساب، مواردی مانند نام کاربری، شناسه کاربر، ایمیل کاربر، گذرواژه، تأیید ایمیل کاربر را در نظر بگیرید. مانند هر بار که کاربر وارد برنامه شما می‌شود.اگر در حال ساختن یک برنامه شبیه توییتر هستید، باید شناسه توییت، محتوای توییت، زمان انتشار / بازنشر توییت، تعداد بازنشر و همچنین تعداد ستاره های آن را بدانید. همچنین لازم است سابقه بازنشرها و ستاره های کاربر را ثبت کنید. برای ترسیم رابطه داده ها می توانید نمودار ERM (مدل رابطه-نهاد) را ترسیم کنید.اکنون وقت آن است که front-end خود را برنامه ریزی کنید. در حال حاضر شما می‌دانید که به چه چیزهایی نیاز دارید. اکنون ایده بهتری از شکل ظاهری برنامه خود دارید. از آنجا که انسانها بیشتر موجوداتی بصری هستند، بهتر است از هر نمایی که کدگذاری می‌کنید تصویری داشته باشید تا درک بهتری از آنچه که انجام می‌دهید داشته باشید. خوشبختانه بسیاری از ابزارهای Wireframing و Mockup بصورت آنلاین وجود دارد که به شما کمک می کند تا جریان UX / UI خود را برنامه ریزی کنید (به عنوان مثال Gliffy ، Mockflow ، Framebox ، Wireframe.cc ، Invisionapp)این مرحله اختیاری است، اما اگر قصد دارید در زمینه front-end تخصص پیدا کنید یا به آنچه که برنامه شما به نظر می رسد اهمیت زیادی می دهید (و تا جایی که یک برنامه زیباتر انگیزه شما برای کدگذاری است) پیش بروید و رابط کاربری برنامه خود را طراحی کنید.اگر عاشق طراحی هستید، احتمالاً قبل از شروع کدزنی، برنامه خود را طراحی خواهید کرد (شاید قبلاً آن را در مرحله 2 طراحی کرده باشید.) اگر طراحی نمی کنید اما همچنان به شکل ظاهری برنامه خود اهمیت می دهید، استفاده از عناصر کیت های UI را در نظر بگیرید. (فتوشاپ لازم است)مرحله برنامه ریزی برنامه شما تمام شده است. اما چگونه قرار است همه این موارد را کدگذاری کنید؟مهارت مهمی که شما باید به عنوان یک برنامه نویس یاد بگیرید این است که ارزیابی کنید چه زمانی باید از چیزی که یک توسعه دهنده دیگر نوشته است استفاده کنید و چه زمانی باید این عملکرد را خودتان بسازید.از آنجا که همه در حال ساختن یک برنامه منحصر به فرد هستند، همه موارد استفاده یکسان نیستند. بنابراین، شما باید در مورد زمان استفاده از راه حل‌های(کدهای) موجود و زمان ساختن راه حل‌های(کدهای) خود قضاوت کنید و به مرور در انجام این کار با تجربه تر خواهید شد.اگر احساس می کنید مانند یک قایق بدون جهت در یک اقیانوس وسیع گم شده اید، نفس عمیق بکشید و وحشت نکنید. شما می توانید این کار را انجام دهید. بهترین راه برای شروع مطالعه این است که سایر توسعه دهندگان قبل از شما چه کار کرده اند. منطق تصمیمات آنها را یاد بگیرید. GitHub بهترین دوست شما است.اکنون آماده ساخت برنامه هستید! در اینجا چند نکته وجود دارد که باید هنگام ساخت برنامه خود به خاطر داشته باشید.برای ساخت اپ خود باید روی تابع به تابع برنامه تمرکز کنید. برای پیگیری پیشرفت خود، می‌توانید لیستی از توابع را بنویسید و از آن به عنوان چک لیست استفاده کنید. تست بگیرید. بهتر است قبل از شروع کدگذاری، عملکرد برنامه خود را آزمایش کنید. اشکالات اجتناب ناپذیر است، اما آزمایش تا حد زیادی از اشتباهات شما می‌کاهد. مسلماً، نوشتن واحد های تست‌ زمان بر است و ممکن است گاهی اوقات سوال کنید که آیا ارزش آن را دارد. با این حال، اگر می‌خواهید در آینده پروژه های بزرگتری بسازید همچنان به اضافه کردن ویژگی های جدید ادامه دهید.بنابراین، ایده خوبی است که از کوچک شروع کنید و عادت به انجام آزمایش مبتنی بر توسعه (TDD) را بدست آورید، به ویژه اینکه تازه کار هستید و چیزی ساده را می سازید.ابزارهای آزمایشی بسیاری برای انتخاب در دسترس شما است، مانند Jasmine یا Karma برای جاوا اسکریپت ، Rspec برای Ruby و یا PyTest برای پایتون، PHPUnit برای PHP. علاوه بر این، اگر در حال ساخت برنامه iOS یا Android هستید، بهتر است Crashlytics را بررسی کنید. از Git استفاده کنید.سیستم Git یک سیستم کنترل نسخه و یک مخزن تمام عیار با سابقه خوب و با قابلیت ردیابی کامل نسخه است. بهتر است نحوه استفاده از Git را هنگام ساخت اولین برنامه خود شروع کنید. با این روش می توانید اشتباهات خود را به راحتی لغو کنید، داده های از دست رفته را بازیابی کنید و… . علاوه بر این، اگر قصد دارید در آینده با تیمی از توسعه دهندگان کار کنید، به هر حال باید از git استفاده کنید. GitHub محبوب ترین سرویس میزبانی مخزن Git برای پروژه های منبع باز است، در حالی که Bitbucket برای مخازن خصوصی است.راهنمایی از گوگل !از StackOverflow بپرسیدمربی پیدا کنید.برخی از افراد خواهند گفت که StackOverflow برای مبتدیان مناسب نیست زیرا مبتدیان نمی دانند چگونه سوالات خود را بیان کنند. یکی از گزینه های عالی برای تسهیل پیشرفت و روند یادگیری شما، کمک گرفتن از یک برنامه نویس با تجربه است. برنامه نویسان مرتباً مرتکب اشتباه می شوند، بنابراین وقتی حتی نمی توانید در آزمایشی که نوشته اید موفق شوید یا اگر دائماً خود را زیر پا می گذارید، ناامید نشوید. مطمئناً حتی بالغ ترین برنامه های موجود نیز دارای اشکال هستند، بنابراین تصور نکنید که می توانید عالی‌ترین برنامه بدون اشکال را بسازید (البته این بدان معنا نیست که باید استانداردهای پایینی را برای خود تعیین کنید – همیشه باید در ساخت برنامه های با کیفیت تلاش کنید)باز هم، به یاد داشته باشید که شما یک مبتدی هستید، بنابراین بسیاری از کارها در ابتدا ناگزیر دشوار خواهند بود. شما وقت زیادی را صرف کاری خواهید کرد که فکر می‌کنید باید ساده باشد و به نظر، یک مبارزه سخت در سربالایی است. اما با کسب تجربه بیشتر، کارها راحت‌تر می‌شوند. وقتی سرانجام موفق به ساخت اولین برنامه خود شدید، منتظر چنین حس موفقیتی باشید و حتی اگر صلاح دیدید می‌توانید برنامه خود را بفروشید.منبع: کدمنتور

منبع

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *