باورهای اشتباهی که بسیاری از برنامه نویسان دارند!

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

البته باید توجه داشت که برخی از این باورها، الزاما هم ربطی به برنامه‏نویسها ندارد و شاید درباره خیلی‏ها دیگر هم درست باشد. (برای نمونه همین مورد اول)

اصرار بر باور خودمان

این که اصرار داشته باشیم حتما باور ما درست است، سبب می‏شود که سخن بقیه را نشنویم؛ حتی اگر تظاهر به شنیدن آنها بکنیم.

همیشه باید این شک را داشت که شاید راه حل ما یا شیوه تفکر ما نسبت به یک مسئله درست نباشد؛ تا بتوان سخن بقیه را شنید، درک کرد و آن را بی طرفانه سنجید.

مشتری هیچ وقت نمی‏داند که چه می‏خواهد

اگر حتی شش ماه در زمینه برنامه‏نویسی کار کرده باشید، به احتمال زیاد این سخن را بارها و بارها از دوستان، همکاران و یا رئیستان شنیده باشید. در حالی که به نظر من، این مسئله همیشه درست نیست. بعضی وقتها (اگر نگویم خیلی وقتها) مشتری دقیقا می‏داند که چه می‏خواهد. اگر چه شاید بتوان بهبودهایی را به او پیشنهاد کرد.

دلیل این که کد یک نفر را نمی‏توان خواند، درست کد ننوشتن او است

همیشه خواندن کد دشوار است. حتی خواندن بهترین و تمیزترین کدهای نوشته شده به دست بهترین برنامه‏نویسان دنیا. من سه دسته مشخص کد را به شخصه زیر و رو کردم: کدهای Net Framework، کدهای VCL (کتابخانه کنترلهای دیداری دلفی) و کدهای CentOS (یک نگارش مشهور لینوکس که خیلی شبیه به Redhat درست شده ولی رایگان است). همه کدها به شدت تمیز و ساختار مند نوشته شده‏اند ولی با این حال خواندن آنها دشوار بوده و نیاز به تمرکز دارد.

بنابراین این قدر سخت‏گیر نباشید و از کد بقیه ایراد نگیرید. کد فعلی خود شما هم اگر توسط یک برنامه نویس حرفه‏ای‏تر بازبینی شود، شاید کاملا غیر بهینه و زشت به نظر بیاید و او بتواند کد شما را خیلی بهتر و تمیزتر بنویسد. توجه داشته باشید که همه کدها (به نسبت کد بهتر) کثیف هستند. مطمئنا حتی کدهای کتابخانه‏های بالا را که مثال زدم هم می‏شود بهبود داد. همه چیز نسبی است.

برنامه‏نویسی مهمترین و بزرگترین بخش یک پروژه است

این باور کاملا نادرست است. من شخصا از داشتن چنین باوری، بسیار ضرر کردم. حداقل تحلیل و طراحی یک سیستم بخشهای بسیار مهمی هستند که در کنار برنامه‏نویسی قرار می‏گیرند.

تازه همه اینها، بخش فنی کار هستند. مسائلی مانند بازاریابی، جذب مشتری، ارائه درست محصول، کارهای حقوقی (ثبت شرکت، نوشتن قراردادها)، مدیریت درست، طراحی استراتژی درست برای فروش، کارهای خدماتی (نظافت محل کار، فراهم کردن فضای مناسب کاری و ...)، بسته‏بندی درست، طراحی گرافیکی، طراحی وبسایت برای عرضه محصول، تبلیغات درست، تعیین درست بازار هدف، استخدام نیروهای درست برای بخشهای پروژه، زمان‏بندی درست و خیلی کارهای دیگری تعیین کننده هستند.

شما اگر بهترین برنامه‏نویس هم باشید، این را باید بدانید که کار شما تنها 20% (و تازه شاید خیلی هم کمتر) از کل کارهای یک پروژه است. برای راه انداختن یک شرکت نیاز به همه عواملی هست که بر شمردم. داشتن برنامه نویس خوب مثل همان جک مشهور است که فردی یک دکمه برده بود خیاطی و از خیاط می‏خواست که یک کت خوب برای این دکمه بدوزد.

حتما قبلا کسی این کار را کرده است

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

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

هر چه یک کد طولانی‏تر باشد، احتمالا حرفه‏ای تر است

این دیگه از آن باورهای کاملا نادرست است. بر اساس قانون KISS یا «نادون هر چه ساده‏تر بهتر»، روش ساده‏تر برای انجام یک کار، درست‏ترین روش است. تا به حال بسیار پیش آمده که کدی که دو روز سر آن وقت گذاشته‏ام را مرور کردم (که مثلا شده است 1000 خط) و دیده‏ام که چقدر همه چیز را پیچیده کرده‏ام. همه چیز را پاک کرده‏ام و دوباره خیلی بهتر و موثرتر و کم‏باگ تر آن را با 50 خط نوشته‏ام.
این را باید همیشه به خاطر داشت که می‏شود کد را ساده‏تر و بهتر نوشت. این طوری باگها هم کمتر می‏شوند و خطایابی هم آسان‏تر خواهد بود.

