لوکوموتیو Profile picture
Feb 9 49 tweets 22 min read
تفاوت‌های بین برنامه‌نویس جونیور و برنامه‌نویس سینیور (به‌همراه نکات بامزه):
👇

#رشتو #برنامه_نویسی
1️⃣ ها؟

سه چهار هفته پیش یه توییت زدم و نظر دوستان رو درباره این سؤال جویا شدم. یه ۱۵۰ تا کامنت گذاشتن دوستان + تجربیات خودم + یه‌سری چیزای گوگلی + یه سری میم و ویدیوی بامزه رو گفتم یه رشتو کنم!
2️⃣ جونیور/سینیور چیه؟

تعریف خیلی دقیقی نداره چون هر دوی اینا یه بازه هستن. استفاده از الفاظ بیگانه هم به‌خاطر رایج بودنش هست فقط. (معادل‌های فارسیش معنای دقیق رو نمی‌رسونه و در صنعت هم این اصطلاحات به‌شدت رایجن.)

کلی ولی بگم:
- جونیور: اوایل کار و داغ
- سنیور: شکست و خاک خورده!
3️⃣ من جونیورم یا سینیور؟

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

تأکید: ما اینجا قضاوت نمی‌کنیم! صرفاً بحث انتقال دیدگاه و تجربه‌س. :)

4️⃣ هفت دسته شباهت بامزه جونیور و سینیور!

۱. هر دو حرص می‌خورن (از دست هم حتی) گاهی. :))
۲. کلاً از گوگل زیاد استفاده می‌کنن جای حفظ کردن! :)
۳. جفت‌شون تا حد خوبی از خوندن داکیومنتیشن گریزون هستن!
۴. جفت‌شون وقتی می‌رن توی دنیای خودشون دیگه در نمیان!
۵. جفت‌شون اخلاق‌های خاص خودشون رو دارن!
۶. جفت‌شون موقع دیباگ‌کردن بارها به در و دیوار می‌خورن!
۷. جفت‌شون با جوک‌های پروگرمینگ حال می‌کنن درحالی‌که با همه‌شون کلی زخم دارن یا خواهند داشت! :))
5️⃣ بیست تفاوت جونیور و سینیور از دید کامنت‌های دوستان

۱. وسع دید و شرح وظایف جونیور معمولاً در حد «چگونگی»ه. در حالی‌که برای سنیور معمولاً «چرایی» داستانه.

این گذار معمولاً با کنجکاوی برای ریشه‌یابی و سیرنشدن از صرف «هورا! کار می‌کنه!» اتفاق می‌افته.
۲. همچنین سایز وظیفه‌ی سینیور معمولاً بسیار بزرگتر از جونیوره.

این گذار معمولاً با اثبات این‌که شخص می‌تونه پروژه‌های بزرگتر (از نظر زمان، تعداد افراد، پیچیدگی داستان) رو هم دلیور کنه اتفاق می‌افته. و نیاز به مهارت‌های نرم/غیرفنی هم برای مدیریت زیاد داره.
۳. شکسته‌نفسی یکی از عوامل سینیور بودن هست.

این گذار معمولاً با علم به این‌که توی این رشته هرگز تو به تهش نمی‌رسی اتفاق می‌افته. و یه تعادل بین ایمپاستر بودن و خاکی بودن سالم می‌تونه خیلی درها رو باز کنه؛ چون تهش مهم عطش یادگیری هست که باید بمونه!

۴. سینیور می‌دونه که «پروژه» خیلی قسمت‌های بیشتر از «کد» داره.

این گذار معمولاً با تجربه و دیدن این‌که توی محیط کار و صنعت، تهش «تحویل پروژه و شیپ/لانچ کردن» سنجیده می‌شه به‌دست میاد. مضافاً راه رسیدن به انتهای پروژه گاهی از آدم‌ها و روابط می‌گذره!

۵. سینیور ذهنش بازه برای جواب‌های جدید، جونیور معمولاً دوست داره جواب‌های داشته رو سریع به کار ببنده.

این گذار معمولاً با افزایش اعتمادبه‌نفس و لذت از یادگیری (عدم تکرار) حاصل می‌شه. و با رشد جعبه ابزار راهکارها، خود مسأله‌ی انتخاب هم مسأله جالبی می‌شه!
۶. سینیور آینده‌نگرتره و به پس‌فردا هم فکر می‌کنه.

این گذار معمولاً با درگیر بودن در پروژه‌های طولانی و مدیریت کدهای قدیمی حاصل می‌شه. این‌که بدونی اگه آشغالت رو بدی زیر فرش، دو روز دیگه خودتی که باید با کثافت جمعش کنی. و فقط به فکر امروز بودن کافی نیست!
۷. سینیور جامع‌تر می‌بینه و به بقیه یاد می‌ده.

این گذار هم معمولاً با تجربه و عطش رشد و یادگیری حاصل می‌شه. این‌که بتونی بزرگتر از خودت رو ببینی و بتونی یه تیم رو با خودت پیش ببری: هم با شکستن مسأله، هم با تفویض زیروظایف‌ها، و هم با حمایت از جونیورها!
۸. سینیور معمولاً قدرت حل مسأله بهتری داره.

این گذار هم باز معمولاً با تجربه به‌دست میاد. این‌که زیاد ببینی و بتونی از «یک راه‌حل» برسی به «چند راه‌حل» و بعد با مقایسه درستشون بتونی «بهترین راه‌حل» رو برای اون مسأله و با شرایط خاص خودش ارائه بدی.
۹. سینیور نکات منفی رو هم بلده.

این گذار با تجربه‌ی شکست به‌دست میاد -- چه خوندن و دیدنش، چه بهتر با لمس کردنش. این‌که بدونی چه چیزهایی که توی تئوری و روی کاغذ کار می‌کنه، در عمل ممکنه خیلی چاله‌چوله‌های بزرگی رو با خودش داشته باشه.
۱۰. سینیور مسأله رو از بالا می‌بینه.

این گذار معمولاً با گسترش شرح وظایف و کمی قدرت و اعتماد به‌دست میاد. این‌که حتی خیلی مواقع بشه صورت سؤال رو هم حذف/عوض کرد تا به نفع شرکت/تیم باشه، به‌جای صرف پریدن روی جواب و «حالا یه کُدی زود» نوشتن!
۱۱. سینیور دنبال تخلیه نیست! دنبال گرفتن و دریافته اول.

این گذار معمولاً با یادگیری صبر به‌دست میاد. این‌که بدونی خیلی مواقع می‌تونی بدون جهیدن و سریع یه‌چیزی رو خوروندن به ناف پروژه، واقعاً ببینی چه چیزهایی (که ممکنه نداشته باشی هم) به درد پروژه بخوره!
۱۲. سینیور کل سیستم رو می‌بینه نه جزء رو.

این گذار معمولاً با افزایش حیطه وظایف، سررفتن حوصله از فقط زیرمسأله، و تشنگی برای چراجویی ریشه‌ای حاصل می‌شه. که دلت بخواد به‌جای سفت کردن پیچ صندلی هواپیما، ببینی کابین چه‌طور کار می‌کنه و حتی خود پرواز هواپیما!
۱۳. سینیور معمولاً خوب می‌گرده و یاد می‌گیره!

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

این گذار معمولاً با پیدا کردن «چندین راه» و درک «خفونت الزاماً با پیچیدگی نباید به رُخ کشیده بشه» حاصل می‌شه. این‌که بدونی تهش چیزی که بیشتر دووم بیاره بهتره، نه چیزی که فقط یه روز همه براش ذوق کنن!
۱۵. سینیور تقریباً برای هر گامش فکر می‌کنه، نه عجله.

این گذار با کمی آرامش و وزن‌دهی به رشد میاد. درسته همیشه فشار تحویل پروژه هست اما گاهی یه کم این‌ور اون‌ورو گشتن می‌تونه کمک کنه که چار تا چیز اضافه هم آدم ببینه و شعاع دانشش هر روز یه میلی‌متر گنده شه!
۱۶. سینیور حس‌مسئولیت بزرگتری به دوش خودش می‌ده.

این گذار با افزایش حس تعلق/ownership و تمامیت/integrity با شرکت و محصول به‌دست میاد. این‌که شخص بدونه که تهش باید پروژه انجام بشه، نه بره بگه من کارامو انجام دادم و به‌من چه که تهش نشد و دنبال بهونه بگرده!
۱۷. سنیور می‌دونه کِی کافیه.

این گذار با تجربه‌ی دیدن این‌که چه حجمی از کارهای اضافه، عملاً قابل حذف بوده‌ان حاصل می‌شه. این‌که کجاها صرفاً وسواس و طمعه که بخوای دقیق‌تر و تکمیل‌ترش بکنی، درحالی‌که واقعاً لازم نیست و می‌شه همین وقت رو سر چیزای بهتر گذاشت!
۱۸. سنیور با مسیر آشناتره.

این گذار حاصل تجربه‌ست بازم. این‌که بارها و بارها (مثل «بلد»های نپالیِ قله‌ی اورست) این مسیرو رفته باشی و بدونی برای شروع چه آذوقه‌ای لازمه و باید از کدوم قله رفت و کدوم دره رو دور زد. همین زمان دادنه و یادگیریه باز، راه سعادته!
۱۹. سینیور متعصب نیست!

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

این گذار با افزایش ظرف یادگیری و مجدداً تشنگی برای ایده‌ها و راه‌های جدید حاصل می‌شه و کمی هم آرامش کنارش. قطعاً کنارش سعی می‌کنه با شنوایی کامل، بتونه با همراه کردن بقیه به بهترین نتایج برای تیم و پروژه، هر دو، برسه!
6️⃣ تفاوت‌های تکمیلی و بامزه‌ی سینیور و جونیور!

۱. سینیور می‌دونه که پروداکشن بالاخره یه روزی پایین میاد و هیچ‌کس معصوم از دنیا نمی‌ره. :))

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

در حالی‌که سینیور می‌دونه که ممکنه فردا از بهترین پیروزی‌ش هم بهتر کسب کنه و همزمان ممکنه از بدترین شکست‌ش هم بدتر نصیبش بشه! چون ظرف ریسک‌ش و زمین بازیش داره رشد می‌کنه.
۳. سینیور درگیر زبان‌های برنامه‌نویسی، تعدادشون، و تعصبات جزئی سرشون نمی‌شه.

چون سینیور می‌دونه که تهش «خود برنامه‌نویس» مهمه و هر زبونی برای یه کارهایی بهتر و برای یه مسائل و یه شرکت‌ها و یه تیم‌های کمتر بهینه باشه. و هیچ جواب یکتایی وجود نداره و تعصب، نوب‌بودن محضه!
۴. سینیور هیچ‌وقت کارش تموم نمی‌شه!

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

۶. سینیور همیشه دنبال روش‌های خلاقانه و خارج از چارچوب (out of the box) می‌گرده، حتی برای کارهای ساده. حتی خیلی مواقع همین نیمچه بهینه‌سازی‌ها (اگه ضرری نزنه) هم به خودش حال می‌ده، هم به تیم!

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

۸. جونیورها خیلی مواقع خیلی مسائل ساده رو یادشون می‌ره! و متأسفانه گاهی این ذهنیت «وظیفه‌ی یکی دیگه‌س!» باعث می‌شه نیاز داشته باشن سه نفر دنبالشون راه بیافته که اینا کارشون رو بکنن!

۹. سینیورها قلباً لذت می‌برن وقتی بتونن به یه جونیور برای موفقیت کمک کنن!

(و دم جونیورهایی که قدر می‌شناسن هم گرم!)
(البته ناگفته نماند که سینیوری که اهل قیافه اومدن باشه و خودش رو گرفتن، کم نداریم! و خب شاید بشه گفت اینا توی رفتار و منش جونیورترینن! :) )
۱۰. سینیورها می‌دونن که راه موفقیت همیشه «بیشتر و سخت‌تر کار کردن» نیست، بلکه گاهی باید «هوشیارانه‌تر» کار کرد!
۱۱. جونیورها گاهی ناخواسته مسائل رو برای خودشون سخت‌تر از واقعیت می‌کنن!

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

درحالی‌که فقط کافیه کمی آروم باشه و الکی هول نکنه!
۱۲. جونیور گاهی فکر می‌کنه که کاری که سینیور می‌کنه واقعاً جادوییه! و خب باید دونست که این وسط کلی تجربه، یادگیری، عطش رشد، و ریسک شکست خوردن کمک کرده که خیلی اتفاقات بیافته -- اتفاقاتی که به‌ظاهر در نگاه اول فوق‌العاده و دست نیافتنی میان!
۱۳. و نهایتاً گاهی لازمه که جونیور اعتماد به نفس و خودباوری خیلی بیشتری هم به خرج بده! تا بتونه حتی در خلال راه‌حل‌های موجود، ایده بزنه و از مغز و خلاقیت خودش هم بهره ببره. :)

(این اعتماد به‌نفس با حمایت سینیورها قطعاً پرورده هم می‌شه!)
ممنون که خوندین و دیدین تا اینجا!

این پایین هم یه رشتو راجع به «۵۰ ویژگی برنامه‌نویس خوب» هست که همین مطالب رو (و چند تای دیگه) خلاصه مرور می‌کنه. توی فصل ۷ از ‌سند مفصل locomo.tips هم کلی مطالب مرتبط دیگه‌ی برنامه‌نویسی هست برای خوندن.

بازم ممنون و پیشاپیش سپاس از بازنشر و ریت! (توییت سرتوییت اینجاست 👇)

اگه نکته‌ای یا چیز بامزه دیگه‌ای هم بود خوشحال می‌شم بخونم و لذت ببرم. دمتون گرم! 🙏

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with لوکوموتیو

لوکوموتیو Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(