این گفتگو با حضور آقای امین رفیع (برنامهنویس پایتون، فارغالتحصیل کارشناسی ارشد روابط بینالملل و کارشناس روابط عمومی) و به میزبانی انجمن RP برگزار شده است.
با سلام و درود. امروز با موضوع تکنولوژی و دنیای هیجانانگیز برنامهنویسی در خدمت شما هستیم و میزبان آقای امین رفیع خواهیم بود که به عنوان مدرس با موسسه آرپی همکاری داشتهاند.
بخش اول: برنامهنویسی چیست و چه پیشنیازهایی دارد؟
برای افرادی که کاملاً تازهکار هستند، لطفاً توضیح دهید که اصلاً برنامهنویسی یعنی چه؟
برنامهنویسی یعنی اینکه ما به کامپیوتر که به خودی خود قدرت تحلیل ندارد اما سرعت بسیار بالایی دارد، دستور بدهیم تا کارهایی را که مدنظر ماست، انجام دهد. همانطور که برای دم کردن چای مراحل مشخصی را طی میکنیم، در برنامهنویسی نیز یک مسئله را به مراحل کوچکتر تقسیم کرده و با دستورات دقیق، روش حل را به کامپیوتر آموزش میدهیم. این کار سختیهای خود را دارد، اما به همان اندازه جذاب است.
آیا برای شروع، به دانش پیشنیاز خاصی مانند ریاضی یا زبان انگلیسی نیاز داریم؟
بستگی به حوزه کاری شما دارد:
- ریاضی: برای اکثر حوزهها، آشنایی با چهار عمل اصلی کافی است. اما اگر بخواهید وارد شاخههای تخصصی مانند هوش مصنوعی یا تحلیل داده شوید، به دانش پیشرفتهتری مانند جبر خطی و آمار و احتمال نیاز خواهید داشت.
- زبان انگلیسی: اگر هدف شما کار در بازار داخلی ایران است، تسلط در حدی که بتوانید مستندات (داکیومنتها) را بخوانید، کافی است. اما برای ورود به بازارهای بینالمللی و گرفتن پروژههای دلاری، تسلط به زبان انگلیسی برای برقراری ارتباط ضروری است.
بخش دوم: انتخاب زبان برنامهنویسی و مسیر شغلی
زبانهای برنامهنویسی چه تفاوتهایی با هم دارند و برای شروع کدام سادهتر است؟
زبانها در کاربرد، نحوه نوشتار (سینتکس)، جامعه برنامهنویسان و نزدیکی به سختافزار با هم متفاوتند. برای مثال، برای حوزه هوش مصنوعی، پایتون گزینهی مناسبی است. برای بازیسازی سیشارپ کاربرد دارد و برای کار با سختافزار، زبانهایی مانند سی استفاده میشوند. بسیاری از برنامهنویسان معتقدند پایتون به دلیل سادگی، برای شروع مناسبتر است.
برنامهنویسی به چه درد ما میخورد، از کجا باید شروع کنیم و آیا درآمد خوبی دارد؟
علاقه، مهمترین انگیزه برای ورود به این حوزه است. اگر صرفاً به هوای درآمد وارد شوید، ممکن است سختیهای مسیر شما را دلسرد کند. برنامهنویسی به شما کمک میکند تا مسائل را از طریق کامپیوتر حل کنید. برای شروع، میتوانید از دورههای آنلاین، ویدیوهای آموزشی یا حتی ابزارهای هوش مصنوعی استفاده کنید. در مورد درآمد هم، اگر به سطح حرفهای برسید، درآمد آن کاملاً قابل توجه است.
یک فرد مبتدی که تازه شروع کرده، چقدر زمان میبرد تا به درآمد قابل قبولی برسد؟
این موضوع بستگی به تمرین و استعداد هر فرد دارد. اما به عنوان یک برنامهنویس تازهکار یا جونیور ، پس از چند ماه تمرین میتوانید پروژههای اولیه را انجام دهید. حقوق یک برنامهنویس جونیور در ابتدا خیلی بالا نیست، اما با افزایش تجربه و رسیدن به سطوح بالاتر، درآمد به شکل چشمگیری افزایش مییابد.
بخش سوم: چالشها و دسترسیپذیری برای افراد با آسیب بینایی
میزبان (به نقل از آقای عامری): به عنوان فردی که آسیب بینایی دارم، آیا برنامهنویسی برای من قابل دسترس است و با چه چالشهایی روبرو خواهم شد؟
این یک تصور اشتباه است که برنامهنویسی برای ما دسترسپذیر نیست. من هم در ابتدا همین تصور را داشتم اما دیدم که کاملاً امکانپذیر است. نرمافزارهای کدنویسی (Code Editor) متعددی مانند ویژوال استودیو کد (VS Code)، اسپایدر و نوتپد با صفحهخوانها کاملاً سازگار هستند و هیچ محدودیتی از این بابت وجود ندارد.
تنها چالش اصلی ممکن است در طراحی بخش ظاهری و گرافیکی (UI) برنامهها باشد. پیادهسازی منطق و هسته اصلی برنامه (بکاند) هیچ مشکلی ندارد، اما برای طراحی جلوههای بصری ممکن است به کمک یک همکار بینا یا حفظ کردن کدهای مربوط به ظاهر نیاز پیدا کنید. با این حال، حتی در این زمینه هم افراد نابینای موفقی وجود دارند که این کار را انجام میدهند.
اگر در حین کدنویسی اشتباهی رخ دهد، افراد نابینا چگونه متوجه آن میشوند؟
زمانی که کد شما خطا داشته باشد، برنامه اجرا نمیشود و یک پیام خطا (Error Message) نمایش داده میشود. صفحهخوان این پیام را برای شما میخواند و دقیقاً مشخص میکند که مشکل در کدام خط از کد شماست. برای خطاهایی که مانع اجرای برنامه نمیشوند اما باعث عملکرد نادرست آن میشوند (که به آنها باگ میگویند)، ابزارهایی به نام دیباگر (Debugger) در محیطهای برنامهنویسی وجود دارد که به شما در پیدا کردن این اشکالات کمک میکنند.
بخش چهارم: پرسش و پاسخ تکمیلی
آیا در حوزه هک و امنیت هم فعالیتی دارید و میتوانید نقشه راه ارائه دهید؟ و چه ابزار هوش مصنوعی خوبی را پیشنهاد میکنید؟
من شخصاً در حال یادگیری مباحث شبکه هستم و هنوز در حوزه هک و امنیت تجربهای برای ارائه مشاوره ندارم. اما برای دریافت نقشه راه، میتوانید از ابزارهای هوش مصنوعی مانند چتجیپیتی (ChatGPT) یا سایت تخصصی Roadmap.sh استفاده کنید. در مورد هوش مصنوعی، من بیشتر از چتجیپیتی استفاده میکنم.
آیا برای کار فریلنسری حتماً باید از زبانهای جدید استفاده کرد یا با زبانهای قدیمیتر مثل ویژوال بیسیک ۶ هم میتوان پروژه گرفت؟
بله، قطعاً میشود. من خودم آگهیهای پروژهای را دیدهام که نیازمند تخصص در ویژوال بیسیک بودهاند. ممکن است تعداد این پروژهها کمتر از زبانهای جدیدتر باشد، اما بازار کار برای همه زبانها، حتی زبانهای قدیمیتر، وجود دارد.
بخش پنجم: سطوح مهارت و توصیههای پایانی
تفاوت یک برنامهنویس تازهکار با یک فرد حرفهای در چیست؟
برنامهنویسان معمولاً به سه سطح تقسیم میشوند:
- جونیور (تازهکار): با کمتر از دو سال تجربه که روی وظایف کوچکتر و تحت نظارت کار میکند.
- میدلول (متوسط): با دو تا پنج سال تجربه که میتواند وظایف پیچیدهتری را به صورت مستقل انجام دهد.
- سینیور (ارشد/حرفهای): با بیش از پنج سال تجربه که بر معماری کلی پروژهها نظارت دارد و اعضای دیگر تیم را راهنمایی میکند.
نکته کلیدی این است که از خطاها و چالشها نترسید. هر خطا یک معلم رایگان است که به شما نکته جدیدی را آموزش میدهد. با صبر و تمرین مستمر، میتوانید پیشرفت کنید. خودتان را با دیگران مقایسه نکنید و فقط روی مسیر رشد شخصی خودتان تمرکز کنید.
بسیار سپاسگزارم از توضیحات جامع و ارزشمند شما. امیدواریم این گفتگو برای تمام علاقهمندان مفید بوده باشد. تا دیداری دیگر، بدرود.
تماشا در آپارات