کسب درآمد از اپلیکیشن

کسب درآمد از اپلیکیشن

بسیاری از اوقات، فروش مستقیم از طریق نصب اپلیکشن منطقی به نظر نمی رسد. اما این بدان معنا نیست که اپلیکیشن های موبایل نمی توانند ارزش و خدمتی به کاربران خود ارائه دهند.

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

اگر قصد کسب درآمد از اپلیکیشن موبایل خود را بدون مختل کردن تجربه کاربری دارید، ترکیبی از ۶ استراتژی زیر می تواند اثر بخش باشد:

  • پرداخت درون برنامه ای

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

پرداخت درون برنامه ای می تواند شامل فروش محصولات و خدمات یا باز شدن های فیچر های خاص اپلیکیشن های موبایل باشد.

  • اشتراک

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

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

  • تبلیغات درون برنامه ای

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

  • اسپانسری یا حمایت مالی

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

  • برچسب سفید

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

  • کسب درآمد از اطلاعات

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

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

لینک کامل این مطلب

https://www.adtooapp.com/application-monetization/

نوشته کسب درآمد از اپلیکیشن اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چگونه مدیر پروژه IT شویم؟

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

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

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

مسئولیت‌ها و وظایف مدیر پروژه IT چیست؟

در واقع تمامی وظایف یک مدیر پروژه به‌نوعی با یکدیگر مرتبط هستند. در ادامه قصد داریم که همه وظایف این موقعیت شغلی را به‌طور کامل بررسی کنیم؛ اما پیش از شروع، باید بدانید که تمامی این وظایف کاملا به‌یکدیگر مرتبط و درهم‌تنیده هستند.

هماهنگی پروژه

یکی از اصلی‌ترین مسئولیت‌های یک مدیر پروژه IT این است که بتواند یک پروژه توسعه نرم‌افزار را با موفقیت به پایان برساند. شما به‌عنوان مدیر پروژه IT برای اجرای کامل یک پروژه نرم‌افزاری، مسئولیت‌های مختلفی دارید؛ به‌عنوان مثال:

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

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

برای مثال، ممکن است تصمیم بگیرید که از روش‌های مختلف توسعه و مهندسی نرم‌افزار مانند روش آبشاری (Waterfall)، توسعه نرم‌افزار به روش اسکرام (Scrum)، رویکرد توسعه نرم‌افزار لاغر (Lean)، متدولوژی برنامه‌نویسی مفرط یا (XP: extreme programming)، رویکرد توسعه نرم‌افزار مقیاس‌پذیر اسکرام نکسوس یا Scrum Nexus و سایر روش‌ها استفاده کنید.

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

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

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

مدیریت منابع مختلف

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

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

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

اما چگونه می‌توانید راه‌حل مناسبی برای رفع این مشکل پیدا کنید؟ در چنین موقعیتی، نحوه مدیریت منابع مختلف، در یافتن راه‌حل مناسب به شما کمک می‌کند.

ارزیابی افراد تیم

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

از آن‌جایی‌که شرکت از نظر مالی محدودیت‌هایی دارد، بنابراین باید منابع موجود را با درایت و بینش درست، میان تمامی کارکنان تقسیم کند. اما مدیرعامل شرکت شما چگونه می‌تواند ارزیابی و تحلیل درستی از نحوه تقسیم منابع داشته باشند؟

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

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

تنظیم و مدیریت اولویت‌ها و تحویل به‌موقع پروژه

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

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

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

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

ویژگی‌های یک مدیر پروژه خوب چیست؟

در این بخش سعی داریم عوامل کلیدی را که برای یک مدیر پروژه ضروری هستند، پوشش دهیم. شاید در نگاه اول، مدیریت و کنترل همه‌ی موارد زیر به‌صورت همزمان، ترسناک یا حتی غیرممکن به‌نظر برسد؛ اما خوشبختانه، با مجموعه‌ای از مهارت‌های نرم‌افزاری، مدیریتی و کمی تکرار و تمرین، این‌کار حتی برای یک مدیر فنی پروژه تازه‌کار نیز دشوار نخواهد بود.

بعضی از این مهارت‌ها برای موقعیت شغلی مدیریت پروژه ضروری و الزامی هستند؛ اما برخی دیگر تنها مواردی هستند که در صورت وجود، عملکرد شما را به‌عنوان مدیر پروژه IT بهبود می‌بخشند. بنابراین بهتر است که پیش از شروع کار، اهمیت این مهارت‌ها را درک کنید و بدانید که در فرایند کاری روزمره شما، بسیار مفید و کاربردی هستند.

در ادامه این مهارت‌ها را بر اساس روش MoSCoW، در سه دسته‌بندی مهارت‌های اولیه، مهارت‌های تخصصی و مهارت‌های توصیه‌شده، توضیح می‌دهیم.

مهارت‌های اولیه مدیر پروژه IT

زمان خود و تیم را به‌صورت حرفه‌ای و موثر، مدیریت کنید

در موقعیت شغلی مدیر پروژه IT، لیست کارها و وظایف شما هرگز پایان نمی‌پذیرد و همواره بیشتر و بیشتر می‌شود. برای آن که بتوانید یک مدیر پروژه شوید، باید بتوانید به‌درستی برای این لیست برنامه‌ریزی کرده و به آن‌ها رسیدگی کنید. موفقیت پروژه، رضایت‌مندی مشتری و افزایش روحیه تیم اجرایی پروژه، همگی در گرو نحوه مدیریت و برنامه‌ریزی مدیر پروژه IT خواهند بود.

اما جای نگرانی نیست! تکنیک‌ها و ابزارهای کاربردی آنالوگ و دیجیتال بسیاری هستند که در این زمینه به مدیران پروژه‌های IT کمک می‌کند. به‌عنوان مثال، تکنیک «به انجام رساندن کارها» (GTD:Getting Things Done)، روش بولت ژورنال (Bullet Journal) برای مدیریت زمان، یا حتی یادداشت‌های چسبنده (Sticky Notes) برای یادآوری کارها و وظایف، نمونه‌هایی از این تکنیک‌ها و ابزارها هستند. مهم نیست که شما کدام‌یک را انتخاب می‌کنید؛ چیزی که اهمیت دارد این است که تکنیک و ابزار موردنظر برای شما مناسب و کارآمد باشد و به بهبود عملکرد شما کمک کند.
شما به‌صورت همزمان باید دو عامل «اولویت‌بندی» و «کار موثر» را نیز در راستای کار خود قرار دهید.

بسیاری از افرادی که به‌عنوان مدیر پروژه IT فعالیت کرده‌اند، عقیده دارند که مدیریت پروژه‌ها بدون تکیه بر روش‌های تست‌شده و استفاده‌شده، بسیار دشوار است. در کنار پیش‌برد اولویت‌ها، برای شروع ابزار Eisenhower Matrix یا همان روش MoSCoW بسیار کمک‌کننده و اثرگذار خواهند بود. همچنین برای زمان مدیریت و افزایش کار موثر، می‌توانید روش Pomodoro را امتحان کنید. این تکنیک‌ها و ابزارها توسط بسیاری از متخصصان، از جمله موسسه Project Management، گواهی دریافت کرده‌اند. بنابراین با خیال آسوده می‌توانید از آن‌ها برای نمایش مهارت‌های مدیریتی خود استفاده کنید و از این بابت نگرانی نداشته باشید.

منطقی بیندیشید، واقعیت‌ها را ترکیب کرده و نتیجه‌گیری کنید

شما به‌عنوان مدیر پروژه IT، اطلاعات مختلفی از منابع گوناگون، از جمله مشتری، تیم توسعه‌دهنده، شرکت، تهیه‌کنندگان بیرونی و غیره، دریافت می‌کنید. در مدیریت پروژه، اطلاعاتی که از منابع گوناگون دریافت می‌کنید، ارتباط بسیار زیادی با یکدیگر دارند. شما باید بتوانید ارتباطات میان داده‌های دریافتی از منابع مختلف را درک کنید یا خودتان این ارتباطات را ایجاد کنید. برای مثال، باید بتوانید درک کنید که چه چیزهایی به یکدیگر وابسته هستند، چه مواردی از نظر زمان‌بندی در اولویت هستند، چه‌کسی در چه‌زمانی به چه‌چیزی و از چه‌کسی نیاز دارد.

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

همانند یک مدیر، محترمانه و مودبانه رفتار کنید

