پیش نیازهای آموزش ری اکت

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

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

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

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

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

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



پیش نیاز صفرم : زبان انگلیسی

اینکه چرا زبان انگلیسی رو باید بلد باشیم خیلی واضحه اما به چند ضرورتش اشاره میکنم:
هر تلکنولوژی ، زبان برنامه نویسی ،‌ کتابخونه ، ماژول و ... که منتشر میشه شامل یک داکیومنت هست که نحوه کار و استفاده از اون رو کاملا توضیح میده . از طرفی یه توسعه دهنده خوب برای مثال با سایت هایی مثل github & stackOverflow کار میکنه که کاملا انگلیسی هستند . اکثر آموزش های خوبی که وجود داره (حالا تو هر موضوعی که باشه) انگلیسی هستند. پس انگلیسی ابزار مناسبی هست برای اینکه بتونید سریع تر پیشرفت کنید.

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


پیش نیاز اول: تایپ ۱۰ انگشتی

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

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

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

https://p30download.com/fa/entry/1463/

این برنامه شامل ۱۲ درس هست که به صورت کامل روی آموزش شما کار میکنه .
حتما اول که شروع میکنید نامید میشید اما بعد چند روز میبینید که چه قدر تغییر کردید. وقتی به استفاده از کلید shift میرسید بازم نامید میشید اما اون هم میگذره و در نهایت چیزی رو یاد میگیرید که تا آخر عمر باهاتون میمونه!

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

https://p30download.com/fa/entry/77051/

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

حداقل دانش لازم:
استفاده از همه انگشتان دست برای تایپ


پیش نیاز دوم:‌ ویرایشگر کد استاندارد

مثل سایر زبان های برنامه نویسی شما به یک کد ادیتور خوب نیاز دارید. ممکنه براتون سوال باشه که مگه خود notepad و ... وجود ندارند ؟‌
باید بگم خدمتتون که یه ویرایشگر کد به شما کمک میکنه که سریعتر برنامه نویسی کنید. بهتون کمک میکنه تا خطاها رو راحت تر ببینید و اصلاح کنید و اینکه هزاران کار دیگه 🥳
برای مثال من یه قسمت از کد HTML رو با استفاده از نوت پد (ساده ترین ادیتور که پیش فرض روی همه سیستم ها وجود داره) و یه برنامه حرفه ای باز میکنم تا حداقل تفاوت های ظاهریشو ببینید:


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

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

https://code.visualstudio.com/download

کمپانی ارائه دهنده این Editor مایکروسافت هست و همه ورژن های این برنامه رایگان هستند .

رقیب سر سخت و قدرتمند مایکروسافت در این بخش، کمپانی JetBrain هست که سابقه طولانی در ضمینه تولید نرم افزار های مختلف برای توسعه دهندگان داره . این کمپانی به صورت تخصصی برای زبان های مختلفی مثل پایتون ، Go lang ، C و ... ادیتور ویژه رو داره .
محصولات این کمپانی هم به صورت رایگان و هم به صورت لایسنس فروخته میشن که برای مثال ادیتور PyCharm ( برای توسعه با زبان پایتون) کاملا رایگان هست (نسخه Community) ولی ادیتور مورد نیاز ما برای توسعه ری اکت و حتی ری اکت نیتیو ٌبه صورت لایسنس موجود هست .
WebStorm اسم قدرتمندی هست که متاسفانه نسخه رایگان نداره . و از اونجایی که با کرک و ... هم مخالفم پس بهتره که از همون VSCode استفاده کنید.

ادیتور های قدرتمند دیگه هم هستند که به عنوان مثال میشه به Atom و همچنین Sublime استفاده کرد.
ولی VSCode & WebStorm  فراتر از یک ادیتور معمولی هستند.



پش نیاز سوم: HTML

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

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

https://www.w3schools.com/html/
حداقل دانش لازم:
تگ های اصلی HTML مثل html, header, body
تگ هایی مثل div , p , img, a, form, button, span, input

پیش نیاز چهارم: CSS

هر جا اسم از HTML میاد به CSS هم نیاز میشه و این دوتا دوست جدا نشدنی مفاهیم ساده و ابتدایی رو دارن که یادگیریشون رو راحت میکنه. البته مباحث پیچیده HTML & CSS هم وجود داره که فعلا برای شروع کار بهشون نیاز پیدا نمیکنید. برای CSS هم بهترین منبع آموزشی :


https://www.w3schools.com/css/


حداقل دانش لازم:
آشنایی با خصوصیاتی مثل : flex - position - width - height - background color - color - padding - margin - border - font
آشنایی با نحوه استایل دهی به المان های مختلف بر اساس کلاس و آی دی و ...

پیش نیا پنجم: جاواسکریپت

کتابخونه ری اکت (دقت کنید که کتابخونه است و نه فریم ورک ) به زبون جاواسکریپت نوشته شده پس خیلی واضحه که چرا به جاواسکریپت نیاز داریم.
خوشبختانه همه قسمت های جاواسکریپت رو لازم نیست که یاد بگیرید. من لیستی از مهمترین بخش های اون که برای شروع لازم هست رو معرفی میکنم :

Basic Syntaxes
Functional programming with JavaScript
Arrow functions
Object Oriented Programming in JavaScript (classes)
ES Modules
The basics of asynchronous programming: callbacks, promises, async/await
this
The spread operator
Destructuring assignments
Object literals
map, reduce and filter functions
DOM & DOM Manipulation

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


سایر نوشته های من در ویرگول:

https://virgool.io/iran-react-community/آموزش-مبتدی-react-native-همراه-با-مثال-از-صفر-تا-۱%DB%B0%DB%B0-قسمت-اول-cyqz5skqhuxv
https://virgool.io/iran-react-community/نکات-طلایی-برای-توسعه-دهندگان-ری-اکت-نیتو-reactnative-قسمت-۱-l8kuhkrr98ps
https://virgool.io/iran-react-community/ری-اکت-رو-قورت-بده-۱-u8t5ysweyxyj
https://virgool.io/@novonimo/آموزش-مقدماتی-دارت-dart-قسمت-۱-vrd1jjuoble1

Contact With me:
https://t.me/nimamohamadian
https://www.facebook.com/nimamohamadian89
https://twitter.com/Nima_Mohamadian
https://www.linkedin.com/in/nima-mohamadian-57ba63123/