برنامه‌نویس بهتری باشید

سلام ویرگولی های عزیز تو این پست میخوام در مورد چند تا از مشخصات و ویژگی‌ های‌ شخصیتی که فکر می‌کنم بسیاری از برنامه‌نویس‌ های بزرگ دارند،صحبت کنم. من اهل کتابخوندن نیستم و کتابی بلد نبودم براتون بنویسم : /قبل ازینکه شروع کنیم باید بگم که این‌ موارد نتیجه‌ تجربه‌ی شخصی منه ، چیزهایی که خودم دیدم و از بقیه یاد گرفتم در طول چند سالی که کار کردم. شما هم مجبور نیستید تمام این مشخصات رو داشته باشید تا یک برنامه نویس بزرگ باشید.چندتاشونو هم اگه داشته باشید وضعیت تون خوبه.اگه شما صفت خاصی مد نظرتون هست که توی این لیست نیومده حتما توی کامنت ها بگید.زبان‌انگلیسیبرای ما ایرانی‌ها یادگیری زبان انگلیسی واجبه، چون تاثیرش رو دارم می‌بینم می‌گم خودم وقتی تازه شروع کردم نصف وقتم رو برای زبان می‌گذاشتم الان هم به تازه کار‌ها میگم نصف وقت‌تون رو برای زبان بزارید. شاید در اول کار بشه از روی آموزش های قدیمی فارسی کارتون رو راه بندازید ولی قطعا جلو تر که برید به زبان انگلیسی نیاز خواهید داشت. صبرداشتن صبر در همه‌ی زمینه‌ها لازمه اون هم تو زمینه‌ی تکنولوژی ، تکنولوژی‌ها معمولا کاری که ما می‌خواهیم رو انجام نمیدن! چه تعمیر کامپیوتر باشه یا شبکه یا هرچیز دیگه‌ای ، اولین استاد ما گفت " شما تو برنامه نویسی میخواید به کامپیوتر بگید که چیکار کنه ولی کامپیوتر ها هم بسیار خنگ هستن و منظور شمارو براحتی درک نمی‌کنن” فهموندن دقیق منظورمون به کامپیوتر ها کار پیچیده‌ایه. و همیشه چیز‌های زیادی هست که طبق انتظار ما درست کار نمی‌کنه. پس طبیعیه که بعضی وقتا چند دقیقه یا چندساعت حتی ممکنه چند روز لازم باشه تا وقت بزارید و مشکل رو پیدا و حلش کنید. پس اهمیت صبر برای برنامه‌نویسان بزرگ خیلی روشنهحلال مشکلاتکسانی که به مدرسه قانون میرن ، یاد میگیرن تا به مساعل به دید قانونی نگاه کنن ، ما برنامه نویس‌ها هم یاد میگیرم تا به مساعل به دید شی گرایی (و … ) نگاه کنیم! نمیدونم اوباما یا موسس اپل گفته بود همه باید برنامه‌نویسی یاد بگیرن چون برنامه‌نویس به مردم یاد میده چجوری فکر کنند.توی برنامه‌نویسی کار اصلی ما مدل کردن مساعل و مشکلات دنیای واقعی به کده ، و اگر اهل حل کردن مشکلات و راه‌حل دادن هستید خیلی عالیه. خودم معمولا دوست ندارم چیزهای خونه که خراب میشن رو درست کنم ولی وقتی یه راه‌حل بهتر مشکلاتم توی برنامه‌هام پیدا میکنم خیلی حال میکنم :)ایلاقهعلاقه مهم ترین آیتم این مطلبه ، من عاشق برنامه‌نویسی‌ام ، شغل دیگه‌ای جز برنامه‌نویسی انتخاب نمی‌کنم.چون هیچ‌ کار دیگه‌ای رو اونقدر دوست ندارم که منو روزی ۱۶ ساعت پشت میز نگه داره.نمی‌گم که علاقه واجبه ولی خیلی تاثیر داره. جایی هم شنیدم که باید به کارت علاقه داشته باشی تا پیشرفت کنی و الان بهش اعتقاد دارم.ممکنه هنوز درک واقعی از برنامه نویسی نداشته باشین، پس اگه هنوز عاشقش نشدین بیشتر درگیرش بشین. من خودم حسم نسبت به برنامه نویسی خیلی فرق داشت چون اول که با اندروید شروع کردم و اطلاعاتم در مورد فریموورک‌اندروید کم بود ، خیلی کار اعصاب خوردکنی بود ، ولی همین که فهمیدم چی به چیه دیگه کار لذت‌بخش شد.عشق یادگیریتکنولوژی‌ها سریع پیشرفت می‌کنند، همه چیز خیلی سریع عوض میشه و چیزای بهتر هر روز میاد ، چزایی که بیست سال پیش بودند دیگه استفاده نمی‌شن و کاربردی ندارند. اگه برنامه‌نویس ۲۰ سال پیش به امروز سفر زمان کنه ، کاری نیست براش! و مجبوره تکنولوژی‌های امروزی رو یادبگیره.موسس NPM توی آمار سال قبل گفت طول عمر هر تکنولوژی و فریموورک حداکثر پنج ساله!شما مجبور نیستید عاشق یادگیری باشید ولی مجبورید یادبگیرید! پس شل کنید و کمی لذت ببرید :)کارگروهیمهارت کارگروهی قطعا به شما در این کار کمک بزرگی می‌کنه. زمونه‌ای که دو نفر تو گاراژ خونه‌شون می‌نشستند و بزرگترین شرکت تکنولوژی رو می‌ساختن دیگه گذشت.تکنولوژی خیییلییی پیشرفت کرده که برای ساخت چیز مهمی شما مجبورید با دیگران کار کنید، پس اگه خیلی مغرور یا از خودراضی باشید هیچ‌موقع از دیگران فیدبک نمی‌گیرید.پس اگه از این اخلاق‌ها دارید بدونید که راه رو اشتباه میرید.وقتی بخواید تو یک شرکت کار کنید شما باید بتونید افرادی که باهاشون کار می‌کنید رابطه‌ی موثر بسازید.از هم فیدبک بگیرید و همکاری خوبی داشته باشید تا بتونید چیز های بزرگی بسازید. حتی اگه فرینلسر هستید باید بتونید با کارفرما ارتباط خوبی برقرار کنید.اگه مثل من درونگرا هستید از هر فرصت استفاده کنید تا مهارت‌های اجتماعی‌ تون رو ارتقاع بدید.مغرور نبودندنیای تکنولوژی مثل یک اقیانوس خیلی وسیع و عمیقه. کسی که فکر می‌کنه همه چیز رو بلده ، با دیگران کار نمی‌کنه و حتی بعضی افراد که به بقیه توهین می‌کنند، این اخلاق تاثیر منفی جدی توی پیشرفت‌شون داره.هیچکس نمی‌تونه همه چیز رو توی یه فیلد بدونه.اگه همچین فکری می‌کنه یعنی چیزی نمی‌دونه ، چون هرچی بیشتر یاد بگیری زمینه‌های بیشتری رو میبینی که وجود دارند که ازشون خبر نداشتی.یکی از برنامه نویسان ارشد سیستم عامل اندروید توی استک شیش تا سوال پرسیده‌ بود!تو آدمایی که شناختم ، هرکی دانش‌اش بیشتر بود ، تواضع‌اش هم بیشتر بود.باید به مهارت‌هایی که یاد گرفتید اعتماد به نفس داشته باشید و اگه راه حلی داشتید توی جمعی ساکت نمونید ، یا اگه مهارت شما از بقیه بالاتره نباید کسایی که مهارت‌شون کمتره رو مسخره کنید. و … پس به خودتون و کارتون اعتماد داشته باشید و به خودتون افتخار کنید حتی اگه یه برنامه ساده رو از روی یه آموزش ساختید. هر کسی بلد نیست کاری که شما کردید رو بکنه پس باید بهش افتخار کنید حتی اگه کد خوبی نیست. شما بیشتر تمرین می‌کنید بیشتر یاد می‌گیرید و کم کم کار شما پیشرفت می‌کنه.مدیریت تسک‌هاتقسیم کارها به تسک‌های کوچیک‌تر و مدیریت زمان به پیشرفت سرعت شما خیلی کمک می‌کنه.خودم پروژه هامو توی مغزم مدیریت می‌کردم و پروژه ها کم کم بزرگ‌تر شد تا دیگه بدون trello نمی‌تونستم کار کار کنم. حتما مدیریت زمان و مدیریت تسک هارو انجام بدید تا ببینید چقد تاثیر مثبت دارهوقتی کار فریلنسری بکنید یا شرکت خودتون رو مدیریت کنید مهارت تخمین زمان یک تسک خیلی واجبه.داشتن تمرکز روی کار هم خیلی واجبه که مدیرت تسک‌ها باعث میشه تمرکزتون روی مدیرت پروژه از دست ندین.به پایان رسید این مطلب بهتر از دیروز باشید.