یک مدیر پروژه باید حرفه‌ای رفتار کند. بنابراین داشتن مهارت‌های رهبری برای یک مدیر پروژه یک الزام به‌شمار می‌رود. شما رهبر و پیشرو پروژه، تیم و شرکت هستید. هرگز نمی‌توانید به هیچ‌شخصی بی‌احترامی یا توهین کنید. حتی اگر با آن فرد خصومت شخصی داشته باشید یا زمانی‌که نمی‌توانید آن شخص را تحمل کنید، هرگز نباید غیرحرفه‌ای رفتار کرده و بی‌احترامی کنید. شما با افراد مختلفی از جمله مدیر ارشد اجرایی یا (CEO: Chief Executive Officer)، مدیر ارشد فناوری یا (CTO: chief technology officer)، مدیر ارشد عملیاتی یا (COO: Chief Operating Officer)، ذی‌نفعان پروژه، کارکنان فنی و اعضای مختلف تیم، سروکار خواهید داشت. بنابراین باید بتوانید خواسته‌ها و اهداف آن‌ها را بشناسید و درک کنید و به زبان آن‌ها، با آن‌ها سخن بگویید.

شما به‌طور همزمان، باید بتوانید تیم توسعه پروژه و نیازهای آن‌ها را مدیریت کنید، با آن‌ها مذاکره کنید و پیشنهاد کنید که چه‌چیزی را انجام بدهند یا انجام ندهند.

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

مهارت‌های تخصصی مدیر پروژه IT

در زمینه تحلیل کسب‌وکار، مهارت بیشتری کسب کنید

اگر در میان اعضای تیم‌تان فردی با تخصص تحلیل کسب‌وکار (Business Analyst) دارید، از مشورت با او دریغ نکنید. شما به‌عنوان مدیر پروژه IT موظف هستید که کلیه نیازمندی‌های پروژه را جمع‌آوری کرده و مدیریت کنید. گاهی ممکن است از شما بخواهند که برای مشتریان کارگاه‌های آموزشی برگزار کنید. به‌عنوان مثال، شاید لازم باشد که در مرحله پیش‌فروش، بخواهید برای مشتریان کارگاه آموزشی برگزار کنید.
اما کدام‌یک از مجموعه اطلاعاتی که از تحلیل کسب‌وکار به‌دست آمده‌اند، از ارزش و اهمیت بیشتری برای پیاده‌سازی در مدیریت پروژه برخوردار هستند؟ در واقع از مدیران پروژه IT انتظار می‌رود که بدانند از کدام تکنیک‌ها، از جمله Lean Canvas یا Business Model Canvas، Priority Matrix، User Story Mapping و SMART rule، در بخش‌های مختلف کارگاه آموزشی بهره بگیرند؛ دانش و مهارت کافی برای رسیدگی به فهرست وظایف و مسئولیت‌هایشان در طول پروژه، داشته باشند و مفاهیم User story، Done و Ready را به‌خوبی درک کنند.

متدولوژی‌های توسعه و مهندسی نرم‌افزار را یاد بگیرید

همان‌طور که پیش از این نیز مطرح کردیم، مدیران پروژه IT از متدولوژی‌های مشهور و شناخته‌شده‌ای مانند Scrum، Lean، Nexus، Waterfall یا سایر روش‌ها، برای پیش‌برد پروژه استفاده می‌کنند. بنابراین از آن‌جایی که کلیت پروژه شما به این روش‌ها بستگی دارد، بهتر است که بدانید چگونه به‌طور موثر از آن‌ها استفاده کنید.

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

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

مهارت‌های توصیه‌شده مدیر پروژه IT

با web stack شرکت‌تان آشنا باشید

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

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

معماری سطح بالا را یاد بگیرید

اگرچه این دو نکته یکسان نیستند، اما ارتباط نزدیک و تنگاتنگی با یکدیگر دارند و به‌اصطلاح، در‌هم‌تنیده‌اند. درست مانند معماری سیستم و فناوری‌های استفاده‌شده در سیستم که ارتباط بسیار نزدیکی با یکدیگر دارند. زمانی‌که از «معماری سطح بالا» (high-level architecture) صحبت می‌کنیم، منظورمان تفاوت میان فضای ابری عمومی و سرورهای شخصی، مفهوم load balancer و دلیل اهمیت به‌کارگیری آن، مفهوم VPN، DMZ و علت اهمیت استفاده از CDN زمانی‌که تعداد زیادی عکس در دیتابیس موجود دارید، است. اما جای نگرانی نیست. چراکه شما پیش از هرگونه تصمیم پرمخاطره‌ای، به‌کمک توسعه‌دهندگان معماری سیستم، آماده شده و از دانش و ایده‌های آن‌ها بهره‌مند خواهید شد.

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

تفاوت میان UI و UX را یاد بگیرید

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

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

جمع‌بندی: چگونه مدیر پروژه IT‌ شویم؟

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

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


بازنشر شده مقاله چگونه مدیر پروژه IT شویم؟ از وبلاگ سرویس ابری لیارا

نوشته چگونه مدیر پروژه IT شویم؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

۶ کار که در اولین لحظه اتصال به سرور جدید لینوکسی انجام میدم.

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


اولین بازخورد

توی اولین لحظه باید چک کنین با چه سیستم عاملی طرف هستین ، چه ساختار سخت افزاری داره و چند مدت هست که روشن بوده.

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

لیست فایل های دارای کلمه ریلیز داخل etc

توی ایم مثال ما با یه centOS طرف هستیم . بعد میتونیم با دیدن فایل centos-release از جزیات بیشتری با خبر بشیم:

نسخه CentOs

بعد نوبت کرنل و آپ تایم رو چک کردنه:

نسخه کرنل و آپتایم

مطمعن بشیم تنها هستیم

یکی از مهم ترین کار ها اینه چک کنین که روی این سرور تنها هستیم. این کار هم امنیت شما رو تظمین میکنه و هم جلوگیری میکنه از به وجود اومدن تداخل های احتمالی .

برای این کار از دستورات زیر استفاده میکنیم:

تنها خودمم روش 😐

دستگاه فیزیکی یا مجازی

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

اگر دستگاه مجازی باشه کلماتی مثل KVM ,VirtualBox ,VM و … رو قراره ببینید و در غیر این صورت عبارت هایی شامل اسم شرکت تولید کننده.در دو مثال زیر هر دو سرور به صورت مجازی (یکی با VmWare و اونیکی با QEMU شبیه سازی شده ) هستن.

سرور VMWare

برای چک کردن از دستورات :

lshw  -c system | grep product | head -1
cat /sys/class/dmi/id/product_name
dmidecode -s system-manufacturer

استفاده کنین.

سخت افزار !

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

برای این کار از cpu شروع میکنیم و از ram به شبکه میرسیم.

mem

و دستور ifconfig برای شکبه ( عکس نمیزارم)

لیست ریپو ها و برنامه ها

برای اینکه بتونین معماری خوبی رو پیاده سازی کنین باید ریپو های جامعی رو قبل از شروع به کار جمع کنین و لیستی از برنامه های موجود روی سیستم داشته باشید.برای انجام این کار روی یه سیستم عامل redHatBased میتونین از دستورات زیر استفاده کنین:

rpm -qa
yum repolist
ls -l /etc/yum.repos.d/
yum repolist

پروسس ها و سرویس های در حال اجرا

قدم بعدی و خیلی طبیعی بعد از چک کردن نرم افزار های نصب شده روی سیستم اینه که پروسس های باز ،daemon ها و .. رو چک کنیم.

systemctl
ps -ef
ps auxf

توی مثال زیر nginx + یه کانتینر داکر + یه پروسس nodeJs در حال اجرا هستن که میتونه بیشتر منابع رو مصرف کنه و اجرای بقیه برنامه هارو دچار اختلال و کندی کنه ( یه پروسس نود جی اسی وقتی MaxEventListner هاش رو رد بکنه توی یه کانتینر داکری میتونه کاری کنه سیستک حتی ریسارت هم نشه و timeOut بده)

در قدم های بعدی بهتره استاتوس SELinux ، لاگ های موجود ، مشخصات اتصالات دقیق تر شبکه (با setstat یا ss)رو پیدا کنین و بر اسا اونا تصمیم گیری های آینده خودتون رو انجام بدین.

نوشته ۶ کار که در اولین لحظه اتصال به سرور جدید لینوکسی انجام میدم. اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

طراحی وبسایت با پایتون (۵ مرحله اصلی)


سلام دوستان

بعداز دو مقاله قبلیم امروز تصمیم گرفتم به مبانی طراحی وبسایت با پایتون بپردازم

لایک و کامنت یادتون نره.

من رو فالو هم بکنید تا نوشته های بعدیمو از دست ندین.


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

در این مقاله موضوعات زیر را پوشش می دهیم:

  • توسعه وبسایت چیست؟
  • چه چیزی پایتون را برای ساخت وبسایت مناسب کرده است؟
  • چارچوب های وبسایت پایتون
  • مجموع برنامه های پایتون برای ساخت وب
  • یک نقشه راه برای توسعه دهندگان وبسایت با پایتون
  • چگونگی ایجاد اولین اپلیکیشن وب در پایتون
  • تبدیل شدن به توسعه دهنده وب پایتون

