دنیای برنامه نویسی دنیای پر پیچ و خمی است و شاید تا خودتان شخصاً وارد این دنیا نشوید نتوانید آن را درک کنید. اما شنیدن جذابیتها و سختیهای این دنیا از زبان کسانی که خود تجربهی این کار را داشتند به شما کمک میکند مسیری را که پیشرو دارید بهتر بشناسید. به همین دلیل به سراغ آقای میلاد نوری رفتیم.
اگر اسم میلاد نوری را نشنیدهاید، حتما اسم دیکشنری توکان که از اولین کارهای پرطرفدار میلاد بود به گوشتان خورده است. میلاد که از خوانندگان قدیمی ماهنامه وب نیز هست، نزدیک به ۴ سال است که بیشتر وقت خود را به برنامه نویسی اندروید اختصاص داده اما سابقهی هشت سالهای نیز در طراحی وب، برنامه نویسی وب و برنامه نویسی ویندوز دارد. میلاد نوری علاوه بر برنامه نویسی و طراحی، به آموزش دورههای برنامه نویسی و مربیگری در رویدادهای مختلف کارآفرینی مشغول است. از کارهای فعلی تیم توکان تک میتوان به برنامه های اندرویدی دیکشنری توکان، نتبرگ، ارانیکو، بایکس، پیامستان، تخفیفان و آوای اول اشاره کرد که برخی از آنها ظرف روزهای آینده منتشر خواهند شد.
با سلام. لطفا خودتون رو معرفی کنید و بگید که در حال حاضر مشغول چه کاری هستید؟
سلام. میلاد نوری هستم متولد اسفند ماه ۶۴. در حال حاضر در شرکت فناوران توکان (توکان تک) سرپرستی تیم رو به عهده دارم و به شرکتها و سازمانهای مختلف خدمات برنامه نویسی موبایل ارائه میدیم.
از چند سالگی به دنیای کامپیوتر علاقهمند شدید و چی شد که سمت برنامه نویسی کشیده شدید؟
سال ۷۷ درحدود سیزده سالگی توسط برادر بزرگترم پای کامپیوتر به خونه ما باز شد و دو-سه سال اول بهشدت درگیر بازیهای کامپیوتری شدم. در همان سالها خیلی به انیمیشن سهبعدی علاقهمند شدم و تا اواسط دبیرستان سرگرم نرمافزار ۳DMax و دنیای انیمیشن بودم. اون زمان چون اینترنت به شکل امروزی نبود برای آموزش به کلاسهای مجتمع فنی میرفتم. بعد از انتشار ویندوز لانگهورن (نسخهی اولیهی ویندوز ویستا) مجبور شدم برای سازگاری برنامهی ۳DMax با این ویندوز یک فایل مخصوص را دانلود کنم. این اجبار خیلی اتفاقی باعث آشنایی من با دنیای اینترنت شد. تقریبا یک هفته تمام فکر من مشغول این بود که سایتهای اینترنتی چطور ایجاد میشن و برای داشتن سایت باید از کجا شروع کرد. خیلی مشتاق بودم برای گروه انیمیشنسازی خودمون یک سایت داشته باشیم. متأسفانه اون زمان اینترنتها دایالآپ بود و سایتها و مقالات آموزشی به شدت محدود بودند. اما قصد نداشتم به کلاسهای آموزشی برم و میخواستم خودم همه چیز رو یاد بگیرم چون برام حالت تفریح داشت. با پیگیری و کنکاش در مجلات نرمافزاری و پرسوجو از افراد مختلف و اندکی یادگیری CSS , HTML موفق شدم یک سایت چند صفحهای بسیار ساده برای تیم خودمون طراحی و روی اینترنت قرار بدم. مدتی بعد برای داشتن یک صفحه «تماس با ما» روی سایت، متوجه شدم برای گسترش سایت غیر از HTMLو CSS باید یادگیری یک زبان برنامه نویسی تحت وب رو هم شروع کنم. اولین قدم با خرید کتاب آموزش ASP شروع شد. شروع برنامه نویسی بهقدری برای من جذاب بود که باعث شد بهمرور انیمیشن رو بهصورت کامل فراموش کنم. در کنار یادگیری برنامه نویسی وب، هم زمان در یک دوره آموزشی روباتیک هم شرکت کردم و بهشدت به مهندسی مکانیک علاقهمند شدم.
این آشناییتون با رباتیک منجر به انتخاب رشتهی مهندسی مکانیک در دانشگاه شد؟ این دو حوزهی متفاوت هر کدام نیاز به یادگیری عمیق و زیادی دارند. چطور این دو موضوع رو کنار هم نگه داشتید؟
من تا اواخر دبیرستان (قبل از ورود به دانشگاه در سال ۸۳) خودم چند سایت داشتم و تعدادی پروژه کوچک و متوسط برای شرکتها انجام داده بودم. ضمن اینکه با توجه به یادگیری زبانهای مختلف برنامهنویسی، دوست داشتم در آینده در زمینه رباتیک فعالیت کنم و همزمان از مکانیک و برنامه نویسی درکنار هم استفاده کنم. اما به دلیل اینکه در آن زمان بازار IT ایران به شدت کوچک و محدود بود، خیلی نمیتونستم روی فعالیتهایی مثل برنامه نویسی و طراحی وب به عنوان یک شغل حساب کنم. من به این فعالیت به عنوان یک تفریح که از طریق اون درآمد هم داشتم نگاه میکردم. به عنوان مثال دوران دانشگاه زمانی که با سوال “شغلت چیه؟” مواجه میشدم، با اینکه چند سال تجربه برنامه نویسی و طراحی وب داشتم، خودم رو دانشجوی مکانیک معرفی میکردم و نه برنامهنویس.
مراجعات مختلف اطرافیانم برای انجام پروژههای برنامه نویسی تحت وب/ویندوز باعث شده بود بیشتر زمان من به کار در این حوزه سپری بشه و فعالیتم توی ذهنم از “حالت تفریح” به “شغل دوم” تغییر کنه و این روند تا اواخر دانشگاه ادامه داشت و در این دوره، برنامه نویسی به نوعی شغل من شده بود، البته شغلی از روی علاقه. حتی در اواسط دانشگاه موفق شدم برای تغییر رشته به IT نامه بگیرم اما با مشورت اطرافیان و با این تفکر که تغییر رشته به IT چیز زیادی به دانستههام اضافه نمیکنه از این کار منصرف شدم و ترجیح دادم مثل گذشته همچنان خودم علوم روز برنامه نویسی رو دنبال کنم و یاد بگیرم. اما در دوران فارغالتحصیلی سر دوراهی بزرگی قرار گرفتم و تفاوت رشته دانشگاهی با شغلم، باعث شد درگیر بحران فکری بزرگی بشم. برای انتخاب، مدام چند سال درس خوندن و چند سال برنامهنویسی رو در ترازو قرار میدادم. اما دل کندن از هر کدوم تقریبا ناممکن بود چون برای هر دو خیلی زحمت کشیده بودم. پس از مدتها کشمکش فکری سرانجام تصمیم خیلی سختی گرفتم و با پیگیری رشته تحصیلی خودم، حدود یک سال از پروژه های برنامه نویسی فاصله گرفتم. اما در این مدت به عنوان علاقه خودم مطالب روز رو دنبال میکردم و چند پروژه شخصی خیلی محدود برای خودم انجام دادم. پس از این مدت درگیریهای فکری نه تنها فروکش نکرد، بلکه بیشتر هم شد و بهمرور بیش از پیش متوجه تعلق خودم به برنامه نویسی میشدم. این بار در تصمیمی سختتر از قبل خودم رو به این باور فکری رسوندم که تحصیل در رشته مکانیک برای من یک تجربه بوده و چیزهای زیادی به من یاد داده و دید من رو بازتر کرده. اما نباید هیچ الزامی برای خودم قائل باشم که به صرف چند سال تحصیل در این رشته، خودم رو در اون محدود کنم. در نهایت برخلاف نظر خیلی از اطرافیانم برنامه نویسی رو به عنوان شغل اصلی خودم انتخاب کردم و امروز خوشحالم که با پافشاری روی علایقم، اطرافیانم هم تایید میکنن که در اون مقطع، تصمیم درستی گرفتم.
شما چند سال سابقهی برنامه نویسی دارید و با علاقهی خاصی این رشته رو دنبال کردید، به نظر شما یک نفر برای اینکه همین الان بخواد شروع کنه و تبدیل به یک برنامهنویس ماهر بشه چه مراحلی رو باید طی کنه؟
به نظر من مهمترین شرط برای شروع برنامه نویسی داشتن علاقه زیاد، استعداد و پشتکار هست. من خیلیها رو دیدم به صرف اینکه با یک برنامه اندروید خیلی موفق و پرفروش مواجه شدن، تصمیم به یادگیری برنامه نویسی اندروید گرفتن و به اون به چشم ابزاری برای یک شبه پولدار شدن نگاه کردن، بدون هیچ علاقه و پشتکاری در این زمینه. حوزه برنامه نویسی برای این افراد خیلی زود خستهکننده میشه و انرژی و حوصله لازم رو برای اینکه هر روز پیگیر تغییرات این حوزه باشن از دست میدن.
مهارت در برنامه نویسی هم بر اثر یادگیری عملی و مستمر و کسب تجربه به دست میاد. یعنی برنامهنویس باید به صورت همزمان در کنار پروژه های عملی، دانش و آموختههای خودش رو بالا ببره و در طول زمان به کسب تجربه بپردازه. دانش تئوریک بدون قرارگیری در کنار تجربه عملی در این حوزه ارزش لازم رو نداره.
خیلیها که تازه وارد این حوزه شدن یا قصد ورود دارند، ایدههای زیادی برای ساخت برنامه به ذهنشون میرسه. شما برای ساخت یک برنامه از زمانی که فکر اولیه توی ذهن شما میاد تا موقع انتشار، چه مراحلی رو طی میکنید؟
معمولا ایدههای اولیه خیلی کلی و خام هستند. من خودم یک دفترچه دارم و ایدههام رو در زمینه اپلیکیشنهای موبایل توی اون مینویسم و اونها رو اولویتبندی میکنم. زمانی که یکی از ایدههام رو بر اساس پارامترهای مختلف انتخاب کنم برای پیادهسازی، قبل از هر چیز بررسی میکنم آیا این ایده قبلا پیادهسازی شده یا خیر و اگر پیادهسازی شده بود امکانات و ضعفهای نمونههای داخلی و خارجی رو بررسی میکنم. بعد با تعدادی از دوستان معتمد در این زمینه مشورت میکنیم و ایده رو به یک پختگی نسبی میرسونیم و اگر تصمیم به پیادهسازی شد، وظایف اشخاص مرتبط با پروژه (طراح، برنامهنویس و…) مشخص میشه. با مشورت تیم، طرح کلی و اولیه اپلیکیشن تعریف میشه و بعد از تعریف زمانبندی، در یک کار گروهی، پیادهسازی برنامه رو انجام میدیم و قبل از انتشار، مجموعهای از تستها و بررسیهای عملکردی رو روی اون انجام میدیم.
برنامه نویسی حوزهای هست که روزانه ارتقا پیدا میکنه، شما چجوری خودتون رو به روز نگه میدارید و یک نفر برای تبدیل شدن به یک برنامهنویس حرفهای باید چه کارهایی انجام بده؟
یکی از دلایلی که روی داشتن علاقه تاکید کردم همین بود. بهروز بودن در این حوزه بسیار مهم هست. به نظر من تنها علاقه میتونه یک نفر رو ساعتها پای کامپیوتر میخکوب کنه تا درکنار کار، روزانه ساعاتی رو به مطالعه تخصصی سپری کنه. علاقه در برنامهنویسی به مرور زمان خود به خود باعث ایجاد عطش یادگیری در فرد میشه. من خودم برای بهروز بودن روزانه به سایتهای تکنولوژی و تخصصی برنامه نویسی سر میزنم. اما از اونجایی که زمان هر فردی محدود هست، یکی از بهترین راهها تبادل نظر به صورت تخصصی در گروههای دوستانه یا بین همکاران هست. چون خیلی وقتها یک همکار مطلبی که در سه ساعت یاد گرفته رو میتونه در نیم ساعت به شما منتقل کنه و شما هم متقابلا مطالب خودتون رو به افراد دیگه منتقل میکنید. بحث، همفکری و تبادل دانش یکی از مزایای کار تیمی نسبت به کار تکی در دنیای برنامه نویسی هست.
در آخر چه حرف و توصیهای داری برای کسانی که حس میکنن برنامه نویسی میتونه گزینهی مورد علاقهشون برای داشتن یک تخصص یا شروع یک کسب و کار باشه؟
قبل از هرچیز با یک مطالعه کلی و اندکی آزمون و خطا حوزه مورد علاقهشون رو شناسایی کنن (برنامه نویسی وب، اندروید، iOS، …) و بعد از شروع به یادگیری، هرگز توی همون فیلد، خودشون رو محدود نکنند و یک دانش کلی در فیلدهای دیگه هم کسب کنند. به عنوان مثال این روزها خیلی ازبرنامهنویسهای اندروید هستند که دانش برنامه نویسی وب ندارند و برعکس. اما اگر یک دانش کلی در این مورد داشته باشند، در کارهای تیمی خیلی بیشتر بهشون کمک میکنه. اما بیشتر افراد موفقی که من دیدم توی اکثر فیلدها به صورت همزمان و موازی دارای مهارت بودند. و نکته دیگه اینکه یادگیری در این حوزه با شرکت در یک دوره چند ماهه یا خواندن چند کتاب متوقف نمیشه. سعی کنند روحیه خودآموزی رو توی خودشون تقویت کنن تا هیچوقت نگران بهروزرسانیهای سریع دانش در این حوزه نباشن.
خیلی ممنون از وقتی که در اختیارمون گذاشتید. برای شما آرزوی موفقیتهای بیشتر داریم.
- ۰ نظر
- ۱۳ فروردين ۹۶ ، ۰۵:۵۹