وبلاگ

9 توصیه برای کسانی که به تازگی برنامه نویسی را شروع کرده اند!

9 توصیه برای کسانی که به تازگی برنامه نویسی را شروع کرده اند!

توصیه هایی که استیو کلابنیک به کسانی که تازه برنامه نویسی رو شروع کرده اند می گوید:

  1. همیشه در یک زمان تنها یک کار انجام دهید!

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

  1. هرکسی یک کاری رو خیلی خوب و راحت انجام میدهد!

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

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

همه ما از خیلی جهات متفاوت هستیم.

  1. تنها 80% کار را به طور کامل انجام دهید!

یکی از موارد مهم، در مهندسی این است که مثلا ساخت یک اتومبیل معمولی و ماشین مسابقه دو چیز بسیار متفاوت است. جزییاتی که در ماشین مسابقه ضروریست ممکن است در اتومبیل معمولی نیاز نباشد و بالعکس.

تصمیم گیری در مورد اینکه کدام موارد ضروری و کدام موارد ایده آل است همیشه حائز اهمیت می باشد. در یک پروژه برنامه نویسی در اکثر موارد میشود که 80% پروژه را کامل انجام داد چون احتمالا آن 20% مواردی است که هیچوقت مورد نیاز مشتری نمی باشد و از آنها استفاده نمی کند. و زمان 1% ای از زمان پروژه که برای برطرف کردن باگ ها و مشکلات پروژه اختصاص داده ایم را بیشتر نماییم. زیرا همواره خیلی بیشتر از این 1% این قسمت پروژه زمان بر هست و بسیار هم برای تکمیل پروژه ضروری می باشد.

  1. یاد بگیریم چطور گوگل کنیم!

این مهارتی است که بسیاری از دوستانی که برنامه نویسی را شروع می کنند، آن را مهم و ضروری نمی دانند. در صورتی که در اوایل کار برنامه نویسی بیشترین زمانی که از ما گرفته میشود زمانی است که برای چگونه سرچ کردن آن مسئله، الگوریتم، تکنولوژی و … میگذاریم.

  1. از کمک گرفتن و پرسیدن نترسیم!

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

  1. فناوری همواره در حال تغییر است!

بنابراین ، زبان فناوری نیز همواره  تغییر می کند. پس چیزی که مهم می باشد دانش است.
من دوست می دارم در ابتدا خودم را به عنوان یک برنامه نویس بدانم و بعد به زبانی که برنامه نویسی میکنم فکر کنم ، زیرا روزی خواهد آمد که همه زبان های برنامه نویسی که الان استفاده می کنیم دیگر استفاده نمی شوند. همانطوری که در حال حاضر از خیلی از زبان های برنامه نویسی که 40 سال پیش استفاده می شد، دیگر استفاده نمی شود مثل کد اسمبلی. این برای همه فن آوری ها اتفاق می افتد و مهم نیست که یک زبان برنامه نویسی در حال حاضر چقدر خوب یا بد است، این مهم است که بالاخره روزی خواهد آمد که این هم استفاده نخواهد شد.

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

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

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

  1. در Open Source مشارکت داشته باشید!

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

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

مثلا زمانی که من خواستم این کار رو انجام دهم، بنابراین کاری که من کردم این بود که در آن زمان همه مسائل open را خواندم. این به من کمک کرد تا بفهمم چه نکاتی مشکلات زیادی دارد. من یکی از مسائلی را انتخاب کردم که رفع آن بسیار ساده بود و چندین روز برای انجام دادنش وقت گذاشتم. پس از آن، برنامه خود را ارسال کردم و پذیرفته شد، و این باعث شد من واقعاً هیجان زده شوم ،و پس از آن، مورد دیگری را انتخاب کردم و رفع آن فقط 2 روز طول به انجامید. بنابراین، هرگز سخت تر از اولین بار نیست. اولین کارها همیشه تلاش زیادی می خواهند، اما هرچه این کار را انجام دهید بیشتر با ابزار و گیت هاب آشنا می شوید و کارها آسان تر می شوند. به طور پیش فرض، همیشه انجام این کار، برای افراد جدید سخت تر از مشارکت کنندگان موجود است.

  1. برنامه نویسان همیشه در حال شکست خوردن هستند!

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

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

  1. تسلیم نشو!

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

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

به عنوان مثال، خود من روی پروژه ای کار میکردم که مدت زیادی زمان گذاشتم و گاهی روزها نمی دانستم از چه راهی باید آن را حل نمایم و روی چگونگی حل مسئله فکر می کردم اما زمانی که تمام شد، بهترین احساسی رو ب من داد که تا به حال داشتم.

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *