زبان برنامه نویسی سالیدیتی (Solidity) چیست؟
چند روز قبل، زمانی که در حال پاسخ به سوالات شما عزیزان در بخش کریپتو همراه بودم، سوالات بسیاری در خصوص لزوم یادگیری و بازار کار زبان برنامه نویسی سالیدیتی (Solidity) پرسیده شده بود، از این رو بر آن شدم تا این مقاله را به عنوان راهنمایی جامع برای زبان برنامه نویسی سالیدیتی بنویسم.
زمانی که در پاسخ به یکی از عزیزان که در مورد بازار کار بر روی قراردادهای هوشمند پرسیده بود، به این موضوع اشاره کردم که در حال حاضر توسعه دهندگان قراردادهای هوشمند در کشورهای پیشرفته می توانند سالانه تا 200 هزار دلار درآمد با کار روی سالیدیتی داشته باشند، بسیار متعجب شد و در همان حال از من پرسید:
اما مگر سالیدیتی (Solidity) چیست؟ (مگه چهار خط کد چی داره؟)
در اینجا توضیح کوتاهم در مورد چیستی سالیدیتی بدین شرح بود: سالیدیتی یک زبان برنامه نویسی است که برای ایجاد نوع خاصی از قرارداد به نام قرارداد هوشمند در بلاکچین هایی که امکان ایجاد DApp و لانچ قرارداد هوشمند را دارند، استفاده می شود.
در مجموع سالیدیتی به شرح زیر است:
- High-Level به این معنی که ظاهرا این زبان برنامه نویسی بلاکچین در مقایسه با دیگر زبان های ماشین به زبان های انسانی نزدیک تر است.
- Object-Oriented که مخفف برنامه شی گرا (OOP) است به پارادایم یا سبک یک برنامه اشاره دارد. در برنامه نویسی، پارادایم به معنی روشی است که برنامه نویس توسط آن؛ چگونه کاری را انجام می دهد یا چگونه مشکل را حل می کند؟
- Curly-Bracket نوعی زبان برنامه نویسی است که در پایتون و جاوا اسکریپت نیز کاربرد فراوان دارد و برای ایجاد قوانین محدوده بندی مورد استفاده قرار می گیرد، در اینجا به سادگی این واقعیت را توصیف می کند که سالیدیتی نیز از Bracket ها استفاده می کند: {}.
هدف Solidity چیست؟
دلیل اصلی وجود سالیدیتی این است که بتوانیم قراردادهای هوشمند را برای موارد استفاده مختلف در بلاکچین اتریوم توسعه دهیم. من در اینجا به قراردادهای هوشمند نمی پردازم، چرا که قبلا مفصل در مورد آنها گفته ایم. علاوه بر این، می توان یک قرارداد هوشمند را به روش های مختلف توضیح داد، اما در حال حاضر، کاربرد اصلی قراردادهای هوشمند، عمدتا راه اندازی توکن های مبتنی بر شبکه اتریوم، ایجاد توکن های تعویض ناپذیر، انجام فروش های جمعی و راه اندازی منصفانه، مدیریت بازارها و ساخت پروتکل های مالی در فضای دیفای است.
به طور خلاصه، در حال حال حاضر زبان سالیدیتی به هیچ کار نمی آید، مگر توسعه خدمات مبتنی بر امور مالی غیرمتمرکز DeFi.
اگر تا به حال از MetaMask، PancakeSwap، Uniswap یا Coinbase Wallet استفاده کرده باشید، درک خوبی از تعامل با یک قرارداد هوشمند دارید.
چگونه با سالیدیتی شروع کنیم؟
ابتدا خودتان را بشناسید.
با کلیک بر روی freecodecamp به یک ویدیوی رایگان عالی هدایت خواهید شد که می تواند نقطه آغاز خوبی برای شما باشد. این ویدیو به نوعی یک آموزش کامل است که به زبان انگلیسی توضیح داده شده و در حدود یک ساعت و نیم به زمان نیاز دارد. در مرحله بعد، خوب است که به soliditylang بروید که پایه اصلی همه چیز سالیدیتی است، و در آنجا شروع به خواندن مستندات بکنید. این اسناد علاوه بر زبان انگلیسی به زبان های فارسی، فرانسوی، اندونزیایی، ژاپنی، کره ای و چینی نیز موجود است. در نهایت، زمانی که از نقطه شروع عبور کردید، به یک کامپایلر نیاز دارید. محبوب ترین کامپایلر؛ Remix اتریوم است که می تواند در توسعه قراردادهای هوشمند به زبان سالیدیتی، بسیار به کاربران کمک کند.
آیا دوره های آموزش رسمی برای سالیدیتی (Solidity) وجود دارد؟
دانشگاه ها و کالج ها شروع به ارائه دوره های Solidity به عنوان بخشی از Boot Campها کرده اند، اما اگر بخواهیم صادقانه بگوییم، احتمالاً نیازی نیست که برای یادگیری زبان برنامه نویسی سالیدیتی به دانشگاه برویم، زیرا حتی اگر آنها شروع به ارائه مدارک پیشرفته کنند، بازهم انبوهی از دوره های آنلاین رایگان یا ارزان وجود دارد که می توانیم در آنها شرکت کنیم، نمونه های بسیاری از این دوره ها را پیشتر در بخش موقعیت های آموزشی پیشنهاد داده ایم. علاوه بر آن نیز می توان از دوره هایی مانند آنچه که در بالا از freecodecamp.org معرفی کردیم یا تهیه دوره جامع مبتدی تا حرفه ای سالیدیتی ارائه شده توسط مرجع معتبر آموزشی Udemy که تنها 13 یورو هزینه دارد، استفاده کرد.
چرا برنامه نویسان سالیدیتی درآمد زیادی دارند؟
من می توانم این را به هزاران روش مختلف توضیح دهم، اما ساده ترین روش این است که فقط بگوییم: «عرضه و تقاضا»، بلاکچین و قراردادهای هوشمند هنوز فناوری های جدید و نوظهوری هستند، و هر چیزی که جدید است، برای بیشتر مردم تازگی و جذابیت دارد، در نتیجه سطح تقاضای آن بالا می رود و بواسطه آن ارزشمندتر می شود.
مدتی پیش از نیل داندون، بنیانگذار Crypto Recruit سوالات مشابهی در خصوص رشد تقاضا برای یادگیری زبان برنامه نویسی سالیدیتی (Solidity) پرسیده شده بود که او به آنها اینگونه پاسخ داد:
این مانند هر چیز دیگری است، عرضه و تقاضا است. در حال حاضر کمبود توسعه دهندگان سالیدیتی وجود دارد و به همین دلیل است که دستمزدها بسیار بالا است…، همچنین تمرکز زیادی از سوی مشتریان ما برای توسعه دهندگان با تجربه و اعتبار اثبات شده وجود دارد، آنها در حالت ایده آل توسعه دهندگانی با سوابق اثبات شده و کدی که در شبکه اصلی پروژه های بزرگ مستقر شده را می خواهند.
اگر به دنبال آن بسته 200 هزار دلاری هستید، به آخرین توصیه های نیل توجه کنید، به ویژه بخشی که مربوط به کدهای مستقر شده بر روی شبکه اصلی است.
اجماع
با ماهیتی که حوزه بلاکچین و قراردادهای هوشمند دارد، هر کسی می تواند در آن شروع به کار کند و به گونه ای درگیرش شود. اما آیا به این معنی است که همه می توانند خوب باشند؟ نه، اینطور نیست. چرا که استخدام کننده ها نیز این را می دانند، آنها آموزش دیده اند تا اتلاف کننده های زمان و انرژی را شناسایی کنند و از بین ببرند، روشی که آنها این کار را انجام می دهند با درخواست مشاهده کدهایی است که استفاده، مستقر و ممیزی شده است (همانگونه که نیل در بالا گفت). بنابراین، خوب است که به این حوزه وارد شویم و بیاموزیم، اما قبل از شروع ارسال رزومه باید به این بیاندیشیم که چه چیزی برای ارائه داریم؟
حتی اگر در نوشتن کد عالی هم باشیم و فقط به این دلیل که در حال حاضر تقاضای زیادی برای آن وجود دارد، به این معنی نیست که بدون یک راهنمای قابل اعتماد و مجرب در بازار کار و بدون شناسایی نیاز استخدام کنندگان، بتوانیم از مصاحبه های کاری سربلند بیرون بیاییم، بلکه آن چیزی که برای ارائه به کارفرما آماده می کنیم، از هرچیزی مهم تر است.
دیدگاهتان را بنویسید