هر کسی که میخواهد وارد دنیای توسعه شود، باید این لیست را به دقت مطالعه کند. شما نیازی به داشتن تخصص در تمام زمینهها ندارید، اما باید تصور واضحی از مفاهیم اولیه داشته باشید. اگر مفاهیم را به درستی متوجه شوید، پایههای شما قوی خواهد شد.
1. برنامهنویسی شیگرا
بعضیها میگویند که برنامهنویسی شیگرا دیگر به آخر خط رسیده و کم کم با پارادایمهای جدید دیگری جایگزین خواهد شد. اما اینطور نیست چون ما هنوز برای ساختن بیشتر اپلیکیشنها از این روش استفاده میکنیم.
در اینجا نوع زبان اهمیت ندارد چون میتوانید از هر زبانی مثل جاوا، C، C++ یا موارد دیگری مثل Smalltalk استفاده کنید. در عوض باید درک درستی از مفاهیم، شی، رابط، کلاس انتزاعی، متد ایستا، وراثت و غیره داشته باشید.
به نظر من دانستن الگوهای طراحی، بسیار کارآمد است چون به ایجاد یک زبان مشترک برای ارتباط برقرار کردن با سایر توسعهدهندگان کمک میکند. نحوهی پیادهسازی آنها یک نمونه بسیار خوب از چگونگی استفاده از تکنیکهای طراحی شیگراست.
هدف ما در اینجا تنها یاد گرفتن فریمورکهای جدید نیست، چون آنها به مرور زمان قدیمی خواهند شد. ما باید مفاهیم لازم را به درستی یاد گرفته و آنها را در فریمورک فعلی و موارد بعدی بکار بگیریم.
2. برنامهنویسی تابعی
برنامهنویسی تابعی به طور گستردهای در دنیا مورد استفاده قرار میگیرد. حتی زبانهای شیگرایی مثل جاوا یا C++ نیز در حال دریافت قابلیتهای تابعی هستند. شما نیازی به تخصص در نظریه رستهها (category theory) ندارید اما باید موضوعاتی مثل توابع مرتبه بالاتر، ارزش تغییرناپذیری یا کاربرد کلوژر lambda را به خوبی بلد باشید. این یک پارادایم برنامهنویسی محبوب در دنیاست که از روشهای متفاوتی برای حل مشکلات استفاده میکند.
3. دیتابیسها
تقریباً تمام اپلیکیشنها به ذخیره اطلاعات نیاز دارند و معمولاً این کار در پایگاه داده یا همان دیتابیس صورت میگیرد. در گذشته تنها دیتابیس رابطهای وجود داشت اما حالا ما شاهد دیتابیسهای شیگرا، گرافیکی و سندگرا نیز هستیم.
شما نمیتوانید در طول دوره آموزشی خود روی تمام آنها تسلط پیدا کنید، اما شناختن آنها و اهدافشان بسیار خوب است. کمی وقت بگذارید تا بیشتر SQL را یاد بگیرید چون کاربرد زیادی دارد.
4. سختافزار و شبکهها
خیلی از برنامهنویسان فکر میکنند که احتیاجی به دانستن سختافزارها ندارند. برای اینکه بتوانیم بهترین تصمیمات را در کارهای خود بگیریم، باید درک درستی از ویژگیهای سختافزاری داشته باشیم. باز هم میگویم که شما نیازی به تخصص پیدا کردن ندارید اما مثلاً باید بدانید که دسترسی محلی به دادهها، هیچ شباهتی به دسترسی به دادههای یک سرور خارجی ندارد.
5. سیستمهای کنترل نسخه
شما باید نحوه استفاده از سیستمهای کنترل نسخه را یاد بگیرید. گزینههای آنلاین متعددی مانند GitHub، Bitbucket و غیره در اینترنت وجود دارد که میتوانید به دلخواه خود یکی را انتخاب کنید. شما میتوانید زبان دلخواه خود را یاد بگیرید. گرچه باید به دنبال زبانی بروید که به شما امکان تمرین کردن مسائلی مثل بارگذاری و بارگیری کد، ایجاد شاخه، حل مشکلات و غیره را میدهد.
نتیجهگیری
موضوعات زیادی هست که ارزش یاد گرفتن را دارد. با این حال موارد گفته شده در این مقاله جزو اساسیترین موضوعاتی بود که من کمبود آن را در افراد توسعهدهنده مشاهده کردم.
#توسعه_نرمافزار
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید