وقتی احساس می کنید چیزی نمی دانید

سلام، همه! این اولین پست وبلاگ من در اینجا است و می خواهم با یک یادداشت فلسفی تر شروع کنم.
اول از همه یک اعتراف دارم: من خودم را در برنامه نویسی خوب نمی دانم. با این حال، آنچه در ادامه خواهم گفت ممکن است شما را گیج کند. من از 13 سالگی برنامه نویسی می کنم و دارای مدرک علوم کامپیوتر هستم. در اوقات فراغت، من دوست دارم مشکلات برنامه نویسی رقابتی را حل کنم و گهگاه پروژه های شخصی بسازم. اوه، و من تقریباً مهمترین بخش را نادیده گرفتم: همچنین در سه سال گذشته برای دو شرکت بزرگ فناوری کار کرده ام.
خب پس چرا فکر میکنم حقیر هستم؟ ببین، خیلی ساده است. با وجود اینکه من چیزهای زیادی را فهرست کرده ام، هرگز در هیچ یک از آنها واقعاً خوب نبوده ام، و شواهدی وجود دارد که این را تأیید می کند، خواه میانگین عملکرد من در مسابقات برنامه نویسی یا مشکلاتی که در دانشگاه و دانشگاه داشته ام. کار. به هر حال، من نمیخواهم برای همیشه متوسط بمانم، به همین دلیل تصمیم گرفتم که یک تلاش یادگیری را آغاز کنم و برای جالبتر کردن کل روند، پیشرفت خود را در این وبلاگ ثبت خواهم کرد.
روی چه چیزی تمرکز کنیم؟
با گذشت سالها، متوجه شدم که برنامه نویسی یک زمینه بسیار بزرگتر از آن چیزی است که در ابتدا تصور می شد. ببینید، این فقط نوشتن کد نیست. یک چیز، شما باید در تشخیص الگوها و تفکر منطقی خوب باشید تا به راه حل های بهینه برسید. برای دیگری، شما باید درک کاملی از حداقل یک زبان برنامه نویسی و چارچوب آن داشته باشید. همچنین عوامل کمتر آشکار دیگری مانند توانایی نوشتن یک کد تمیز وجود دارد.
البته همه اینها با تمرین همراه است. اما برای بهبود هر مهارت دقیقاً چه چیزی را باید تمرین کنید؟ مثلاً چگونه در تفکر منطقی بهتر شدی؟ و آیا واقعاً یادگیری الگوریتمها و ساختارهای داده، مستعار do LeetCode، اگر قبلاً شاغل هستید، ضروری است؟ خوب، من مدتی است که در دریایی از این سؤالات شنا می کنم، اما معتقدم که پاسخ هایی پیدا کرده ام. با این حال، ابتدا باید مهمترین سوال را از خود بپرسیم: چرا به هر حال برنامه نویسی کنیم؟
ارزششو داره؟
بیا با آن روبرو شویم. من تقریباً مطمئن هستم که حدود 20 سال پیش هیچ کس حتی یک حرفه برنامه نویسی مادام العمر را در نظر نمی گرفت. خیلی جدید، خیلی مبهم بود و برای اکثر مردم، برنامه نویسی بیشتر شبیه جادو بود. با این حال، با ظهور فناوری جدید، مشخص شد که کار کردن در یک شرکت بزرگ فناوری می تواند پردرآمدترین شغل از همه باشد! بهترین چیز این است که برای موفقیت مجبور نیستید سبک زندگی گوشه نشینی داشته باشید: برنامه کاری منعطف شد، مدیران نرم تر شدند، و کل فرآیند در مقایسه با مشاغل فناوری در قرن بیستم راحت تر شد.
متأسفانه همه چیزهای خوب به پایان می رسد و رونق صنعت برنامه نویسی نیز از این قاعده مستثنی نیست. بر کسی پوشیده نیست که شرکت های بزرگ فناوری در این مقطع نزدیک به دو سال است که کارکنان خود را اخراج کرده اند. امروزه، مردم بیشتر و بیشتر در مورد اینکه آیا باید مدرک CS بگیرند یا چیزی کاملاً متفاوت را انتخاب کنند، نامطمئنتر میشوند. همه چیز با همه این اخبار فوری هوش مصنوعی که تقریباً هر هفته در فیدهای ما ظاهر می شود، مبهم تر شد. اگر شرکت های بزرگ فناوری شروع به ایجاد مخازن جداگانه فقط برای توسعه دهندگان مبتنی بر هوش مصنوعی کنند چه؟ پس چرا به برنامه نویسی نیاز داریم؟
بیایید کمی سرعت خود را کاهش دهیم. شخصاً فکر نمیکنم که هوش مصنوعی در آیندهای قابل پیشبینی شروع به نوشتن کد از A به Z کند، صرفاً به این دلیل که یک قطعه بزرگ گم شده است: تعامل انسانی. می بینید، کار بر روی یک پروژه بزرگ در یک شرکت بزرگ فناوری، حتی به مهارت های سخت شما هم مربوط نمی شود، بلکه به توانایی شما در همکاری با دیگران و ترجمه الزامات ارسال شده توسط سرپرستتان به مواردی است که نیازها را برآورده می کند. از کاربر نهایی برای انجام این کار، اغلب قبل از اینکه ویژگی جدید را ارسال کنید، باید با نیم دوجین نفر ارتباط برقرار کنید. اما آیا مطمئن هستیم که هوش مصنوعی می تواند به همان خوبی با یکدیگر ارتباط برقرار کند؟ و حتی اگر آنها بتوانند، آیا ما، کاربران نهایی، از کار آنها راضی خواهیم بود؟
نکته این است که من کاملا مطمئن هستم که صنعت برنامه نویسی در آینده نزدیک از بین نخواهد رفت. اخراجهای عظیم در نهایت متوقف خواهند شد، زیرا دنیا سر جای خود باقی نمیماند و هر ماه یا بیشتر فناوری جدیدی به بازار میآید. زمانی را به خاطر دارید که گوشی های هوشمند در سال 2007 به بازار آمدند؟ فقط به این فکر کنید که چند شغل جدید به ارمغان آورده است، و من تقریباً مطمئن هستم که یک انقلاب مشابه دیگر خیلی دور نیست.
بنابراین، حتی اگر شما فقط یک دانش آموز هستید که در حال یادگیری نحوه کدنویسی هستید، من معتقدم که تلاشی که انجام می دهید بیهوده نیست. اگر از آن دسته افرادی هستید که اوقات فراغت خود را صرف کاوش در زبان های برنامه نویسی جدید، شرکت در مسابقات و تلاش برای به دست آوردن تجربه عملی با کار بر روی پروژه های بزرگتر می کنید، پس واضح است که شما واقعاً به چیزی که دارید علاقه مند هستید. انجام دادن. در این مورد، حرفه یک برنامه نویس درست در کوچه شماست.
بمان…
خوب پس، بگویید چندین سال است که در یک شرکت بزرگ کار می کنید و تجربه عملی زیادی کسب کرده اید. شما چندین ترفیع دریافت کرده اید و اساساً در این مرحله در آفتاب غرق می شوید، اما ناگهان … شرکت از کار می افتد، شما اخراج می شوید. و درست مثل آن، شما به نقطه اول بازگشته اید. شما رزومه قدیمی خود را پیدا می کنید و شروع به تمرین مشکلات LeetCode می کنید که مدت هاست فراموش شده اند و کل سیستم مصاحبه را نفرین می کنید.
میبینی که دارم به چی میرسم؟ شما میتوانید یک توسعهدهنده برتر در تیم خود باشید، کاملاً به اکوسیستم شرکت خود مسلط باشید و از گوشه و کنار پروژهای که مدتها روی آن کار کردهاید مطلع باشید، اما برای دنیای بیرون، شما تفاوتی ندارید. هنگامی که شرکت خود را ترک کردید، اساساً باید همه چیز را از نو شروع کنید: نوشتن یک CV، ارسال برنامه های بی شمار، آماده سازی مصاحبه، و در نهایت غوطه ور شدن در زیرساخت های شرکت و پروژه جدید خود. جای تعجب نیست که افراد زیادی مایل به تغییر شغل خود نیستند.
و اشکالی ندارد! منظورم این است که اگر دوست دارید سالها برای یک شرکت کار کنید اشکالی ندارد. من چندین سرپرست داشته ام که بیش از 10 سال با تیم های خود کار کرده اند و آنها عاشق شغل خود بودند. علاوه بر این، حتی اگر تصمیم به تغییر تیم خود داشته باشید، روند چرخش در همان شرکت بسیار آسان تر است. برای من، به عنوان مثال، هیچ سؤالی از LeetCode وجود نداشت، و من بیشتر در مورد تجربه گذشته خود صحبت کردم.
… یا ادامه دهید؟
با این حال، من نمی توانم این ایده را تحمل کنم که برای همیشه در یک مکان کار کنم. شاید یکی از بزرگترین عوامل فشار برای من این باشد که می خواهم به کشور دیگری نقل مکان کنم و تنها گزینه قابل قبول من یافتن شغل در خارج از کشور است. علاوه بر این، من همیشه یک یادگیرنده مشتاق بودهام و تلاش کردهام مهارتهای زیادی را بهبود بخشم که زبان انگلیسی یکی از آنهاست. ظاهراً تسویه حساب راه من نیست و خارج از ساعات کاری به یادگیری و پیشرفت ادامه خواهم داد.
در حال حاضر، دوست دارم در سفر برنامه نویسی پرچرب من به من بپیوندید. با گذشت زمان، به تمام سوالاتی که در ابتدای این مقاله مطرح کردم، میپردازم و به شما نشان میدهم که فرآیند واقعی یادگیری برای کسی که از کودکی برنامهنویسی میکند، چه احساسی دارد.