موضوع‌ها
۸
فورک‌ها
۰
ستاره‌ها
۴
تاریخ ایجاد
۲۱ فروردین ۱۴۰۰
آخرین بروزرسانی
حدود ۱ سال قبل
لایسنس
GNU General Public License v3.0

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

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

  • توجه داشته باشید که این سرفصل ها رو برای نیازهای شرکت خودمون آماده کردیم و ممکنه نیاز شرکت های دیگه کمی متفاوت باشه ولی بدیهیه که بلد بودن این ها هیچ ضرری نداره :D
  • این که شما قرار در آینده فرانت کار بشید و یا در قسمت بک اند فعالیت کنید مسیر متفاوتی رو باید طی کنید ولی این دانش های مقدماتی رو برای هر دو مسیر نیاز دارید
  • اگر پیشنهادی هم برای بهبود سرفصل های ما داشته باشید خوشحال می شیم در issue ها بهمون بگید
  • اگه تمامی موارد زیر رو بلد بودید و دوست داشتید در شرکت ما کار کنید حتما رزومتون رو به ایمیل jobs در jooyeshgar.com ارسال کنید ( به جای در از @ استفاده کنید )
  • ما یک پروژه تعریف کرده ایم و در هر مرحله از آموزش قسمتی ازش را که ازتون انتظار میره بتونین تکمیل کنین مشخص کردیم. سعی شده در این پروژه حداقل مهارت های لازم تمرین شوند از این رو شما با توجه به ذوق و علاقتون میتونید قسمت های مختلفی بهش اضافه کنین. با انجام اون میتونین سطح مهارت خودتون را محک بزنید و به عنوان رزومه برای شرکتی که قراره استخدام بشین ارایه بدین.
    توصیه ما اینه از ابتدا پروژه را توی گیت هاب خودتون بزارید و تکمیل کنید. برای ما و بقیه شرکت ها خیلی جذاب که اکانت گیت ها بتون رو ببینند و نحوه کد زدن ها و کامیت ها رو. شکل نهایی پروژه در آخر همین صفحه توضیح داده شده است.

پیش نیاز ها

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

۱ - مهارت سوال پرسیدن

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

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

۲ - آشنایی مقدماتی با اینترنت و شبکه

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

  • درک مقدماتی شبکه

    ۳ - برنامه نویسی چیست؟

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

  • مبانی برنامه نویسی

    ۴ - مقدمات لینوکس

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

  • مقدمات لینوکس

اموزش غیر رایگان:

  • سیستم عامل لینوکس

    ۵ - ورژن کنترل git

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

  • آموزش گیت

    ۶ - اسکرام

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

  • اسکرام

مباحث اصلی

۱ - مبانی html و css

  • آموزش رایگان Html و Css
  • برنامه نویسی وب

    پروژه

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

۲ - مبانی جاوااسکریپت

  • آموزش جاوا اسکریپت پروژه محور

    پروژه

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

۳ - jQuery

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

۴ - PHP

برای علاقه‌مندان به backend این قسمت مهم‌تره و تسلط بیشتر تو این مورد کار شمارو راحت تر میکنه.

آموزش غیر ایگان :

  • PHP فرادرس

    پروژه

    • با استفاده php در بالای صفحه جدول کاربران تاریخ روز را نشان دهید.
    • اطلاعات کاربران فرضی را در یک آرایه ذخیره کنید و موقع نمایش جدول از آرایه اطلاعات را خوانده و نمایش دهید.
    • اطلاعات کاربران فرضی را از ارایه به یک فایل متنی انتقال دهید.(csv باشد بهتر است)هنگام نمایش جدول اطلاعات کاربران را از فایل متنی بخوانید و در جدول نمایش دهید.
    • برای انتقال اطلاعات لازمه بدونین چطور با php اطلاعات رو داخل فایل csv ذخیره کنید یا میتونین از Excel کمک بگیرید.
    • حالا به جای استفاده از جاوااسکریپت با submit فورم بالای جدول اطلاعات کاربر جدید به فایل متنی اضافه شود و در جدول نمایش داده شود و همچنین ویرایش اطلاعات و پاک کردن کاربر از فایل متنی باشد.
    • فورم صفحه ثبت نام که قبلا ساخته بودیم با پر کردن اطلاعات و تایید ، اطلاعات کاربر جدید را به انتهای فایل متنی اضافه کند.
    • در صفحه ورود اگر اطلاعات وارد شده در فورم با اطلاعات یکی از کاربران موجود در فایل متنی هماهنگی داشت با پیام خوش امدید روبرو شود.