توسعه وب سایت چیست؟

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

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

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

  • یادگیری آسان: پایتون محبوب ترین زبان برای یادگیرندگان است و آن هم یک دلیل دارد. زبان آن روی عبارارت رایج و فضای سفید تمرکز می کند که باعث می شود شما کدهای کمتری را نسبت به دیگر زبان ها مثل جاوا یا C++ بنویسید. نه تنها این، بلکه موانع کمتری برای داخل شدن دارد، زیرا شباهت بیشتری نسبت به زبان مورد استفاده شما دارد، بنابراین کدها را راحت تر می فهمید.
  • کارخانه ها و اکوسیستم های غنی. پایتون طیف وسیعی از ابزارهای کارخانه و پکیج ها را پیشنهاد می شود که به شما اجازه می دهد به کدهای از پیش نوشته شده بیشتری دسترسی داشته باشید و زمان توسعه اپلیکیشن خود را کمتر کنید. مثلا شما به نامپی و پانداس برای آنالیز محاسباتی، به pygal برای نموداربندی، و SLQALchemy برای ایجاد سوالات دسترسی دارید. پایتون همچنین فریم ورک های اعجاب انگیزی را مانند فلاسک و جنگو را پیشنهاد می کند که بعدا در این مقاله به آن خواهیم پرداخت.
  • طرح اولیه سریع: از آنجایی که پایتون زمان کمتری را برای ساخت پروژه در مقایسه با دیگر زبان های برنامه نویسی می گیرد، در نتیجه ایده های شما سریع تر اجرایی می شوند و به شما اجازه می دهد که بازخورد بگیرید و سریع تر کار را تکرار کنید. این زمان توسعه سریع باعث می شود که پایتون به یک برنامه عالی برای استارتاپ های مارکت تبدیل شود که می خواهند سریع تر وارد عرصه رقابتی شوند.
  • مجبوبیت وسیع تر: پایتون یکی از محبوب ترین زبان ها در دنیا و جوامع در سراسر جهان است. بخاطر میزان محبوبیت این زبان، پایتون به طور مداوم ویژگی ها و کارخانه های جدید را آپدیت می کند، در حالی که اجتماع و اسناد را ساپورت می کند. پایتون مخصوصا برای توسعه دهندگان تازه کار، ساپورت گسترده و چارچوبی را برای افرادی که می خواهند این مسیر را در پیش بگیرند، فراهم می کند.

چارچوب های وب پایتون

چارچوب های وب چیست، و چرا مهم هستند؟

در مورد جعبه ابزار فکر کنید. یک فریم ورک وب، مجموعه ای از پکیج ها و مدل های از پیش نوشته شده، کد استاندارد شده است که ساخت اپلیکیشن های وب را ایجاد می کند و باعث می شود که توسعه سایت سریع تر و آسان تر پیش برود و برنامه های شما قابل اعتمادتر و با مقیاس بندی همراه باشند. به عبارت دیگر، چارچوب ها اجزای درونی دارند که پروژه شما را “تنظیم می کنند”، بنابراین در میانه راه کمتر با مشکل مواجه می شوید.

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

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

جنگو و فلاسک از طریق حاشیه پهن، جزء مجبوب ترین فریم ورک های توسعه وب پایتون است.

جنگو یک چارچوب پایتون است که یک منبع باز را پیشنهاد می دهد که یک چارچوب با سطح بالا است که “توسعه سریع و تمیز و با طراحی برنامه ریزی شده را ایجاد می کند.” این چارچوب سریع، امن و مقیاس پذیر است. جنگو حمایت امنیتی قوی همراه با اسناد مربوط به جزئیات را به همراه دارد.

جنگو به شدت انعطاف پذیر است که در آن می توانید با MVP ها برای کمپانی های بزرگتر کار کنید. از دیدگاه بعضی ها، بعضی از بزرگ ترین کمپانی هایی که از جنگو استفاده می کنند، اینستاگرام، دراپ باکس، پینترست و اسپاتیفای هستند.

فلاسک یک چارچوب میکرو است که یک چارچوب مینیمالیستی محسوب می گردد و کمتر “شامل باتری” می شود و به معنای کمبود عملکردها و ویژگی ها است و مانند جنگو ویژگی های کامل را مثل موتور طرح وب، حساب رسی و سندیت را ارائه نمی دهد.

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

کدام را باید استفاده کنید؟

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

همچنین از خودتان بپرسید که آیا یک پایه کد “اساسی” را برای ساخت ترجیح می دهید یا می خواهید برای ساخت بک بن یا backbone پایه کد انعطاف پذیری داشته باشید؟ اگر گزینه اول را ترجیح می دهید، از جنگو استفاده کنید: اگر گزینه دوم را ترجیح می دهید، از فلاسک استفاده کنید. در انتهای روز، هردو می توانند عملکرد یکسانی را ارائه دهند. و مهم تر این است که از کدبندی شروع کنید تا اینکه مدام درگیر این باشید که کدام چارچوب بهتر است.

کتابخانه ها یا مجموع برنامه های پایتون برای توسعه وب

بعضی از کارخانه های کاربردی پایتون برای توسعه وب که باید آنها را به یاد داشته باشید:

  • اگر به یک وب کرالر (برنامه ای که وب سایت ها را با جستجو بازبینی می کند) برای استخراج اطلاعات از اپلیکیشن هایتان نیاز دارید، scrapy یک ابزار عالی است. از این برنامه به صورت گسترده از کتابخانه برای زدودن، نظم دیتا، تست اتوماتیک و … استفاده کنید.
  • Zappa یک کتابخانه قدرتمند برای توسعه یک اپلیکیشن روی AWS Lambda است.
  • Requests یک کتایخانه است که به شما اجازه می دهد که درخواست های HTTP را به راحتی ارسال کنید که برای ارتباط با اپلیکیشن استفاده می شود و مثلا به شما اجازه می دهد که دیتا یا صفحات HTML را بگیرید.
  • یکی دیگر از کارخانه های کاربردی Dash است که به اپلیکیشن های توسعه وب که برای رصد دیتا هستند، کمک می کند. این برنامه روی فلاسک کار می کند، ویژگی هایی را مانند چارت ها، نمودارها، داشبوردها و … ارائه می دهد.

نقشه راه برای توسعه وب با پایتون

مرحله ۱: HTML + CSS

زمانی که شروع به توسعه وب می کنید، بسیار مهم است که اول HTML و CSS را یاد بگیرید که جزء موارد پایه ای برای یادگیری این هستند که چگونه وبسایت بسازیم. اگر یاد گرفتید که چگونه ساختار صفحات ایستا را ایجاد کنید تا در مسیر توسعه وب قرار بگیرید، در واقع در بهترین حالت هستید. همچنین یاد گرفتن مفاهیمی مثل اینترنت، HTTP، مرورگرها، DNS، میزبان و … هم به شما کمک می کند.

همچنین می توانید یک چارچوب CSS را مانند Materialize و Bootstrap را یاد بگیرید که سرعت توسعه وب را به طرز چشمگیری بالا می برد اما همیشه هم نیاز نیست.

مرحله ۲: جاوا اسکریپت

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

مرحله ۳: DOM و jQuery

بعد از اینکه موارد پایه جاوا اسکریپت را یاد گرفتید، باید یاد بگیرید که چگونه DOM و jQuery را به کار بگیرید که یک کتابخانه جاوا اسکریپت است و باعث به کارگیری راحت تر DOM می شود. اکنون می دانید که چگونه صفحات داینامیک را ایجاد کنید.

چارچوب پیشین (انتخابی)

شاید نیاز نباشد که چارچوب پیشین را مانند اپلیکیشن کامل وب را برای ساخت یاد بگیرید، اما یادگیری آن را پیشنهاد می کنیم. این کار نه تنها به شما کمک می کند که SPA های زیبا بسازید، اما اغلب برای توسعه دهنده های کامل یا پیشین به کار گرفته می شود.

مرحله ۴: پایتون

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

مرحله ۵: جنگو + دیتابیس

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

چگونه اولین اپلیکیشن وب را در پایتون ایجاد کنیم؟

اول یک اپلیکیشن فلاسک “hello world” به عنوان مقدمه ای برای چارچوب های وب پایتون بسازید

نصب فلاسک

اولین کاری که نیاز دارید، نصب فلاسک است. بسته به نوع نسخه ای از پایتون که استفاده می کنید، باید از pip یا pip3 استفاده کنید.

اپلیکیشن فلاسک

در مرحله بعد، یک فایل به نام hello.py با کد زیر بسازید.

