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

«برای شروع هرچیزی اول باید به صفر رسید، سپس اولین قدم را به سمت یک برداشت.»
منظور از زیر صفر زمانی هست که شما موقع ورود به حوزهای از علاقه، هدف، رویا و کاری میخواهید انجام دهید، اطلاعات دقیقی نداشته باشید. ممکن است که از دوست و آشنایان صرفاً درباره مزیتهایی از قبیل درآمد و تاثیر برنامه نویسی در دنیای آینده شنیده باشید، ولی اینها به تنهایی برای رسیدن به صفر کافی نیستند..
...
برای رسیدن به صفر شما نیازمند مشخص کردن هدف خود به صورت دقیق هستید.
شاید بپرسید چرا مشخص کردن هدف تا این اندازه مهم هست؟ بدلیل اینکه احتمال دارد شما برای رسیدن به هدف خود، اصلاً نیازی به یادگیری برنامه نویسی نداشته باشید.
به عنوان یک مثال ساده فردی را تصور کنید که یک ایدهی ساخت برنامه به سرش زده و میخواهد این ایده را عملی کند. این شخص اگر هدفش استفاده تجاری از این برنامه باشد و نه توسعه برنامههای مختلف، میتواند از طریق بسترهایی که در سطح اینترنت وجود دارند، برای ساخت برنامه، بدون دانش برنامه نویسی استفاده کرده تا یک نمای کلی از برنامه مورد نظرش ایجاد و سپس از طریق ارتباط با افراد مربوطه در این حوزه ایده خود را به نمایش بگذارد تا برای ادامه مسیر، افرادی با مهارتهای مورد نیازش پیدا کند.
در کل داشتن چشم انداز و دلیل محکم، میتواند تا حد زیادی باعث شود تا در بین افرادی که در اواسط یادگیری بیخیال برنامه نویسی میشوند، قرار نگیرید.
برای رسیدن به صفرِ برنامه نویسی نیامند یه سری پیش نیازهای کلی هستید که عبارتاند از:
جستوجوگری در اینترنت: بدلیل اینکه نیاز هست به صورت مکرر جواب سوالات خود را در سطح اینترنت پیدا کنید، نیاز هست تا با اصول کلی سرچ کردن آشنا باشید. لازم نیست برای این قضیه آموزش ببینید، بلکه باید به سرچ کردن و پیدا کردن مطالب مورد نظر عادت داشته باشید. این پیش نیاز، ضروری نیست. ولی میتواند سبب افزایش چشم گیر لذت بردن از مسیر یادگیری شود.
سطح زبان مورد نیاز: بدلیل وجود منابع آموزشی با کیفیت، کتابخانهها و کلیت برنامه نویسی به زبان انگلیسی، نیاز هست تا حداقل یک سری چیزهای پایه رو در زبان انگلیسی بدونید. تا جایی که بتوانید به مرور بواسطه تعامل با محیطهای انگلیسی زبان مثل ویرایشگر کد و سایتهای مختلف به تدریج، سطح زبانتون رو همراه با سطح برنامه نویسی خود، افزایش دهید.
ریاضیات: همین ابتدا بگم که ریاضیات در برنامه نویسی تفاوت نسبتا زیادی با تصورات شما دارد. ولی به صورت کلی بخواهم بگویم، شاید بتوان گفت برنامه نویسی یک نوع پیدا کردن جواب معادلات در ریاضی، ولی به شکل و شمایل کدهای برنامه نویسی است.
ولی همچنان اینکه بگیم اگه به ریاضیات علاقه ندارید یا اگر در آن ضعیف هستید، کلا به سمت برنامه نویسی نرید، اشتباه است.
پس فقط میتوان گفت باید خودتان تجربه کنید تا بتوانید این مسئله را برای خودتان روشن کنید.
در آخر هم نیاز هست تا آشنایی کلی با روند برنامه نویسی داشته باشید.
شاید فکر کنید که این آشنایی کلی را دارید، ولی بعید میدانم کامل باشد. برای همین چند عدد منابع (چنل یا کانال) در سایت یوتیوب، هم به زبان فارسی و هم انگلیسی معرفی میکنم تا بهتر با برنامه نویسی آشنا شوید.
(ت) Matin : یک دانشجوی مهندس کامپیوتر در ایران (که البته نمیدونم هنوز هم دانشجو هستن یا نه) که یه سری ویدئوهای جالب، درباره برنامه نویسی و مهندسی کامپیوتر، داخل چنلش قرار داده که به خوبی میتواند شما رو با چالشهای یک برنامه نویس و محیط کارش آشنا کند.
www.youtube.com/@MatinAfzal
nner Chaos Games: یک برنامه نویس خارجی در زمینه بازیسازی که در ویدئوهایش نسخهای سه بعدی، از بازیهای دو بعدی محبوب را میسازد. به همین خاطر برای کسانی که میخواهند به سمت بازیسازی پیش بروند، آشنایی خوبی برایشان به ارمغان میآورد.
www.youtube.com/@Inner-Chaos
Code Bullet: یک چنل خارجی که ویدئوهای خیلی جالب و در عین حال قابل درک برای همه افراد، در رابطه با برنامه نویسی و هوش مصنوعی قرار میدهد. به همین خاطر، به شدت مناسب کسانی است که میخواهند به سمت یادگیری ماشین و هوش مصنوعی بروند.
www.youtube.com/@CodeBullet
در اینجا من یک نقشه راه کلی (که همچنان نیاز به بررسی توسط خودتان دارد و کامل هم نیست) ارائه میدهم که بتوانید بهتر در اینترنت جستجو کنید و مطالب بیشتری رو مطالعه کنید:
همین ابتدا بگم اگه همچنان هدف خاصی به ذهنتون نرسید، ولی دوست دارید دستی تو برنامه نویسی داشته باشید، پیشنهاد من زبان پایتون هست. دلیل این پیشنهاد هم به این دلیل هست که پایتون یادگیری به نسبت راحتی دارد و در کنار راحتی، این زبان کاربرد گستردهای هم دارد. به عنوان نمونه میتوانید از آن برای توسعه وب در سمت سرور یا بازیسازی استفاده کنید. (در ادامه مطلب توضیحات بیشتری داده شده)
به همین دلیل میتوانید پایههای اصلی برنامه نویسی (که تقریبا تو همه زبانها هستند) را از طریق آن یاد گرفته و در صورت روشن شدن مسیری که میخواهید پیش بگیرید، به شکل راحتتری بتوانید سایر زبانهای مورد نیاز رو فرا بگیرید.
سه موتور بازیسازی محبوب:
آنریل انجین (Unreal Engine) که از زبان برنامه نویسی سی پلاس پلاس (C++) پشتیبانی میکند.
یونیتی (Unity) که از زبان برنامه نویسی سی شارپ (C#) پشتیبانی میکند.
گودو (Godot) که از زبان برناموه نویسی اختصاصی خودش که تشابه نسبتا زیادی با زبان پایتون دارد، به اسم GDscript پشتیبانی میکند.
اگر میخواید یادگیری رو درحوزه توسعه وب شروع کنید، ترکیب زبانهای برنامه نویسی
HTML + CSS + JavaScript برای فرانتاند و بعدش زبانهای Node.js یا Python برای بکاند انتخابهای خوبی هستن.
اگه میخواید وباپلیکیشن حرفهای بسازید، ترکیب React یا Vue برای فرانتاند Node.js ،Python یا C# برای بکاند و برای دیتابیس و ذخیرهسازی اطلاعات SQL یا NoSQL توصیه میشه.
(نقل شده از زبان هوش مصنوعی)
در کل، برای رسیدن به صفر در هر حوزهای، نیازمند هدفی هستید که به کار و عمل شما معنا و عمق بده تا در شرایط سخت، به عنوان یک موتور شتاب دهنده، شما رو به سمت جلو هل بده.
اینها مطالبی بودند که سواد من ظرفیت نوشتن آنها رو داشت. در نتیجه همچنان نیاز هست تا برای رسیدن به صفر، بیشتر در اینترنت کندوکاو کنید. ولی همچنان مراقب باشید تا دچار وسواس بیش از حد نشوید. سعی کنید پس از مشخص شدن حدودی مسیرتان در یکی از حوزههای برنامه نویسی، به سرعت یادگیری برنامه نویسی را شروع کنید.
در آینده شاید دور، منابع و جمع بندیای از مطالب موجود در سطح اینترنت قرار خواهم داد تا در کاربردیترین (پر بازدهترین) حالت ممکن، برنامه نویسی رو یاد بگیرید.
ممنون که برای رسیدن به صفر، وقت گذاشتید. 3>