۵ - Relational database: MySQL

  • آموزش PHP و MySQL

    پروژه

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

6 - MVC

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

  • OOP PHP

    پروژه

    • شاید وقتی به اینجا برسید تمام فایل هاتون کف پروژه باشه و کمی گیج کننده شده باشه.
    • با استفاده از معماری MVC به پروژتون نظم بدین.
    • حالا دیگه دستتون بازه و میتونین تمام چیزای دیگه ای که میخواین رو به این پروژه اضافه کنید.

مباحث تکمیلی

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

۱ - Materializecss

Materialize مجموعه ای از رابط های کاربری ساخته شده با CSS و HTML و JavaScript است.

  • Materializecss
    • میتونید به پروژتون Materializecss رو اضافه کنید و فورم ها و جدول هاتون رو به فرم اون در بیارید.

    ۲ - API

  • API

    ۳ - AJAX

  • AJAX

    ۴ - NoSQL: mongodb

  • mongodb

    ۵ - Docker

  • Docker

توصیه شده

مبحثایی که ممکنه عده ای باهاش مشکل داشته باشند و یا برای سرعت دادن به کارها خوب باشن رو اینجا معرفی میکنیم.

۱ - Regex

بسیار کاربردی برای استخراج اطلاعات از هر متنی

  • Regex

  • Regex jadi

    ۲ - tmux

  • tmux

    ۳ - vi

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

  • vi

پروژه

سایتی با قابلیت ورود با استفاده از رمز و پسوورد.
کاربران میتوانند سطح دسترسی مدیر ، کاربر عادی و کاربر غیر فعال داشته باشند.
صفحه ابتدایی سایت که در آن اطلاعات شما یا هر چیزی که دوست دارید نمایش داده شود. ترجیحا اسلایدر داشته باشه و لینک به صفحه های ورود و ثبت نام.
صفحه ای برای ثبت نام در سایت با استفاده از نام و پسوورد - دسترسی برای همه ، نام ها منحصر بفرد باشد و در صورت تکرار اجازه ثبت نام ندهد.
صفحه ای برای ورود به سایت با استفاده از نام و پسوورد.
صفحه ای برای ویرایش اطلاعات فردی - دسترسی برای مدیر و کاربر عادی.
صفحه ای برای مشاهده همه کاربران و اضافه کردن کاربر جدید و ویرایش کاربران و امکان تغییر دسترسی کاربران- دسترسی فقط مدیر.
صفحه ای با یک textarea که کاربر میتواند در آن یادداشتی نوشته و با ورود مجدد آن رامشاهده و امکان تغییر ان را داشته باشد. فقط یک یادداشت.
کاربر معمولی میتواند فقط اطلاعات خودش را ببیند و تغییر دهد و امکان حذف خود را ندارد.
کاربر غیر فعال هنگام ورود با خطای عدم دسترسی روبرو شود.
فقط یک table در دیتابیس برای user ها کافی است.
اگر بتونین با استفاده از class بنویسید خیلی برای تمرین خودتون بهتره.
به موارد امنیتی تا حدودی که بلدین اهمیت بدین.
به ui و ux سایت اهمیت بدین و از حالت پیش فرض درش بیارین.

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