اولین و با کیفیت ترین پلتفرم آموزش برنامه نویسی در ایران
استعداد برنامه نویسی چیست؟
برای اینکه بتوانیم درک کنیم یک شخصی استعداد برنامه نویسی دارد یا نه ابتدا باید تعریفی از استعداد در برنامه نویسی داشته باشیم و ببینیم که آیا استعداد در برنامه نویسی اصلا وجود دارد یا نه ؟ ما در این مقاله بصورت مفصل در این باره صحبت کرده ایم ، گفته های بزرگان برنامه نویسی این باره را آورده ایم و در نهایت یک تست استعداد یابی برنامه نویسی قرار داده ایم. پس با این مقاله تا آخر همراه باشید تا نکات و آموزش های آن را از دست ندهید.
آیا چیزی به اسم استعداد برنامه نویسی وجود دارد ؟
برای بررسی استعداد برنامه نویسی ابتدا خود استعداد را بررسی کنیم ، استعداد بطور خیلی ساده یعنی توانایی ذاتی برای انجام دادن با کیفیت کارها ، مثلا وقتی کودکی یک آهنگ را بصورت زیبا اجرا کند به او میگوییم استعداد خوانندگی داری و یا زمانی که یک نفر فوتبال خوبی بازی میکند به او میگوییم استعداد فوتبال داری !
این در حالیست که بسیاری از کارشناسان و روانشناسان اعتقادی به وجود استعداد ندارند و معمولا چنین سخن هایی میگویند :
استعدادی وجود ندارد و افرادی هم که توانایی انجام کارهای خاص را دارند مسیرهای عصبی خوبی برای انجام آن کار دارند یا خودشان ایجاد کرده اند. وقتی مسیر عصبی ساخته میشود یک فرد آن کار را به نحو احسن انجام میدهد و به او میگویند فرد با استعداد.فرض کنید در خانه ای که پدر و مادر موسیقی دان هستند فرزند با سازهای موسیقی بازی میکند و این یعنی ایجاد مسیرهای عصبی و در نهایت وقتی آن کودک نوازندگی میکند همه میگویند استعداد موسیقی دارد.
حال اگر ما بخواهیم استعداد برنامه نویسی را چیز ذاتی ندانیم و بعنوان مسیرهای عصبی بشناسیم پس چطور باید این مسیرهای عصبی را در برنامه نویسی ایجاد کنیم که همه به ما بگویند برنامه نویس با استعداد ... در ادامه ی مقاله راه کارهای خوبی ارائه خواهد شد.
همانطور که در بالا نیز اشاره شد منظور از استعداد در برنامه نویسی همان مسیرهای عصبی انجام کارها هست و در برنامه نویسی هم با تمرین و تکرار و تلاش این مسیرهای عصبی رفته رفته تقویت میشود. برای مثال وقتی شما یک اپلیکیشن جدیدی میسازید اپلیکیشن بعدی با کیفیت تر خواهد شد و حتی مدت زمان انجام آن نیز کاهش خواهد یافت و همینطور هر بار سریعتر و با کیفیت ترخواهید شد و وقتی یک برنامه نویس تازه کار شما را ببیند با خود فکر میکند شما یک استعداد و نابغه ی بی نظیر برنامه نویسی هستید. در حالیکه چنین چیزی نیست و شما مسیرهای عصبی را ایجاد و تقویت کرده اید.
قسمت بعدی که خیلی جالب هست و پیشنهاد میکنیم حتما بخوانید نظرات بزرگان برنامه نویسی جهان درباره ی استعداد برنامه نویسی هست.
نظر برنامه نویسان بزرگ دنیا درباره ی استعداد برنامه نویسی
جالب است بدانید که برنامه نویسان بزرگ درباره ی استعداد برنامه نویسی زیاد صحبت کرده اند و ما ترجمه ی صحبت های آنها را در زیر قرار داده ایم تا استفاده کنید:
1 - آقای Jacob Kaplan-Moss ( سازنده ی فریمورک Django) درباره ی استعداد برنامه نویسی میگوید :
آقای Jacob Kaplan-Moss سازنده ی فریمورک جانگو برای زبان پایتون در یک کنفرانس گفت : افسانه ی " برنامه نویس نابغه " را فراموش کنید. این مورد از یک طرف باعث میشود ورود به دنیای برنامه نویسی سخت تر شود و افرادی که میخواهند برنامه نویس شوند بترسند و از طرف دیگری افرادی که برنامه نویس هستند را هم بخاطر اینکه یک نابغه نیستند ناامید کند. در نتیجه بعنوان یک برنامه نویس باید تمام وقت خود را صرف یادگیری و کار بیشتر روی برنامه نویسی بکنید و این تاثیر زیادی روی کیفیت زندگی شما خواهد گذاشت.
ما باید از این نوع نگرش خلاص شویم، برنامه نویسی فقط مجموعه ای از مهارت هاست که میتوان آنها را یاد گرفت و به استعداد زیادی هم نیاز ندارد و شرم آور هم نیست که شما یک برنامه نویس متوسط باشید.
2 - آقای Rasmus Lerdorf سازنده ی پی اچ پی درباره ی استعداد برنامه نویسی میگوید:
راسموس لردورف خالق زبان php است که در طی کنفرانسی گفت : من از برنامه نویسی متنفرم ولی حل مسئله را دوست دارم. افرادی هستند که واقعا برنامه نویسی را دوست دارند. من نمی فهمم چرا آنها برنامه نویسی را دوست دارند.من یک برنامه نویس واقعی نیستم من چیزها را کنار هم جمع میکنم تا زمانی که کار کنند.برنامه نویس واقعی میگوید : بله کار میکند ولی حافظه را میخورد باید این مشکل را حل کنیم.در این حالت کاری که من میکنم این است که به ازای هر ده درخواست آپاچی را ریستارت میکنم.
3 - آقای Linus Torvalds خالق لینوکس درباره ی استعداد برنامه نویسی میگوید:
من بیشتر کدنویسی نمیکنم و بلد هم نیستم .بیشتر کدهایی که استفاده میکنم از ایمیل من است . ( منظور برنامه نویسان زیادی بصورت آزادانه جهت گسترش لینوکس به من ایمیل میکنند )لینوکس توروالدز بارها در مصاحبه های خود گفته است که یک برنامه نویس نابغه یا با استعداد ذاتی نیست و لینوکس ثمره ی کدنویسی هزاران برنامه نویس است که بصورت رایگان برای او کار کرده اند و لینوس فقط آنها را مدیریت کرده است.
4 - آقای بیل گیتس موسس مایکروسافت ( سازنده ی ویندوز و نرم افزارهای آن ) برنامه نویس DOS درباره ی استعداد برنامه نویسی میگوید :
کدنویسی من دیگر منجر به تولید محصول نمیشود چون دانش برنامه نویسی من زنگ زده است ( قدیمی شده ) ، بیل گیتس میگوید که وقتی ۱۳ ساله بود عاشق برنامه نویسی شد و با تمرین و تمرکز زیاد روی آن محصولات عالی خلق کرد. قدیمی شدن یک دانش نشان از اکتسابی بودن آن است نه ذاتی بودن آن.
هرچند جملات بسیار زیادی از برنامه نویسان بزرگ در جهان پیدا کرده ایم که کاملا وجود یک چیز ذاتی بعنوان استعداد برنامه نویسی را رد میکنند ولی در این مقاله نمیتوان به همه ی آنها اشاره کرد و جملات بالا را برای رساندن مفهوم اشتباه استعداد در برنامه نویسی کافی میدانیم. در ادامه ی مقاله قسمت های آموزنده و جذابی آماده کرده ایم پس تا انتها حتما این مقاله را مطالعه کنید.
کشف استعداد برنامه نویسی
همانطور که بالا توضیح دادیم ( اگر مطالعه نکردید برگردید به پاراگراف های اول ) تعریف ما از استعداد آن چیزی نیست که در جامعه باب شده است و استعداد را بعنوان یک مورد ذاتی در وجود انسان ها میدانند. در برنامه نویسی هیچ چیز ذاتی درون انسان ها نداریم یعنی هیچکس از مادر خود علاقه مند به برنامه نویسی متولد نمیشود پس این دانش و تخصص کاملا اکتسابی است ولی منظور از استعداد مسیرهای عصبی ایجاد شده ی قبلی است که برای بعضی ها کار یادگیری ، حل مسئله و به انجام رساندن پروژه های مختلف را آسانتر میکند.
مسیرهای عصبی در برنامه نویسی که بعنوان استعداد برنامه نویسی شناخته میشود ممکن است از حوزه های دیگری مثل الکترونیک ، حل مسائل ریاضی ، نجوم و ... نشات گرفته باشد ولی نشانه هایی دارد که شما میتوانید متوجه شوید یک شخص استعداد برنامه نویسی دارد یا نه ؟
اگر شما والدین یک کودک هستید و دوست دارید استعداد برنامه نویسی کودک خود را بشناسید بهتر است ابتدا چند مورد که باعث میشود متوجه شوید فرزند شما استعداد برنامه نویسی دارد را بخوانید پس نکات زیر را حتما بخوانید.
هر چقدر تعداد نشانه های زیر در یک شخص ( فرقی ندارد در چه سنی باشد ) بیشتر باشد آن فرد احتمالا استعداد زیاد برنامه نویسی دارد و میتواند در این حوزه موفق شود.
تذکر : اگر فرزند شما علاقه ای به برنامه نویسی ندارد ولی نشانه های زیر را دارد هرگز او را مجبور نکنید برنامه نویسی یاد بگیرد بلکه از او بخواهید و در صورت اینکه از طرف فرزند خود علامت تایید دریافت کردید زمینه های رشد او را فراهم کنید چون این حوزه آینده ی او را مثل ستاره ای درخشان نورانی خواهد کرد.
دلایل زیر نشانه های وجود استعداد در حوزه ی برنامه نویسی چه در کودکان چه در نوجوانان و جوانان هست :
- شیفته ی فناوری و کامپیوتر بودن.
این روزها کامپیوتر و موبایل های هوشمند در هر خانه و جیب هر فردی پیدا میشود اما افرادی هستند که به این ابزارها صرفا بعنوان یک ابزار نگاه نمیکنند بلکه شیفته ی آنها هستند یعنی درباره ی آنها سوال میکنند ، درباره ی آنها تحقیق میکنند و این یکی از نشانه های وجود استعداد برنامه نویسی در ان فرد است. - آنها کارها یا بازی های گروهی را دوست دارند.
بسیاری از مردم فکر میکنند برنامه نویس ها افرادی تنها و گوشه گیر هستند که در اتاق تاریک خود به تنهایی در حال نوشتن کد هستند ، این تفکر در روزگار جدید درست نیست. اکثریت پروژه ها بزرگ و بصورت گروهی انجام میشوند و اگر گروه خوبی پشت یک محصول نباشد موفقیت های بزرگی کسب نمیکند. یکی از نشانه هایی که باعث شکوفا شدن استعداد افراد در برنامه نویسی میشود علاقه به کار گروهی است. - آنها از خودآموز لذت میبرند.
خود آموزی یکی از نشانه هایی هست که باید بعنوان نشانه ی وجود استعداد برنامه نویسی در نظر گرفته شود. ما در دنیایی زندگی میکنیم که فناوری با سرعت بسیار زیادی در حال پیشرفت است و هر روز مطالب و مباحث جدیدی ایجاد میشود. اگر یک برنامه نویس توانایی خود آموزشی نداشته باشد از بسیاری مفاهیم عقب خواهد ماند. حتی کودکان و نوجوانانی که علاقه دارند چیزها را خودشان یاد بگیرند دارای استعداد فوق العاده ای برای برنامه نویس شدن هستند. - آنها در حال مسائل خوب هستند.
برنامه نویسی سرتاسر حل مسائل است. اگر شخصی به بازی های استراتژیکی و زمان بر علاقه دارد میتواند برنامه نویس خوبی شود. یک دوستی میگفت هرکس شطرنج را خوب و عالی بازی کند احتمالا یک برنامه نویس خوبی هم شود. البته اگر فرزندی دارید که به حل مسائل و ریاضیات علاقه مند است یا بازی های استراتژیکی را دوست دارد میتواند استعداد برنامه نویسی داشته باشد. - آنها به جزئیات زیاد دقت میکنند.
حتی ساده ترین برنامه های کامپیوتری که نوشته شده اند نیاز داشته اند که برنامه نویس به جزئیات آن دقت کند، هرچقدر در برنامه نویسی عمیق شوید میبینید که تغییرات کوچک و جزئی ممکن است باعث اتفاقات بزرگی در پروژه شوند.آن کودکانی که توانایی تجزیه تحلیل و تمرکز روی جزئیات را دارند میتوانند برنامه نویس موفقی شوند و این یکی از نشانه های استعداد در برنامه نویسی است. - از آزمون و خطا فراری نیستند و آنرا دوست دارند.
یک پروژه ی برنامه نویسی که تمام میشود شاید هزاران بار به خطا خورده و مشکلاتش رفع شده است. فرار از مشکلات و باگ ها در برنامه نویسی ممکن نیست و برنامه نویسی سرتاسر آزمون و خطا است. اگر فردی از آزمون و خطاها در دیگر زمینه ها فرار نکرده باشد در برنامه نویسی نیز میتواند باگ ها و مشکلات پیش آمده را بخوبی حل کند. - آنها خلاق هستند و خلق کردن چیزهای جدید را خیلی دوست دارند.
بعضی از افراد همیشه عاشق خلق کردن هستند و دوست دارند چیزهای جدیدی بوجود بیاورند. این افراد را خلاق نام گذاری میکنیم و این افراد در برنامه نویسی استعداد خوبی دارند. چون برنامه نویسی بیشتر اوقات خلاقیت است.
اینها نشانه های وجود استعداد برنامه نویسی در فرد است البته قطعا این ها نشان دهنده ی این نیست که فرد در حوزه ی برنامه نویسی موفق خواهد شد. باید در نظر گرفت که آیا فرد مورد نظر قبل از این استعداد یابی ها اصولا به برنامه نویسی علاقه دارد یا نه ، اگر به برنامه نویسی علاقه مند هست و نشانه های بالا را دارد تبریک میگوییم . آن فرد استعداد خوبی در برنامه نویسی دارد و اگر این حوزه را ادامه دهد فردی موفق میشود.
اگر مقاله را تا اینجا مطالعه کرده اید و متوجه شده اید خودتان یا یکی از افراد آشنای شما ویژگی ها و قابلیت های لازم برای برنامه نویس شدن را دارد بهتر است ابتدا الفبای برنامه نویسی را از یک دوره ی اصولی ببیند و ما دوره ای به اسم دوره ی ۱۲ قدم برنامه نویسی آماده کرده ایم. اگر علاقه مند دیدن این دوره هستید میتوانید از اینجا دوره را ببینید.
تقویت استعداد در برنامه نویسی
تا اینجا در مقاله ی آموزشی که آماده کرده ایم ابتدا خود استعداد در برنامه نویسی را تعریف کردیم و سپس به نحوه ی کشف استعداد برنامه نویسی در یک فرد پرداختیم.
اما اگر یک فرد نشانه های استعداد در برنامه نویسی را در خود داشته باشد چطور میتواند این استعداد را رشد دهد و به یک برنامه نویس حرفه ای تبدیل شود ؟
ابتدا بهتر است بدانید که استعداد ذاتی وجود ندارد و طبق مقاله ای که در بالا برای شما نوشته ایم و طبق سخنان بزرگان و روانشناسان در اصل چیز ذاتی وجود ندارد که یک انسان را نسبت به دیگران متمایز کند اما مهم ترین چیز نحوه ی تقویت خود و پرورش استعدادهای برنامه نویسی است.
در ابتدای کار شما نیاز نیست حتما نابغه یا فرد با استعدادی در برنامه نویسی باشید و این توقع از خود را کنار بگذارید و شروع کنید به یادگیری و حل مسئله.
توانایی یادگیری روزانه و حل مسائل زیاد هست که شما را تبدیل به یک برنامه نویس فوق العاده خواهد کرد و این دو مورد میتواند در رشد سریع استعداد برنامه نویسی شما موثر باشند.
در ادامه سه روش خوب برای تقویت مهارت کدنویسی یا برنامه نویسی قرار داده ایم که با استفاده از آنها میتوانید استعداد برنامه نویسی را در خود شکوفا کنید. این روش ها مختص یک زبان برنامه نویسی خاص نیست و در هر زبانی کاربرد دارد به همین منظور کمی کلی تر هستند و راه رشد و شکوفایی شما در برنامه نویسی هستند پس با دقت به آنها عمل کنید :
- یادگیری را متوقف نکنید.
خیلی از برنامه نویسان بزرگ همیشه توصیه میکنند که خود را همیشه بروز نگه دارید چون اطلاعات در دنیای فناوری به شدت دچار تغییر است روزانه باید آموزش ببینید و به این شکل خلاقیت و استعداد شما در برنامه نویسی رشد میکند. پس هر روز یک مطلب جدیدی برای یادگیری در حوزه ی برنامه نویسی داشته باشید. - هرچه میتوانید بیشتر کدنویسی کنید.
کدنویسی چیزی نیست که با مطالعه ی مقاله یا دیدن ویدیو آموزشی کسب شود. همانطور که یک فرد با خواندن تمام دروس پزشکی متخصص نمیشود و باید سالها در بیمارستان ها مشغول به کار شود تا بعدا بتواند یک پزشک کامل شود. برنامه نویسی نیز به این شکل است شما باید در هر موقعیت و در هر احساس مختلفی کدنویسی کنید تا جزو زندگی شما شود. - خلاق باشید.
همیشه به دنبال راه های جدید باشید، همیشه به دنبال خلق ابزارهای جدید باشید . کلمه ی << جدید >> جادوی افزایش استعداد برنامه نویسی است. همیشه جدید بخواهید همیشه کارهای جدیدی بکنید و در این صورت است که رفته رفته حرفه ای تر میشوید و همیشه یک قدم جلوتر هستید.
اگر علاقه مند به شروع برنامه نویسی هستید از دوره ی دوازده قدم آواسام بصورت عالی و اصولی برنامه نویسی را شروع کنید.
مطلبی دیگر از این انتشارات
تاریخچه زبان جاوا - قسمت 4
مطلبی دیگر از این انتشارات
تفاوت بین == و === در کاتلین
مطلبی دیگر از این انتشارات
تفاوت Clean Architecture و معماری 3-Layer