چرا امروزه نمی توان یک برنامه نویس خبره شد؟

ژوئن 1, 2008 at 12:19 ب.ظ | In برنامه نویسی/کد نویسی یا توسعه | 2 Comments
Tags: , , , ,

تغییرات و نوآوری های لحظه به لحظه در فن آوری های مختلف ، عملا امکان اینکه بتونید در کاری بطور کامل مسلط و خبره بشید رو از بین می بره !

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

مقایسه میزان دانش مورد نیاز برای تسلط به C ، پاسکال و شاید کوبول ، در مقابل پلاتفرمهای مدرن امروزی مانند دات نت و جاوا ، واقعا تفاوتهای فاحشی رو نشون میده.تعداد دستورات بسیار کمتر ، انواع داده محدود تر ، عملگر های کمتر و ساده تر ، و….

بگذارید یه نگاهی به کتابخانه های نرم افزاری تولید شده در سال 1991 بیندازیم.سالیکه عملا بلوغ ویندوز از اینسال آغاز میشه.به یکباره تعداد زبانهای برنامه سازی فراوانی در محیطهای Mainframe ارائه میشن.رابطهای کاربری عمدتا متنی بوده و از قابلیتهای موشواره بهره ای نمی برند.اعتبارسنجی داده های ورودی به سهولت انجام میشن.شما بسادگی در برابر پیامی مانند: “لطفا کلیدی را جهت ادامه بفشارید ” عکس العمل ساده و مناسبی رو انجام خواهید داد. رخداد (Event) ، برنامه نویسی شی ء گرا (OOP ، زبانهای ایجاد رابط کاربری از نوع Markup مانند XAML و HTML ؟ معماری N-Tiered ؟ دسترسی اشتراکی به منابع ، تحت شبکه ؟ بومی سازی یا Globalization ؟ هنوز خبری از اینها نیست.زندگی خیلی آسون بنظر میرسه.

من براحتی و با صرف زمان کمی برنامه سازی با Perl/CGI رو آغاز کردم.برنامه نویسی در محیط Perl شباهت زیادی به برنامه نویسی در کوبول داشت.داشتن مستندات 50 صفحه ای از Perl کافی بنظر میرسید تا بتونید یک برنامه نویس خوب با Perl باشید.نیازی به دانستن مباحثی از قبیل SQL Injection نداشتیم و اصولا یک چنین نگرانیهایی وجود نداشت.من تخصص خوبی در Regular Expressions کسب کرده بودم.

در سال 1995 همزمان با معرفی رسمی جاوا توسط شرکت Sun ، یادگیری اونرو شروع کردم و بسیار برام حیرت آور بود: حدود 200 مگابایت راهنما و نمونه کدهای جاوا در قالب پرونده های HTML و بیش از یکهزار صفحه راهنمای چاپی! البته جاوا از آن زمان تا به کنون ، تغییرات زیادی رو شاهد بوده است.

زبانهای #C و VB.Net هم دست کمی از جاوا نداشتند.دست کم 500 صفحه راهنما برای داشتن دید کلی از برنامه نویسی با یکی از اونها ، ضرورت یک برنامه نویس بود.و البته در این میان ، PHP هنوز برتری منحصر بفردی داره ! بسیار ساده هست و بسرعت میتونید اونرو فرابگیرید ، حجم راهنماها بسیار کم هستند.و البته رایگان.

در مقابل ، محیطهای #C و جاوا ، بسیار گران و البته پیچیده.اگر کسی پیدا بشه که به من بگه : من توی یکی از ایندو یا هردوشون خبره هستم ، من بهش حتما خواهم گفت: یک دروغگوی بزرگ! و البته من به این موضوع باور دارم.

من کار حرفه ای با دات نت رو از ابتدای معرفی این پلاتفرم در سال 2002 شروع کردم ، اما نمیتونم بگم که در این محیط یک متخصص هستم! بلکه تنها میتونم بگم که تخصص خوب و بالایی در کار با System.Drawing ، System.Threading ، System.Net.Web و System.Text.RegularExpressions دارم.حجم اطلاعات اونقدر بالاست که در بسیاری موارد بیاد آوردن متدها ، ویژگیها و …. کار ساده ای نیست و براستی باید از پدیده IntelliSense توسط میکروسافت تقدیر کرد.

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

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

تا کنون 2 نظر داده شده »

RSS برای دیدگاه‌های‌ این نوشته. آدرس دنبالک

  1. حق با شماست، سرعت تغییرات توی ابزارها و زبان‌ها زیاده (نسبت به سال‌های گذشته)، ولی بنظرم با رعایت چند نکته، باز هم می‌شه یه برنامه‌نویس خبره شد.
    بعنوان مثال، چیزی که من اصلاً درک نمیکنمش اینه که خیلی‌ها دوست دارند هم از آژاکس سر دربیارن، هم از سی‌شارپ، هم از برنامه‌نویسی شبکه و هم از خیلی چیزهای دیگه !!! من لزوم دانستن این همه مطلب (که برخی‌هاش اساساً‌ دنیاهای جداگانه‌ای هستن برای خودشون) رو درک نمیکنم و نمیدونم که چرا باید یه همچین تبی رایج باشه بین برخی برنامه‌نویس‌ها.
    من مخالف اشتیاق برای یادگیری نیستم، ولی قرار نیست که یک نفر متخصص همه‌ی اینها باشه؛ میتونه یکیشون رو حرفه‌ای دنبال کنه و اخبار بقیه رو فقط بخاطر آگاهی از وضعیت اون تکنولوژی‌ها دنبال کنه.

    بنظرم برنامه‌نویس خبره، پس از مدتی خودش به تولید ابزار دست میزنه و این یعنی که اونقدر توی یه حوزه مسلط شده که نیازها و کمبودها رو کاملاً درک میکنه و در نتیجه می‌تونه ابزاری تولید کنه که به درد بقیه‌ی برنامه‌نویس‌ها هم بخوره. (نگاه کنید به سایت‌هایی مثل codeproject یا sf.net)

    ——–
    راستی، کمی برای وبلاگتون تبلیغ کنید. من تمام مطالبتون رو توی این مدت با دقت دنبال کردم و واقعاً حیفم میاد که چنین مطالبی سرسری خونده بشن و یا اینکه خواننده‌های کمی ازش اطلاع داشته باشن.

  2. به نظر من در زمینه برنامه‌نویسی نباید این شاخه آن شاخه کرد.
    من بر این عقیده هستم که آدم اگر دنبال یک زبان برود و آنرا فرا بگیرد، خیلی موفق‌تر از کسانی هست که سعی می‌کنند بر چند زبان مسلط شوند. البته یکسری زبان‌ها پیش نیاز است که یادگرفتن آنها بسیار لازم می‌باشد.
    به شخص بر این نظر هستم که نیاز نیست که ما تمام جزئیات یک زبان را فرا بگیریم. بهتر آن است که بدنه اصلی یک زبان را یاد گرفته و از سایر امکانات آن در مواقع لزوم استفاده کنیم.
    متاسفانه هستند کسانی که در یک یا چند زبان به طور کامل مسلط بوده ولی در هنگام حل و پیاده‌سازی یک مسئله و برنامه، نمی‌دانند که از چه چیز و کجا استفاده کنند.
    من خودم با زبان PHP و MySQL برنامه نویسی می‌کنم و در کنار آن با HTML و CSS نیز آشنایی دارم.
    به جزء چند تابع پرکاربرد آن، با بقیه توابع آشنایی ندارم و فقط در صورت لزوم به مستندات توابع مراجعه می‌کنم.


دیدگاه‌تان را بنویسید:

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

وبلاگ روی وردپرس.کام. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.