برو به محتوای اصلی

حسین حقایقی
حسین حقایقی
۴۸۵
مترجم

 

آیا از حسین حقایقی سوال دارید؟

همین الآن عضو شو و به صورت ناشناس یا عمومی سوالتو از حسین حقایقی بپرس!

بله شما اگر تمرکز کافی و پشتکار لازم رو داشته باشید می‌توانید برنامه‌نویسی یاد بگیرید. زبان برنامه‌نویسی که یاد میگیرید تاثیر زیادی در روند یادگیری شما نداره. مهمترین نکته این هست که اول مشخص کنید به ساخت چه مدل برنامه‌ای علاقه دارید. اگه به ساخت وبسایت علاقه دارید با دوره‌های برنامه‌نویسی وب که در سایت‌ها به وفور یافت میشه شروع کنید، ابتدا زبان html بعد css  و بعد javascript رو یادبگیرید. اگر به ساخت برنامه‌های موبایل علاقه دارید گزینه‌های زیادی هست از جمله یادگرفتن java  و کار کردن با android studio و یا Swift برای ساخت برنامه‌های آیفون. اگر به ساخت بازی علاقه دارین میتونین برای شروع C# (سی شارپ) رو با موتور بازی یونیتی یاد بگیرید. پس اول ببینید به ساخت چه پروژه‌ای علاقه شخصی دارید و زبان برنامه‌نویسی‌ای رو یاد بگیرید که ساخت اون برنامه‌ها باهاش آسونتره. دوم اینکه زبان برنامه‌نویسی که یاد میگیرید رو عوض نکنید و با هرچی شروع کردید به قدری ادامه بدید که تا بتونید یاد بگیرید. نکته بعدی این هست که شما باید ذهنیت مطالعه و کسب اطلاعات رو از اینترنت درون خودتون تقویت کنید. تمامی این اطلاعاتی که من اینجا بهتون گفتم بسیار اطلاعات پیش پا افتاده و ساده‌ای هست که با یک سرچ راحت چه به زبان انگلیسی چه فارسی به دست میاد. گوگل همیشه بهترین دوست من در زبان برنامه‌نویسی هست. سعی کنید زیاد سرچ کنید و تا میتونید اطلاعات کسب کنید. از اونجایی که سوالتون خیلی کلی هست اگر باز نیاز به راهنمایی و جزئیات بیشتری داشتید در قسمت دیدگاه بپرسید تا جایی که بتونم کمکتون میکنم. 

capital:

گزینه بهتری هست برای لغت سرمایه به طور کلی. البته بهتره کسی که رشته‌اش اقتصاد هست این سوال رو جواب بده. 

fund:

به عنوان اسم به پولی گفته میشه که برای یک کار خاص کنار گذاشته شده و به عنوان فعل به اعطای پول به کسی برای یک امر خاص اطلاق میشه. 

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

با نرم‌افزارهای زیادی میشه این کار رو انجام داد. ساده‌ترین و کم‌حجم‌ترینش Audacity ۱۰هست. نرم‌افزار رو که باز کردین دو تا ترک صوتی رو import کنید توی برنامه. برای هر کدام یک لایه در نظر گرفته میشه و با پلی بک دو لایه خونده میشن. میتونین تنظیم کنن چه لایه‌ای از کجا شروع میشه و موارد دیگر.

اگر منظورتون بدون نصب نرم‌افزار خاصی روی سیستم باشه، میتونین ویدیو رو به استفاده از سایت‌هایی که این سرویس رو رایگان ارائه میدن کم حجم یا compressed کنین. سرچ کنین online video compressor. گزینه‌های زیادی میاد. منتهی نکته‌ای که در استفاده از این سرویس‌ها باید مد نظر داشته باشید این هست که ویدیو شما آپلود میشه و به سروری شخصی خارجی فرستاده میشه که نه میشناسیدش نه بهش دسترسی دارید و نه اعتمادی وجود داره این وسط. توصیه میکنم روی سیستم خودتون یه نرم‌افزار convertor مثل aimersoft video convertor نصب کنید و به راحتی این کار رو انجام بدهید.

