من می خوام برنامه نویس بشم !
اخیر توی یکی از شبکه های اجتماعی با گروهی برخورد کردم که عنوان جالبی داشت. جالب بودن عنوان برای من به دلیل نگاه عمل گرای اون به مسئله بود. یعنی علاوه بر اینکه شکل متداول انفعال گونه نداشت بلکه می تونه به مرور تبدیل به یه Start-up برای مخاطبانش بشه. به نظر میرسه اعضای این گروه در پی پاسخ دادن به این سوال اساسی تمام علاقه مندان به برنامه نویسی هستن که:
قدم اول : تصمیم بگیرید و ثابت قدم باشید
این سوال خیلی رایجه و بارها از خود من پرسیده شده. بگذارید چند تا نکته مهم و کلیدی رو براتون مشخص کنم که می تونه در تصمصم گیری موثر باشه.
شروع دشوار و فشار های اولیه من از این موضوع راضی نیستم اما نمی شه ازش گذشت که این حرفه بسیار دیر بازده است. معمولا برای اینکه بتونید به بازدهی مطلوبی برسید نیاز به 5 سال کار و تجربه مهندسی موثر دارید. البته این به این معنی نیست که طی این 5 سال هیچ دستاوردی ندارید.
برنامه نویس عمر کوتاهی داره واقعیت اینه که حداکثر بازدهی یک برنامه نویس در بهترین حالت 10 ساله و معمولا لازمه برای بعدش برنامه ریزی مشخصی داشته باشید. شاید بخوایید کار آزمایشگاهی بکنید. شاید هم آموزشگاه ها رو ترجیح بدید. به هر حال باید فکری داشته باشید.
اما با همه این اوصاف اگر تصمیم خودتون رو برای برنامه نویسی گرفتید، قدم اول رو برداشتید. تنها چیزی که لازمه اینه که درک کنید برنامه نویسی نیاز به صبر و حوصله داره.
قدم دوم : چه شاخه ایی از برنامه نویسی ؟
اشتباه بزرگ خیلی از علاقه مندان به برنامه نویسی اینه که قبل از انتخاب و تشخیص شاخه های متفاوت، می رن و هفته ها و شاید ماه ها در خصوص زبان های مختلف تحقیق میکنن. خوب نتیجه این می شه که با سردرگمی زیادی در خصوص انتخاب بهترین زبان مواجه می شن.
از مطرح ترین شاخه ها می شه برنامه نویسی ویندوز، لینوکس، موبایل، شبکه، بازی، وب و __میکرو پروسسور__رو نام برد. که البته بازی، میکرو پروسسور و زیر شاخه هاش با ضعف منابع روبر هستن و پیشنهاد نمی کنم فعلا سراغشون برید.
برای هر کدوم از این شاخه ها زبان های زیادی وجود داره که می تونید شروع به فراگیری کنید. بنابر این در قدم بعدی هم با یه انتخاب روبرو هستید
قدم سوم: چه زبان برنامه نویسی ؟
خوب من مایل نیستم در این مورد زبان خاصی رو پیشنهاد بدم. علت هم اینه که این مسئله کمی چالش زاست و اغلب مطرح کردنش توی یک رسانه عمومی بیشتر از اینکه انتخابی به شما بده ایجاد سردرگمی می کنه. طبیعتا قرار گرفتن در بین نظرات متعدد و گاهی هم متناقض چندان خوشایند نیست.
اما با این حال می تونید اگر در خصوص شاخه کاریتون مطمئن هستید به من ایمیل بزنیدو من با کمال میل می تونم چند زبان برنامه نویسی مرتبط با اون شاخه رو بهتون معرفی کنم.
قدم چهارم: مسئله های زیادی رو حل کنید
هرچند برنامه نویسی از طرفی یک هنر به حساب میاد اما در نهایت باید اون رو رهیافت حل مسائل توصیف کرد. خوب این یعنی باید با روش حل کردن مسائل آشنا باشید. بهتره بدونید که هیچ چیز نمی تونه مثل نوشتن یک برنامه، دوباره نوشتن و مجددا دوباره نوشتن همون برنامه به پیشرفت یک برنامه نویس کمک کنه.
بد نیست که یه تکنیک شخصی رو هم در این مورد بهتون معرفی کنم. می تونید به سایت های بزرگ و مطرح برنامه نویسی مراجعه کنید. روزانه مسائل زیادی در این وب سایت ها مطرح می شه که ممکنه در آینده باهاش برخورد داشته باشید. سعی کنید اون مسئله ها رو مسئله خودتون بدونید و براشون راه حلی پیدا کنید.
قدم پنجم : زبان های بیشتری رو یاد بگیرید
وقتی که در کارتون خبره شدید دیگه وقت زیادی برای یاد گرفتن زبان های مختلف (به صورت همزمان) ندارید، مگر اینکه خیلی خوش شانس باشید. بنابر این سعنی کنید چند زبان مختلف دیگه رو هم در شاخه کاریتون یاد بگیرید. تلاش کنید که بفهمید چه وجه تمایزی با هم دارن و ضعف های همدیگرو چطور پوشش می دن؟
یه زبان کاربردی رو هم یاد بگیرید. معمولا پیشنهاد می کنم چیزی مثل C رو یاد بگیرید چون خیلی کاربردیه و تقریبا اکثر زبان های کارآمد امروزی از این خانواده مشتق شدند.
نهایتا یک زبان اعلانی رو هم یاد بگیرید. خوب در این بین SQL معمولا خیلی قدرت نمایی می کنه و اجازه نمی ده به چیز دیگه ایی فکر کنید اما من پیشنهاد می کنم به همین محدود نشید و تمرین کنید که زبان هایی مثل XAML, XSLT و XQuery رو هم بلد باشید.
قدم ششم: یه زبان برنامه نویسی تولید کنید
لازم نیست یه زبان خیلی پیچیده، ساختار یافته و یا حتی بروز باشه. حتی لازم نیست که چیز جدید و خاص خودتون هم باشه. می تونید یک زبان متن باز رو توسعه بدید و یا حداقل براش یه فریم وورک بنویسید. من خودم راه ساده تر رو انتخاب کردم و یه فریم وورک برای PHP نوشتم که بعدا منجر به تولید پلتفرم و سیستم مدیریت محتوای Gexek شد.
قدم هفتم: یه چیزی یاد بگیرید که هیچ کس بلد نیست
این سخت ترین قدم در پروسه کاری شماست. تا اینجای کار شما در حال یاد گیری چیز هایی بودید که دیگران بلد بودن. اما از این به بعد باید کاری بکنید که کسی در موردش چیزی نمی دونه. می تونید کدهای دیگران، کتاب ها و یا گزارش های آکادمیک رو بخونید و نکته هایی رو برداشت کنید.
زمانش رسیده که قدم در راهی بگذارید که دیگران نگذاشتند. اما اشتباه نکنید، این چیزی نیست که شما تا قبل از اتمام سال دهم از تجربه کاریتون بهشون فکر کنید. علتش اینه که به دلیل ضعف دانشی بیشتر می تونید بازآفرینی کنید تا ابداع. چیزی مثل اینکه دوباره تلاش کنید که چرخ رو اختراع کنید.
این چیزی نیست که هرکسی موفق به انجامش بشه، اما تمام کسانی که سعی کردن ازش عبور کنن، حداقل به یه نفع جنبی رسیدن. نتیجتا اجازه ندید چیزی شما رو منصرف کنه و به موازات اینکه در برنامه نویسی رشد می کنید به دنبال حل کردن یه مسئله حل نشده باشید.
تبریک می گم، شما الان یه برنامه نویس خوب هستید
اوه صبر کنید! … البته اگه تا حالا جان به جان آفرین تسلیم نکرده باشید. که اگه اینطوره براتون آرزوی موفقیت در سرای باقی دارم.
از شوخی گذشته، این راه چندان هم طولانی نیست و خیلی زود این زمان برای شما سپری می شه. اگه امروز به فکر شروع باشید احتمالا خیلی زود من به وبلاگتون مراجعه می کنم و حتما نکات زیادی رو از شما یاد می گیرم. ضمنا! به این نکته خیلی مهم توجه داشته باشید که رشد محرمانه است بنابر این وقتی خودتون در قدم اول هستید به کسی در اون مورد توصیه ایی نکنید. این برای آرمشتون بهتره.
در نهایت مثل همیشه منتظر نظرات شما هستم، امیدوارم من و مخاطبان این بلاگ رو در بهبود این توصیه ها کمک کنید.
در این مورد نظری دارید؟
شبکههای اجتماعی جای بهتری هستن.