به عنوان یک برنامهنویس با صدها توسعه دهنده مبتدی آشنا شدم که اشتباهات مشابهی را انجام میدادند، سوالات مشابهی را میپرسیدند و در جایگاه یکسانی ایستاده بودند. آنها نمیدانستند که باید چه کارهایی را انجام دهند و چگونه به یک توسعه دهنده خوب تبدیل شوند. به همین خاطر در این مقاله نکاتی را گردآوری کردم تا توانسته باشم به چنین توسعهدهندگانی کمک کنم. بیایید این نکات ارزشمند را با یکدیگر بررسی کنیم:
انگیزه شما
بیایید با این فرض شروع کنیم که میخواهید به یک برنامهنویس تبدیل شوید. ابتدا باید دلیل این خواستهی خود را بدانید. چرا میخواهید یک برنامهنویس باشید؟ اگر به دنبال پول هستید، بهتر است بیخیال شوید. اگر به اطراف خود نگاه کنید، متوجه وجود کتابخانههای رایگان، سیستم عاملهای رایگان، کامپایلرهای زبان، مترجمان، فریمورکها، کلاسهای آماده، ماژولها و پلاگینهای بسیاری خواهید شد. افراد زیادی به صورت مجانی کار کردند تا چنین ابزارهای رایگانی را در اختیار شما قرار دهند. این ابزارها توسط برنامهنویسان بسیار با استعدادی نوشته شده و آنها پیشرفتهای خودشان را با سایر افراد در میان میگذارند.
آنها تمام این کارها را انجام دادند چون عاشق برنامهنویسی هستند، نه به خاطر اینکه میتوانند با آن درآمد کسب کنند. این یک اصل در برنامهنویسی است. اگر حقوق را کنار بگذاریم، همهی ما علاقه و تمایل زیادی به کدنویسی، ساخت و یا اختراع چیزهای جدید داریم. اگر علاقه شما در اولویت قرار دارد، به سراغ گوگل بروید و کتاب مربوط به زبان مورد علاقه خود را مطالعه کنید. مثالهای موجود در کتاب را بخوانید و آنها را تمرین کنید. به شما قول میدهم که با این روش، ظرف مدت چند ماه میتوانید به یک شغل دست پیدا کنید.
چطور شروع کنیم و چه چیزهایی را یاد بگیریم – توسعه دهنده
اولین شغل خود را پیدا کنید
شما در یک دفترکار میتوانید چیزهای زیادی را یاد بگیرید. به عنوان یک توسعهدهندهی مبتدی حاضر بودم در ازای غذا کار کنم. من اینگونه فعالیت خودم را شروع کردم و در اولین شغل خود بابت تکمیل کردن هر پروژه ۵۰۰ دلار حقوق دریافت میکردم. در آنجا تجربههای فوقالعاده ارزشمندی را بدست آوردم.
هر موقع که وقت داشتید، برنامهنویسی کنید
خودتان را فقط به یک پروژه محدود نکنید. تکنولوژیهای جدید را کاوش کنید، در پروژههای متن باز فعالیت کنید، اخبار مربوط به برنامهنویسی را بخوانید و فریمورکهای ضروری را یاد بگیرید. با بررسی کردن فریمورکهای شناخته شده، میتوانید از بهترین متدهای معماری و برنامهنویسی مطلع شوید.
الگوها را مطالعه کنید
توسعهدهندگان با کمک الگوها میتوانند نحوه طراحی یک برنامه را مشخص کنند. الگوها به شما در حل مشکلات کمک کرده و نحوهی مقابله با مشکلات مختلف را به شما نشان خواهند داد. با مفاهیمی آشنا میشوید که به شما در حل مشکلات عمیقتر کمک خواهند کرد. سپس پاسخ سوالات نگرانکننده خود را بدست میآورید.
کدهای کتابخانه را در کنار مستندات آن مطالعه کنید
کدها میتوانند نحوه عملکرد توابع یا پذیرش انواع خاصی از دادهها را بهتر توضیح دهند. درک کردن چیزی که با آن کار میکنید، بسیار ضروری است. کتابخانهها و فریمورکها توسط افرادی مثل شما نوشته شدهاند، بنابراین با بیشتر تلاش کردن میتوانید آنها را درک کنید.
مقالات را با استفاده از متد بازگشتی بخوانید
یک مقاله با موضوع مورد علاقه خود را انتخاب کرده و شروع به خواندن کنید. به محض مواجه شدن با یک مفهوم یا کلمهای ناشناخته، مقاله اول را کنار بگذارید و در گوگل به دنبال توضیحی در رابطه با آن کلمه ناشناخته بگردید. ما این مقاله جدید را به عنوان مقاله دوم در نظر میگیریم. اگر در مقاله دوم خود با چیز ناآشنایی مواجه شدید، در مقاله سوم به دنبال توضیح آن بگردید. با این کار مقالات بسیاری را مطالعه خواهید کرد. وقتی تمام آنها را خواندید، به سراغ مقاله یک بروید و آن را با خیال راحت مطالعه کنید چون حالا از تمام مفاهیم موجود در آن مطلع هستید.
روی باگها کار کنید
افراد مبتدی، مرتکب اشتباهات متداولی میشوند که مانع پیشرفت سریع و کارآمد آنها میشود. در اینجا بخشی از آنها را با یکدیگر مشاهده خواهیم کرد:
« چرا باید روی یک دیتابیس کار کنم و فرق بین InnoDB و MyISAM را بفهمم؟ من هنوز مبتدی هستم و نمیتوانم جواب آن را پیدا کنم. این مسئله را به توسعهدهندگان میانرده میسپارم.»
این رایجترین اشتباه اکثر افراد مبتدی است. اگر کارهای جدید را انجام ندهید، هرگز نمیتوانید تجربه کسب کنید. شما با حل کردن مشکلات بزرگتر میتوانید شاهد پیشرفت باشید. میزان تجربه، همان فرق بین یک شخص ارشد و مبتدی است.
« فعلاً از توابع ناشناس، کلوژرها، OOP و دیزاین پترن کارخانه انتزاعی برای باز کردن یک پنجره مودال در مرورگر استفاده خواهم کرد.»
خیلی از افراد مبتدی با یاد گرفتن طرحهای جدید، سعی میکنند همه جا از آن استفاده کنند. این روش تا حدی درست است اما خیلی پیشنهاد نمیشود. برای کوبیدن یک چکش به میخ، لازم نیست از تمام دانش خودتان در زمینه فیزیک استفاده کنید. شما باید با مطالعه کردن، درک عمیقتری از برخی موضوعات بدست آورید.
« خودم همه چیز را میدانم و میتوانم تمام کارها را انجام دهم.»
شاید با خواندن اولین کتاب بتوانید خیلی کارها را انجام دهید، اما بهتر است عجله نکنید. وقت بگذارید و موضوعات بیشتری را یاد بگیرید.
« من یک برنامهنویس هستم، پس حقوقم باید ماهانه ۲۰۰۰ دلار باشد.»
یک برنامهنویس خوب، حقوق مطلوبی را نیز دریافت خواهد کرد. اگر نمیتوانید حقوق دلخواه خودتان را بدست آورید، یعنی هنوز به سطح مناسب دست پیدا نکردهاید. به یاد گرفتن ادامه دهید و تجربه کسب کنید. هر چیزی زمان خاص خودش را دارد.
« تا به حال این کار را انجام ندادهام، میترسم چیزی را خراب کنم.»
افراد ارشد از کارهای تکراری خود ترسی ندارند. برنامهنویس بودن یعنی سروکله زدن با مشکلاتی که هنوز به طور مداوم با آنها روبرو نشدهاید. ترس از خرابکاری، شانس داشتن یک حرفه موفق را از شما میگیرد. تا زمانی که میترسید، هیچ تغییری در زندگیتان رخ نخواهد داد. پس به تلاشهای خود ادامه دهید.
در آخر میخواهم نکاتی را برای افرادی که هنوز اعتماد به نفس ندارند، بیان کنم:
- به کدهایی که ماه پیش نوشتید، نگاه کنید. اگر از نوشتن آنها شرمنده شدید، یعنی در مسیر درست قرار دارید. اگر از کدهای ماه پیش خود متنفرید، یعنی در حال توسعه پیدا کردن هستید.
- ساختن CMS مخصوص خودتان هیچ ایرادی ندارد. با گزارش کردن آن نشان دادید که اطلاعات را واقعاً فهمیدهاید و در عمل انجام دادهاید.
- هر بار به این دو جمله فکر کنید: «آیا کار درستی را انجام میدهم؟» ، « آیا میتوانم بهتر انجام دهم؟»
- از پرسیدن سوالات احمقانه نترسید. شاید برنامهنویسان باتجربهتر شما را مسخره کنند، اما آنها هم زمانی مثل شما بودند و سوالات مشابهی را میپرسیدند.
- جسورتر باشید و برای رفتن به مراحل بالاتر عجله نکنید. هر چیزی در زمان مشخص و مناسب خودش رخ خواهد داد.