یک سرویس فارسی هست به اسم ویدیوت۹

شاید powtoon۸ هم به کارتون بیاد. البته من تا به حال از هیچ کدام استفاده نکردم.

راستش نمیشه به این سوال پاسخ داد. سوالتون مثل این هست که بپرسین بهترین ورزشکار جهان کیست. خب ورزش‌ها رشته‌های مختلفی دارن. حتی اگر رشته رو هم مشخص کنید باز هم نمیشه به راحتی گفت. فاکتورهای مختلفی وجود داره. برای اینکه بهترین گیمرهای بازی‌های مختلف رو پیدا کنید کافیه اسم بازی رو که میخواهید سرچ کنید و جلوش بنویسید Best Players. مثلا Fortnite best players که خب قطعا با این سرچ اسم نینجا ۱۰میاد بالا. البته این رو هم باید پرسید که آیا بهترین بازیکن همون قهرمان مسابقات eSports اون بازی هست یا نه؟ 

بهترین کار اون کاری هست که شما علاقه نسبی بهش دارین و حوصله دارین روش وقت بگذارین. ممکن هست در اوایل یادگیری خیلی علاقه نداشته باشین ولی کم کم با دیدن خروجی علاقه‌مند هم میشین. 

مهارت‌های مرتبطی که به ذهنم میرسه عبارتند از :

1- انیمیشن: این فیلد خیلی گسترده هست و سبک‌ها و نتایج مختلفی داره: میتونید انیمیشن دو بعدی و موشن گرافیک بسازید با نرم‌افزار‌هایی مثل افترافکتس و یا انیمیشن و مدل‌سازی سه بعدی بسازید با نرم‌افزار‌هایی مثل مایا، بلندر، سینما فوردی، 3d max و غیره. انیمیشن دو بعدی و موشن گرافیک احتمال اینکه به طور مستقل کار کنید رو بیشتر میکنه و انیمیشن سه بعدی معمولا باید در یک استودیو باشین.

2- اگه به بیزنس علاقه داشته باشین میتونین مطالعات کسب و کار و بیزنسی داشته باشین (همانطور که احتمالا دروس مدیریتی و تجارت الکترونیک در دوره لیسانس داشتین) و به دنبال پیدا کردن شغلی در زمینه‌های بازاریابی و بیزنس شرکت‌های فناوری باشید. البته شاید به راحتی کار در این زمینه پیدا نشه و مجبور باشین مدرک MBA بگیرین (که باز هم تضمینی برای پیدا کردن شغل نیست). در کل وارد حیطه مارکتینگ و یا مدیریت بشید.

3- میتونین طراحی هم کنید و گرافیک دیزاینر بشید با یاد گرفتن نرم‌افزارهای مثل Photoshop و Illustrator.

4-  شبکه‌های کامپیوتری هم یکی دیگه از فیلدهایی هست که کدنویسی به اون صورت نیاز نداره (البته برای رسیدن به مدارج عالی این فیلد هم ولی باید کد نویسی یاد بگیرین و حتی در مراحل ابتدایی هم فرمان‌های سیستمی و کار کردن با ترمینال رو بلد باشین) و البته این فیلد خیلی فنی و تخصصی هست، منتهی کدنویسی خیلی کم‌تری لازم داره.

5- تولید محتوا، دیجیتال مارکتینگ و مدیر شبکه اجتماعی: 

یکی از نیازهای هر کسب و کار تولید محتوای مرتبط برای جذب کاربر و رسیدن و به اهداف بازاریابی هست. با یاد گرفتن روش‌های مختلف تولید محتوا و مطالعه درباره دیجیتال مارکتینگ و مدیریت اکانت‌های شبکه‌های اجتماعی میتونین عناوین شغلی مرتبطی پیدا کنید. 

توصیه میکنم برای اطلاع از زمینه‌های کاری مرتبط با رشته‌تون یه سر به سایت جابینجا۸ بزنین و موقعیت‌های شغلی رو ببینید و متوجه میشید که چه موقعیت‌هایی هست تا بتونین تصمیم بهتری بگیرین.

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

تا اونجایی که من میدونم جوابکو با تکنولوژی React در فرانت‌اند طراحی شده و با این تکنولوژی شما میتونید یک Single Page Application (اپلیکیشن تک صفحه‌ای) بسازید. React از سیستم Routing خودش به اسم React Router و این سیستم به شما اجازه میده هدایت سمت کاربر یا Client side navigation داشته باشید و بر اساس Url انتخاب شده یک کامپوننت رو برای کاربر رندر کنید. در اپلیکیشن‌های تک صفحه ای نیازی به درخواست از سرور برای لود کردن اون کامپوننت نیست و این اتفاق سمت کلاینت میافته. اگر کنکجاو بودین بدونین دقیقا از نظر فنی چه اتفاقی میافته که کامپوننت‌ها لود میشن بدون نیاز فرستادن یک درخواست به سرور و اصلا این کامپوننت‌ها در ری‌اکت چی هستن، پیشنهاد میکنم چند ویدیو در یوتوب یا سایت‌های آموزشی درباره webpack، react و react router ببینید.

برای اینکه جواب بگیرین بهتره که ارور رو بنویسین یا عکس ارور رو بگذارید و بگین در چه محیطی دارین برنامه‌نویسی میکنین.

تا آنجایی که من میدانم معمولا اگر بازی قرار باشد روی موبایل منتشر شود از موتور یونیتی استفاده شده و اگر قرار باشد روی پی‌سی یا کنسول منتشر شود از موتور آنریل استفاده می‌کنند. برای اطلاع از آگهی‌های استخدام شرکت‌های بازی‌سازی ایرانی میتوانید به Gamejobs.ir۳۳ مراجعه کنید و از تکنولوژی مورد استفاده آنها مطلع شود.

برای اینکار باید اول یک متریال بسازی و اون رو بزاری روی گیم ابجکت. کافیه سرچ کنی Unity Materials و فیلم های آموزشی رو از یوتوب ببینی . خیلی ساده اس

از نظر معنایی، Best Practice روش یا رویه‌هایی است که به عنوان کارا‌ترین یا موثرترین روش مورد قبول قرار گرفته‌اند. میتونید در دیکشنری‌های آنلاین مختلف معنی آن رو هم به زبان انگلیسی ببینید. به طور کلی برداشتی که من از این اصطلاح دارم اینه که اون روشی که بهینه‌ترین هست یا بهترین نتیجه رو میده. 
برای اینکه واضح‌تر بشه یک مثال میزنم: Best practice این هست که تا ماشین رو روشن میکنید کولر رو روشن نکنید و شیشه‌ها رو پایین بکشید تا حرارت حبس شده در ماشین تخلیه شود و بعد کولر را روشن کنید.

برای اینکه اسکریپت‌ها توی یونیتی اجرا بشن باید به یک گیم آبجکت وصل شده باشند. اینکه میگی ارور هم نمیده به احتمال زیاد به این خاطر هست که اسکریپت رو به هیچ ابجکتی در محیط بازی وصلش نکردی و اصلا اجرا نمیشه . کافیه اسکریپت رو بگیری و drag کنی بندازیش روی یک آبجکت و وقتی دکمه play رو بزنی اجرا میشه و میتونی حداقل ارور رو ببینی اگه مشکلی داشته باشه کدت .

برای ساخت یک بازی مانند Clash of Clans شما نیاز به دانش گسترده در چند زمینه خیلی متفاوت و مختلف دارید. اول از همه توجه داشته باش که ساخت یک بازی خیلی خوب مانند کلش، نیازمند یک تیم از افراد متخصص هست. 
با فرض اینکه شما بازیتون رو کامل طراحی کرده باشین و از مرحله طراحی بازی گذشته باشین، حداقل توانایی‌هایی که شما نیاز دارین تا یک بازی خوب بسازین این سه مورد هست: 
1- طراح دو بعدی یا سه بعدی ( بستگی به نوع بازی دارد )
2-برنامه نویسی و توسعه بازی 
3- برنامه نویس سرور و دیتابیس 
توجه کن که استودیو‌های بازی سازی برای هر کدوم از این مهارت‌ها افرادی رو استخدام میکنند که فقط به طور اختصاصی اون کار رو بسیار عالی انجام میده و سال هاست تجربه اون مهارت رو داره و کسب این مهارت زمان بر هست و عملا یک حیطه شغلی برای فرد محسوب میشه که روز به روز باید فرد خودش رو پیشرفت بده و بهتر و بهتر بشه در مهارت خودش. 
 توصیه کنم اول از همه به این سوال در ذهن خودت جواب بدی که به روند بازی ساختن علاقه داری یا به پول در آوردن از بازی؟ 
اکثر کسانی که یه مدت بازی سازی رو یاد میگیرند به خاطر این هست که به این نگاه میکنند که یک استودیو با یک بازی به موفقیت مالی خیلی بالایی دست پیدا کرده. اگر فقط هدفت درآمد بالا باشه، از سن 12 سالگی خیلی کارها و سرمایه گذاری‌هایی مهارتی بهتری میتونی کنی تا درآمد بالایی در آینده داشته باشی ( بازی سازی مستقل اصلا گزینه خوبی برای درآمد زایی نیست ). 
برگردیم به کلش، استودیو سوپرسل، سازنده بازی کلش، تیم بازی سازی ابتدایی اش حدود 6-7 نفر بودن، قبل از ساخت این بازی چندین بازی ناموفق ساخته بودن و قبل از موفقیت در کلش چندین شکست رو تجربه کردن. این مورد که قبل از ساخت یک بازی خوب حداقل چند مورد شکست وجود داره در تمام بیزنس‌ها و بازی‌ها عادیه. موفقیت توی ساخت یک محصول خوب فاکتور‌های مختلفی داره که جای بحثش در این پاسخ نیست چون خیلی طولانی میشه. 
من توصیه میکنم اگه به ساخت بازی خیلی علاقه داری و به مهارت‌های مرتبط با بازی سازی علاقه داری یکی رو انتخاب کنی و در اون متخصص بشی تا در آینده بتونی یه تیم دور خودت جمع کنی و بازی ای که دوس داری رو بسازی یا اینکه به استخدام یک شرکت بازی سازی در بیای که بعید میدونم حقوق بالاتری نسبت به بقیه شغل‌های فنی داشته باشی چون استودیو‌های بازی سازی ایرانی سود چندان زیادی ندارن (حداقل فعلا). برای اینکه دیدی بهتری داشته باشی سعی میکنم این سه رسته اصلی که بالا نوشتم رو بازتر کنم تا بفهمی به کدوم بیشتر علاقه داری:

1- طراحی دو بعدی یا سه بعدی : ساخت کاراکتر‌های دو بعدی یا سه بعدی، انیمیشن بازی‌ها، طراحی منو‌های بازی، داستان بعضی ( گاهی اوقات ) و همینطور ساخت محیط بازی 
2- برنامه نویسی یا توسعه بازی :ساخت گیم پلی بازی، برای مثال برنامه نویسی اینکه اگر این دکمه رو پایین نگه داری کاراکتر بازی دو واحد به سمت چپ بره یا بپره یا بشینه. اگر بازیکن به این قسمت از محیط بازی برسه بره مرحله بعد، اگه تیر بخوره انقدر آسیب ببینه و ....

3- برنامه نویسی و تنظیم ارتباطات اینترنتی بازی شما : رابطه بین داده‌های رد و بدل شده بین هر کاربر بازی و سرور و یا بین کاربران ( با توجه به معماری بازی ) 

