اگر در جوامع برنامهنویسی حضور داشتهاید، احتمالاً با افسانههای زیادی برخورد کردهاید که هم برنامهنویسان تازهکار و هم باتجربه را تحت تأثیر قرار میدهند. برخی خندهدارند، برخی ترسناک و برخی به آرامی افراد را متقاعد میکنند که “مناسب” برنامهنویسی نیستند، قبل از اینکه حتی شروع کرده باشند! پس بیایید نگاهی دقیقتر به افسانههایی بیاندازیم که از بین نمیروند و ببینیم چرا بیاعتبار هستند. با اِروتِک همراه باشید.
۱. برنامهنویسی یعنی فقط کد نوشتن!

اگر تازه وارد این حوزه شدهاید، کاملاً طبیعی است که فکر کنید یک برنامهنویس ۹۰٪ وقت روزانهاش را صرف ضربه زدن شدید بر روی کیبورد میکند و ساعتها خطوط کد شیک را تایپ میکند. حقیقت این است: برنامهنویسی حرفهای بسیار فراتر از کد نوشتن است و گاهی اوقات کد نوشتن کوچکترین بخش کار محسوب میشود.
یک روز معمولی به عنوان یک توسعهدهنده میتواند شبیه شعبدهبازی با مجموعهای از وظایف باشد. باید الزامات مبهم را خواند، سؤال پرسید، طراحیها را مرور کرد، معماری را برنامهریزی کرد، باگها را بررسی کرد، کد شخص دیگری را خواند، مستندات نوشت، در جلسات روزانه (Standups) شرکت کرد و گاهی اوقات فرصت کد نوشتن هم پیدا میشود.
چرا؟! زیرا توسعه نرمافزار در مورد حل مسئله است، نه صرفاً تولید کد! مشکلات دنیای واقعی نامنظم هستند. کاربران همیشه نمیدانند چه میخواهند. مشتریان نظر خود را تغییر میدهند. سیستمها به روشهای مرموزی رفتار میکنند. اغلب قبل از فکر کردن به نوشتن کد، باید جنبههای انسانی و فرآیندی کار را سر و سامان داد.
۲. برای برنامهنویسی باید یک نابغه بود!

“آیا اگر خیلی هم نخبه نباشم، میتوانم به عنوان یک برنامهنویس موفق شوم؟” این یکی از سرسختترین افسانههایی است که از تازهواردان شنیده میشود، و صادقانه بگویم، قابل درک است که چرا وجود دارد. از بیرون، برنامهنویسی میتواند شبیه چیزی به نظر برسد که فقط برای نوابغی که با حل معادلات برای تفریح بزرگ شدهاند یا قبل از رانندگی برنامه ساختهاند، محفوظ است. اما در واقعیت، برای یادگیری برنامهنویسی نیازی به نابغه بودن، اعجوبه ریاضی یا نوعی حلکننده ذاتی مشکلات نیست.
بر اساس تجربه، دیده شده که افراد خود را از نوع “استعداد ذاتی” نمیدانند. در شروع کار، ممکن است با مفاهیمی دست و پنجه نرم شود که دیگران به سرعت درک میکنند. اصطلاحات برنامهنویسی ممکن است قاطی شود، کدهایی نوشته میشود که مطلقاً کار نمیکنند و توضیحات خاصی بیش از حد تصور بازخوانی میشود. هیچکدام از این موارد مانعی برای تبدیل شدن به یک توسعهدهنده خوب نیست. این فقط به این معنی است که یادگیری با سرعت خاص خود در حال انجام است.
حقیقت این است که برنامهنویسی بیش از استعداد خام، به پشتکار، کنجکاوی و تمایل به بهبود پاداش میدهد. اکثر توسعهدهندگانی که با آنها کار شده، نابغه نبودند. آنها افرادی بودند که مدام در محل کار حاضر میشدند، مدام سؤال میپرسیدند و مهارتهای خود را اصلاح میکردند.
۳. باید تمام قواعد (Syntax) برنامهنویسی را حفظ کرد!