from flask import Flaskapp = Flask(__name__)@app.route(“/”)def hello():return “Hello World!”if __name__ == “__main__”:app.run()

  • خط ۱ فلاسک را وارد عمل می کند.
  • خط ۲ فلاسک را با متغیر app با استفاده از –name—معرفی می کند.
  • خط ۴ یک کانال / برای فهرست شما یا پیش زمینه، صفحه تنظیم می کند. زمانی که کاربر وارد locahost:5000/ می شود، می توانید کد خاصی را تنظیم کنید.
  • خط ۵ یک عملکرد به نام hello را ایجاد می کند.
  • خط ۶ hello world! را به کاربر برمی گرداند.
  • خط ۸ تست می کند تا مطمئن شود که اسکریپت به طور صحیح اجرا شده است.
  • خط ۹ اپلیکیشن را از متغیر app که حین آغاز کار استفاده کرده بودیم، اجرا می کند که کاربر بتواند اپلیکیشن وب را از طریق localhost بازدید کند.

تبدیل شدن به یک توسعه دهنده وب پایتون

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

نوشته طراحی وبسایت با پایتون (۵ مرحله اصلی) اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چرا باید پایتون یاد بگیریم؟ (۱۰ دلیل تکنیکی و شغلی)

زبانهای برنامه‌نویسی خیلی وقت است که وجود دارند و هر دهه شاهد رونمایی از یک زبان جدید هستیم که توسعه‌دهندگان دیوانه‌وار عاشقشان می‌شوند. پایتون یکی از محبوب‌ترین و پرطرفدارترین زبانهای برنامه‌نویسی است. نظرسنجی اخیر Stack Overflow نشان می‌دهد که پایتون از زبانهایی مثل جاوا، C، C++ پیشی گرفته و از جایگاه خوبی برخوردار است. همین دلیل باعث می‌شود گواهینامه پایتون تبدیل به یکی از پرطرفدارترین گواهینامه‌های برنامه نویسی شود. با این مقاله قصد دارم به ۱۰ علت اصلی یادگیری پایتون بپردازم.



سلام دوستان

بعد از اینکه مقاله اولم را درباره کاربرد های امروزی پایتون نوشتم (این لینک) و با نظرات خوب شما عزیزان مواجه شدم انگیزه زیادی در من ایجاد شد

آماده ای؟

پس بزن بریم!


زبانهای برنامه‌نویسی خیلی وقت است که وجود دارند و هر دهه شاهد رونمایی از یک زبان جدید هستیم که توسعه‌دهندگان دیوانه‌وار عاشقشان می‌شوند. پایتون یکی از محبوب‌ترین و پرطرفدارترین زبانهای برنامه‌نویسی است. نظرسنجی اخیر Stack Overflow نشان می‌دهد که پایتون از زبانهایی مثل جاوا، C، C++ پیشی گرفته و از جایگاه خوبی برخوردار است. همین دلیل باعث می‌شود گواهینامه پایتون تبدیل به یکی از پرطرفدارترین گواهینامه‌های برنامه نویسی شود. با این مقاله قصد دارم به ۱۰ علت اصلی یادگیری پایتون بپردازم.

ویژگی‌ها و کاربردهای اصلی پایتون که باعث شده افراد آن را به عنوان اولین زبان برنامه‌نویسی‌شان انتخاب کنند، عبارتند از:

۱-حقوق بالا و محبوبیت پایتون

۲-کاربرد پایتون در علوم داده

۳-اتوماسیون و اسکریپ‌نویسی پایتون

۴-پشتیبانی پایتون از کلان داده‌ها

۵- قابلیت تست شدن پایتون

۶-استفاده در گرافیکهای کامپیوتری

۷-کاربرد در هوش مصنوعی

۸-توسعه وب با پایتون

۹-قابلیت انتقال و توسعه پایتون

۱۰-یادگیری آسان و ساده پایتون

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

حالا اجازه بدهید ویژگی‌های ذکر شده را با جزئیات توضیح دهم.

پایتون در چه مواردی استفاده می شود؟ (کاربردهای امروزی)

۱۰-یادگیری آسان و ساده پایتون

یادگیری پایتون بسیار ساده و راحت است. این زبان بسیار قدرتمند است و شباهت زیادی به زبان انگلیسی دارد، از این ساده‌تر؟ پایتون همچنین:

  • منبع باز و رایگان است.
  • سطح بالایی دارد.
  • قابل تفسیر است.
  • از جامعه بزرگی برخوردار است.

علاوه بر اینها، در پایتون با سینتسکهای پیچیده سرو کار ندارید. مثلا تصویر زیر را در نظر بگیرید:

اگر بخواهید “Hello world” را چاپ کنید، باید در زبان جاوا سه خط کد بنویسید در صورتیکه در پایتون با یک خط برنامه اجرا می‌شود. به همین سادگی!

بنابراین سادگی کد در این زبان، کار مبتدی‌ها را راحت‌تر می‌کند.

۹-قابل انتقال و قابل توسعه

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

قابلیت توسعه‌پذیری پایتون به شما این امکان را می‌دهد تا آن را با جاوا و مولفه‌های .NET ادغام کنید. همچنین می‌توانید کتابخانه‌های C‌ و C++ را فراخوانی کنید.

۸-امکان توسعه وب

پایتون دارای مجموعه‌ای از فریم‌ورکها برای توسعه وبسایتهاست. فریم‌ورکهای پرطرفدار Django، Flask، Pylons و … هستند. این فریم‌ورکها به زبان پایتون نوشته شده‌اند و همین می‌تواند علت اصلی سرعت و ثبات بیشتر کدها باشد.

شما می‌توانید با وب اسکرپینگ جزئیات هر سایتی را استخراج کنید. همچنین سایتهای بسیاری مثل Instagram، Bit bucket، Pinterest فقط بر اساس این فریم‌ورکها ساخته شده‌اند.

۷-کاربرد در هوش مصنوعی

هوش مصنوعی دستاورد بزرگی در دنیای فناوری است. شما می‌توانید عملا یک ماشین بسازید که از مغز انسان که قدرت تفکر، آنالیز و تصمیم‌گیری دارد، تقلید کند.

علاوه بر این کتابخانه‌هایی مثل Kerasو TensorFlow قابلیت یادگیری ماشین را هم فراهم می‌کنند.

همچنین کتابخانه‌هایی مثل openCv‌ داریم که به بینایی کامپیوتر یا تشخیص تصویر کمک می‌کند.

۶-کاربرد در گرافیکهای کامپیوتری

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

همچنین در بازی‌سازی مورد استفاده قرار می‌گیرد طوریکه می‌توانید منطق استفاده از یک ماژول پای‌گیم (Pygame) که روی دستگاههای اندرویدی قابل اجراست را به صورت کد در بیاورید.

۵-وجود فریم‌ورکهای آزمایشی

پایتون جهت اعتبارسنجی ایده‌ها یا محصولات برای شرکتهای تازه تاسیس عالی است. پایتون فریم‌ورکهای آزمایشی داخلی بسیاری دارد که امکان عیب‌یابی و روند کار بسیار سریعتری را فراهم می‌کند. ابزارها و ماژولهای زیادی مثل Selenium و Splinter وجود دارند که کارها را راحت‌تر می‌کنند.

این زبان از قابلیت تست روی چند پلتفرم و مرورگر در کنار فریم‌ورکهایی مثل PyTest وRobot Framework برخوردار است. تست کردن کاری خسته‌کننده است و پایتون نقش یک تقویت‌کننده را در این عمل ایفا می‌کند، در نتیجه هر آزمایش‌ کننده‌ای قطعا باید دنبال آن برود!

۴-سازگار با کلان داده‌ها

پایتون با داده‌های بسیار زیادی کار می‌کند. این زبان از محاسبات موازی پشتیبانی می‌کند طوریکه می‌توانید از آن برای فریم‌ورک Hadoop هم استفاده کنید. در پایتون کتابخانه‌ای به نام Pydoop دارید و می‌توانید یک برنامه MapReduce در آن بنویسید و داده‌های موجود در گروه HDFS را پردازش کنید.

کتابخانه‌های دیگری مثل Dask و Pyspark برای پردازشهای بزرگ وجود دارند. بنابراین پایتون عمدتا برای کلان داده‌ها استفاده می‌شود که می‌توانید به راحتی آنها را پردازش کنید!

۳-اتوماسیون و اسکریپ‌نویسی

بسیاری از افراد فقط می‌دانند پایتون یک زبان برنامه‌نویسی است اما این زبان می‌تواند به عنوان زبان اسکریپت‌نویسی هم استفاده شود. در اسکریپت‌نویسی:

  • کد نوشته به صورت اسکریپت نوشته شده و اجرا می‌شود.
  • ماشین کد را می‌خواند و تفسیر می‌کند.
  • بررسی خطا حین زمان اجرا انجام می‌شود.

وقتی کد بررسی شد، امکان استفاده چندباره از آن وجود دارد. بنابراین با اتوماسیون می‌توانید وظایف مشخصی در برنامه را به صورت خودکار در بیاورید.

۲-کابرد آن در علوم داده