برنامه‏نویسی خیلی کار با حال و خفنی است

برنامه‏نویسی جذابیتهای خیلی زیادی دارد. ولی از سوی دیگر مانند همه کارها است. دقیقا مانند همه کارهای دیگر دنیا. آن چنان که فکر هم می‏کنید این کار با حال و خفن نیست.

برنامه‏نویسی پیچیده‏ترین کار دنیا است

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

اینها چیزهایی بود که به ذهن من می‏رسید.

تصویر ناشناس

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

موفق باشید

تصویر ناشناس

سلام دوستان

من یکی از یرنامه نویسان یک شرکت بزرگ که شاخه ای از apple است هستم/
به نظر من اوون که اینا رو نوشته یا برنامه نویس نبوده یا برنامه نویس ضعیفی بوده یا اعتماد به نفس نداشته....

این چیزها رو من با چشم خودم دیدم:
گران ترین آدمها برنامه نویسها هستند
در آمریکا از مشکل ترین کارها (به قول شما خفن ترین ها) برنامه نویسی است
کدهای خیلی مهم در 80 درصد کارهای ما حتما طولانی هم می شوند
بخش عظیمی از لحاظ سودآوری و تکیه گاه بودن از شرکت اپل همین برنامه نویسها هستند
عمده دید تحلیل و نو آوری را در شرکت ما برنامه نویسها می دهند!
اصولا تحلیل گران خوب و مدیران خوب اوونایی هستند که روزی برنامه نویس خوبی بودند/.
کارهایی که ما برای MAC می کنیم در هیچ جا پیداش نکردیم!! ( به قول یه هندی توی تیم ما : مرتب در حال اختراع رینگهای متنوع برای چرخهامون هستیم!!!)
اعتماد به نفس حرف اول رو می زنه! همیشه ما همه کاری رو می توانیم بکنیم!!!!!

ممنون دوستان///
http://eforosh.com/cont

تصویر سینا

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

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

تصویر narcissus

سلام

مطبی جالبی برام بود . :)

تصویر Roxro

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

تصویر شاهزاده احمدی

سپاسگذارم. امیدوارم شما هم همیشه موفق باشید.

تصویر میثم

مطلب خوبی نشوشتین!
واسه بهتر شدنش(و همینطور امانتداری) توصیه میکنم از ارجاع دادن استفاده بکنید(مثلا به سایت هایی مثل makinggoodsoftware.com ، نوشته های خوبی داره!)

تصویر شاهزاده احمدی

سایت رو دیدم. بعید نیست که قبلا هم در dzone.com لینکی از این سایت بوده باشه و من خوانده باشم. ولی این مطلب را کاملا بر اساس نمونه‏های واقعی که در ذهنم هست نوشته‏ام. در واقع برای هر کدام از این موارد دو سه نفری از همکارانم در ذهنم هست که دقیقا این طوری فکر می‏کنند. البته بعضی ها هم باورهای خودم بوده و خیلی خیلی به من ضرر وارد کرده است (اینکه مهمترین کار در یک پروژه برنامه نویسی، خود برنامه نویسی است) در هر حال از دیدگاهی که نوشتید سپاسگذارم. این جوری دیگران میتوانند نوشته من را با نوشته های این سایت مقایسه کنند.

تصویر ناشناس

البته برنامه نویسی بخش اصلی کار نیست، اما
1. برنامه نویسی عموماً حجیمترین بخش کار است.
2. بیشترین هزینه بایستی در این بخش صرف شود.
3. تحلیلگری که برنامه نویس نباشد، عمدتاً تحلیل و برنامه‌ریزی مناسبی ارائه نمی‌کند.

در ضمن باید توجه داشت هر کس که کد بزند، برنامه نویس نیست! برنامه نویس کدری است که علاوه بر کد زدن از آموزش صحیح، تجربه، دید نرم‌افزاری و البته هوش کافی برخوردار باشد.

تصویر شاهزاده احمدی

ممکن است برنامه نویسی حجیمترین بخش کار باشد (که تازه من فکر نمی‏کنم این طوری هم باشد) ولی مهمترین بخش کار نیست. همان طور که گفتم بازاریابی، عرضه درست محصول و خیلی از کارهای دیگری مانند مدیریت پروژه بخشهای بسیار مهمتری هستند. این حرف من شامل کل تیم برنامه نویسی است (از جمله تحلیل گر و طراح)

فرستادن دیدگاه تازه

پست الکترونیک شما نمایش داده نشده و به هیچ کسی نیز داده نمی‏شود.