سراغ یکی از حرفه ای های بنتک، محمد فاطمی پور، رفتیم تا از خودش برامون بگه و به دوستداران برنامه نویسی مشاوره بده.
سلام محمد، خیلی ممنون که وقت خودت رو برای این گفتگو در اختیار ما قرار دادی، بریم به روز های اول، از خودت بگو برامون
سلام، ممنونم از شما. روز خیلی اول میشه روز تولدم، من متولد 1365 هستم، در تهران، ولی اصالتا آذری هستم و اهل نزدیکای سراب در استان آذربایجان شرقی
خیلی هم عالی، محمد جان معمولاً از رشته های زیادی به سمت برنامه نویسی میرن، شما چی خوندین؟
من کارشناسی رو نرم افزار خوندم و ارشد رو هم هوش مصنوعی، دانشگاه امیرکبیر
دقیقاً چی شد که یک دولوپر حرفه ای شدی؟
عوامل مختلفی دست به دست هم دادن، من از اونا نبودم که خوره کامپیوتر و خوره برنامه نویسی باشم، قبل از دانشگاه هم یک کاربر عادی کامپیوتر بودم و اصلاً انتخاب رشته اول من مهندسی پزشک بود ولی قسمت شد و نرم افزار قبول شدم. در اون دوره هم چون ریاضیات و به خصوصی ریاضیات گسسته من خوب بود تونستم خیلی راحت با برنامه نویسی ارتباط برقرار کنم.
دقیق تر میگی چه چیزی در دوره دانشگاه خیلی برات مفید بود و کمکت کرد که به اینجا برسی؟
فعالیت های فوق برنامه دانشگاه خیلی عالی بودن. روبوکاپ و ACM واقعاً برام جذاب بود. کلاس ها و مسابقات ACM عالی بودن و خیلی هیجان انگیز و چالشی، همین موقع بود که من واقعاً علاقه مند شدم و فهمیدم در این حوزه استعداد دارم.
محمد از مهارت های یک توسعه دهنده برامون بگو.
من مهارت برنامه نویسی رو به دو بخش تقسیم می کنم، یک بخش علم و دانش هست که از طریق، کلاس و کتاب و مقاله و فیلم به دست میاد. بخش دوم که به نظرم مهمتر هست و رسیدن به اون سخت تره، تفکر نقادانه و الگوریتمی است و توانایی تجزیه و تحلیل و حل مساله. من بخش اول رو با کتاب بهش رسیدم و بخش دوم رو مدیون کلاس های ACM دانشگاه هستم. یادمه که در زمان آمادگی مسابقات ACM بیش از هزار مساله الگوریتمی حل کردم و این موضع خیلی بهم کمک کرد که بتونم مسائل رو عمیق تر تجزیه و تحلیل کنم.
اولین کد رو کی نوشتی و چی بود؟
دبیرستان بود با زبان QBasic ، فکر کنم دو تا عدد رو باهم جمع می کرد.
در بنتک روزی چند خط کد میزنی؟
حساب دقیقش رو ندارم، ولی اگر مساله ای ذهنم رو مشغول کنه ازش دست برنمیدارم و ممکنه تا دیر وقت شرکت بمونم. البته پیش میاد که روزی کد نزنی و روز دیگه نزدیک به هزار خط کد بزنی.
ویژگی های توسعه دهنده خوب چیه؟
برای اینکه توسعه دهنده بتونه مساله ها رو حل کنه باید در سه بخش خوب باشه:
- درک مساله
- ایده پردازی برای راه حل
- تبدیل ایده به کد
البته در هر سه مرحله دقت و سرعت نیز مهم است.
به نظرت یه فرد تازه کار با کدوم زبان برنامه نویسی باید شروع کنه؟
شاید اگه چند سال پیش این سوال رو ازم میپرسیدی میگفتم C++ و براش دو ساعت دلیل میاوردم. اما الان نظرم این نیست و به نظرم هر زبانی مزایا و معایب خودش رو داره. برای کسی که می خواد تازه شروع کنه پیشنهاد میکنم که از زبان ساده شروع کنه و تمرکز کنه روی مفاهیم برنامه نویسی. اصل کار، خود برنامه نویسی هست، وقتی برنامه نویسی رو بلد باشی، یادگیری زبان جدید اصلا کاری نداره.
ممنون بخاطر راهنمایی های تخصصیت، بریم سر سوالات شخصی 🙂 ، پرسپولیسی بودنت که مشخصه، وقت آزاد خودت رو چطوری میگذرونی؟
کوه نوردی، دره نوردی، سه تار زدن
ازدواج هم کردی؟
هنوز نه 🙂
ممنون که وقت خودت رو به ما اختصاص دادی؟
خواهش میکنم و از شما ممنونم، امیدوارم مفید بوده باشه