پایتون زبان اصلی بسیار از دانشمندان علوم داده است. برای سالهای متمادی، پژوهشگران دانشگاهی و محققان خصوصی از زبان MATLAB برای تحقیقات علمی استفاده می‌کردند اما با انتشار موتورهای عددی پایتون مثل Numpy‌ و Pandas، همه چیز تغییر کرد.

پایتون با داده‌های جدولی، ماتریکسی و همینطور داده‌های‌ آماری سر و کار دارد و حتی آنها را در کتابخانه‌های مشهوری مثل Matplotlib‌ و Seaborn نمایان می‌کند.

۱-حقوق بالا و محبوبیت پایتون

مهندسان پایتون بالاترین دستمزد را در این صنعت دارند. متوسط حقوق یک توسعه‌دهنده پایتون در ایالات متحده آمریکا چیزی حدود ۱۱۶٫۰۲۸ دلار است.

محبوبیت پایتون در یک سال گذشته بسیار زیاد بوده است. به اسکرین‌شات زیر که از Google Trends گرفته شده، دقت کنید.

نوشته چرا باید پایتون یاد بگیریم؟ (۱۰ دلیل تکنیکی و شغلی) اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

آموزش Spring Boot / بخش نخست

ecosys

در این سری از مقالات با مفاهیم پایه‌ Spring Boot آشنا می‌شویم. پیش‌نیاز این دوره آموزشی دانستن مفاهیم پایه‌ فریم‌ورک Spring است. مفاهیمی مانند Dependency Injection و Inversion of Control.

در نوشتن این مقالات از منابع مختلفی استفاده شده است. مانند سری کتاب‌های IN ACTION (کتاب Spring IN ACTION ویرایش پنجم)، آموزش‌های Udemy، مقالات مختلف در اینترنت به‌همراه تجربیات شخصی خودم.

فریم‌ورک Spring چیست؟

اسپرینگ یکی از محبوب‌ترین چارچوب‌های توسعه‌ نرم‌افزار برای پلتفرم جاوا است. ما در وهله‌ اول از Spring برای توسعه‌ برنامه‌های وب استفاده می‌کنیم، اما می‌توانیم به کمک آن برنامه‌های desktop و حتی command-line تولید کنیم. در حالت کلی Spring فریم‌ورکی از فریم‌ورک‌هاست که با کار کردن در کنار یکدیگر عملکرد استاندارد را برای برنامه فراهم می‌کنند. برای همین است که گاهی به آن پلتفرم اسپرینگ گفته می‌شود، یعنی چیزی فراتر از یک فریم‌ورک.

spring-logo

اسپرینگ بسیار بزرگ است و توانایی‌های بسیاری دارد:

  • الف) component container: مدیریت چرخه حیات آبجکت‌ها در داخل برنامه را به عهده دارد.
  • ب) data access framework: برای کار کردن با انواع مختلف پایگاه‌های داده.
  • پ) web framework: برای تولید اپلیکیشن‌های مبتنی بر وب.
  • د) security framework: برای پشتیبانی از authentication و authorization.
  • ج: testing framework: برای نوشتن تست برای تمام بخش‌های برنامه.

نکته کاربردی برای authentication و authorization: فرض کنید که کارمند بانک هستیم. وقتی هر روز وارد بانک می‌شویم ابتدا باید به نوعی خود را معرفی کنیم تا بتوانیم وارد شویم. مثلا با وارد کردن نام کاربری و رمز عبور. به این کار می‌گویند Authentication .

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

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

خوشبختانه توسعه‌دهندگان اسپرینگ متوجه‌ این پیچیدگی شده‌اند و یک فریم‌ورک جدیدی با نام Spring Boot را پدید آوردند که بسیاری از کارهای مربوط به پیکربندی را خودکار می‌کند.

فریم‌ورک Spring Boot چیست؟

اسپرینگ بوت بخشی از پلتفرم اسپرینگ است که به توسعه‌دهندگان اجازه می‌دهد برنامه‌های stand-alone مبتنی بر اسپرینگ تولید کنند. این فریم‌ورک با استفاده از رویکرد convention over configuration به‌طور چشمگیری پیکربندی‌های برنامه را آسان کرده است. این به آن معناست که به‌جای اینکه برنامه‌نویس همه‌چیز را کانفیگ کند، فریم‌ورک به‌صورت پیش‌فرض بعضی از کامپوننت‌ها، رفتارها و پیکربندی‌ها را برای بعضی از بخش‌های مهم در Spring تعریف می‌کند.

spring-boot-logo

بعضی دیگر از ویژگی‌های جالب در Spring Boot

الف: command-line interface.

ب: مانیتور کردن وضعیت برنامه‌ در حال اجرا با استفاده از actuator.

پ: وب سرور نهفته یا embedded برای اجرای برنامه‌های تحت وب.

اسپرینگ بوت: درکی عمیق‌تر

همانطور که می‌دانید راه‌اندازی یک پروژه‌ Spring بسیار دشوار است. در ابتدای ساخت پروژه با سوال‌های زیر مواجه می‌شویم:

  1. از چه نوع Maven archetype استفاده کنیم؟
  2. به کدام Maven dependency ها احتیاج داریم؟
  3. برنامه را چگونه پیکربندی یا کانفیگ کنیم؟ (با استفاده از XML یا Java)
  4. چگونه سرور را نصب کنیم؟ (مثلا Tomcat)

این سوالات حداقل سوال‌هایی است که در مرحله‌ نسخت به ذهن ما می‌رسد. با پیشرفت پروژه، سوال‌ها و درگیری‌های بیشتری به‌وجود می‌آید. اما راه حل چیست؟‍ بله اسپرینگ بوت 🙂

  • اسپرینگ بوت ایجاد پروژه و شروع کار را بسیار آسان می‌کند،
  • کانفیگ‌هایی که برنامه نویس باید انجام دهد را با استفاده از قابلیت auto-configuration که براساس فایل‌های تنظیمات و فایل‌های JAR در classpath انجام می‌شود، به حداقل می‌رساند،
  • برطرف کردن مشکل dependency conflict بین پروژه‌های Maven یا Gradle،
  • فراهم کردن یک سرور نهفته یا همان embedded.

نوشته آموزش Spring Boot / بخش نخست اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

node.js دقیقا چیه؟ + هر چیزی که برای شروع کار باید بدونید

هر کسی که تا حالا با جاوااسکریپت کار کرده باشه قطعا اسم node js رو شنیده. اما یکی از دردناک ترین بخش های node اینه که “یه نفر نمیاد مثل آدم بگه دقیقا چیه”. اولین جست و جو های شما برای node js به عباراتی مثل v8 engine , event-driven , non blocking I/O و … منجر میشه که کله آدم رو منفجر میکنه.

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


وقتی یک سایت ایجاد میکنیم با دو نوع کد سر و کار داریم. اول کدی که توی مرورگر اجرا میشه مثل دستکاری DOM و … ، و دوم کدی که توی سرور اجرا میشه مثلا خوندن دیتابیس و فایل ها، پاسخ دادن به ریکوئست ها و…

جاوا اسکریپت همونطور که تا حالا فهمیدید میتونه توی مرورگر اجرا بشه ولی نمیتونه توی سرور یا بگیم یه کامپیوتر اجرا بشه. node.js به ما کمک میکنه که جاوا اسکریپت رو توی کامپیوتر اجرا کنیم. ولی بگذارید اول توضیح بدم که کامپیوتر چطور کد هارو میفهمه.

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

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

جاوا اسکریپت زبانیه که سعی کرده از ++C هم آسون تر باشه ولی کامپیوتر نمیتونه اون رو بفهمه چون نمیتونه اون رو به زبان ماشین ترجمه کنه. ولی مرورگر میتونه کد جاوا اسکریپت رو بفهمه. چطور؟؟؟

چیزی که این رو امکان پذیر میکنه موتوری به نام V8 است که با ++C نوشته شده و کد جاوا اسکریپت رو به زبان ماشین ترجمه میکنه. این موتور توی مرورگر تعبیه شده پس در محیط مرورگر میتونیم کد جاوا اسکریپت رو اجرا کنیم. ولی بیرون مرورگر نه.

node.js وارد میشود

node.js برنامه ای است که با ++C نوشته شده و موتور V8 رو به کاپیوتر ها میاره. چون با ++C نوشته شده، کامپیوتر اون رو میفهمه. بنابر این میتونیم جاوا اسکریپت رو توی سرور یا کامپیوترمون اجرا کنیم

ولی node.js بیشتر از این حرف هاست

node.js به غیر از موتور V8، امکانات دیگه ای رو هم به جاوا اسکریپت اضافه میکنه و اگر از node.js استفاده میکنیم میتونیم از این امکانات بهره ببریم. چیز هایی مثل:

  • خواندن و نوشتن فایل های کامپیوتر
  • ارتباط با دیتابیس
  • عمل کردن به عنوان یک سرور

