خانه توسعهدهنده مسیر شغلی تفاوت توسعهدهندهی تازهکار، سطحمتوسط و ارشد
تفاوت توسعهدهندهی تازهکار، سطحمتوسط و ارشد
سطح شما بهعنوان یک برنامهنویس (تازهکار یا junior، سطحمتوسط یا mid-level و ارشد یا senior) هیچ ارتباطی به تعداد سالهای کاری شما ندارد. حتی ممکن است یک توسعهدهنده تازهکار، مسنتر از یک توسعهدهنده ارشد باشد. همهچیز به مهارت بستگی دارد. این به این معنا نیست که توسعهدهنده ارشد باید در همهچیز ماهر باشد، اما میتوان با اطمینان گفت که توسعهدهندگان ارشد بسیار ماهرتر از دو سطح دیگر (تازهکار و سطحمتوسط) هستند.
اما عواملی بسیار بیشتر از مهارت کدزنی، تفاوت میان این سه سطح را رقم میزند. خب، این تفاوتها دقیقاً چه چیزهایی هستند؟
فهرست مطالب
Toggleدانش
بدیهی است که یک توسعهدهنده ارشد دانش بسیار بیشتری نسبت به یک توسعهدهنده تازهکار و یا سطحمتوسط دارد. افزایش اطلاعات در زمینه الگوهای طراحی، معماری، تست خودکار، عملکرد، امنیت و… روش خوبی برای توسعهدهندگان تازهکار است تا فاصله دانش خود را با توسعهدهندگان سطحمتوسط و ارشد کاهش دهند.
اما فقط دانستن این موارد شما را تبدیل به یک توسعهدهنده ارشد نمیکند. چیزی که اهمیت دارد این است که بدانید کارها چگونه انجام میشوند و اینکه چگونه از دانش خود در زمینه توسعه نرمافزار استفاده کنید. دانش بزرگترین تفاوت بین توسعهدهندگان نیست، بلکه فقط یکی از عوامل است.
کدزنی
علیرغم آنچه بیشتر مردم گمان میکنند، کدزنی برقراری ارتباط با رایانه نیست؛ چون درنهایت کد به هر شکلی که نوشته شده باشد، کامپایل میشود و به مجموعهای از صفر و یکها تبدیل میشود.
کدنویسی عبارت است از برقراری ارتباط با انسانها و فرمان دادن به کامپیوتر. کدی که نوشته میشود باید برای سایر توسعهدهندگانی که ممکن است در آینده با آن کار کنند، قابلفهم باشد. تیم جدیدی که قبلاً کد را ندیده است باید بتواند کد را باز کند و روی ویژگیهای جدید یا رفع اشکال آن کار کند. اینجاست که تفاوت بزرگی بین توسعهدهندگان تازهکار و ارشد وجود دارد.
هر کسی میتواند کدی بنویسد که یک کامپیوتر آن را بفهمد. برنامهنویس خوب کدی مینویسد که انسانها آن را میفهمند.
مارتین فولر
در این مقایسه افراد متوسط در نظر گرفته نشدهاند، چراکه وقتی پای مهارت کدزنی در میان باشد، توسعهدهندگان سطحمتوسط جایی مابین توسعهدهندگان تازهکار و ارشد قرار دارند و حتی کمی به سمت توسعهدهندگان ارشد متمایل هستند. توسعهدهندگان سطحمتوسط تمام مسیر توسعه را حداقل یک بار تجربه کردهاند و بارها سادهترین اشتباهات ممکن را مرتکب شده و از آنها درس گرفتهاند.
مطلب مشابه: چرا توسعهدهندگان ارشد بیش از تازهکارها در مصاحبههای کاری رد میشوند؟
چگونه توسعهدهندگان تازهکار را تشخیص دهیم؟
توسعهدهندگان تازهکار بیتجربهاند. بعضی از آنها بهتازگی فارغالتحصیل شده و اولین کار تماموقت خود را شروع کردهاند. تنها چیزی که برای آنها مهم است این است که کدشان کار کند. ازنظر آنها نرمافزار خوب، نرمافزاری است که کار میکند.
نوشتن یک کد ساده کار سختی است و این کاری است که توسعهدهندگان تازهکار انجام نمیدهند. توسعهدهندگان تازهکار کدهای پیچیدهای مینویسند. شما میتوانید یک توسعهدهنده تازهکار را با کدهای تکخطی عجیب و غریب و بیش از حد پیچیده تشخیص دهید. این روش توسعهدهندگان تازهکار است تا به دیگران نشان دهند که چقدر در کدزنی ماهر هستند و البته، این کاملاً اشتباه است!
این توسعهدهندگان بر روی جنبه کامپیوتری کدشان تمرکز میکند و این کار را به قیمت از بین بردن جنبه انسانی انجام میدهند.
چگونه توسعهدهندگان ارشد را تشخیص دهیم؟
وقتی به کد یک توسعهدهنده ارشد نگاه میکنید، ممکن است فکر کنید: فقط همین؟ بقیه کد کجاست؟ یک توسعهدهنده ارشد کدهای ساده، سرراست و شاید حتی کمی احمقانه مینویسد. این یکی از مهمترین خصوصیاتی است که یک توسعهدهنده میتواند داشته باشد. یک توسعهدهنده ارشد از اصل KISS در کدنویسی پیروی میکند: keep it simple, stupid
توسعهدهندگان ارشد درمورد کد خود با ذهنیتی کاملاً متفاوت از توسعهدهندگان تازهکار فکر میکنند. آنها با در نظر گرفتن ویژگیهای قابلنگهداری و توسعهپذیر بودن، کدنویسی میکنند. یک توسعهدهنده ارشد به افرادی که باید با این کد کار کنند، فکر میکند، در حالی که فرد تازهکار فقط به کار کردن آن بر روی رایانه فکر میکند.
فراتر از مهارتهای کدزنی
علاوه بر مهارتهای کدزنی، عوامل دیگری هم وجود دارد که باعث تمایز توسعهدهندگان میشود.
بهطور کلی، توسعهدهندگان تازهکار کارهای بسیار ساده یا با تأثیر کم را انجام میدهند. آنها بههیچوجه طراحی معماری انجام نمیدهند. توسعهدهندگان سطحمتوسط هم طراحی راهحل انجام نمیدهند و تنها وظایفی که به آنها محول شده است را اجرایی میکنند. تفاوت توسعهدهندگان سطحمتوسط و تازهکار این است که توسعهدهندگان سطحمتوسط وظایفشان را با نظارت کمتری نسبت به تازهکارها انجام میدهند. البته بهشرطی که کارهای معمول و روزانه به آنها محول شده باشد. در مقابل، توسعهدهندگان ارشد میتوانند بهتنهایی یک برنامه را بهصورت کامل توسعه دهند.
این به این معنا نیست که برای توسعهدهنده ارشد در حین کار سؤالی پیش نمیآید. برای هر توسعهدهندهای در طول روز سؤالات زیادی پیش میآید و هیچکس حتی یک توسعهدهنده ارشد از این مورد مستثنی نیست. بعضی اوقات بهترین راه این است که فقط از توسعهدهندگان باتجربه در آن زمینه کمک بخواهید.
تفاوت در این است که توسعهدهندگان ارشد میدانند که چگونه سؤال درست را بپرسند و آن را مدیریت کنند. توسعهدهندگان ارشد هیچگاه سردرگم نمیشوند و میدانند چگونه سؤالات تکمیلی خود را مطرح کنند. توسعهدهندگان سطحمتوسط هم تا زمانی که بحث کارهای معمول است و به سطح دانش بالا و عمیقی نیاز نیست، قادر هستند تا سؤالات درست را مطرح کنند، ولی وقتی پای وظایف پیچیدهتر به میان میآید، نیاز به کمک دارند.
نباید از توسعهدهندگان تازهکار انتظار داشت که خیلی زود بتوانند سؤالات درستی بپرسد. از آنجایی که آنها اکثراً بیتجربه هستند، به راهنمایی بیشتری از طرف توسعهدهنگان باتجربهتر نیاز دارند و لازم است تا منابع ضروری برایشان فراهم شود و به سمتوسوی درست هدایت شوند.
رفتن به سطح بالاتر
همهی ما میخواهیم عملکردمان را بهبود ببخشیم و بهعنوان یک توسعهدهنده بهتر شویم، ولی برای رفتن به سطوح بالاتر چه کارهایی باید انجام داد؟
تازهکار به سطح متوسط
از آنجا که توسعهدهندگان تازهکار کمتجربه هستند، مهم است که حداقل چند بار کل چرخه توسعه را طی کنند. به این ترتیب با مشکلات مواجه شده و از آنها یاد میگیرند.
وقتی صحبت از کدزنی میشود، باید نحوه ساده نوشتن کد را بیاموزید. به نفر بعدی که میخواهد روی کد شما کار کند، فکر کنید. شما همچنین باید یاد بگیرید که چگونه یک کد را دیباگ کنید. این کار به شما درک بهتری از آنچه در این فرآیند اتفاق میافتد، میدهد.
علاوه بر این، شما باید با بهترین روشها آشنا شوید و درمورد معماری، عملکرد، امنیت و… بیاموزید. شما با این کار شکاف دانش برای رسیدن به سطح متوسط را کاهش میدهید.
سطح متوسط به ارشد
پیشرفت از سطح متوسط به ارشد میتواند بسیار سخت باشد. بعضی از توسعهدهندگان تمام طول کاری خود یک توسعهدهنده سطح متوسط باقی میمانند.
توسعهدهندگان ارشد تجربیات زیادی را بهسختی و فقط با آزمونوخطا به دست آوردهاند. اگر میخواهید به سطح ارشد برسید، باید آماده باشید تا وظایفی را بر عهده بگیرید که هیچکس نمیداند چگونه انجام دهد. شما باید چیزهایی بسیار بیشتر از فقط به اتمام رساندن کار بلد باشید.
بهعنوان توسعهدهنده ارشد، یکی از وظایف شما کمک به توسعهدهندگان کمتجربهتر است. هنگامی که توسعهدهندگان نمیدانند چگونه کاری را انجام دهند، شما پشتیبان آنها هستید.
و البته این شاید عجیب نباشد که توسعهدهندگان ارشد در شاخه تکنولوژی خود، کاملاً ماهر و استاد هستند. این چیزی بیشتر از مهارت کدزنی است. شما باید با تمام ابزارها و برنامههایی که در شرکتتان استفاده میشود، آشنا باشید.
مطلب مشابه: چه زمانی برنامهنویسان بازنشسته میشوند؟ آیا 35 سالگی زمان خداحافظی است؟
جمعبندی
تفاوت بین یک برنامهنویس سطح ابتدایی، متوسط و ارشد به تعداد سالهای فعالیتشان در این زمینه بستگی ندارد. هرچند با اطمینان میتوان گفت که توسعهدهندگان ارشد مهارت بیشتری نسبت به توسعهدهندگان تازهکار و متوسط دارند، اما دانش مهمترین عامل این تمایز نیست.
توسعهدهندگان ارشد کدهای سادهای مینویسند و طرز تفکر متفاوتی نسبت به توسعهدهندگان تازهکار دارند. اما این فقط به مهارتهای کدزنی محدود نمیشود. دانستن اینکه چه سؤالاتی باید بپرسید و چطور این سؤالها را پیگیری کنید، ضروری است و این چیزی است که فقط یک توسعهدهنده ارشد، با داشتن تجربیات فراوان، میداند که در هر شرایطی چگونه آن را انجام دهد.
برای رشد بهعنوان یک توسعهدهنده تازهکار باید بر نوشتن کدهای ساده و گذراندن چندین چرخه توسعه تمرکز کنید. برای رفتن از سطح یک توسعهدهنده متوسط به یک توسعهدهنده ارشد، باید بسیار بیشتر از انجام فعالیتهای معمول و روزمره یاد بگیرید. شما باید مشتاق باشید تا سختترین وظایف را بر عهده بگیرید و به استاد شاخه تکنولوژی خود تبدیل شوید. یکی دیگر از مسئولیتهای افراد ارشد راهنمایی و پشتیبانی دیگر توسعهدهندگان کمتجربه است.