4 مورد که من در سال اول خودم به عنوان یک برنامه نویس حرفه ای خودآموز ، از توسعه دهنده اصلی یاد گرفتم

این مقاله به سراغ همه کسانی می رود که تصمیم گرفتند اندکی دیرتر از اکثر همسالان خود بر روی باند توسعه دهنده پرش کنند. شاید شما به تازگی فایل 'index.html' خود را ایجاد کرده اید و علاقه مند به توسعه نرم افزار حرفه ای هستید. شاید شما اولین کار خود را در زمینه توسعه وب فرود آورده باشید. شاید شما حتی چندین سال تجربه داشته باشید و اکنون در نظر دارید که به سمت نقش ارشد تری در شرکت خود حرکت کنید. در اینجا من با فروتنی مواردی را که یاد گرفتم در حالی که در سال اول خود به عنوان یک برنامه نویس خودآموخته و بدون داشتن آموزش رسمی در علوم رایانه ای ، توسعه دهنده اصلی شدم ، توسعه دادم becoming

عکس الکس کوتلیارسکی در Unsplash

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

دیدن آنچه در محدوده یک برنامه وب مدرن () امکان پذیر است باعث شد من درک کنم که چقدر لذت می برم از اینکه بتوانم همه چیز را روی صفحه خود حرکت کنم. بنابراین من شروع به جستجوی دوره های آنلاین در زمینه توسعه وب ، شیرجه رفتن به آموزش های Javascript ، فهمید که چگونه دکمه ها با جی کوئری حرکت می کنند و چگونگی ایجاد یک وبلاگ ساده با روبی (روی ریل) و چارچوب مورد نظر من SPA ، AngularJs.

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

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

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

شماره 1 توسعه نرم افزار همه چیز در مورد نوشتن کد فصاحت نیست

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

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

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

خواندن مطالب مربوط به UI / UX و یادگیری دیدن محصول شما با توجه به انواع مختلف کاربر ، شما را قادر می سازد تا درخواست های ویژگی را به گونه ای تهیه کنید که در پایان ارزش تجاری ایجاد کند.

شماره 2 لازم نیست شما بهترین برنامه نویس در تیم باشید تا یک صدرنشین باشید

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

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

رهبری بودن به معنای این نیست که دیگر کسی نمی تواند چیزی به شما یاد دهد ...

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

شماره 3 استارتاپ ها مکانی شگفت انگیز برای رشد هستند

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

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

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

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

# 4 فرومایگی همیشه بها می دهد

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

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

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

آسمان حد است!