گاهی اوقات از برنامه نویس های حرفه ای سوال میشود که جدای از یادگیری یک زبان برنامه نویسی و موارد مربوط به آن، چه چیزهای دیگری وجود دارد که باید آنها را برای تبدیل شدن به یک برنامه نویس تمام عیار یاد گرفت؟
البته این را بگویم که مسلط بودن به یک زبان نیز میتواند کارهای شما را راه بیاندازد. حقیقتاً دانستن زبانهای برنامه نویسی خاص آنقدرها هم اهمیت ندارد. اگر به خوبی با اصول و پایههای برنامه نویسی آشنا باشید، میتوانید مهارتهای خود را در سایر زبانها نیز استفاده کنید. به جای وقت تلف کردن بهتر است مهارتهای عمومی که در زیر به آن اشاره شده را یاد بگیرید تا برای تبدیل شدن به یک توسعه دهنده بهتر در دنیای برنامه نویسی آماده شوید.
Git
سیستمهای کنترل نسخه به توسعه دهندگان امکان تحت نظر داشتن تغییرات کدهایشان را میدهند. یکی از مزایای کنترل نسخه این است که میتوانید ورژنهای قدیمی کارهای خود را به آسانی بازیابی کنید. به همین خاطر توسعه دهندگان میتوانند کدهای خود را با خیال راحت ویرایش کنند. Git یکی از محبوبترین سیستمهای کنترل نسخه بوده و مستندات زیادی برای یادگیری آن در دسترس است. حضور Github باعث شده که Git برای مبتدیان بهتر و مشارکتیتر باشد.
Github پلتفرمی است که از مخزنهای Git میزبانی میکند و تمام تغییرات یک پروژه را به نمایش میگذارد. چندین نفر میتوانند از طریق فرآیند «branching» به طور همزمان روی یک پروژه کار کنند. در این شرایط هر کاربر میتواند ورژن خود را از پروژه جدا کرده و پس از اعمال تغییرات آن را با کمک Github به پروژه نهایی اضافه کند. شاید Git کمی گیجکننده باشد اما نگران نباشید چون با تمرین کردن میتوانید آن را به خوبی یاد بگیرید. برای کسب اطلاعات بیشتر در این زمینه میتوانید مقاله «Git چیست» را بررسی کنید.
بازبینی کد
بازبینی کد فرآیندی است که در آن شخص دیگری کدهای یک کدنویس را بررسی کرده و در مورد نحوه بهبود بخشیدن آن نظر میدهد. این بازخوردها میتواند در مورد اشکالات موجود در کدها باشد. یک بازخورد خوب باید شامل پیشنهاداتی در رابطه با سبک کد نویسی باشد. با این کار کدنویسان میتوانند کدهای تمیز و موثرتری را نوشته و بهتر رشد کنند. کدنویسان حق دفاع از انتخابهای خود را دارند، این مسئله توانایی آنها را در توضیح دادن مفاهیم فنی بهبود میبخشد.
شاید به عنوان یک دانش آموز، فرصتهای زیادی برای شرکت در یک بازبینی کد نداشته باشید. با این حال دورهها و مطالب آموزشی بسیاری در این رابطه وجود دارد که میتوانید از آنها برای آشنایی بیشتر استفاده کنید. اگر مشغول کار کردن روی پروژههای شخصی یا تیمی هستید، فرآیند بازبینی کد را به جریان کاری خود اضافه کنید تا بتوانید مطالب مختلفی را از همکاران خود یاد بگیرید.
مدیریت پروژه
یادگیری مهارتهای اساسی در زمینه مدیریت پروژه برای هر شخصی ضروری است. در واقع مدیریت پروژه کار چندان پیچیدهای در اوایل یادگیری نبوده و بیشتر به روحیه مدیریتی شما برمیگردد اما با بزرگ شدن و پیچیده تر شدن کارها ممکن است این موضوع کمی سخت به نظر برسد.
برآورد زمان
با دانستن مدت زمان لازم برای تکمیل یک کار میتوانید انتظارات و اهداف واقعگرایانهای را برای خودتان تعیین کنید. این مهارت به مدیر پروژه یا سرپرست تیم کمک میکند تا بتواند برنامههای دقیقتری را برای گروه ایجاد کند. شما به تدریج و با کار بر روی پروژههای مختلف میتوانید این مهارت را در خودتان توسعه دهید. برخی جنبههای کلیدی که باید مراقب آنها باشید، عبارتند از:
- انواع مسائلی که حل آنها برای شما زمانبر بوده، در برابر مسائلی که برای شما نسبتاً ساده تلقی میشوند.
- چه عوامل خارجی میتواند روی مدت زمان تکمیل پروژه شما تاثیرگذار باشد.
- تکمیل بخشها مختلف چقدر طول میکشد. از تحقیق در مورد تکنولوژیها گرفته تا کد نویسی، اشکالزدایی و مستندسازی.
توانایی در تخمین مدت زمان انجام هر پروژه به شما کمک میکند تا به فرد موثرتری تبدیل شوید.
اولویتبندی
وقتی در برآورد زمان مهارت کسب کنید، میفهمید که برای انجام تمام کارها زمان ندارید. بنابراین باید مهمترین اشکالات را مشخص کرده و ابتدا آنها را برطرف کنید. میتوانید مهارتهای اولویتبندی خود را در حین کار بر روی پروژههای شخصی بکار گیرید. مثلاً اگر مشغول ساخت یک وبسایت شخصی هستید، بسته به اهداف سایت باید مهمترین ویژگیها را معین کنید. قطعاً یک سایت نمونهکار الزامات متفاوتی نسبت به یک صفحه فرود دارد. وقت بگذارید و به معیارهای زیر فکر کنید:
- نیازهای مخاطب هدف
- معاوضه بین مقدار زمان صرف شده برای ساخت یک ویژگی یا رفع یک باگ در برابر مقدار ارزش افزوده
مصاحبه فنی
احتمالاً در اوایل کار خود با مصاحبههای الگوریتمی مواجه خواهید شد. در این مصاحبهها یک سوال برنامه نویسی به شما داده میشود که باید آن را در کنار مصاحبهگر حل کنید. گاهی اوقات این مصاحبهها برای افراد مبتدی دشوار است زیرا با آموختههای آنها تفاوت دارد. توسعه دادن مهارتهای قوی در زمینه مصاحبه میتواند فرآیند استخدام شدن را برای شما آسانتر کند.
الگوریتمها
احتمال روبرو شدن با شغلی که به صدها الگوریتم نیاز داشته باشد، کم است. با این حال پیچیدگی زمان و مکان برای توسعه بخشیدن یک زندگی اهمیت دارد. به همین خاطر دانستن نحوه دستیابی ساختارهای داده و الگوریتمهای مختلف به پیچیدگیهای متفاوت ارزشمند است. اگر تازهوارد هستید، شاید تمام صحبتهای من در مورد الگوریتمها و پیچیدگی زمانی نامفهوم به نظر برسد. نگران نباشید چون من هم در گذشته این احساس را تجربه کردهام. منابع بسیاری در اینترنت وجود دارد که میتوانید از آنها برای یادگیری پشتهها، Big-O و خیلی موارد دیگر کمک بگیرید.
توضیح مفاهیم فنی
معمولاً چنین مصاحبههایی نشانگر عملکرد خوب یک کارمند نیستند، اما یکی از جنبههای مثبت در مصاحبههای الگوریتمی این است که متقاضیان را به چالش میکشد. شما در این مصاحبهها مجبور میشوید افکار خود را بیان کنید. توانایی توضیح دادن مفاهیم فنی یک مهارت بسیار مهم برای توسعه دهندگان است. آموزش دادن یک راه عالی برای خلق این مهارت به شمار میآید. با آموزش دادن این مفاهیم به افراد مختلف، درک خودتان از آن موضوعات را تقویت خواهید کرد. با دانش آموزان خود مشغول اشکالزدایی شوید یا به صورت دونفره برنامه نویسی کنید زیرا این کارها میتواند به شما در مصاحبههای فنی کمک کند.
متفرقه
نمیتوان همه چیز را در یک دسته طبقهبندی کرد، به همین خاطر در اینجا چند مهارت دیگر را ذکر میکنم. هرچه زودتر این مهارتها را یاد بگیرید، برایتان مفیدتر خواهد بود.
خط فرمان/ترمینال
خط فرمان (Command Prompt) و ترمینال (Terminal) رابطهایی هستند که به شما امکان اجرایی کردن دستورات از طریق تایپ کردن را میدهند. خط فرمان برای ویندوز و ترمینال برای مک/لینوکس است. ایجاد دایرکتوریهای جدید و پیمایش در سیستم فایلها نمونههایی از دستورات اجرایی آنهاست. همچنین میتوانید اسکریپتهایی بنویسید که چندین دستور را اجرا میکنند.
نحوه کار کردن با خط فرمان بسیار مفید است چون احتمالاً خیلی از تکنولوژیهای آینده دارای رابط خط فرمان (CLI) هستند. خط فرمان برای افراد مبتدی کمی ترسناک است اما فرآیند توسعه با فهمیدن آن خیلی آسانتر میشود.
رسانههای اجتماعی
مقالات زیادی وجود دارد که به شما نحوه استفاده از رسانههای اجتماعی برای رسیدن به پیشرفتهای شغلی را یاد میدهند. اگر به این موضوع علاقه دارید، میتوانید کمی وقت گذاشته و در مورد تاثیرات رسانههای اجتماعی مطالعه کنید. برای کسانی که در عرصه تکنولوژی فعالیت دارند، داشتن توییتر، ساخت ویدیوهای یوتیوب و فعالیت در لینکدین اهمیت دارد. خیلیها از طریق فالوورهای خود در رسانههای اجتماعی درآمدزایی میکنند. رسانههای اجتماعی برای همه کارساز نیست، بنابراین مجبور به استفاده از آنها نیستید.
گوگل کردن
گوگل کردن یکی از مهمترین مهارتها برای افراد حاضر در عرصه تکنولوژی است. اغلب با مشکلاتی روبرو میشوید که نمیتوانید با دانش فعلی خود آنها را حل کنید. ما باید قبل از کمک خواستن، خودمان سعی کنیم آن مشکل را به تنهایی برطرف کنیم. در چنین شرایطی باید انجام دادن تحقیقات فنی را بلد باشید.
در پایان
شروع به کار کردن در دنیای برنامه نویسی ترسناک است. در این مسیر با اصطلاحات ناآشنایی روبرو خواهید شد. شاید با خودتان بگویید که مهارتهای زیادی برای یادگیری وجود دارد اما داشتن پایهای قوی، تمام آن چیزی است که برای موفق شدن احتیاج خواهید داشت.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید