گرچه ورود به حوزهٔ توسعهٔ وب در ظاهر سریع و ساده به نظر میرسد و علاقمندان با یادگیری تکنولوژیهایی همچون CSS ،HTML و JavaScript به همراه آشنایی با برخی لایبرریها و فریمورکهای مربوطه برای بخش فرانتاند از یک سو و همچنین یادگیری یک زبان سمت سرور همچون PHP یا Ruby برای بخش بکاند از سوی دیگر، میتوانند به سادگی برچسب Web Developer روی خود بزنند، اما ماجرا به همین سادگی نیست و ما زمانی میتوانیم خود را یک وب دولوپر تمامعیار محسوب کنیم که در یکسری حوزههای دیگر نیز حرفهایی برای گفتن داشته باشیم. در همین راستا، در این مقاله قصد داریم یک Roadmap (نقشهٔراه) پنج مرحلهای ترسیم کنیم که علاقمندان به توسعهٔ وب میتوانند با دنبال کردنش، خود را یک سر و گردن از دیگر توسعهدهندگان بالاتر قرار دهند!
1. دانش خود در حوزۀ شبکه را گسترش دهید
آیا میدانید وقتی در آدرسبار مرورگر خود آدرسی همچون https://www.google.com را تایپ میکنید و وارد آن میشوید، در پشتپرده چه اتفاقاتی میافتد؟ برای اینکه راه خود را از دولوپرهای مبتدی جدا کنید و به یک دولوپر برجسته و حرفهای تبدیل شوید، لازم است تا یک دانش به اصطلاح End to End در حوزۀ شبکه به دست آورید که در این صورت خواهید توانست پاسخ سؤال بالا را بدهید. در واقع، میتوان گفت که حتی درکی ابتدایی از ساز و کار شبکه نیز شما را چند قدم از دولوپرهای دیگر پیش میاندازد. مهمترین مباحثی که در این حوزه باید یاد گرفت عبارتند از:
- آشنایی با نحوهٔ عملکرد DNS
- نحوۀ رجیستر و استفاده از دامنهها
- درک TCP/IP
- دیباگ کردن ابتدایی شبکه
- درک ساز و کار VPN
2. ساز و کار HTTP را یاد بگیرید
با اینکه HTTP خود یکی از شاخههای شبکه است، اما به دلیل اهمیت بالای آن لازم است اطلاعات بیشتری در مورد آن کسب کنید. میتوان گفت که HTTP اصلیترین پروتکل در دنیای وب است؛ پس لازم است اطلاعات خود را تا جایی که میتوانید در این مورد افزایش دهید (برای این منظور، میتوانید به آموزش نگاهی به پروتوکل HTTP و URL مراجعه نمایید.) مهمترین مباحثی که در این حوزه باید یاد گرفت عبارتند از:
- نحوهٔ تبادل دیتا در HTTP
- آشنایی با ریکوئستهای HTTP و نحوۀ استفاده از آنها
- شناخت ریسپانس کدهای اصلی و استفادهٔ درست از آنها
- پروتکل اصطلاحاً Stateless چیست و چرا اهمیت دارد؟
- شناخت و نحوۀ استفاده از هِدِرهای اصلی
- کار با HTTP خارج از محیط مرورگر
- SSL چیست، چرا و چهطور باید از آن استفاده کرد؟
3. نحوۀ کار کردن با UNIX Shell را یاد بگیرید
اگر سرورهای ویندوزی را فاکتور بگیریم، در حالت کلی احتمال زیادی وجود دارد که وبسایت و یا وب اپلیکیشن شما توسط یک سرور لینوکسی میزبانی شود و این بدان معنا است که شما باید از دانش کافی در زمینۀ کار با یونیکس شِلها برخوردار باشید. در واقع، بسیاری از دولوپرهای مبتدی به دلیل عدم آشنایی، از کار کردن در محیط کامندلاین اجتناب میکنند. اگرچه این امری عادی تلقی میشود، اما حال که تصمیم گرفتهاید دولوپری متفاوت باشید، لازم است این مهارت را فرا بگیرید (برای این منظور، توصیه میکنیم به آموزش درآمدی بر اسکریپتنویسی در محیط لینوکس مراجعه نمایید.) مهمترین مباحثی که در این حوزه باید یاد گرفت عبارتند از:
- دسترسی ریموت با استفاده از SSH
- کامندهای ابتدایی شِل
- طریقۀ استفاده از grep
- آشنایی با ادیتورهای کامندلاینی
- درک پرمیشن در فایلها و نحوۀ تغییر آنها
- یادگیری متغیرهای محیطی (Environment Variables) و نحوۀ استفاده از آنها
- نحوۀ استفاده از bashrc.
- استفاده از پکیج منِیجرهایی مانند apt و yum
- طریقۀ پیدا کردن و خواندن لاگ
- توانایی مدیریت سرویسها
- یادگیری اسکریپتنویسی با Bash
در کل، یادگیری کامل یونیکس شِل ممکن است وقت زیادی از شما بگیرد اما کاملاً ارزشش را دارد. در واقع، قدرتی که شما از کار با کامندلاین به دست میآورید، به مرور نمود پیدا میکند و باعث تغییر رویکرد شما در کار توسعهٔ وب اپلیکیشن میشود (اگر علاقمند به یادگیری نحوهٔ کار با گنو/لینوکس هستید، میتوانید به دورهٔ آموزش رایگان لینوکس در سکان آکادمی مراجعه نمایید.)
4. آشنایی با ورژن کنترلهایی همچون گیت
داشتن درک قوی از قابلیتهای Git همواره یکی از حیاتیترین مهارتهای یک دولوپر است؛ با این حال، استفاده از آن در میان دولوپرهای تازهکار خیلی رایج نیست. در حقیقت، استفاده از گیت در بسیاری از موارد میتواند مشکلات را تا حد زیادی مرتفع سازد. لازم است اشاره کنیم که انواع مختلفی از ابزارهای ورژن کنترل مانند Mercurial و SVN نیز وجود دارند اما تمرکز ما در این مقاله بر روی Git خواهد بود چرا که معروفتر است. مهمترین مباحثی که در این حوزه باید یاد گرفت عبارتند از:
- کامندهای ابتدایی مانند add ،init و commit
- توانایی کار با ریپازیتوریهای ریموت
- توانایی استفاده از push ،pull و fetch
- توانایی کار با بِرَنچها (create و merge)
- توانایی حل کردن Conflict
هرچه بیشتر دانش خود را در زمینهٔ گیت و قابلیتهای فراوان آن افزایش دهید، به دولوپر حرفهایتری تبدیل خواهید شد و در نتیجه از کار کردن با تیمی از دولوپرهای برجسته و حرفهای اعتماد به نفس بیشتری پیدا خواهید کرد.
5. آشنایی با محیط Developer Tools مرورگر
همانند ویرایشگرهای کد، دولوپر تولز یک ابزار رایج برای دولوپرهای وب است؛ بنابراین نیاز است تا در حد امکان از قابلیتهای آن آگاه باشید. به عبارت دیگر، اگر بتوانید به خوبی از قابلیتهای دولوپر تولز مرورگرتان بهره ببرید، موفقیت شما در مقایسه با دولوپرهای این حوزه تضمین شده است و رقابت برای شما آسانتر خواهد بود.
این ابزار به شما در دیباگ کردن، درک تأثیرات کدها، شناخت مشکلات پرفورمنسی و غیره کمک شایانی خواهد کرد؛ بهخصوص مرورگر گوگل کروم که یکسری ابزار قدرتمند و ارزشمند را در بخش دولپر تولز خود دارد که کار کردن برای هر دولوپری را راحت و لذتبخش میکند! مهمترین مباحثی که در این حوزه باید یاد گرفت عبارتند از:
- استفاده از کنسول برای یافتن و دیباگ کردن کدها
- استفاده از ابزار اینسپکشن برای مشاهده و تغییر مارکآپ و سیاساس در مرورگر
- نحوۀ دیباگ کردن جاوااسکریپت
- طریقۀ اینسپکت و دیباگ کردن ریکوئستهای HTTP
- تجزیه و تحلیل وبسایت برای شناسایی مشکلات پرفورمنسی آن
در واقع مزایای استفاده از دولوپر تولز به حدی است که نمیتوان آن را نادیده گرفت؛ پس لازم است همین امروز تمام قابلیتهای کاربردی آن را یاد بگیرید و به یک دولپر متمایز تبدیل شوید.
کلام آخر
با دنبال کردن چنین رودمپی مسلماً دیدتان نسبت به کدی که میزنید و نحوهٔ دیپلوی کردن سایتی که توسعه میدهید متفاوت خواهد شد. گرچه شاخههای به مراتب بیشتری میتوان به این نقشهٔراه افزود، اما آنچه در بالا بدان اشاره شد به منزلهٔ اوجب واجبات برای یک توسعهدهندهٔ وب است.
حال نوبت به نظرات شما میرسد. از دید شما، یک دولوپر وب ارشد و حرفهای به غیر از زبان یا فریمورکی که با آن کد میزند، به چه مباحث دیگری نیز میبایست مسلط باشد؟ نظرات، دیدگاهها و تجربیات خود را با دیگر کاربران سکان آکادمی به اشتراک بگذارید.