WebPajooh
WebPajooh
خواندن ۴ دقیقه·۲ سال پیش

آنچه هر برنامه‌نویس تازه‌کاری باید بداند!

این ویرگول، ترجمه‌ای خوب و روان (?) از پستی است که در سایت dev.to دیده بودم. اگر در ادامه با نویسنده مخالف باشم، نظر خودم را هم اضافه می‌کنم و اگر این پست را می‌بینید، یعنی مخالفتمان خیلی جدی نبوده است!


یک جایی از مسیر کاریمان را به گذشته نگاه می‌کنیم؛ اینکه چگونه شروع کردیم، چگونه پیشرفت کردیم و چه چیزی برای مای کم‌تجربه خیلی مفید و سودمند بود. اکنون تصمیم گرفته‌ام که برخی نکات را -که ترتیب آنها بی‌اهمیت است- با شما که یک برنامه‌نویس تازه‌کار هستید، در میان بگذارم.

وقت خود را در جنگ زبان‌ها تلف نکنید!

بله، درست خواندید! این کار را نکنید! هر زبانی، چیزی دارد که برخی با آن مشکل داشته باشند و شما -به عنوان تازه‌کار- جزو آن «برخی» نیستید! یکی را انتخاب کنید و با آن پیش بروید، و تصمیم‌گیری‌های بعدی را به زمانی در آینده موکول کنید که باتجربه شده‌اید!

هر جوابی که در Stackoverflow تایید شده، به درد مورد شما نمی‌خورد!

می‌دانم که ناخودآگاه به دنبال پاسخ‌های تیک‌خورده می‌گردید، اما همیشه جواب درست و مناسب شما در آن نیست. دیگر جواب‌ها و حتی کامنت‌ها را بخوانید؛ زیرا در کامنت‌ها هم چیزهای خوبی را متوجه خواهید شد.

قبل از کپی‌پیست‌کردن، بپرسید که این کد چگونه کار می‌کند!

در هر چالش غیر قابل حل، فرصتی برای یادگیری چیزهای جدید وجود دارد، پس با pasteکردن راه‌حل، این فرصت را از دست ندهید! سعی کنید شیوۀ کار کد را بفهمید و خوب درک کنید!

آموزش‌دیدن بدون تمرین‎‌کردن، اتلاف وقت است!

مطمئنم که دربارۀ دوزخ آموزش (tutorial hell) شنیده‌اید و هیچ بعید نیست که این اتفاق برای شما بیفتد! اگر یک برنامه‌نویس باتجربه نیستید که هدفش از دیدن آموزش، افزایش دانش است، پیش از شروع‌کردن هر دورۀ آموزشی، بررسی کنید که آیا تمرینات عملی در آن هست یا نه؛ زیرا یادگیری واقعی در تمرین‌کردن اتفاق می‌افتد. البته تمرین هم کافی نیست، باید بگذارید که ذهنتان فعال شود و به این پرسش بپردازد که آنچه آموخته‌اید در کجا می‌تواند کاربردی شود.

دانشگاه مهم است!

شاید دردناک به نظر برسد، ولی تحصیلات دانشگاهی در بازار کار یک مزیت به شمار می‌رود و حتی اگر خیلی‌ها بگویند مهم نیست، در عمل چنین برخورد نمی‌کنند و ممکن است به خاطر «نداشتن بک‌گراند کافی برای نیازمندی‌ها» یک فرصت شغلی را از دست بدهید! همیشه در حال مطالعه و بهبود دانش خود باشید.

مترجم: کتاب‌خواندن سرمایه‌گذاری خوبی است و باعث می‌شود که به جای آزمایش و خطا، از تجارب بزرگان حوزۀ مهندسی نرم‌افزار استفاده کنید. لیستی از کتاب‌های خوب را جمع‌آوری کنید، اولویت‌بندی کنید و بعد بخوانید. اگر مهارت قابل قبولی در زبان انگلیسی ندارید، حتما برای آن وقت بگذارید.

اینکه کد کار می‌کند، به معنای خوب‌بودنش نیست!