جاوا اسکریپت در اصل برای مرورگر ها و برای پویا کردن سایت ها به وجود اومده و بدون node نمیتونیم از این امکانات استفاده کنیم.

البته وقتی جاوا اسکریپت رو بیرون مرورگر اجرا میکنیم یک سری چیز ها رو از دست میدیم. مثل دسترسی به DOM. خب … وقتی با سرور سر و کار داریم اصلا لازم نیست که به DOM دسترسی داشته باشیم:)

چرا ازش استفاده کنیم؟

  • دیگه نیاز نیست که یه زبان سمت سرور مثل پایتون رو یاد بگیریم.
  • جامعه عظیمی پشت node.js هست.
  • کلی پکیج و ابزار اضافه داریم تا بهمون کمک کنه

چطور نصبش کنیم؟

برای اینکه از node.js استفاده کنیم اول باید اون رو نصب کنیم.

ممکنه روی کامپیوتر تون نصب باشه اما خودتون ندونید. پس اول چک میکنیم:

۱ – اگر توی لینوکس هستید ترمینال رو باز کنید و اگر توی ویندوز هستید command prompt رو باز کنید.

۲ – تایپ کنید node -v. اگر قبلا نصب شده باشه این دستور باید یک شماره به شما بده :

node -v
v12.17.0

(این یه نسخه قدیمیه. مال شما جدیدتره.)

وگرنه باید نصبش کنید:

ویندوز:

۱ – برید به :

https://nodejs.org/en/download/current/

۲ – روی windows install کلیک کنید تا فایلش دانلود بشه و مثل بقیه برنامه ها نصبش کنید. چیز خاصی نداره که توضیح بدم.

لینوکس

با دستور زیر میتونید نصبش کنید:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

یا اگر اطلاعات بیشتری نیاز دارید:

https://github.com/nodesource/distributions/blob/master/README.md#debinstall

الان میتونیم با دستور

node file.js

یک فایل جاوااسکریپت رو روی کامپیوتر مون اجرا کنیم!

npm

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

npm یا node package manager همراه با node میاد و نیاز نیست جدا نصبش کنیم. مثلا من میخوام از فریمورک express استفاده کنم و یک سرور کوچیک بسازم. پس اول باید express رو نصب کنم.

قبل از نصب هر چیزی باید این کار رو انجام بدیم.

npm init -y

این دستور یک فایل package.json براتون میسازه که جزییات پکیج هایی که نصب کردید رو نگه میداره. فرض کنید برنامه ای دارید که فقط با express نسخه ۲ کار میکنه و با نسخه های جدید تر ممکنه دچار مشکل بشید. اینجاست که این فایل وارد عمل میشه و میگه حواستون باشه که برای این پروژه از express نسخه۲ استفاده کردید.

از طرفی دیگه اگر بخواید پروژه رو برای یکی دیگه ارسال کنید طرف مقابل کافیه این دستور رو بزنه تا همه پکیج هایی که داخل package.json تعریف شده نصب بشه:

npm install

این فایل در ابتدا این شکلیه:

حالا چطور یک پکیج نصب کنیم؟

خیلی ساده:

npm install <package name>

به جای <package name> اسم پکیج رو بنویسید. مثلا برای نصب express

npm install express

اگر دوباره به فایل package.json نگاه کنیم میبینیم که پکیج express به لیست پکیج ها اضافه شده.

برای حذف کردن پکیج هم میتونید از دستور زیر استفاده کنید:

npm remove <package name>

جزییات زیادی هستند که میتونید توی اینترنت پیدا کنید. همیشه سخت ترین قدم اولین قدمه. بقیه راه رو خودتون میتونید برید.

امیدوارم توی اولین قدم کمکتون کرده باشم.

نوشته node.js دقیقا چیه؟ + هر چیزی که برای شروع کار باید بدونید اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

مسیر وب‌کار شدن این نیست!

مسیر وب کار شدن

عرض ادب خدمت تمامی دوستان محترمی که به هر دلیل دوست دارن به سمت وب تغییر مسیر بدن و این علم چند بخشی رو یاد بگیرن.

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

وب چیست؟

وب یا تار عنکبوت که کار نداریم دقیقا از کجا اومده، به مجموعه ارتباطات با استفاده از پروتکل http در بستر tcp/ip رو وب میگن که منجر شده واژه WWW(World-Wide-Web) یا وب گسترده جهانی بوجود بیاد.

این وب عزیزمون یک مبحث میان رشته‌ای هست، به دلیل اینکه ما علاوه بر اینکه نحوه استفاده از وب رو اگر کنار بذاریم، با مفاهیم شبکه، سیستم عامل، برنامه نویسی (که خودش طراحی الگوریتم و ساختمان داده است)، دیتابیس و … سروکار داریم. لذا باید در نظر داشت اگر کسی در حوزه وب ادعایی داره، باید ببینید توی کدوم زمینه فعالیت میکنه.

ما دو تا زمینه در وب داریم که میتونیم به صورت تخصصی واردش بشیم:

فرانت-اند یا توسعه دهنده بخش کاربر

هر زمان که به وبسایتی رجوع میکنید، بخش بصری وب سایت رو در مرحله اول خواهید دید. اگر کمی حرفه‌ای تر باشید، میتونید دیگر بخش‌های اون وب سایت رو حدس بزنید. این متخصصین عزیز، فعالیتشون در حوزه همین بخش بصری وبسایته، که البته مباحث پیشرفته‌ای توش مطرح میشه مثل UI/UX که خودش دنیاییه، یعنی میخوام بگم هرچیزی که توی این بخش بوجود میاد زیر سر همین UI/UX.

این عزیزان با بکارگیری داده‌های آماری جمع آوری شده و همچنین تجربیات چند ساله در این حوزه، بهترین صفحات با کارایی بالا رو سعی در انجام دارن. که انشاءالله مطالبی رو راجع به همین UI/UX در پنجشنبه عصر منتشر خواهد شد. همینو بگم که این دوستان با مفاهیم بخش کلاینت سر و کار دارن، مثلا نحوه درخواست به سرور و همزمانی اجرای دستورات.

بک-اند یا توسعه دهنده بخش سرور

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

در بک-اند یک وبسایت، منطق و سیاست‌های کار مشخص میشه، مثلا ثبت فاکتور، نحوه تخفیف به کاربر، ثبت و ضبط انواع گزارشات، ساخت انواع سرویس‌ها و … .به طور کلی این متخصصین زیربنای یک پروژه وب رو پیاده سازی و مدیریت میکنن.

خب چه کنیم؟

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

ببینید عزیزان دل، لینکی که بهتون معرفی میکنم از وبسایت معروفی هست که مسیر یک وب کار شدن رو بهتون نشون میده(این لینک در حوزه فرانت-اند و این لینک در حوزه بک-اند) ببینید که چقدر مسیر طولانی و طاقت فرسایی پیش روی شماست، حداقل هر کسی خودشو میتونه وب کار معرفی کنه که در کمترین حالت سه سال تجربه کار حرفه‌ای داشته باشه(البته که شرایط دیجی کالا سخت تره). با این تفاسیر، بازهم هستن دانشجویانی که دلیلشون از اومدن به این رشته درآمد بالا و مهاجرت هست انگار که ما توی این رشته کار مهاجرتی انجام میدیم، لذا باید گفت که به عنوان دوره ثبت نام شده هم دقتی نمیکنن، دوره‌های فنی و حرفه‌ای رو میگم. به عنوان مثال دوره‌ای داریم تحت عنوان “مفاهیم طراحی وب” یا “web design fundamentals” که پایه‌ای‌ترین و مهمترین دوره است. سرفصل‌هایی که توی این دوره بحث میشه، کاملا راجع به مفاهیم بنیادی وب و همچنین کمی یادگیری بخش فرانت هست.

نحوه تدریس من

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

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

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

متاسفانه ایراد بعدی به کلاس من استفاده از وبسایت w3schools هست. و ایراد اینجاست که میگن اگر این وبسایته که ما خودمون میریم میخونیم دیگه چرا پول به کلاس بدیم، همینو نمیدونن که این عزیزان دل نکات رو نمیتونن از این رفرنس یاد بگیرن، منظور از نکات، فوت‌های کوزه‌گری در این حوزه است که مهمه. همچنین مورد بعدی سن هست که من ۲۳ سالمه، ظاهرا نمیتونن ببینن که میشه با ۲۳ سال سن پروژه انجام داد و تدریس کرد. یکی از دانشجویان عزیز من در دو دوره قبل، به دلیل سن من کلاس رو کنسل کرد(جالبه بدونید خودش ۱۹ سالش بود).

من قراره چکار کنم؟

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

من روشی رو پیش میگیرم در دوره‌های بعد امیدوارم جواب بده:

۱. اینکه اولین جلسه رو اختصاص میدم کاملا به مباحث تئوری

۲. از جلسه دوم شروع میکنم به برنامه نویسی تا متوجه بشن چیزی بلد نیستن، چون تکلیف اون کسی که اومده مدرک بگیره کاملا مشخصه. اینم بگم که ۱۰۰ نمره عملی دارن که باید بالای ۷۰ بشن که نمرش دست منه و ۱۰۰ نمره تئوری که باید بالای پنجاه بشن که دست فنی و حرفه‌ایه.

۳. سن یک عدده ولی متاسفانه برای بعضیا معیار سنجش، پس اینو تحت هیچ شرایطی به کسی نمیگم.

۴. ارتباط دوستانه با دانشجو برقرار نمیکنم که بهش القاء بشه من دانشم خیلی بیشتر از اونه.

انشاءالله بعد از تست کردن این بخش، حتما ادامه داستان رو براتون قرار میدم

پس مسیر وب کار شدن چی شد؟

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

مرحله اول: سعی کنید تخصص خودتونو توی عرصه برنامه نویسی مشخص کنید. مثلا وب، موبایل، دسکتاپ و …

مرحله دوم: سعی کنید کورس‌های آموزشی مختلفی چه فارسی و چه انگلیسی ببینید که به باز شدن ذهنتون خیلی کمک میکنه.

مرحله سوم: سعی کنید دانسته‌هاتونو با افراد حرفه‌ای تر توی فروم‌ها و شبکه‌های مجازی مرتبط، به اشتراک بذارید تا سطح سوادتون دستتون بیاد.

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

مرحله پنجم: با سلام و صلوات، سعی کنید توی همون شرکت به مدت خیلی کوتاه قراردادی ۳ماه ۳ماه، مشغول به کار بشید ولی مراقب نحوه قرارداد بستن باشید همچنین سفته که خیلی خیلی خیلی خیلی مهمه. این مرحله هیچوقت تموم نمیشه، سعی کنید توی این مرحله رزومه سازی کنید، تولید محتوا، نمونه کد گیت‌هاب، مشارکت در سورس کد‌های دیگه و … که مهمترین دستاورد‌های این دوره است.

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

در پناه حق باشید.

نوشته مسیر وب‌کار شدن این نیست! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

پروژه آخر هفته: ساخت سایت تمرین تایپ!

بعضی وقتا آدم دوست داره از همه تکنولوژی ها و کتابخونه هایی که تریلی اسمشون رو نمیکشه دل بکنه و برگرده به همون جاوااسکریپت و css و html خالی.

آخرین باری که این حس بهم دست داد این رو ساختم:

https://vrgl.ir/06nUR

امروز هم میخوام یه کار باحال دیگه بکنم:

چندین ماه پیش وقتی همین حس رو داشتم کمی روی پروژه ای مثل این کار کرده بودم ولی امروز میخوام کاملش کنم. در واقع اسمش رو نمیشه گذاشت “پروژه”. فقط میخوام یه صفحه ساده بسازم. اگه روش کار بشه واقعا میتونید ازش یه سایت درست و حسابی در بیارید ولی از حوصله من خارجه😁 ولی اصل کار رو انجام میدیم😎

بزن بریم‌…😊

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

۱- عادی : کاربر هنوز به اونجا نرسیده (پس زمینه سفید)

۲- فعال : حرفی که در این لحظه کاربر باید تایپ کنه( پس زمینه زرد)

۳- درست : حرفی که کاربر درست تایپ کرده( پس زمینه سبز)

۴- غلط : حرفی که کاربر غلط تایپ کرده ( پس زمینه قرمز)

بقیه ماجرا رو در عمل متوجه میشید.

اگر حوصله خوندن ندارید میتونید کد ها رو در گیتهاب ببینید.

💥کار های تکراری

فایل index.html :

معمولا همیشه یه container دارم که همه چیز رو در بر میگیره. صفحه به دو بخش تقسیم میشه: text-container و keyboard.

کلاس text-container در آینده متن ما رو نگه میداره. و keyboard هم دکمه های صفحه کلیدمون هستند:

خود keyboard رو هم به سه بخش line-one و line-two و line-three تقسیم بندی کردم که باعث میشه راحت تر اون ها رو خوشگل کنم.

فایل app.js هم خالی هست.

💥بخش css

زیاد به css نیاز نداریم.

اول از همه یک سری کار های عمومی انجام میدیم (فونت fira code رو از google fonts گرفتم) :

بر اساس وضعیت هامون یک سری کلاس میسازیم:

و یک سری استایل برای خوشگل کردن صفحه کلید:

یک سری استایل هم برای خوشگل سازی بیشتر و چیز هایی که بعدا ازشون استفاده میکنیم:

💥 بخش جاوااسکریپت

اول چیز هایی که بهشون نیاز داریم رو از html میکشیم بیرون.

const keys = document.querySelectorAll(&quot.key&quot);
const textContainer = document.querySelector(&quot.text-container&quot)

یه متن ساده هم داریم که در مورد مریم میرزاخانی عزیز هست.

text =
&quotMaryam Mirzakhani was an Iranian mathematician and a professor of mathematics at Stanford University. Her research topics included Teichmüller theory, hyperbolic geometry, ergodic theory, and symplectic geometry. In 2005, as a result of her research, she was honored in Popular Science's fourth annual 'Brilliant 10' in which she was acknowledged as one of the top 10 young minds who have pushed their fields in innovative directions."

با متغیر هامون آشنا بشید:

  • متغیر letters آرایه ای از span هاست که هر span یکی از حروف متن رو در بر داره.
  • متغیر position مشخص میکنه کجای متن رو الان باید کاربر وارد کنه.
  • متغیر time زمانی که برای تایپ کردن متن گرفته رو نگه میداره.
  • متغیر timerId رو بعدا میبینیم.
  • متغیر typing میگه که آیا کاربر شروع به تایپ کرده یا نه. با فشردن اولین کلید این متغیر true و تایمر شروع به کار میکنه.

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

متد setInterval هر ۱۰۰۰ میلی ثانیه که که میشه یک ثانیه، یکی به مقدار time اضافه میکنه. این متد یه آی دی برمیگردونه که برای متوقف کردن تایمر استفاده میشه و تو متغیر timerId ذخیره میشه.

متد init وظیفه مقدار دهی اولیه برنامه رو بر عهده داره.

خط ۵ : کلمه های متن رو با split از هم جدا میکنه و بینشون میچرخه.

خط ۶ و ۷ : این بار با split حروف هر کلمه رو جدا میکنیم و در متغیر ls ذخیره میکنیم. به آخر آرایه ls یک ‘;nbsp&’ اضافه میکنیم که توی html دقیقا معادل اسپیس هست. دلیل اینکه از خود اسپیس استفاده نکرده اینه که شاید موقع مقایسه با سایر حروف دچار مشکل بشیم.

خط ۸ : یک div ساختیم که قرار شد حروف کلمه درون اون باشند. دلیل اینکه حروف کلمه هارو توی تگ های div گذاشتیم اینه که : text-container عرض مشخصی داره. اگر تگ های div نبودند ممکن بود نصف یک کلمه توی یه خط باشه و نصف دیگه اون تو خط بعد. ما این رو نمیخوایم. میخوایم؟😡😡

خط ۹ تا ۱۳ : به ازای همه حروف داخل کلمه یک span ساختیم (خط ۱۰) که کلاس letter داره (خط ۱۱) و در آخر اون رو به div مون اضافه کردیم (خط ۱۳)

خط ۱۵ :‌ محتوای div که لیستی از span ها باشه رو گذاشتیم داخل یک تگ div جدا و کلاس word. نمدونم چرا ولی نتونستم این کار رو مستقیما با خود div اصلی انجام بدم.

در آخر متغیر a لیستی از div ها رو نگه میداره که هر کدوم یک کلمه رو نشون میدن و شامل لیستی از حروف هستند.

خط ۱۹ : آرایه a رو به هم چسبوندیم و چپوندیم تو text-container .

خط ۲۰ و ۲۱:‌گفتیم که letters باید لیستی از حروف رو نگه داره. حروف ما توی span ذخیره شدن پس همه اون ها رو میگیریم و توی letters نگهداری میکنیم. و به عضو اول این حروف هم کلاس active میدیم تا زرد بشه و کاربر بدونه که باید این رو تایپ کنه.

باید باید متد whichKey آشنا بشیم. به اسمش گیر ندید. خودمم نمیدونم چرا اسمشو این گذاشتم.

کار این متد اینه که یک حرف بگیره و اون حرف رو توی صفحه کلید با کلاس press آبی کنه. اول المنتی که در حال حاضر کلاس press داره رو از این کلاس محروم میکنیم و به جای اون کلاس press رو به المنتی که آی دی key داره میدیم. اگه به html اول کار دقت کرده باشید به ازای هر کلید توی صفحه کلید یه آیدی متناسب با حرفی که نشون میده گذاشتیم. حواستون باشه ورودی این متن (key) حرفی هست که کاربر باید تایپ کنه و ربطی یه صفحه کلید نداره.