من حدس میزنم از سوال شما که بیشتر به زمینه برنامه نویسی علاقه داشته باشی چون به دنبال ساخت بازی هستی ( هر چند بازی نیاز به تهیه کننده و نشر هم داره ). به همین دلیل توصیه میکنم این پاسخ رو مطالعه کنی. 
در نهایت پیشنهاد میکنم تا جایی که میتونی اطلاعاتت رو بیشتر کنی و مطالعه کنی درباره صنعت بازی، سایت‌های زیادی هستن که اطلاعات زیادی بهت میدن، زبان انگلیسیت رو بهتر کنی و دست از تلاش برای یاد گرفتن چیزهایی که بهشون علاقه داری بر نداری. اگر باز سوالی داشتی توی قسمت دیدگاه بپرس و سعی کن با افرادی که توی صنعت بازی هستن بیشتر ارتباط بگیری. به نمایشگاه TGC که هر ساله در تهران برگزار میشه برو و اگر تهران هستی امروز و فردا به نمایشگاه الکامپ سالن 8 و 9 برو در انتهای سالن شرکت‌های بازی سازی خوبی هستن که میتونی باهاشون صحبت کنی و کلی اطلاعات بگیری. سن شما خیلی پایینه و میتونی با یادگیری مهارت‌های مختلف چندین سال بعد نتیجه خوبی بگیری.

به یافتن ریشه لغات ریشه‌شناسی یا Etymology میگن. برای این کار می‌تونید سرچ کنید مثلا "Egypt Etymology " و سایت‌های زیادی هستن که ریشه لغت رو به شما میگن. مثلا من طبق سوال شما Egypt رو سرچ کردم و نتیجه این شد: 

Old English Egipte "the Egyptians," from French Egypte, from Greek Aigyptos "the river Nile, Egypt," from Amarna Hikuptah, corresponding to Egyptian Ha(t)-ka-ptah "temple of the soul of Ptah," the creative god associated with Memphis, the ancient city of Egypt.

ترجمه : در انگلیسی باستان لغت egipte به معنای مصری‌ها از لغت فرانسوی Egypte گرفته شده که آن لغت از لغت یونانی Aigyptos به معنی رود نیل گرفته شده و آن نیز از hikuptah که معادل Ha(t)-ka-ptah در زبان مصری است که به معنای معبد روح پتاح، خدایی که در فرهنگ مصر به عنوان سازنده شهر باستانی ممفیس مصر تلقی میشه هست.

اکثر کلمات به همین صورت هست که پیدا کردن ریشه اونها به چند کلمه در زبان‌های مختلف و نهایتا منشا اون کلمه برمیگرده. توجه کنید که مثال بالا نشان‌دهنده این هست که چرا در انگلیسی به کشور مصر میگن Egypt.

برای ساخت بازی اندروید توصیه میکنم از گیم انجین‌ها (موتور بازی) استفاده کنید. گیم انجین‌های مختلفی وجود داره که خروجی اندروید هم به شما میده و با هر کدام از آنها معمولا با یک یا چند زبان برنامه‌نویسی میشه بازی ساخت. در این لینک میتونید اطلاعات بیشتری پیدا کنید.  

برای یادگیری هر زبانی شما نیاز دارید اول مهارت‌های ورودی (خواندن و گوش دادن) رو تقویت کنید تا دانش زبانی به حافظه شما منتقل بشود تا بعد بتونید از اون دانش کسب شده در مهارت‌های خروجی (صحبت کردن و نوشتن) استفاده کنید. من پیشنهاد میکنم طولانی مدت در شرایطی قرار بگیرید که ورودی زبانی به ذهن شما بده و در عین حال از اون دانش کسب شده استفاده کنید تا به اصطلاح خارجیا Second Nature بشه و به طور اتوماتیک صحبت کنید. برای رسیدن به این هدف،  توصیه می‌کنم فیلم و سریال انگلیسی با زیرنویس انگلیسی ببینید و حتما به کلاس‌ زبان‌های ترمیک طولانی مدت برید (ترجیحا فشرده نباشه، زبان چیزی نیست که یک شبه بشه یاد گرفت). 

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

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

خلاصه بخوام بگم هر تلاش طولانی مدتی برای یادگیری زبان، زبان شما رو بهتر میکنه.

اگر دنبال کسب اطلاعات هستین که خب با سرچ کردن درباره این برنامه‌ها اطلاعات زیادی به دست می‌آورید. اما اگر دوست دارید یاد بگیرید که چجوری این برنامه‌ها رو بسازید یک دوره از وبسایت یودمی هست در این۸۲ آدرس که امتیاز خوبی هم داره و میتونید در سایت‌های فارسی هم پیداش کنید.