یک حقیقت دردناک دیگر! همیشه تلاش کنید که از برنامه‌نویسان باتجربه و کهنه‌کار دربارۀ کدهایی که می‌نویسید بازخورد بگیرید. اگر چنین کنید، سرعت یادگیری شما به مراتب بیشتر می‌شود و جلوتر می‌افتید.

مترجم: خواندن کتاب‌هایی مثل Clean Code اثر Robert Martin و Refactoring اثر Martin Fowler می‌تواند بسیار مفید باشد. در هر زبانی، استانداردهایی مربوط به Style کدها وجود دارد که می‌توانید خود را با آنها وفق دهید.

شرکت در مصاحبه‌های شغلی، خسته‌کننده هستند!

جاده بسیار باریک است، پس خود را برای رد شدن آماده کنید! ممکن است سه مرحله مصاحبه را بگذرانید، و در آخر بگویند که تا نگویید فلان سیستم را چه کسی ابداع کرده، به مرحلۀ بعد نخواهید رفت! گاهی مصاحبه و شغل با هم مطابقت ندارند؛ مثلاً در نهایت با ORM کار خواهید کرد اما سؤالات عجیب SQL مطرح خواهد شد، یا اینکه قرار است REST API ساده‌ای بنویسید، اما از شما دربارۀ اینکه Node.js چگونه ساخته شد بپرسند!

قوی و آماده باشید!

زبان و فریمورک را بشناسید!

اینکه با یک زبان یا کتابخانه، اپلیکیشن‌های CRUDمحور بسازید، کافی نیست! سعی کنید درک بهتری از سیستم به دست بیاورید، زیرا وقتی به جاهای بهتری برسید، احتمالا ابزارهایی خواهید ساخت که توسط دیگران استفاده شوند و دانشی که از این راه به دست می‌آورید، فوق‌العاده خواهد بود!

مترجم: خواندن documentation بسیار بیشتر از آنچه فکر می‌کنید مفید است. همچنین ضرری ندارد که گاهی کد فریمورک یا لایبرری‌هایی که استفاده می‌کنید را بخوانید و از طرز کار آنها سر در بیاورید.

تنها در حد چالش‌هایی که داشته‌اید خوب هستید!

به طور ساده، تفاوت میان Junior و Senior در تجربه است! چیزهای خیلی زیادی برای آموختن هست. گاهی از خود می‌پرسید: چه چیزی بسازم؟ و وقتی با موانع رو به رو شوید، چیزهای جدیدی خواهید آموخت.

بنویسید، داکیومنت کنید و وبلاگ داشته باشید!

آنچه یاد می‌گیرید و تجربه می‌کنید را با دیگران هم به اشتراک بگذارید. قرار نیست که همیشه دربارۀ یک مفهوم، حق با شما باشد و حرف درست را بزنید. خیلی اوقات از بخش کامنت‌ها چیزهای زیادی یاد گرفته‌ام و بعد با خود فکر کرده‌ام که اگر نویسنده آن پست را منتشر نمی‌کرد، دیگران هم آن کامنت‌های خوب و مفید را نمی‌نوشتند!

مترجم: نوشتن کامنت برای کدهایتان را هم تمرین کنید. پروژه‌هایتان را مستندسازی کنید، Readme بنویسید و طرز کار آنها را توضیح دهید.

رابطه‌سازی را شروع کنید!

با توسعه‌دهندگان ملاقات کنید، در رویدادها شرکت کنید، به انجمن ها بپیوندید و با دیگران تعامل داشته باشید. در آینده به مشکلاتی خواهید خورد و این آنها هستند که در را به رویتان باز می‌کنند! شبکۀ اجتماعی Linkedin ابزار مناسبی برای برندسازی و وصل‌شدن به دیگران است.


شما توصیۀ دیگری دارید؟ کامنت بگذارید!

بازار کار برنامه نویسیچگونه برنامه نویسی را شروع کنیمراهنمای برنامه نویس شدنمی خواهم برنامه نویس شومآموزش برنامه نویسی
توسعه‌دهندۀ بک‌اند، امیدوار، خیال‌باف، علاقه‌مند به خواندن و نوشتن
شاید از این پست‌ها خوشتان بیاید