مشاوره رایگان

            پیاده سازی پروژه های برنامه نویسی

پیاده سازی پروژه های برنامه نویسی

به این درد و دل یک برنامه نویس توجه کنید :

" اونا فکر میکنن که ما در یک چشم بهم زدن کار ها رو انجام میدیم ولی پشت این موفقیت و سرعت بالا ، نتیجه ی ساعت ها تلاش مستمر و برخورد با چالش های مختلفه . نتیجه ی ساعت ها جستجو در سایت های مختلف و کسب کلی اطلاعات غیر مفیده . اونا تنها چیزی که میبینن لحظه ی نهاییه . ما یه کاری کردیم که آسان به نظر بیاد ولی اینطور نیست "
{" "} این برنامه نویس در مورد اینکه برنامه نویسان چگونه پروژه هایی را می سازند که ما همه آنها را تحسین می کنیم ، چیزهای زیادی می گوید و به قسمت‌های کمتر جذاب فعالیت‌های ما اشاره می‌کند که مبتدیان همیشه به آن‌ها توجه نمی‌کنند که احتمالاً به دلیل عدم تجربه ی آنها میباشد .

این صحبت ها منو به یاد تجربه اخیرم در ساخت یک افزونه برای VsCode می اندازد . هدف این افزونه این بود که منو در آموزش های ویدیویی نابغه جلوه دهد و چالش های ضبط من را کاهش دهد. (اما خب من واقعا نابغه نیستم 😜).

این افزونه محتوای یک فایل را به ازای هر کاراکتر در هر زمان و هر کلیدی که فشار داده شود نمایش می دهد. این یک تجربه کدگذاری واقعی را شبیه سازی می کند در حالی که من فقط به ضبط صدا توجه می کنم. باحاله ! چطوری اونو ساختم؟ خب ببینیم چطور شد ! ممکنه نیازی به گفتن من نباشه اما شما نمی دانید چگونه یک پروژه جدید بسازید تا زمانی که واقعاً آن را ساخته باشید . قبل از شروع ، احساس نمی‌کردم که میدونم چه کار کنم و چه چیزی را جمع کنم. اما من از یک چیز مطمئن بودم . می دانستم چگونه آنچه را که نیاز دارم پیدا کنم. بوم ! تحقیقات آغاز شد .

پروژه را به واحدهای کوچکتر تقسیم کنید

میدونستم که پیدا کردن یک آموزش کامل در مورد آنچه می خواهم بسازم دشوار است . اما یافتن آموزش مربوط به هر واحد پروژه نسبتاً آسان بود. بنابراین ، من پروژه را به این بخش ها تقسیم کردم :

  • 1- نصب کردن افزونه ی Vscode
  • 2- دریافت محتوای یک فایل فعال
  • 3- تجزیه کردن محتوای فایل به به کاراکتر های کوچکتر
  • 4- گوش دادن و اعمال واکنش به هر بار فشرده شدن دکمه های کیبورد
  • نشان دادن یک به یک کاراکتر ها هر زمان که دکمه ای فشار داده میشد
{" "} اینها چیزهای اساسی بودند که انتظار داشتم افزونه بتواند از پس آنها برآید .
  پروژه را به واحد های کوچکتر تقسیم کنید
پروژه را به واحد های کوچکتر تقسیم کنید
{" "}

اما صبر کنید ! اگر من میخواستم یک وبسایت کامل بسازم چی میشد ؟ نگران نباشید ! هنوز هم همان روند و چارچوب را باید بکار برد. این کاری است که اگر می خواستم یک وب سایت نیز بسازم ، انجام می دادم.

  • مرحله 1 : همه چیز را به بخش های کوچکتر تقسیم کنید
  • برای یک وبسایت ساده ، بخش های مختلف را میتوان به 4 قسمت زیر{" "}
    • 1 – هدر ( Header )
    • 2 – بخش اصلی محتوا ( Main )
    • 3 – ساید بار ( SideBar )
    • 4 – فوتر ( Footer )
  • مرحله 2 : بخش های مرحله اول را در کامپوننت های مجزا ( Component ) تقسیم کنید .
  • {" "} برای انجام این کار، از خودم می‌پرسم که در هر بخش چه می‌خواهم و سپس آن عناصر را یکی یکی فهرست می کنم.
{" "} هدر : یه لوگو میخوام . سرچ باکس میخوام . دکمه ی لاگین / ساین آپ میخوام . لیست منو میخوام . بخش اصلی محتوا : به چه تعداد سطر ستون برای نمایش محتوای مد نظرم نیاز دارم . به ساید بار نیاز داره ؟ در کدام سمتش و چه جوری محتوامو بچینم که خوانایی بالایی داشته باشه و جذاب باشه ؟ فوتر : به نماد های اعتماد و قانون کپی رایت نیاز دارم ؟ لیست منوی دسترسی سریع داشته باشم یا نه ؟ سپس از خودم میپرسیدم چه چیزهای دیگری میخوهم و همانطور که به آنها فکر می‌کردم یادداشتشون می‌کردم.

به طور خلاصه، شما باید هر آنچه را که می خواهید در هر بخش و جزء فهرست کنید . اما زمان زیادی را برای برنامه ریزی تلف نکنید ، زیرا اجرای پروژه و دست به کار شدن ، کلید اصلی میباشد . این کار را در اسرع وقت انجام دهید زیرا زمانی که شغلی دارید ، احتمالاً وقت خالی برای برنامه ریزی پروژه های خود ندارید. اما شما ممکن است فکر کنید که اوه ، نه! من گیج شدم . چطوری میتونم تمام بخش ها و اجزای مورد نیاز خودم رو به عنوان یک مبتدی بدونم؟ به نکته ی خوبی اشاره کردی چون من مبتدی نیستم و در مورد همه ی این مؤلفه ها تجربه داشته ام . به همین دلیله که میتونم آنها را به راحتی فهرست کنم . اما جای نگرانی نیست . شما همه ی این چیزها را در طول مسیر یاد خواهید گرفت. فقط باید به داستان افزونه ی VSCode من توجه کنید :)

اولین خط کد پروژه ی برنامه نویسی خود را بنویسید و گیر کنید

{" "}

پس از داشتن یک تصویر واضح از آنچه باید بسازیم ، معتقدم مهمترین چیز برای شروع یک پروژه این است که اولین خط کدتون ره بنویسید و گیر کنید . بدبینانه است ! اما به شما کمک می کند راه حل محور شوید. به جای اینکه بیهوده نگران باشید چون مطمئن نیستید چگونه شروع کنید ، ویرایشگر کد مورد نظر خود را باز کنید و اولین خط کد خود را بنویسید ، حتی اگر بلافاصله بعد از آن گیر کردید. احتمالاً خط اول کد شما چندین بار حذف میشود یا بهبود می یابد و این خوب است . این به شما کمک می کند تا بر کم کاری و تنبلی غلبه کنید . در واقعیت شما همیشه در مورد اینکه چگونه شروع کنید و چه کاری انجام دهید سردرگم خواهید بود. کار خود را به دلیل چنین احساساتی به تعویق نیندازید ، به خصوص بعد از اینکه فهمیدید پروژه چگونه باید در ذهن شما یا روی کاغذ کار کند . قبل از نوشتن اولین خط کدتان سعی نکنید همه چیز را بفهمید . شما هرگز همه چیز را نخواهید فهمید . حداقل هیچ کس هنوز همه چیز را درک نکرده است !

هیچ پروژه ای کامل و بی نقص نیست حتی گوگل !

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

  هیچ پروژه ای کامل و بی نقص نیست حتی گوگل !
هیچ پروژه ای کامل و بی نقص نیست حتی گوگل !
{" "}

هر پروژه بر روی پروژه های دیگر ساخته شده است

بعد از اینکه تصویر واضحی از آنچه برای ساخت افزونه VsCode نیاز داشتم در ذهنم شکل گرفت ، مجبور شدم پروژه‌های مرتبط را بررسی کنم . من کد منبع vscode-hacker-typer را باز کردم تا بررسی کنم که پروژه چگونه برخی از مواردی را که می‌خواستم پیاده‌سازی کنم انجام می‌دهد . با انجام این کار، کمی در مورد API های افزونه VsCode یاد گرفتم. از آنجایی که در ساخت افزونه‌های VsCode کاملاً بی‌تجربه بودم ، نگاه کردن به vscode-hacker-typer به من کمک کرد تا از وضعیت کاملاً بی‌اطلاع به وضعیت دانستن آنچه که باید تحقیق کنم ، حرکت کنم . دانستن نام چیزی که می خواهید با آن سر و کار داشته باشید ، اولین قدم برای حل هر مشکلی در برنامه نویسی است. به عنوان مثال بگویید که یک ویژگی وجود دارد که دوست دارید در یک وب سایت مرتبط داشته باشید اما نمی دانید نام آن چیست. چگونه در مورد ویژگی تحقیق خواهید کرد؟ خب کار خیلی سختی نیست. می توانید از این ویژگی عکس بگیرید و نام آن را در گروه های برنامه نویسی بپرسید یا از یک شخص برنامه نویس با تجربه بپرسید. یا می‌توانید مانند من ، نام یا API آن را با جستجو در کد منبع پروژه ی مرتبط کشف کنید . بنابراین پروژه هایی که شبیه پروژه شما هستند را بررسی کنید ، از آنها یاد بگیرید و ویژگی های آنها را کپی کنید .

  هر پروژه بر روی پروژه های دیگر ساخته شده است
{" "} هر پروژه بر روی پروژه های دیگر ساخته شده است{" "}
{" "}

از جستجو کردن در گوگل نترسید

قبل از ایجاد افزونه VsCode ، حتی نمی‌دانستم از کجا شروع کنم . اما مطمئن بودم که می‌توانم برای پید کردن راهم برای رسیدن به چیزی معقول تحقیق کنم . پس شروع کردم به گوگل کردن سوالات مختلف . درک آنچه می خواهید بسازید اولین گام برای داشتن نتایج جستجوی مرتبط است ، به ویژه در هنگام ساخت پروژه ای که هرگز نساخته اید . شما باید ایده یا ویژگی هایی را که می خواهید پیاده سازی کنید مفهوم سازی کنید تا بتوانید راه حل های مورد نیاز خود را بیابید.

نکات اولیه در مورد جستجو در گوگل که می تواند به شما کمک کند نتایج بهتری بگیرید

کلمات کلیدی مد نظر خود را بشناسید

به عنوان مثال اگر بخواهم یک صفحه لندینگ فقط با HTML و CSS بسازم ، چیزی مانند "چگونه صفحه لندینگ بسازیم " را جستجو نمی کنم . این چیزهای زیادی را به همراه خواهد داشت که من نمی خواهم . باید چیزی را جستجو کنم که شامل کلمات کلیدی مورد علاقه من باشد . برای مثال : چگونه با HTML و CSS یک صفحه لندینگ بسازیم ؟ چگونه با استفاده از جاوا اسکریپت یک افزونه ی Vscode بسازیم ؟ مطمئن شوید که کلمات کلیدی مد نظرتون رو در متن جستجوی خود داشته باشید تا نتایج دقیق تری کسب کنید .

برای دریافت نتایج دقیقتر در گوگل از نقل قول استفاده کنید

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

حذف یک عبارت جستجو با استفاده از ( - )

گاهی اوقات، شما فقط یک نتیجه را با HTML و CSS می‌خواهید ، اما با HTML ، CSS و جاوا اسکریپت نتیجه می‌گیرید. برای حل این مشکل می توانید از "- JavaScript" برای حذف جاوا اسکریپت استفاده کنید . به عنوان مثال، می‌توانید «نحوه ساخت صفحه لندینگ با HTML و CSS - JavaScript را جستجو کنید. این زمانی مفید است که بخواهید کلمات کلیدی خاصی را حذف کنید.

مقررات خود را تغییر دهید

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

            از جستجو کردن در گوگل نترسید
از جستجو کردن در گوگل نترسید
{" "}

شما همیشه گیر خواهید کرد که هیچ اشکالی ندارد

‌مشکل دوره های آموزشی که تیتر « چگونه » دارند این است که همیشه به شما اطلاع نمی‌دهند که گیر افتادن بخشی از فرآیند و مسیر تبدیل شدن به برنامه نویس است . افزونه ی VsCode که من روی آن کار می کردم هنوز به نتیجه نرسیده چرا که من گیر کردم . پس از فکر کردن در مورد هر بخش، هنگام اجرای ویژگی ها گیر کردم . API مربوط به افزونه VsCode که استفاده می کردم قابل استفاده ی مجدد نیست ، بنابراین باید راهی برای انجام آن پیدا کنم . همچنین vscode-hacker-typer از رویکردی که من استفاده می کنم استفاده نمی کند . فشرده شدن دکمه ها را ضبط می کند و آنها را دوباره پخش می کند. من می خواهم از ضبط شدن فشرده شدن های دکمه اجتناب کنم . من فقط میخواهم محتوای یک ActiveTextEditor را هر زمان که هر دکمه فشار داده می‌شود، کاراکتر به کاراکتر نمایش دهم . شما همیشه گیر خواهید کرد و به همین دلیل است که باید یاد بگیرید چگونه مهارت های اشکال زدایی و خطایابی خود را بهبود ببخشید . گیر افتادن بخش مهمی از فرآیند است . توانایی شما برای غلبه بر چالش های گیر افتادن تعیین می کند که تا چه حد در ساخت پروژه ها پیش خواهید رفت و تا چه حدی حرفه ای خواهید شد .

نتیجه گیری

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