منبع خوب برای یادگیری وب

سلام خدمت دوستان
میخواستم بدونم به طور کلی منبع خوب برای یادگیری برنامه نویسی چیه… بیشتر خودتونو دیدم که منبع ایرانی رو پیشنهاد نمی‌کنید چون بیشتر برای پول دوره هس که دوره رو میزارن…
پس همین خارجی ها… کدوم سایت ها خوبه یا کدوم کتاب ها… من خارجی فقط درمورد udemy شنیدم (که البته پولی هس بیشتر دوره هاش البته رایگان اش هم پیدا میشه) ولی به طور کلی مثلا شنیدم میگید برای html و css بهترین همین w3schools هس… ولی خوب این سایت js هم ساپورت میده من باید برا فرانت همین js رو ازین سایت یادبگیرم یا بقول بعضی دوستان با مستندات پیش برم؟
(یه سوال دیگه داشتم ازین بحث جداست که من برای وب (بکند) اگرم بخوام از Python اسفاده کنم باید الان که دارم html یادمیگیرم شروع به یادگیریش تحت وب رو کنم یا بزارم بعد از یادگیری html و css و…
و اینکه این قضیه دیتابیس ها چیه… یعنی من چندتا سرچ تو نت زدم ولی نفهمیدم یادگیری sql چه بکارمون میاد)

1 پسندیده

خوب، چیزهایی که قبلا گفتم رو تکرار نمیکنم. احتمالا منظورتون از «یکی از دوستان» من بودم :grinning:

پیشنهاد من اینه که اگه هدفتون back-end هست، تمرکز اصلی رو بذارید روی پایتون. خود پایتون. بدون فریموورک. بدون flask.
با خود زبان آشنا بشید و ارتباط برقرار کنید، اونوقت کار کردن با یه میکروفریموورک ساده مثل flask خیلی ساده میشه و احتمالا همزمان با خوندن مستندات میتونید شروع کنید به ساخت پروژه‌ی اصلیتون.
برای front-end پیشنهادم اینه که یه مقدار باهاش آشنا بشید و هرجا نیاز بود یه تیکه کد کپی کنید از همون w3schools که کارتون راه بیفته. (من که اینطوری شروع کردم وب رو. الآن هم اونقدری js بلد نیستم که نیاز به سرچ کردن نداشته باشم)

میتونید همزمان با یادگیری html/css/js، پایتون رو هم تمرین کنید. احتمالا وقتی کار رو با flask شروع کنید و با jinja آشنا بشید (که یه template engine هست) خیلی خوشحال میشید :grinning: مخصوصا اگه پیش زمینه‌ای در php داشته باشید.
پس پیشنهاد میدم اول html/css یاد بگیرید (اصلا زیاد نیست و اصلا سخت نیست) که بتونید راحتتر ازش استفاده کنید زمانی که دارید با فریموورکهای وب آشنا میشید.

دیتابیس همه‌چیزه! اینطوری بگم که php بدون دیتابیس دقیقا یعنی هیچی. (چون با php کاری بجز ساختن وبسایت نمیشه انجام داد و وبسایت بدون دیتابیس یعنی هیچی)
شما با وبسایتی که دیتابیس داره آشنایی دارید. (فکر نمیکنم وبسایتی رو بتونید نام ببرید که دیتابیس نداشته باشه) و وبسایتی که دیتابیس نداره در حقیقت وبسایتیه که back-end نداره (نیازی به بک-اند نداره) و یه سری صفحه‌ی ثابت و بدون تغییره.

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

البته وبسایتهایی مثل iranclojure.ir هستن که دیتابیس (به معنای واقعیش) ندارن ولی اینها هم از یه وبسایت دیگه (که دیتابیس داره) دیتاشون رو میگیرن (یه سری api دارن به وبسایتهای دیگه)

تا اینجا قضیه رو خیلی ساده توضیح دادم.


دیتابیس دو مدل کلی داره.
دیتابیسهای sql و دیتابیسهای no-sql.

دیتابیسهای sql مثل mysql، postgresql، sqlite که از نظر روش استفاده خیلی شبیه هم هستن (کوئریهایی که بهشون میزنیم تقریبا مثل همدیگست) و کانسپت‌هاشون هم شبیه همه.
دیتابیسهای no-sql مثل cassandra برای کارهای خاص هستن که نمیشه با sql پیاده سازی کرد.

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


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

3 پسندیده

خب پروسه یادگیری رو بزارم برات ساده تر کنم :
همونطور که پویا جان ذکر کردند اول خود پایتون رو خوب یاد بگیرید ، باهاش ور برید بازی کنید فایل باز کنید فایل حذف کنید و … مثلا برنامه های کوچکی بنویسد که داخل پوشه ها دنبال فایل بگرده یا محتوای فایلها رو بررسی کنه و چیزی رو که دنبالش هستید بهتون نشون بده و … ! این کارها باعث میشه در شما ذهنیت برنامه نویسی و اینکه چطور به مسائل فکر کنید بوجود بیاد

اما برای وب :
قبل از هرچیز به نظر شخصی من یک کتاب خوب در مورد شبکه منظور tcp,http و … پیدا کنید بخونید و بدونید که اینها چی هستند چه کاری میکنند و …
برای فرانت اند :
با css,html شروع کنید و صفحات ساده بسازید ، بعدا که یکم فهمیدید چی به چیه جاوا اسکریپت رو شرووع کنید و مثلا چیزهای ساده بنویسید که رنگ صفحه رو عوض کنند ، از شما یه پیغام بگیرند تو صفحه نشون بدند و …

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

3 پسندیده

چند روز قبل برای یه پروژه ساده که دست خودم بود تصمیم گرفتم از flask (فلاکس :joy::joy::joy:) استفاده کنم . اولش یکم تنبلیم میشد میگفتم ول کن کی حوصله داره بشینه داکیومنت اینو بخونه و … بعد که خوندم دیدم زیادی آسون و خفنه و الان عاشق این فریم ورک شدم . واقعا این فریم ورک محشر و ساده هست و برای تمام کارهای شخصی خودم از این استفاده میکنم . ای کاش خیلی وقت پیش امتحانش کرده بودم

2 پسندیده

ممنون
یه سوال دیگه… تو موفقیت این راه… مدرسه و چمبدونم درس و دانشگاه… کمکی میکنن؟… باعث پیشرفت میشن یا اصلا پسرفت؟

(نمیدونم میشه یا نه ولی نمیدونم نمیدونستم چطور هردو شمارو replay کنم بخاطر همین نقل قول هم کردم)

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

1 پسندیده