وبلاگ شخصی
محمّدرضا
علی حسینی

جایی که تجربیات, علایق
و چیزهایی که یادگرفته‌ام را
با هم مرور می‌کنیم.

برنامه‌نویسی به درد شما نمی‌خورد. همین الان دست‌نگه‌دارید و رشته‌ی دیگری را انتخاب کنید

برنامه‌نویسی به درد شما نمی‌خورد. همین الان دست‌نگه‌دارید و رشته‌ی دیگری را انتخاب کنید

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

حسن‌را که ماهی 10 میلیون درآمد دارد و همه‌ی خانواده حرفش‌را می‌زنند فراموش کنید. اگر شرایطی که در این نوشته آورده ام را دارید, شما به‌درد این کار نمی‌خورید و هیچ وقت نمی‌توانید به موفّقیّت حسن دست‌پیدا کنید. چرا؟ خب بیاید شروع کنیم.

1-بلد نیستی کد بزنی؟

خب ببینم تا امروز کد زدی؟ حتّی یک برنامه‌ی کوچک. اصلاً برنامه‌نویسی‌را فعلاً بی‌خیال می‌شویم. تا امروز یک صفحه‌ی وب ساده با کدهای css و html ساخته‌ای؟ اگر نه, متأسفم. به احتمال خیلی زیاد این کار به درد شما نمی‌خورد.

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

نرم‌افزار(و البته سخت‌افزار, ولی چون حوزه‌ی کاری خودم نرم‌افزار است در مورد آن صحبت می‌کنم) فوق‌العاده پیچیده است. حتّی برخی افراد اعتقاد دارند که نرم‌افزار پیچیده‌ترین ساخته‌ی مهندسی شده بشر است.

شما برای اینکه نرم‌افزارتان یک کار نسبتاً کوچک انجام دهد, مخصوصاً در 3-4 سال اول که تجربه و دانش بسیار کمی دارید, باید روزها و ساعت‌ها زحمت بکشید.

اگر می‌خواهید تصویری از یک برنامه‌نویس در ذهنتان داشته باشید, فردی که پس از 18 ساعت کار مداوم, رأس ساعت 3 بامداد, دارد با مشت توی سر خودش می‌کوبد و به باگی که 12 ساعت تمام وقتش‌را گرفته و هنوز رفع نشده بد و بی‌راه می‌گوید, تصویر معقول‌تری است.

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

به‌علاوه برای برنامه‌نویس بودن باید بی‌نهایت کنج‌کاو باشید. اگر تا امروز, یعنی سن 18 یا 19 سالگی, آن‌قدر کنجکاو نبوده‌اید که چندخط کد بزنید, پس به احتمال خیلی زیاد از این به بعد هم در این حوزه به‌اندازه‌ی کافی کنجکاو نخواهید بود.

2-از پیچیدگی گریزانی؟

اگر مقابل مسائل و چیزهای پیچیده دست و پایتان‌را گم می‌کنید و توانایی تفکّرتان را از دست می‌دهید, این جا جای شما نیست.

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

به‌علاوه, بسیاری از مسائلی که با آن‌ها در این رشته روبه‌رو هستیم, مسائل پیچیده‌ای هستند. شما باید عاشق کار کردن با برنامه‌ها, سیستم‌ها و مسائل پیچیده باشید. وگرنه خیلی زود کم می‌آورید.

3-خلّاق و نافرمان نیستی؟

همیشه از قوانین موجود پیروی کرده‌اید؟ «بله قربان» و «چشم» کلماتی بوده‌اند که همیشه استفاده کرده‌اید؟ تا به حال سابقه نداشته کاری‌را به سبک خودتان انجام دهید و مسئولیتش را بپذیرید؟ پس دارید راه را اشتباه می‌روید.

خلّاقیّت چیزی است که برنامه‌نویس‌را از ماشینی که با آن کار می‌کند متمایز می‌کند. خیلی از راه حل های خوب امروزی حاصل سرپیچی از قوانین تثبیت‌شده‌ی قبلی هستند. اگر برنامه‌نویسان نافرمان نبودند ,هرگز چیزی به نام Agile به‌وجود نمی‌آمد.

4-عاشق مطالعه و یادگیری نیستی؟

ببینید, یک تفاوت جدّی بین این رشته و بقیّه‌ی رشته‌ها وجود دارد. اینجا هر ساعتی که می‌گذرد خیلی چیزها عوض می‌شوند. هرساعت صدها مفهوم, برنامه, زبان, فریمورک و… جدید ساخته می‌شود و صدها چیز قدیمی از بین می‌رود.

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

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

5-اهل کمک و بخشش نیستی؟

دنیای کامپیوتر را کارهای عام و رایگان زنده نگه داشته است. شما به عنوان یک برنامه‌نویس باید هر هفته چند ساعت را به حل مشکلات دیگران بپردازید.

این حل مشکلات می‌تواند ساخت یک برنامه‌ی متن باز باشد یا پاسخ دادن به یک پرسش در stackoverflow.

تمام برنامه‌نویس‌ها از کمک‌های دیگران استفاده می‌کنند و به دیگران کمک می‌کنند. خیلی وقت‌ها پولی هم برای این کار نمی‌گیرند. اگر با هر بخش از این کار مشکل دارید حتّی نزدیک به برنامه‌نویسی هم نشوید.

6-از انگلیسی خوشت نمی‌آید و نمی‌توانی آن‌را یاد بگیری؟

ما به زبان انگلیسی کد می‌زنیم. به زبان انگلیسی داکیومنت می‌نویسیم و به زبان انگلیسی با همدیگر در سرتاسر دنیا ارتباط برقرار می‌کنیم.

اگر الان انگلیسی‌ات خوب نیست مشکلی ندارد. امّا اگر مطمئن نیستی که 4 ماه دیگر می‌توانی در موضوعات مربوط به این رشته به انگلیسی بنویسی و بخوانی, بهتر است دور این کار را خط بکشی.

7-از کار سخت و طولانی فراری هستی؟

در بخش اوّل به این مورد اشاره کردم, ولی ارزش اینکه دوباره مطرح شود را دارد. اگر از عالم رؤیا خارج شویم می‌بینیم که کم‌تر برنامه‌ای وجود دارد که با 8 ساعت کار در 5 روز هفته ساخته شده باشد.

خیلی از برنامه‌هایی که شما امروز می‌بینید, حاصل 10 تا 18 ساعت کار صدها انسان حرفه‌ای است. آن هم هر 7 روز هفته.

این مسئله هرچقدر که تازه‌کارتر باشید بیشتر نمود دارد. کاری که یک برنامه‌نویس حرفه‌ای, که 10 سال است با فلان زبان کار می‌کند و پنجاه پروژه با فلان فریمورک زده است, در ده روز انجام می‌دهد, ممکن است برای شما یک ماه و نیم طول بکشد. یعنی 45 روز کار, آن هم روزی 12 ساعت.

وقتی وارد این رشته می‌شوید باید فشار فوق‌العاده زیادی‌را به خودتان وارد کنید تا به دیگران برسید. اگر فکر می‌کنید که از عهده‌ی این کار برنمی‌آیید بهتر است فکر این رشته را از ذهنتان بیرون کنید.

چرا ما این سختی‌هارا تحمّل می‌کنیم؟ به‌خاطر مورد بعدی.

8-عاشق آفریدن چیزهای جدید نیستی؟

این وجه اشتراک تمامی برنامه‌نویس‌های دنیا است. ما عاشق آفریدن چیزهای جدید هستیم. برای یک برنامه‌نویس تحمّل تمامی این سختی‌ها به لحظه‌ای که برنامه اجرا می‌شود می‌ارزد.

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

9-نمی‌توانی کاری که کرده‌ای را توضیح دهی؟

یک برنامه‌نویس صرفاً توضیح می‌دهد: الگوریتم‌را به صورت کد به کامپیوتر, کد را به صورت داکیومنت به دیگر برنامه‌نویس‌ها.

هیچ کدی نیست که شما تنها انسانی در دنیا باشید که با آن کار می‌کند. اگر چنین کدی وجود دارد, آن کد چند بایت داده‌ی بی‌مصرف است.

شما باید قابلیّت این‌را داشته باشید که وقتی کاری‌را انجام می‌دهید, آن کار را حداقل به انسانی که از نظر دانش حرفه‌ای هم‌سطح شما است توضیح دهید. اگر نمی‌توانید, سریع‌تر کامپیوتر را از لیست انتخاب رشته‌تان خط بزنید.

10-آدم پولکی‌ای هستی و فکر می‌کنی اینجا درآمد زیادی منتظرت است؟

متأسفم. از این خبرها نیست. برای اینکه بتوانی از کدت پول قابل توجّهی دربیاوری, باید تلاش خیلی زیادی بکنی و زمان زیادی صرف کنی . به‌علاوه اینجا آمریکا و اروپا نیست که به برنامه‌نویس‌ها پول خوبی بدهند.

هنوز خیلی‌ها برنامه‌نویسی را با بازی کردن با کامپیوتر هم‌رده می‌دانند. قبول دارم که جو بهتر شده و درآمدها بالاتر رفته, ولی اگر مشوّق اصلی شما برای ورود به این رشته پول است می‌توانم قول بدهم که به این خواسته نخواهید رسید.

در پایان باید بگویم که همیشه استثنا وجود دارد. شاید شما بتوانید کسی‌را پیدا کنید که برخی از این موارد شامل حالش می‌شده امّا الان برنامه‌نویس موفقی است. بله, شاید باشد. ولی احتمال اینکه شما این استثنا باشید بی‌نهایت کم است.

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

در پایان اگر این 10 مورد شامل حالتان نمی‌شود واقعاً خوشحال می‌شوم که وارد این رشته شوید و بتوانیم در آینده‌ی نزدیک با هم همکار باشیم. امّا اگر موارد بالا شامل حالتان است دست نگه دارید.

اگر خانواده, فامیل, مشاور یا هرکس دیگری به نحوی دارد شما را مجبور به کامپیوتر خواندن می‌کند با منطق و مؤدبانه مقابلش بایستید.

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

امیدوارم این نوشته بتواند جلوی انتخاب اشتباه حتّی یک نفر را بگیرد.

 

«نوشته‌های مرتبط»

6 پاسخ به “برنامه‌نویسی به درد شما نمی‌خورد. همین الان دست‌نگه‌دارید و رشته‌ی دیگری را انتخاب کنید”

  1. a@a.com گفت:

    همه که نباید مدیر پروژه باشن، یه سریا(تعداد زیادی) هم پشت میز میشینن کارهای روتین انجام میدن. مهم اینه بازار کار داره

    • محمّدرضا علی حسینی گفت:

      ممنون از نظرتان. راستش من این مطلب‌را درمورد همان بخش پشت میز نشین نوشته ام, نه مدیران پروژه. چون به نظرم برای آن کار نیاز به مهارت‌ها و توانایی‌های خیلی بیشتری هست.
      ولی باز هم این‌ نوشته نظر شخصی من و حاصل تجربیات و مطالعات من بوده است.

  2. س گفت:

    آقای حسینی با نظرتون کاملا موافقم و واقعا تجربه کاری به من هم نشون داده که برنامه نویسی اون چیزی که خیلیا فکر میکنن نیست

  3. محمد گفت:

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

«نوشته‌های ویژه»

«نوشته‌های محبوب»

«دیدگاه کاربران»