اینکه فقط همان کاری را انجام دهید که دیگران انجام می‌دهند و مسیری را که برای شما تعیین شده است دنبال کنید، کار ساده‌ای است. درست است که اکثر توسعه‌دهندگان نرم‌افزار بخش عمده‌ای از دوران حرفه‌ای خود را به‌عنوان کارمند سپری می‌کنند، اما این تنها گزینه‌ی پیش روی شما نیست. راه‌های زیادی برای استفاده‌ی مفید و سودآور از مهارت‌های برنامه‌نویسی شما وجود دارد. شاید حتی ندانید که گزینه‌هایی فراتر از اشتغال سنتی وجود دارند—خود من هم در ابتدا از این موضوع بی‌خبر بودم. در این فصل، گزینه‌های مختلف شما را بررسی می‌کنم تا بتوانید برای آینده‌ی خود تصمیم بهتری بگیرید. در ادامه‌ی این بخش، هر یک از این گزینه‌ها را به تفصیل بررسی کرده و خواهیم دید که برای موفقیت در هر مسیر شغلی چه چیزی لازم است.

گزینه‌ی اول: کارمند بودن

این گزینه‌ی پیش‌فرض و رایج‌ترین مسیری است که اکثر توسعه‌دهندگان نرم‌افزار در پیش می‌گیرند. خود من در بیشتر دوران حرفه‌ای خود یک کارمند بودم، تا حدی به این دلیل که از وجود گزینه‌های دیگر اطلاع نداشتم و تا حدی هم به این دلیل که این مسیر ساده‌ترین راه ممکن بود. احتمالاً نیازی نیست که برای شما تعریف کنم کارمند بودن به چه معناست، اما ارزش دارد که برخی از مزایا و معایب این گزینه‌ی شغلی را بررسی کنیم.

بزرگ‌ترین مزیت کارمند بودن، ثبات است. منظورم فقط ثبات در یک شغل خاص یا یک کارفرمای خاص نیست، بلکه ثبات از این جهت که شما یک راه مشخص برای کسب درآمد دارید که می‌دانید موفق خواهد بود. تا زمانی که شغل دارید، حقوق می‌گیرید. شاید در آینده آن شغل را از دست بدهید و مجبور شوید به دنبال کار جدید بگردید، اما حداقل برای مدتی، درآمدی ثابت خواهید داشت که می‌توانید روی آن حساب کنید.

همچنین، کارمند بودن نسبت به گزینه‌های دیگر مسیر ساده‌تری دارد، زیرا محدوده‌ی مسئولیت‌های شما مشخص است و راه رسیدن به آن نیز شفاف است. فرآیند جستجو و درخواست شغل مشخص و تعریف‌شده است و لازم نیست خودتان تعیین کنید که برای کسب درآمد باید چه کاری انجام دهید. علاوه بر این، معمولاً کارمندان مزایایی مانند مرخصی با حقوق و در ایالات متحده، حمایت‌هایی مانند بیمه‌ی درمانی دارند.

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

از سوی دیگر، در حالی که حقوق و درآمد شما به‌عنوان یک کارمند از پیش تعیین شده است، اما این درآمد تا حدی “سقف مشخصی” دارد. به عبارتی، شما در نهایت به نقطه‌ای خواهید رسید که امکان افزایش درآمد یا پیشرفت بیشتر در مسیر شغلی خود را نخواهید داشت، مگر اینکه مسیر شغلی خود را تغییر دهید.

گزینه‌ی دوم: مشاور مستقل

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

البته، مشاور مستقل بودن با پیمانکار بودن متفاوت است. پیمانکار معمولاً برای یک مشتری خاص کار می‌کند و به‌طور ساعتی برای انجام کارهای آن مشتری حقوق دریافت می‌کند، که شباهت بیشتری به یک رابطه‌ی کارمندی دارد. اما مشاور مستقل معمولاً یک شرکت شخصی دارد که خدمات خود را به مشتریان ارائه می‌دهد، بدون اینکه به یک مشتری خاص وابسته باشد.

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

با این حال، مشاور مستقل بودن مزایای خاص خود را دارد. از جمله اینکه، می‌توانید ساعات کاری خود را تعیین کنید و تا حد زیادی در انتخاب پروژه‌هایی که روی آن‌ها کار می‌کنید، آزادی داشته باشید—البته به شرطی که کار کافی داشته باشید که بتوانید پروژه‌های نامناسب را رد کنید.

بزرگ‌ترین مزیت این مسیر، بدون شک، پتانسیل بالای درآمد است. به‌عنوان مشاور مستقل، می‌توانید ساعتی بسیار بیشتر از یک کارمند معمولی درآمد داشته باشید. به‌عنوان مثال، در حال حاضر برای مشتریان خود ساعتی ۳۰۰ دلار هزینه دریافت می‌کنم و مشاورانی را می‌شناسم که نرخ‌های بالاتری دارند.

البته، این بدان معنا نیست که صرفاً با مشاور مستقل شدن، ثروتمند خواهید شد. شما از همان ابتدا با نرخ ساعتی ۳۰۰ دلار شروع نخواهید کرد، اما در بخش دوم کتاب، روش‌هایی را برای افزایش نرخ ساعتی شما ارائه خواهم داد. همچنین، برخلاف تصور، نمی‌توانید هر هفته ۴۰ ساعت کار قطعی داشته باشید، زیرا بخش زیادی از زمان شما صرف یافتن مشتریان جدید و مدیریت کسب‌وکار خواهد شد.

گزینه‌ی سوم: کارآفرین

مسیر کارآفرینی احتمالاً دشوارترین، نامشخص‌ترین، اما در عین حال پرسودترین مسیر شغلی است که می‌توانید انتخاب کنید. کارآفرین بودن را می‌توان به قمار حرفه‌ای تشبیه کرد—تقریباً هیچ ثباتی در این مسیر وجود ندارد، اما اگر موفق شوید، ممکن است به موفقیت عظیمی دست پیدا کنید.

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

کارآفرینان نرم‌افزار به روش‌های مختلفی فعالیت می‌کنند. برخی از آن‌ها استارتاپ تأسیس می‌کنند و به دنبال سرمایه‌گذاری از سوی سرمایه‌گذاران خطرپذیر (VC) هستند. برخی دیگر، کسب‌وکارهای نرم‌افزار به‌عنوان سرویس (SaaS) ایجاد کرده و از طریق اشتراک‌های ماهانه درآمد کسب می‌کنند.

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

کدام مسیر را انتخاب کنید؟

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