چقدر خوب آفرین! وقتی یکی به من میگه میخوام برنامهنویس بشم تنها جوابی که به ذهنم میاد همینه. اما معمولا سوال بعدی اینه که چه زبانی بخونم؟ و جواب من اینه هرچی دوست داری. یا سوال اینه که کدوم زبان همه بهتره و خفنتره که در اینصورت میگم نمیدونم همه شون خوبن دیگه.
شاید به نظر کسی که ازم سوال پرسیده من آدم مغروری باشم که از روی کبر و غرور این جواب رو میدم ولی واقعیت همینه. با هر زبانی میشه برنامه نویس شد. هیچ زبانی بهتر نیست. کلا هیچوقت هیچ چیزی بهتر نیست این بستگی به این داره که ازش چه استفادهای میکنید. من PHP کار میکنم خب قطعا با سینتکسش آشناترم و برام راحتتره استفاده ازش، اما این دلیل نمیشه بگم جاوا بده یا سی خوب نیست!
خلاصه بعد از خوندن سوالای دوستان جوانترم (خودمم هنوز جوانم) تصمیم گرفتم یه متن فارسی بنویسم برای کسایی که میخوان برنامه نویس بشن، البته برنامه نویس وب. برای کسایی که میخوان برنامه نویس غیر وب بشن پیشنهاد میدم گوگل کنن، حتما یه نفر یه جای دنیا یه نقشه راه براشون نوشته.
سوال اول اینه من میخوام برنامه نویسی وب انجام بدم از کجا شروع کنم؟
نکته خیلی خیلی مهم اینه که اگر میخواید تو این حوزه کار کنید سوال پرسیدن از بقیه رو رها کنید و با گوگل دوست بشید. همین سوال رو اگر تو گوگل بپرسید قطعا جوابهای بهتری میگیرید تا تو یه گروه تلگرام.
سوال دوم کار برا برنامه نویسی هست؟
شما تو هرکاری حرفهای باشی برات کار هست. اگر یه نانوا هستی بهترین نانوا باشی همیشه همه جا برات کار هست. یه آشپز حرفهای همیشه میتونه یه جایی کار پیدا کنه یا حتی رستوران خودش رو بزنه. مهم نیست کارت چیه اگر کارت رو حرفهای بلد باشی همیشه همه جا برات کار هست. برای برنامه نویس هم اگر حرفهای باشه کار هست.
خب برگردیم به سوال اول، یک نفر میخواد برنامه نویس وب بشه و میخواد بدونه از کجا شروع کنه. اول از همه باید بدونین که تو سال ۲۰۱۹ وب دولوپرها تو سه شاخه فعالیت میکنن، frontend, backend, devOps. بکندیها برنامه مینویسن با دیتابیس و سرور سر و کار دارند و در واقعا برنامه ای که اطلاعات رو میگیره و پردازش میکنه و به کاربر تحویل میده رو انجام میدن. فرانتندیها رو ظاهر سایت میکنن در واقع چیزی که کاربر نهایی میبینه و باهاش کار میکنه. DevOps ها برنامههای تولید شده رو به دست مشتری تو کوتاهترین زمان میرسونن. البته دوآپس یک اصطلاح تقریبا جدید هست که از سال ۲۰۰۹ بوجود آمده.
شاید اولش که چیزی از کار واقعی این گروهها نمیدونین نتونین تشخیص بدین که کدوم رو بیشتر دوست دارین و تو کدوم شاخه دوست دارین وارد بشین. هیچ اشکالی نداره میتونین یه اطلاعات سطحی تو هر کدوم از این حوزهها داشته باشین و یه کمی ازش یاد بگیرین، چون بالاخره مهم هست که بدونین تیم کناری داره چه کاری انجام میده و خیلی از مواقع حتی مجبورین باهاشون همکاری کنین و باهم پروژه رو جلو ببرین. اینجوری نیست که شاخهها صد در صد از هم جدا باشند ولی خب یه فرانتند دولوپر حرفهای نیاز نیست که بکند دولوپر حرفهای هم باشه، اگرم بود که چه بهتر.
خب قدم اول اینکه HTML یاد بگیرید. به هر حال پایه همه سایتها که میبینیم HTML هست. HTML یک زبان هست، البته نه زبان برنامه نویسی، یک زبان نشانه گذاری هست که مرورگرها میتوانند آن را بخوانند. چه بکند کار باشید و چه فرانتند باید HTML رو بلد باشین. یادمه یه روزی یکی به من گفت یعنی شما همهی تگهای HTML رو حفظین؟ گفتم تقریبا آره. واقعیت اینه که قرار نیست از شما امتحان گرفته بشه و بشینید دو روز تگها رو توی جعبه لایتنر بزارید و با مفهومشون حفظ کنید. کافیه ۱۰ تا صفحه رو بسازید میبینید که دیگه حفظ میشین تگها رو. به نظر من خوندن و یادگیری HTML کاریه که باید تو یکی دو روز تموم بشه چون کلی چیز دیگه هست که باید برای یادگیریش وقت بزارید.
تقدم و تاخری بین یادگیری فرانتند و بکند نیست و میشه هرکدوم رو که دوست دارین اول یاد بگیرید. چون اگر وارد دنیای کار بشید ناخودآگاه با قسمتهایی از کار تیم مقابل هم آشنا میشین. من توی دو تا پست در ادامه همین پست، نقشه راه بکند و فرانتند رو مینویسم
و البته چه فرانتد و چه بکند دولوپر باشید باید بتونید با گیت کار کنید، قوانین ورژن زدن رو بدونین، کار با ترمینال رو بلد باشین، ساختمان داده و طراحی الگوریتم بدونید، بتونید به سرور ssh وصل بشید و کار کنید و دیزاین پترنها رو بشناسید.