من تا به حال چندین مقاله نوشتهام و سعی میکنم تا آنجا که میتوانم این مقالات را به ویژه برای تمام توسعهدهندگان خودآموز به اشتراک بگذارم. بیشتر نوشتههای من براساس تجربیات شخصی است. این تجربیات شخصی همان چیزهایی هستند که من به سختی یاد گرفتهام. هیچ شخصی این مطالب را به من نگفته است. من هنگام شروع به کار کردن به سراغ هیچ توسعه دهنده خودآموزی نرفتم، زیرا نتوانستم در آن زمان همچین شخصی را پیدا کنم.
امروزه توسعهدهندگان خودآموز بسیاری در دنیا وجود دارد. من اکثر ساعات صبح خود را صرف خواندن مطالب این چنینی میکنم زیرا عقیده دارم که این مطالب بسیار با ارزش هستند. ما میتوانیم موارد فنی را به صورت آنلاین یاد گرفته و برای درک آنها تمرین کنیم. این سفر فقط به جنبه فنی مربوط نمیشود. نباید تنها سعی کنید مسائل سخت را یاد بگیرید.، بلکه باید بدانید چه چیزهایی در این عرصه وجود دارد. اگر بتوانیم مسائل غیرضروری را کنار بزنیم، انجام این کار بسیار آسانتر خواهد شد.
آرزو میکنم ۴ سال پیش کسی وجود داشت و این مقاله را برایم مینوشت، شاید اینگونه زمان و انرژی کمتری را صرف موارد کم اهمیت میکردم. ما برای رسیدن به موفقیتهای روزمره تنها به کمی انگیزه احتیاج داریم.
رابرت استیونسون میگوید:« روزهای خود را براساس برداشتی که داشتهاید قضاوت نکنید. روزهای خود را براساس بذرهایی که کاشتهاید قضاوت کنید.»
یادداشتها یا کتابخانه شخصی خود را ایجاد کنید
من این کار را از زمان شروع به کار کردن با ReactJS انجام دادهام. از آن زمان تا به حال چیزی بیشتر از یک سال گذشته است.
وقتی یک توسعه دهنده هستیم، از بین تمام کارهایی که باید به خاطر بسپاریم، تلاش برای خودکار کردن کارها همیشه یکی از ایدههای اصلی ما بوده است. همیشه سعی میکردیم تا حد ممکن زمان خود را صرفهجویی کرده، فعالیتهای خود را کوتاهتر کرده و وظایف تکراری را حذف کنیم. ما به عنوان یک توسعه دهنده باید سازگار باشیم و برای حذف وظایف تکراری تمرین کنیم.
به عنوان مثال اگر ما مجبور باشیم از React Router استفاده کنیم، مانند هر توسعه دهنده دیگری در گوگل به دنبال مطالب آموزنده میگردیم و سپس آن را یاد میگیریم. وقتی این کار را یاد گرفتیم، به حرکت خود ادامه میدهیم و با موضوعات جدیدتری مواجه میشویم. روزها و حتی هفتهها میگذرد، وقتی دوباره میخواهیم از React Route استفاده کنیم به سراغ گوگل میرویم و همان کار گذشته را تکرار میکنیم.
شاید بگویید React Router نه، خب نظرتان در مورد CSS چیست؟ ما همیشه و بارها از آن استفاده میکنیم. به جای اینکه سعی کنید به یاد بیاورید آن ویژگی CSS را کجا دیدهاید، بهتر نیست کتابخانه یا یادداشتهای شخصی خودتان را ایجاد کنید؟
شاید شما یک مشکلی را حل کردهاید و نمیخواهید دوباره با آن باگ روبرو شوید. بنابراین بهتر است مطالب مفیدی را در مورد آن مشکل یادداشت کنید، زیرا ما انسانها همه چیز را زود فراموش میکنیم.
همین اصل تکرار نکردن وظایف، چه در برنامه نویسی و چه در زندگی شخصی به شما کمک میکند تا کارآمدتر و تاثیرگذارتر باشید. زمان طلاست، پس آن را عاقلانه سپری کنید.
فقط کپی پیست نکنید، آن را درک کنید
در ابتدا کپی پیست کردن یک کد قابل فهم است. با این حال اگر میخواهید یک توسعه دهنده خوب باشید، باید بدانید که چرا کارکرد مسائل پیرامون شما بدین صورت است. اگر ندانید چه اتفاقی برای پروژه شما میافتد، نمیتوانید خود را یک توسعه دهنده بنامید. شما باید علت و نحوه مرتبط بودن آنها با یکدیگر را بفهمید. این زیبایی یک کد است. ساختار و معماری جذاب کد همانند یک قطعه هنری میباشد.
هنگام ساخت پروژه، با چندین خطا و اشکال روبرو خواهید شد. اگر بدانید که چه کار میکنید، برطرف کردن این باگها کار سختی نخواهد بود. وقتی برای حل مشکلات خود در اینترنت به دنبال جواب میگردید، آن راهحلها را نیز به یادداشتهای شخصی خود اضافه کنید. شما باید آن راهحل را درک کنید. اینگونه میدانید که چگونه باید دوباره آن مشکل را حل و فصل کنید.
به همین خاطر باید کمی وقت بگذارید و آن را درک کنید. این تنها روش برای یادگیری برنامه نویسی و بهترین راه برای تبدیل شدن به یک برنامه نویس خوب است. خواندن کدها را تمرین کنید، زیرا توسعه دهنده بودن تنها دربارهی ساخت برنامهها نیست. در دنیای واقعی توسعهدهندگان، شرکتها از شما میخواهند تا کدهای دیگران را ادامه دهید، از کدهای موجود دوباره استفاده کنید و کارهای دیگران را تقویت و حفظ کنید. بنابراین کارهای دیگران را بررسی و مطالعه کنید. شما روشهای خوب و استایل کدنویسی را یاد خواهید گرفت.
بهترین راه برای یادگیری، تلاش و امتحان کردن است
سفر توسعهدهندگی من در یک مسیر سریع و سیر بوده است. من پس از گذشت ۶ ماه کار سخت توانستم شغل خود را بدست آورم. من فقط کار میکردم، میخواندم و در جستجوی شغل بودم.
بعد از ۳ ماه کار در اولین شغل خود، به همراه دو همکار دیگر موظف شدیم تا بر روی یک پروژه برنامه گوشی کار کنیم. اگر بیشتر مقالات من را خوانده باشید، میدانید که در اولین شغل خود با هشت فارغالتحصیل دیگر از علوم کامپیوتر کار کردهام. این به من کمک کرد تا بتوانم بر فشارها و ناامنیها غلبه کنم.
نمیگویم که بهترین سفرم بوده، اما قطعاً بسیار خوب بوده است. من نه فقط از جنبه فنی، بلکه در برخورد با خودم هم چیزهای بسیار را آموختم. بهترین راه یادگیری، امتحان کردن است. شما باید خودتان را به دنیای واقعی نشان دهید. اینکه دیگران چه فکر میکنند هیچ اهمیتی ندارد. حتی اگر تمام دنیا به شما شک داشته باشند، اصلاً اهمیت ندارد. گاهی اوقات تمام کاری که باید انجام دهید این است که خودتان را نشان دهید. هیچ چیزی به اندازه غلبه بر دشوارترین لحظات خوشایند نیست.
تا زمانی که کمترین حد خود را تجربه نکنیم، نمیتوانیم بفهمیم که تا چه اندازه میتوانیم به جلو حرکت کنیم. بهترین معلم شما تجربه است، پس از اشتباه کردن نترسید. زیاد اشتباه کنید. تنها چیزی که اهمیت دارد این است که چگونه بر آن مشکلات غلبه خواهید کرد و چه درسی از آنها خواهید گرفت.
اولین کار من دلپذیرترین کار نبود، اما با این حال پاداش زیادی را برای من به همراه داشت. من توانستم قدرتمندتر و بهتر از هر زمان دیگر شوم. تا زمانی که بد را تجربه نکنید، چیزی از خوبی نخواهید دانست.
هنر اشکالزدایی
اشکالزدایی انجام یک کار مکرر و انتظار نتایج متفاوت است. این بخش جزو قسمتهای نه چندان سرگرمکننده در برنامه نویسی است. بخشی که در آن شما درباره تمام کارهای اشتباه خود در زندگی فکر میکنید، تمام انتخابهای گذشته خود را زیر سوال میبرید و بارها از خودتان میپرسید که آیا توسعه وب برای شما مناسب است یا خیر.
برطرف کردن باگ، یکی از بهترین احساساتی است که در جهان وجود دارد. سرانجام امروز توانستم برخی از باگهای شبکه اتصال را برطرف کنم. ما بیش از یک هفته بود که سعی کردیم این مشکل را برطرف کنیم. با توجه به تجربهای که دارم، میتوانم بگویم که حل کردن مشکلات به تدریج آسانتر خواهد بود. وقتی خطوط قرمز بسیاری را در کنسول خود مشاهده میکنید، نترسید زیرا به محض حل کردن چند خطای اصلی، بیشتر این مشکلات برطرف خواهند شد.
بنابراین بهترین روش این است که خطاها را تک به تک برطرف کنید. احتمالاً بیشتر این خطاها توسط توسعهدهندگان قبل از شما رخ داده است. به من اعتماد کنید و هر بار فقط یک مشکل را حل کنید. هنگامی که برنامه را کامپایل میکنید، سایر اخطارها خود به خود حل میشوند. فقط خطا را دنبال کنید. مطمئناً با خواندن خطوط و بدست آوردن تجربه، متوجه این اشکالات خواهید شد.
اگر بعد از ساعتها تلاش برای رفع اشکال هنوز هم نمیتوانید راهحلی را پیدا کنید، کمی استراحت کرده و هوای تازه تنفس کنید. بیشتر اوقات ما انسانها مشکلات خودمان هستیم. چرا ما عادت داریم کارهای ساده را پیچیده کنیم؟
مدبر بودن یکی از بزرگترین نقاط قوت شما خواهد بود
این ویژگی به خصوص زمانی به درد شما میخورد که یک توسعه دهنده خودآموز باشید. این یکی از بهترین مهارتهایی است که میتوانید در توسعه وب و زندگی شخصی خود بدست آورید. شما نمیتوانید در انتظار رخ دادن اتفاقات بنشینید. اگر به دنبال چیزی هستید، از جای خود بلند شده و برای رسیدن به آن کار کنید.
به عنوان یک توسعه دهنده خودآموز میگویم که شما برای تبدیل شدن به یک توسعه دهنده نیازی به هزینههای زیادی ندارید. شاید خیلی از مردم با این حرف من مخالف باشند، اما من بدون صرف هزینههای بسیار به موفقیت رسیدم. زمانی که من شروع کردم، تنها زمان و رویاهای بزرگ در اختیار داشتم.
بیشتر چیزهایی که امروز دارم، تنها تجملات دیروز من هستند پس از بهانه آوردن دست بکشید. اگر میخواهید یاد بگیرید و به یک توسعه دهنده موبایل یا نرمافزار تبدیل شوید، اراده شما باید قویتر از بهانههای شما باشد. چیزی به نام "زمان مناسب" وجود ندارد، تنها زمان است. این شما هستید که تصمیم میگیرید با این زمان چه کارهایی انجام دهید.
سختکوشی هر بار استعداد را شکست میدهد. من در حال تلاش برای تبدیل شدن به یک توسعه دهنده ارشد و تمام عیار هستم. من نمیخواهم مثل سایر توسعهدهندگان باشم. به تلاشهای خود ادامه میدهم و مطمئنم که به هدف خود نزدیک هستم. کاری که ما امروز انجام میدهیم یا نمیدهیم، پایه و اساس آینده ما خواهد بود. بنابراین تلاش کردن یا نکردن تنها انتخاب شخص شماست.
بیش از هر چیز دیگری بهتر است بگویم که شما باید هر از چند گاهی استراحت کنید. تمام تلاشها و سختکوشیهای شما با مریض شدن از بین خواهد رفت، بنابراین وقت بگذارید و استراحت کنید. زمان آن فرا رسیده تا به نسخهی بهتری از خودتان تبدیل شوید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید