
"من قطعاً می خواستم خودم را در توسعه امتحان کنم"
بعد از کلاس نهم، زمانی که مجبور شدم برای ادامه تحصیل انتخاب کنم (یعنی مسیرهای فنی، بشردوستانه، اقتصادی و پزشکی)، بین مسیرهای بشردوستانه و فنی سرگردان شدم. برای من، علوم انسانی نمایانگر حرفه ای به عنوان یک روزنامه نگار بود که شر را محکوم می کرد و از اهداف خیر در سراسر جهان حمایت می کرد. همانطور که در مسیر فنی فکر می کردم، فکر می کردم، اگر با شر مبارزه نکنم، حداقل آن را لمس نخواهم کرد. مسیر کمترین مقاومت را طی کردم و مسیر فنی را انتخاب کردم. بعد از مدرسه وارد دانشگاه شدم در رشته علوم کامپیوتر و مهندسی کامپیوتر. افسوس که دانشگاه هیچ مهارتی در هیچ زبان خاصی ارائه نکرد. به شکلی ناپیوسته، چیزهایی در مورد C++، C#، جاوا اسکریپت و چیدمان UI یاد گرفتم. در سال سوم، من به طور تصادفی به تبلیغات متنی علاقه مند شدم و اتفاقاً در یک شرکت نسبتاً مشهور شغل پیدا کردم. در نتیجه 2 سال در تبلیغات ماندم. من از موفقیت های مناسبی لذت بردم، اما قطعاً می خواستم خودم را در پیشرفت امتحان کنم. بازگشت من به برنامه نویسی نیز بدون یک برنامه سنجیده بود: در محل کار ایمیلی در مورد سرویس جدیدی دریافت کردم که به دنبال استخدام کارآموزان توسعه دهنده جاوا بود. تصمیم گرفتم برم مصاحبه البته در آن زمان دانش اولیه من برای دریافت پیشنهاد کافی نبود، اما این قسمت من را بر آن داشت تا به دنبال منابعی در مورد جاوا باشم. من به طور تصادفی با این دوره در اینترنت آشنا شدم. آنها در ابتدا مرا گیر نکردند: تمام تصاویر خنده دار و داستان های ربات آن را برایم غیر جدی جلوه می دادند، اما من واقعاً از فرصتی برای تمرین و بررسی وظایفم خوشم آمد. من معطل شدم و تصمیم گرفتم آن را امتحان کنم و سپس به داخل کشیده شدم."در چند مصاحبه اول شکست خوردم"
من بدون یک برنامه سفت و سخت، در شرایط مناسب و شروع مطالعه کردم: در زمان استراحت در محل کار، گاهی اوقات در شب. تقریباً در سطح 16-17، شروع به جستجوی شغل کردم. در آن زمان حدود سه ماه بود که با وقفه ای درس می خواندم. اگر تجربه کاری ندارید، پس آنها دوست دارند در مورد الگوریتم ها بپرسند، اما من به سختی آنها را می شناختم. بنابراین در چند مصاحبه اول شکست خوردم. باید بیشتر آماده میشدم، به دنبال سؤالات متداول بودم و پاسخ آنها را حفظ میکردم. من بهسرعت SQL را یاد گرفتم، سیستمهای نسخهسازی کد را مطالعه کردم (IMO، CodeGym به Git در سطح پیشرفتهای غیرمنطقی اشاره میکند، نه تا سطح 30) و اصول SOLID، و الگوریتمهای مرتبسازی را یاد گرفتم. در پایان، من به عنوان یک توسعه دهنده جوان در یک شرکت کوچک استخدام شدم. وظایف من در اولین کارم بسیار پیش پا افتاده بود: توسعه عملکرد سیستم جدید، صیقل دادن عملکردهای موجود، رفع اشکالات. ما از متدولوژی آبشار استفاده کردیم: یک شخص تجاری یک کار را ارسال می کند، یک تحلیلگر آن را با کمی جزئیات بیشتر توصیف می کند، یک توسعه دهنده آن را پیاده سازی می کند، یک تحلیلگر آن را آزمایش می کند، و سپس توسعه دهنده آن را در محصول قرار می دهد. ما از هیچ فناوری خاصی استفاده نکردیم: همه چیز را به جاوای خالص نوشتیم - به جای ریزسرویس، یک مونولیت. برای کار با پایگاه داده، ما از چارچوب منبع بسته اختصاصی خود استفاده کردیم. در همان ابتدا اقیانوسی از مشکلات وجود داشت - از یادگیری نحوه آپلود پروژه در مخزن گرفته تا نحوه نوشتن یک درخواست در پایگاه داده به طوری که زمان آن تمام نشود. من مجبور شدم در مورد کار با JSON، SOAP، در مورد اینکه Maven چیست و چگونه یک پروژه Maven را بسازیم، در گوگل جستجو می کردم. من یادگیری را رها نکردم سعی کردم حداقل یک روز در میان درس بخوانم، اما یکی دو بار بود که مجبور شدم یک ماه آن را کنار بگذارم. اما هدف من این بود که 40 سطح گرامی را به پایان برسانم. به موازات آن، یک دوره آموزشی در چارچوب Spring گذراندم. بهار فرصت های جدید زیادی را برای من باز کرده است و پیشنهاداتی که به لطف رزومه ام دریافت می کنم چندین برابر شده است. در طول قرنطینه، شغلم را تغییر دادم و به پروژه ای با معماری میکروسرویس روی آوردم. ما در حال ایجاد خدماتی برای جستجو، فروش، خرید و اجاره املاک مسکونی و تجاری، و همچنین درخواست و خدمات وام مسکن هستیم. 80 درصد خدمات ما به زبان کاتلین نوشته شده است. 20 درصد دیگر به زبان جاوا نوشته شده است.برنامه های من برای آینده نزدیک عبارتند از:
-
غوطه ور شدن عمیق تر در معماری من می خواهم به طراحی معماری باطن بپردازم.
-
یادگیری ++C. من فکر می کنم این قطعا برای هر برنامه نویسی مفید خواهد بود - در صورت لزوم قادر به نوشتن بخش هایی از یک برنامه است که نیاز به اجرای فوق العاده سریع دارند. این برای هر محاسبات پیچیده ریاضی مفید خواهد بود.
-
DevOps. حتی برخی از شرکت ها این مهارت را برای برنامه نویسان الزامی می دانند. و قطعا در هر شرکت دیگری مفید خواهد بود.
نکاتی برای توسعه دهندگان مبتدی:
- برنامه نویسی را ادامه دهید. کار یک برنامه نویس کاملاً شامل حل مشکلات خاص و یافتن برخی خطاها و اصلاح آنها است. گاهی اوقات ممکن است (و قطعاً!) بهطور غیرقابل تحملی دشوار، خستهکننده و آزاردهنده به نظر برسد، اما وقتی بالاخره مشکل را حل کردید، مانند یک پیشرفت واقعی، یک پیروزی و تقریباً یک کشف به نظر میرسد. و این چرخه تکرار می شود. خشم، پذیرش، تلاش های طولانی و شکست های بی پایان، سپس پیروزی. هیجان کار یک برنامه نویس در انتظار موفقیت و پیروزی بعدی است.
-
هر زمان و هر کجا که ممکن است به یادگیری ادامه دهید. مقاله و کتاب بخوانید. دوره هایی را در زمینه های مختلف توسعه نرم افزار بیابید و بگذرانید. حتما تکنولوژی های جدید را امتحان کنید. آنها را در پروژه های شخصی خود اعمال کنید. با دیگرانی که علاقه مند به توسعه نرم افزار هستند تعامل داشته باشید. تبادل تجربیات و ایده ها. روزی روزگاری، صحبت با افراد بلندپرواز بود که به من کمک کرد در اولین شرکتم سست نشوم و از ادامه کار نترسم.
-
از این رو نکته سوم من - از تغییر چیزها نترسید : یک شغل جدید، یک چارچوب جدید، یک زبان جدید (مرا ببخش، CodeGym). تمام پیروزی های مهم من بر خودم دقیقاً در لحظه ای اتفاق افتاد که شغلم را تغییر دادم. در ابتدا، رفتن به جایی بدون تسلط کامل بر فناوری یا زبان ترسناک به نظر می رسد، اما این امر باعث رشد زیادی می شود، زیرا شما این فناوری یا زبان ناشناخته را مطالعه می کنید. باد دوم شما شروع می شود و شما معنای خاصی را در درک و مطالعه چیز جدید پیدا می کنید.
-
در ارزیابی نقاط قوت خود منطقی باشید. حتی اگر بتوانید برای مدتی شغل، تحصیل مستقل در خانه، برخی دوره های آنلاین، دانشگاه و شاید یک خانواده را با هم ترکیب کنید، احتمال زیادی وجود دارد که خسته شوید. متأسفانه، من چند نفر را می شناسم که پس از یک دوره طولانی ترکیب دانشگاه، اشتغال پردرآمد و همچنین کار به عنوان یک کارآموز توسعه دهنده بدون حقوق، برنامه نویسی را رها کرده و خسته شدند. اگر آنها یک روز اضافی مرخصی یا مرخصی تحصیلی در دانشگاه می گرفتند، اگر یک روز را به مرخصی می گرفتند و اگر چند هفته ای از دوره های آنلاین خود استراحت می کردند، مطالعه را کنار می گذاشتند، شاید همه چیز درست می شد. متفاوت
GO TO FULL VERSION