این افسانه، بیش از آنچه باید، تازهکاران را فراری میدهد. لحظهای که افراد برای اولین بار با چیزی شبیه به این روبهرو میشوند:
;const result = arr.reduce((acc, [key, value]) => ({ …acc, [key]: value }), {})
یا بدتر از آن، با تعریف یک قالب (Template) ++C که به نظر میرسد از یک کتاب طلسم باستانی احضار شده است، به راحتی فرض میکنند که برنامهنویسی یک تمرین بیپایان برای حفظ کردن نمادهای مرموز است.
اما توسعه واقعی اینگونه نیست. هر توسعهدهنده مشغول به کار، مهم نیست چقدر باتجربه، دائماً به دنبال قواعد میگردد. مستندات جستجو میشود، مثالها مرور میشوند، کدهای قدیمی دیده میشوند، و چیزهایی که فراموش شدهاند، جستجو میشوند. هیچکس انتظار ندارد که هر کلمه کلیدی، عملگر یا تابع داخلی حفظ شود.
آنچه در برنامهنویسی اهمیت دارد، توانایی تجزیه یک مشکل، تفکر در مورد منطق آن و طراحی یک راهحل است. قواعد (Syntax) صرفاً ابزاری هستند که برای بیان آن راهحل استفاده میشوند. این قواعد مانند دستور زبان هستند، نه پیام اصلی. بنابراین اجازه ندهید این اشتباه برنامهنویسی و افسانه وقت را تلف کند.
۴. باید قبل از شروع یک پروژه، همه چیز را دانست!
این افسانه، یکی از مواردی است که افراد زیادی فریب آن را خوردهاند. برای مدت طولانی، این باور وجود دارد که قبل از نوشتن یک خط کد برای یک پروژه جدید، باید همه چیز را دانست: هر ابزاری که استفاده خواهد شد، هر کتابخانهای که مورد نیاز است، هر مانع احتمالی، و هر جزئیاتی از نحوه عملکرد سیستم نهایی.
از آنجاییکه بسیاری از چیزها ناشناخته هستند، شکافهای دانش مانند یک پرچم قرمز بزرگ به نظر میرسند. این فکر اغلب از شروع یک پروژه خوب جلوگیری میکند. بسیاری از ایدهها یادداشت شدهاند که هرگز از مرحله برنامهریزی فراتر نرفتهاند. نه به این دلیل که پروژهها خیلی بزرگ یا پیچیده بودند، بلکه به این دلیل که این اعتقاد وجود داشت که “آماده” انجام آنها نیست.
با نگاهی به گذشته، بهتر بود این نکته ساده درک میشد: قرار نیست قبل از شروع همه چیز را دانست. بیشتر پروژههای واقعی با ساخته شدن تکامل مییابند. چیزهایی آموخته میشود که انتظارش وجود نداشت. به محدودیتهایی برخورد میشود که از قبل دیده نشده بودند. این یک شکست نیست. این ماهیت توسعه نرمافزار است.
اگر به خاطر اینکه احساس میشود هنوز دانش کافی وجود ندارد، از شروع یک پروژه خودداری شده است، این قابل درک است. اما به هر حال شروع کنید. یک چیز کوچک بسازید. بگذارید پروژه به شما بیاموزد که در مرحله بعد به چه چیزی نیاز دارید.
۵. یک برنامهنویس میتواند کل یک برنامه را بسازد!

این افسانه در چند سال اخیر بسیار رشد کرده است، به ویژه با ظهور ابزارهای هوش مصنوعی، عاملهای برنامهنویسی و فناوریهای جدید و جذاب که هر هفته عرضه میشوند. همچنین تأثیرگذاران شبکههای اجتماعی ویدیوهایی میسازند که “من یک برنامه را در ۴۸ ساعت ساختم و اکنون درآمد غیرفعال دارم.” این تصویر را ایجاد میکند که ساخت یک محصول کامل، موفق و پولیششده، کاری است که یک نفر میتواند در یک آخر هفته طولانی انجام دهد. بدون تیم، بدون پشتیبانی، و بدون پیچیدگی واقعی.
در حالیکه توسعهدهندگان تکنفره میتوانند چیزهای تأثیرگذاری بسازند، اکثر برنامههای کاربردی کامل، ایمن و مقیاسپذیر، به ویژه هر چیزی که شبیه نرمافزار سازمانی باشد، به کار گروهی بسیاری از افراد نیاز دارد. طراحان، مهندسان بکاند، مهندسان فرانتاند، تستکنندگان QA، مهندسان دواپس، متخصصان امنیت، مدیران محصول و متخصصان داده. این لیست ادامه دارد.
اما هدف این نیست که دلسرد شوید. میتوان پروژههای شگفتانگیزی را به صورت انفرادی ساخت و به تنهایی چیزهای زیادی آموخت. فقط به خاطر داشته باشید که نرمافزار بزرگ و در سطح تولید (Production-Level) به ندرت یک سفر انفرادی است.
۶. توسعهدهندگان ضد اجتماعی هستند!
یک کلیشه رایج وجود دارد که توسعهدهندگان دوست ندارند، بیرون نمیروند، در رویدادهای اجتماعی شرکت نمیکنند و نمیدانند نور خورشید چگونه است. طبق این افسانه، همه در اتاقهای کمنور و احاطه شده با مانیتور زندگی میکنند و در حالیکه بقیه دنیا را نادیده میگیرند، بیصدا کد مینویسند. این یک تصویر خندهدار است، اما خوشبختانه واقعیت ندارد.
توسعهدهندگان به اندازه هر گروه دیگری از متخصصان متنوع هستند. برخی درونگرا هستند (البته برخی از نویسندگان اینگونه هستند)، برخی برونگرا، برخی عاشق بازی با دوستان هستند، برخی عاشق کوهنوردی، برخی به رویدادها میروند، برخی بیشتر از اینفلوئنسرها در شبکههای اجتماعی پست میگذارند و برخی واقعاً از جلسات طولانی و متمرکز برنامهنویسی آرام لذت میبرند.
بر اساس تجربیات، برخی از بهترین برنامهنویسانی که با آنها کار شده است، افرادی بودند که در خارج از محل کار نیز فعالترین افراد بودند. افرادی با سرگرمیها، خانوادهها، جوامع و زندگی اجتماعی که روش برخورد آنها با مشکلات را غنیتر میکرد.
با از بین رفتن این افسانهها، اکنون باید دید روشنی از آنچه باید به عنوان یک برنامهنویس انتظار داشت، وجود داشته باشد. بر یادگیری مفاهیم اصلی، ایجاد پروژه و ساختن عادات خوب تمرکز کنید. این افسانهها جزو مواردی هستند که باید قبل از یادگیری برنامهنویسی دانست.
منبع: Howtogeek