در خط ۲۳ متد init هم کاری کردیم که حرف اول متن در صفحه کلید به رنگ آبی در بیاد.

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

یک المنت میگیره (el) و کلاس prev رو با کلاس next جایگزین میکنه.

وقتی تایپ تموم شد این متد سرعت تایپ رو نشون میشه. در خط ۲ eventListener که تنظیم کردیم رو برمیداره (این رو بعدا میبینیم) و درون text-container که قبلا متن نوشته شده بود سرعت رو نشون میده. به علاوه یک دکمه برای شروع مجدد. این دکمه متد restart رو فراخوانی میکنه.

خیلی ساده متن init رو صدا میزنه و eventListener رو دوباره راه میندازه.

همچنین اول برنامه eventListener رو تنظیم کردیم:

document.addEventListener(&quotkeydown&quot, handleKeyDown);

و در آخر

فقط یه مشت if و else ساده. چیزی برای ترسیدن نیست و اگر استراتژی مون رو یادتونه فهمیدنش کاری نداره.

این متد به باگ کوچیک داره که به کسانی که پیداش کنند به قید قرعه یه دستگاه هدیه داره میشه 🙂

خط ۲ تا ۵: اگر typing برابر false بود یعنی اولین حرفی است که کاربر داره تایپ میکنه پس تایمر رو روشن کن!

خط ۷: کلیدی که کاربر فشار داده رو میگیره

خط ۸: بر اساس position حرفی که کاربر باید تایپ کنه رو میگیره.

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

خط ۱۴ تا ۱۶: اگه بخوایم M رو بزنیم باید اول Shift رو بگیریم و بعد m رو بزنیم. این Shift برنامه ما رو به هم میریزه و ما به راحتی اون رو نادیده میگیریم.

خط ۱۸ تا ۳۰ : اگه backspace رو زده بود position رو یکی بیار عقب و با یک سری تغییر کلاس کاری کن که ظاهر برنامه حفظ بشه. بعد با توجه به اینکه کاربر حرف درستی رو وارد کرده یا نه یکم با کلاس ها بازی کن. به همین سادگی.

خط ۳۲ و ۳۳: اگه position از صفر کمتر میخواست بشه این کارو نکن تو همون صفر نگهش دار.

خط ۳۴ تا ۳۶ :‌اگه position از طول متن بیشتر شد ینی کار تایپ تموم شده پس تایمر رو متوقف کن و سرعت رو بهش نشون بده.

خط ۳۷ تا ۴۰ :‌ اگر هیچ کدوم از دو حالت بالا نبود ینی همه چه درسته و طبق برنامه عمل کن.

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

💥شما کامل ترش کنید!

میشد با یک سری تغییرات برنامه رو بهتر کنی که اگر میخواستم خودم اون هارو انجام بدم از محدوده آخر هفته ام خارج میشد. در نتیجه اون ها رو به شما میسپارم.

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

ایده دوم : همونطور که گفتم متد handleKeyDown یه باگ کوچیک داره. اون رو پیدا کنید و حلش کنید.

ایده سوم :‌ بد نیست زمان تایمر رو توی صفحه به کاربر هم نشون بدید.

ایده چهارم : صفحه کلید من نصف دکمه هارو نداشت. شما میتونید به اونها shift رو اضافه کنید و با توجه به اینکه الان چه حرفی رو کاربر باید تایپ کنه یکی از shift های چپ یا راست رو برای اون آبی کنید.

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

اگر این تغییرات رو انجام دادید یا حتی اگر مشکلی توی برنامه من دیدید میتونید اون رو توی گیتهاب هم بگذارید. باعث شادمانی من در این آخر هفته میشه 🙂

آخر هفته خوبی داشته باشید 🙂

نوشته پروژه آخر هفته: ساخت سایت تمرین تایپ! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

برنامه نویس Full Stack کیست | چگونه فول استک دولوپر شویم

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

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

برنامه نویس Full Stack یا فول استک

برنامه نویس فول استک کسی است که بتواند بر تمامی مهارت های یک برنامه نویس فرانت اند و یک برنامه نویس بک اند به طور همزمان تسلط یابد.

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

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

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

  • طراحی تجربه کاربری مناسب
  • تسلط بر مباحث UI / UX  (نمی دانید ؟ ==> UX و UI چیست)
  • کد نویسی وب
  • کار کردن با دیتا بیس
  • تسلط بر مباحث مربوط به حفظ امنیت وب سایت در برابر حملات کلاهبرداران اینترنتی
  • آگاهی کامل بر هاست و سرور و نتورک
  • آگاهی کامل از نحوه کار کردن با API
  • تسلط بر سیستم های کنترل
  • توان و پتانسیل کنترل پروژه های مختلف نرم افزاری
  • تسلط کامل بر زبان های HTML و CSS و Javascript
  • تسلط کامل بر حداقل یکی از زبان های برنامه نویسی سمت سرور و فریم ورک های آن مانند PHP یا C# یا Python و یا Nodejs
  • تسلط بر حداقل یکی از فریم فرک های جاواسکریپتی مانند React و Vue و Angular
  • تسلط کامل بر حداقل یکی از cms های معروف و توانایی توسعه آن مانند وردپرس

شما می توانید آموزش طراحی سایت با وردپرس را مشاهده نمایید.

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

برنامه نویس فرانت اند ( Front End Developer )

برنامه نویس فرانت اند در واقع طراح قسمت های ظاهری وب سایت است. در واقع، وقتی شما وارد یک وب سایت می‌شوید، تمام چیزی که با چشم می‌بینید شامل طراحی های یک برنامه نویس فرانت اند است.

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

همان طور که گفته شد وظیفه و مسئولیت کد نویسی سمت کاربر یا User Side و فراهم آوردن یک تجربه کاربری مناسب با فرانت اند دولوپر است و برای آن که بتواند به این وظیفه عمل کند باید مهارت های متعددی کسب نماید.

اگر بخواهیم یک لیست کلی از این مهارت ها ارائه دهیم می‌توانیم این مهارت ها را در سه دسته عمده HTML، CSS و جاوا اسکریپت خلاصه کنیم.

لازم به ذکر است که علاوه بر سه زبان برنامه نویسی یاد شده، یک فرانت اند دولوپر باید فریم ورک هایی مثل بوت استرپ را نیز به خوبی بشناسد.

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

برنامه نویس بک اند ( Back End Developer )

فردی که به عنوان بک اند دولوپر یا با عنوان توسعه دهنده بک اند شناخته می‌شود برنامه نویسی بخش سرور یا Server Side را برعهده دارد.

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

در واقع بک اند دولوپر تمام اطلاعات و داده های مربوط به سرور را مدیریت می‌کند. موقعی که یک کاربر با وب سایت وارد تعامل می‌شود اطلاعاتی به وجود می‌آید که این اطلاعات باید جایی ذخیره و همچنین پردازش شوند.

قسمت Back End یک وب سایت به جز سرور اصلی که پیش تر درباره آن صحبت کردیم شامل دیتا بیس و اپلیکیشن نیز می‌شود.

ابزارهایی که یک توسعه دهنده وب سایت از نوع بک اند از آن ها استفاده می‌کند، گستره بسیار بزرگی را شامل می‌شود. اما برخی زبان های برنامه نویسی هستند که از محبوبیت بیش تری برخوردارند.

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

اما سوال اصلی این است که برنامه نویس فول استک چیست؟

چگونه فول استک دولوپر شویم ؟

برای آن که بتوانید یک توسعه دهنده وب سایت از نوع فول استک محسوب شوید باید بر مهارت های زیادی تسلط یابید که در ادامه آن ها را بررسی کرده ایم:

جاوا اسکریپت ( JavaScript )

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

برای آن که بتوانید یک فول استک دولوپر باشید باید بر زبان برنامه نویسی جاوا اسکریپت و همچنین فریم ورک ها و کتابخانه های کاربردی آن به خوبی آشنا باشید و بدانید که هر یک چگونه کار می‌کنند.

HTML- Css

این دو زبان که زبان های نشانه گذاری محسوب می‌شوند به شما کمک می‌کنند نحوه قرار گرفتن اجزای مختلف صفحه در کنار یک دیگر و نحوه نمایش ان ها به کاربر را مدیریت و کنترل نمایید. CSS در زیباسازی صفحه های وب سایت شما، می‌تواند کمک بزرگی محسوب گردد.

توجه داشته باشید که این زبان های نشانه گذاری تنها توسط مرورگر ها نمایش داده می شوند، اگر از مرورگر ها اطلاعاتی ندارید می توانید مقاله موتور جستجوگر چیست را مطالعه کنید.

مشاهده کنید حقوق برنامه نویسی فول استک

نوشته برنامه نویس Full Stack کیست | چگونه فول استک دولوپر شویم اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی