شاید برای شما هم این سوال پیش آمده باشد که از خود بپرسید چگونه مثل یک توسعه دهنده ارشد فکر کنیم؟ تا پایان این مطلب همراه من باشید تا باهم به بررسی این موضوع بپردازیم.
شما نمیتوانید همه چیز را یاد بگیرید
تکنولوژیهای بسیاری در دنیا وجود دارد و یادگیری تمام آنها غیرممکن است.
پشتهی عالی خود را پیدا کنید. به دنبال چیزی باشید که به دردتان بخورد و سپس آن را در آغوش بگیرید. به عنوان مثال یک ترکیب خوب از توسعهی وب مدرن، پشته MERN خواهد بود: React، Express، MongoDB و Node.js که اگر جاوا اسکریپت را دوست داشته باشید بسیار مناسب خواهند بود.
چیزی هم به نام پشته MEAN وجود دارد. توسعهدهندگانی که از این پشته استفاده میکنند، در بخش فرانتاند Angular را به React ترجیح میدهند. همچنین میتوانید برای بخش فرانتاند از پشتههایی مثل MySQL، PHP، HTML و CSS استفاده کنید. Ruby و Ruby on Rails نیز تکنولوژیهای خوبی برای بخش بکاند هستند.
هر پشتهای را که انتخاب میکنید، باید محکم به آن بچسبید و روی آن تسلط پیدا کنید. به کسی تبدیل نشوید که در هیچ زمینهای مهارت ندارد، این موضوع به عنوان یک توسعه دهنده اصلاً خوب نیست.
شما بدون مدرک هم میتوانید یک توسعه دهنده باشید
من به عنوان یک توسعه دهنده ی خودآموز با سختکوشی، صبر فراوان، استقامت و تمرکز شدید در این زمینه موفق شدم. دانشگاه نرفتن بدین معنا نیست که همه چیز آسان است. در واقع این کار اصلاً راحت نیست، اما پاداشهایی که در این مسیر بدست میآورید، بیشتر از شکستهای کوچکی است که متحمل میشوید. این موضوع فقط به شور و اشتیاق شما ربط دارد.
اگر پا پس بکشید، به هیچ چیزی نخواهید رسید. راز موفقیت در چنین مسیری این است که به آن یک فرصت دیگر بدهید و یک بار دیگر به آن فشار وارد کنید. شاید احساس کنید که در مشکلات زیادی غرق شدهاید یا با سرعت زیادی در حال سقوط هستید، اما این معمولاً نشاندهندهی نزدیک شدن شما به مقصد است. این یعنی تنها چند قدم با خواسته خود فاصله دارید. باید خودتان را راضی کنید تا یک فرصت دیگر به آن بدهید و موانع را به فرصت تبدیل کنید.
ناپلئون هیل گفته است:« وقتی شکست بر یک انسان غلبه میکند، راحتترین و منطقیترین کار این است که آن را رها کنید. این دقیقاً همان کاری است که بیشتر مردم انجام میدهند.»
در هنر گوگل کردن تسلط پیدا کنید
حالا که برنامهنویسی را شروع کردهاید، باید بدانید که در آینده همه چیز منطقی به نظر نمیرسد. اصلاً ایراد ندارد که جواب برخی چیزها را ندانید، مخصوصاً اگر تازهوارد باشید. چیزی که اهمیت دارد این است که بدانید چگونه باید جواب سوالات خود را پیدا کنید.
برنامهنویسی در مورد حل مشکلات است. اگر نمیتوانید روش حل آنها را بفهمید، باید روشی را برای حل آن پیدا کنید. میتوانید در گوگل به دنبال جواب خود بگردید یا از شخصی که نحوهی حل آن را میداند سوال بپرسید. سپس سعی کنید از آنها درس بگیرید. این بهترین مسیر برای یادگیری شماست. بگذارید یک نصیحتی را به شما بگویم: تمام مشکلات برنامهنویسی که امروز با آن روبرو هستید، احتمالاً مشکلات توسعه دهنده های قبل از شما بوده است. چرخ را دوباره اختراع نکنید، شما باید از این چرخ استفاده کنید.
مهلتهای زمانی همیشه خراب خواهند شد
تخمین زدن کارها امری دشوار است؛ حتی اگر برنامهی شما خوب باشد. شرکتها از روشها و استراتژیهایی برای مدیریت پروژه استفاده میکنند. به نظر من محبوبترین آنها Agile است.
مهم نیست که روند توسعه چقدر دقیق باشد چون همیشه موانعی در مسیر وجود خواهد داشت. مهم نیست که اعضای تیم چقدر در آنالیز شغل یا تضمین کیفیت عالی باشند چون همیشه مهلتهای زمانی خراب میشوند و احتمال تمدید آنها وجود دارد. مهلتهای زمانی تنها یک حدس هستند و در بیشتر مواقع، ساخت برنامههای مشارکتی برای شرکتهای بزرگ چند ماه بیشتر از زمان تخمین زده شده زمان خواهد برد.
اما این موضوع در کسب و کارهای کوچک کمی متفاوت است. صاحبان مشاغل کوچک، کمی سختگیرتر میباشند. اگر میخواهید یک پروژهی جانبی را انجام دهید، "تاریخ تخمین زده شده برای خروجی چیست؟" یکی از رایجترین سوالاتی است که از شما پرسیده خواهد شد. برخی از مردم به این موضوع اهمیت نمیدهند و تنها به مهلت رسیدن به نتیجه نهایی فکر میکنند.
بنابراین هنگام مشخص کردن تاریخ و مهلت، حتماً دقت داشته باشید. آنها همان مهلتی را در نظر میگیرند که شما به آنان اعلام میکنید. به همین دلیل بهتر است زمان بیشتری را برای تحویل سفارش تعیین کنید. با این کار شما زمان کافی برای رفع اشکال و عیبیابی را خواهید داشت. غافلگیر کردن آنان خیلی بهتر از ناامید کردن آنهاست. حتماً استانداردهایی را تعیین کنید زیرا آنها مطابق با آن اصول با شما رفتار خواهند کرد.
۶۰ درصد اشکالزدایی، ۴۰ درصد کدنویسی
این دقیقترین توصیهای است که تا به حال گفتهام. من بیشتر زمان کدنویسی خود را صرف رفع اشکال کردم. آخرین پروژهای که ساختیم، یک برنامهی اندروید مربوط به مراقبتهای بهداشتی بود. ما از React Native استفاده کردیم و من به عنوان یک توسعه دهنده فرانت اند در آن پروژه حضور داشتم.
ما زمان ساخت آن را یک ماه تخمین زدیم. ساختن بخش فرانتاند آن تنها ۱۰ روز طول کشید. بقیه روزها را صرف رفع خطاهایی کردم که به خاطر نسخهسازی و نامناسب بودن پکیجها رخ داده بود. این اولین پروژهی من برای اندروید بود. چندین هفته مشغول رفع اشکال برخی از قابلیتها بودم تا بتوانم همهی آنها را در بهترین حالت قرار دهم.
ساختن برنامه بخش جالب آن بود، در حالی که اشکالزدایی تنها باعث استرس میشد. رفع اشکال هم بخشی از این فرایند است، اما به زمان احتیاج دارد. بگذارید یک توصیه بسیار خوب را به شما بگویم: وقتی یک ساعت با خطا یا مشکلی مشابه روبرو هستید، بهتر است کمی استراحت کنید. کار دیگری را انجام دهید و ذهن خودتان را آزاد کنید. گاهی اوقات ما مشکلات خودمان هستیم.
وانمود میکنید که چیزهای زیادی را میفهمید، اما اینطور نیست
من تا به حال چندین بار این کار را انجام دادهام. همکارانی را داشتم که با من در مورد تکنولوژیهای جدیدی صحبت میکردند که استفاده کردهاند. گاهی اوقات فقط با آنها موافقت میکردم و طوری رفتار میکردم که انگار از آن فناوریها مطلع هستم. اینکه برخی چیزها را ندانید هیچ ایرادی ندارد. شما تنها نیستید.
تکنولوژیهای زیادی وجود دارد و شما واقعاً نمیتوانید تمام آنها را یاد بگیرید.
حفظ نکنید، نحوه کارکرد آنان را بفهمید
من قبلاً هم در مورد اهمیت یادگیری و تسلط بر اصول توسعه و برنامهنویسی تاکید داشتهام.
در ابتدا کارهایتان را با کپی پیست کردن کدها از مطالب آموزشی، مخازن و غیره شروع میکنید. این مسئله هیچ ایرادی ندارد، اما تا زمانی که کدهای کپی شده را متوجه شوید. اگر کدهایی که کپی میکنید را نفهمید، هیچ چیزی یاد نمیگیرید.
پس از گذشت چند ماه باید بتوانید برخی از آنها را درک کنید. باید با برخی از سینتکسها آشنا شده و اصول برنامهنویسی را بفهمید. سپس باید به تنهایی مشکلات را حل کنید. سعی کنید مشکلات را بدون کپی پیست کردن حل کنید. برای حل مشکلات از کدهای نوشته شده توسط خودتان استفاده کنید. از روش، سبک و ایدههای خودتان در حل مسئله بهره ببرید.
در اینجا هدف این است که زمان زیادی را در بخش کپی پیست کردن نگذرانید. از حل مشکلات یا کدنویسیِ ایدههای خود نترسید. میتوانید با آزمون و خطا چیزهای بیشتری را بیاموزید، بنابراین به تلاشهای خودتان ادامه دهید تا بخشهای دشوار به مراحلی آسان تبدیل شوند. هیچ روشی بهتر از این نیست. به یاد داشته باشید که یادگیری به زمان احتیاج دارد.
مستندات، رستگاری شماست
در آینده بابت این کار از خودتان تشکر خواهید کرد. وقتی تازه شروع به کار میکنید، ابتدا بر روی چند پروژه کار خواهید کرد. سپس با گذشت زمان کارهای بیشتری به شما سپرده خواهد شد؛ تا زمانی که دیگر حساب آنها از دست شما خارج میشود.
حالا روی پروژه شماره ۱۱ خود مشغول به کار هستید و ناگهان رئیس در مورد پروژه شماره ۲ از شما سوال میپرسد. او از شما میخواهد تا روی آن پروژه کار کنید و حالا آن پروژه اولویت اصلی است. شما پارسال آن پروژه شماره ۲ را ساختید و به خاطر اولویت کمتری که داشت آن را کنار گذاشتید.
از آنجایی که هیچکس به شما نگفت که چنین اتفاقی خواهد افتاد، شما نیز به ساختن مستندات مربوط به آن پروژه فکر نکردید. به همین دلیل وقتی دوباره به سراغ کدهای خود میروید، احتمالاً برخی از مسائل را فراموش کردهاید. شما پکیجها، نسخهها، الزامات و دلایل انتخابهای گذشتهی خود را فراموش کردهاید. قبلاً به رئیس خود گفته بودید که ۶۰ درصد از این پروژه را تکمیل کردهاید و به همین خاطر او تنها دو هفته به شما فرصت میدهد تا آن را به پایان برسانید.
حالا از این اتفاق درس گرفتهاید. دفعهی دیگر وقت بگذارید و برای تمام پروژههای خود مستندات ایجاد کنید. مستندات زندگی شما را نجات خواهند داد.
هنوز چیزهای زیادی برای یادگیری وجود دارد
این موضوع بسیار مهم است. اینکه بر روی چند زبان یا پشتهی تکنولوژی خود تسلط داشته باشید نباید باعث شود تا یادگیری را فراموش کنید. چیزهای بسیاری برای یاد گرفتن وجود دارد. با پیشرفت تکنولوژی، شما نیز پیشرفت میکنید. فکر نکنید که دانش امروزتان میتواند تا ۱۰ سال دیگر هم به شما کمک کند، چون از این خبرها نیست.
به یادگیری ادامه دهید. همیشه به دنبال چیزهای بهتر باشید چون توسعهی وب در مورد یادگیری مداوم است. به نظر من همین موضوع باعث هیجانانگیزتر شدن آن میشود. هرگز فرصت یاد گرفتن چیزهای بزرگ را از دست ندهید. فرصتها گذرا هستند. فرصت یک ثانیه به سراغ شما میآید و با یک چشم به هم زدن از دست خواهد رفت. باید آماده باشید. تا جایی که میتوانید ابزار نگه دارید، با این کار میدانید که برای استفاده از فرصتها آماده هستید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید