انتخاب مسیر درست

javascript
python
learning-to-program

#4

سلام و به جمع ما خوش‌اومدی. (هم جمع این وبسایت و هم جمع برنامه نویسها)

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


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

برای اینکه بدونید باید چه چیزهایی بلد باشید برای هر زمینه‌ای، (همونطور که دوستان اشاره کردن) یه کم سرچ کنید ببینید شرکتها یا افرادی که اون پروژه‌ها رو سفارش میدن، چه چیزی میخوان. ولی من یه توضیح کلی میدم برای هر کسی که میخواد برنامه نویسی کنه:

  • برنامه نویسی با زبانهای ویندوزی (و کلا استفاده از ویندوز) اصلا پیشنهاد نمیشه. (میخواستم یه جور دیگه بنویسم ولی ترسیدم یه کم توهین آمیز باشه)
  • یاد گرفتن لینوکس (و کار کردن باهاش به عنوان سیستم عامل اصلی که روش develop انجام میدید) یه قدرت مضاعف به شما میده. (همچنین، از یادگیری bash script پشیمون نمیشید ولی شاید از یاد نگرفتنش پشیمون بشید)
  • دونستن git و استفاده ازش برای خیلی شرکتها لازمه و دردسر خودتون رو کم میکنه برای انجام هر پروژه‌ای بجز پروژه های تمرینی تو کتابهای آموزشی. (ورژن کنترلر‌های دیگه‌ای هم وجود داره مثل svn ولی بهترینشون git هست)
  • هر زبانی و هر زمینه‌ای که فعالیت میکنید، کار با دیتابیس دارید. میتونه دیتابیس mysql یا postgresql باشه برای یه وبسایت، یا sqlite باشه برای یه نرم‌افزار دسکتاپ تک-کاربره.
  • کسی نمیتونه همه چیزو یاد بگیره. پس بهتره تمرکزتون رو توی یه بخش بذارید (مثلا فقط برنامه نویسی ماشین) و توی اون زمینه حرفه‌ای بشید. مثلا برای من که وب کار میکنم، اگه بخوام پروژم نسخه‌ی موبایل هم داشته باشه، خیلی راحتتر (و ارزونتر) هست که یه برنامه نویس kotlin استخدام کنم به صورت پروژه‌ای و یه اپلیکیشن اندروید ازش بگیرم. اگه بخوام خودم اندروید یاد بگیرم زمان زیادی (که میتونستم روی پروژه‌ی اصلی بذارم) ازم تلف میشه و نتیجه‌ی نهاییش هم اصلا به اون خوبی در نمیاد. دلیلش هم خیلی سادست، چون چندسال تجربه‌ی برنامه نویسی اندروید ندارم!
  • انجام پروژه‌ی open source روی گیتهاب/گیتلب به شدت توصیه میشه. اگه روی یه پروژه‌ی شخصی کار میکنید، بد نیست که توی پروفایل گیتهاب/گیتلب خودتون بذاریدش. احتمالا بهترین رزومه به حساب میاد. کد زدن روی پروژه‌های اوپن سورس دیگران خیلی بهتره! مخصوصا اگه پروژه‌ی بزرگی باشه (مثلا زمانی که حرفه‌ای شدید و چندماه از flask استفاده کردید برای ساخت وبسایت، میتونید برید کدهاش رو بخونید و issue هایی که توی ریپازیتوری هست رو ببینید و فیکسشون کنید.)
  • زیاد مطالعه کنید.کتابهای تخصصی، مقالاتی که توی اینترنت نوشته شده، وبسایتهایی مثل همینجا.
  • توی جمع های برنامه نویسی شرکت کنید. کنفرانسهای پایتون و لینوکس، lugها و…
  • در نهایت، به مسیر ادامه بدید و تا قبل از ۲۵سالگی انتظار پروژه‌ی خفن از خودتون نداشته باشید. هیچ برنامه نویس بزرگی رو نمیشناسم که کمتر از ۱۰سال از شروع کارش گذشته باشه و پروژه‌ی معروفی ساخته باشه.

#5

ممنون…اره…زبان رو دنبال میکنم…کلاس میرم …فیلمم سعی میکنم دوبله نبینم


#6

خیلی ممنون از همه…و همچنین شما…قبلا هم بله تو نت زدم و چند نفر پرسیدم ولی خوب جواب شما کامل بود خداروشکره…کارایی که گفتید رو انجام میدم ایشالا…من خودم دوست دارم تو یه زمینه یادبگیرم ولی خوب…نمیئونستم چی باشه…اندروید باشه وب یا به قول شما ماشین…تو نت جستجو کردم …اونجوری که دیدم خیلی ها وب هستن خیلی شلوغه…فکرم نمیکنم طراحی وب جذاب باشه (از نظر من)…اندروید هم کم هستن ولی میگن درامدش خوبه…ماشین هم میگن خیلی خوبه ولی تو ایران نه…

و منظور شما این بود که باید زبان های لازم یه حوضه رو یادبگیریم …نه فقط یک زبان و تو زمینه های مختلف درسته؟


#7

وب بازارش داغ‌تره. اندروید هم زیاد هستن. ماشین بازار کار خیلی کمی داره مخصوصا الآن که سیستمهای embded اومده و برای خیلی کارها میان یه raspberrypi برمیدارن و لینوکس میریزن روش و کارشونو با یه زبان سطح بالا انجام میدن، خیلی کم سطح پایین کار میشه. (در نتیجه بازار کارش کمتره و امنیت شغلیش بیشتره)

بله دقیقا منظورم همین بود.
دید فعلی برنامه نویسهای زبانهایی مثل python و JavaScript اینه که «فقط همین زبونی که من بلدم. بقیه به درد نمیخورن.» و سعی میکنن هر مساله‌ای رو توی چهارچوبی که خودشون دارن جا بدن. نیاز به گفتن نیست، هر کسی که از این زاویه به قضیه نگاه کنه میفهمه اینکار اشتباهه.


#8

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


#9

یعنی هرچی راجب python یلدگرفتم رو بندازم دور؟…
در ایران مگه غیر فریلنسر هم جواب میده


#10

نه امیر جان پایتان رو ادامه بده همانطوری که پویا گفت در مورد پیتان عمیق بشین
غیر از فریلنسری؟؟؟ چرا جواب نده؟؟


#11

اهان ممنون…تحت وب …دیجانگو …فلسک؟

یه چیز دیگه…درستش پایتان هست و نه پایتون؟


#12

واقعیتش وقتی تلفظ میشه پاتن میگن و یا ا خیلی خفیف میگن :joy: زیاد درگیرش نشو آخر عاقبت نداره

اگه تصمیمتون وب با زبان پایتان هست @pouya-abbassi بهتر میتونن راهنمایی کنن


#13

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


#14

خیلی ممنون


#15

خوب. برای واضح کردن قضیه بگم که در Django، حرف D بیصدا هست و «جنگو» تلفظ میشه (یه فیلم خیلی قدیمی هم به این نام ساخته شده که ربطی به برنامه نویسی نداره) فلسک هم که تلفظش مشخصه.
پایتون تلفظهای پیچیده‌ی زیادی داره. درگیر نشیم بهتره :grinning: (من paiton تلفظ میکنم مگر اینکه بخوام توی یه جمله‌ی انگلیسی اسمش رو به کار ببرم که در اون صورت با لحجه‌ی درست میگم. در غیر این صورت، چه اصراریه که وسط حرف کاملا فارسی، یهو لحجه‌ی با کلاس انگلیسی استفاده کنیم؟)
اصولا راحتترین راه برای فهمیدن تلفظ صحیح یه چیز اینه که یه ویدیوی یوتیوب ازش نگاه کنیم :grinning:

بقیه‌ی چیزها رو هم دوستان توضیح دادن.


#16

ممنون داداش… من اشتباه گفتم…
منظورم این بود که django یا flask


#17

خیلی ممنون از همه من تصمیم گرفتم فعلا سمت وب شروع کنم به شکل حرفه ای ایشالا
با html_css_js شروع میکنم… برا بکند هم اخرش ایشالا همون flask یا django…
خوب هست از نظر شما.

و ممنون میشم که یه منبعی خوب برا یادگیری معرفی کنید… یه چیزی باشه که واقعا با سواد کنه و سریع سریع رد نشه…

و یه چیز دیگه خیلی بی‌ربطه ولی به ذهنم میاد همش:
این سایت شما خییلی شبیه فروم freecodecamp هست… اگر دیده باشید


#18

خوب flask بهتره.
کلا هر چیزی که ساده تر باشه بهتره. همیشه سعی کنید با کنار هم گذاشتن لایبرری های ساده کار خودتون رو انجام بدید به جای فریموورکهای بزرگ. بحث سر این موضوع زیاد شده تو سایت.

برای html / css / js از w3schools.com استفاده کنید.
برای flask هم بهتره از داکیومنت خودش استفاده کنید. داکیومنت کاملی داره. (اصولا برای لایبرری های open source، داکیومنت خودش بهترین گزینست)


#19

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


#20

بستگی داره انتظاراتت چقدر باشه اما به نظر شخصی من اگر علاقه وجود نداشته باشه اشتباه محضه وارد این حوزه بشی


#21

هیچ مسیری درست تر از علاقه شما نیست !!


#22

بله… من علاقه دارم… نمیتونم درست بگم… ولی اره… تا اونجایی که میدونم دارم… به کامپیوتر و اینجور چیزا کلا از بچگی علاقه داشتم… و باهاش خیلی کار می‌کردم… فقط بازی و اینا و کاراهای کوچیک و جالب… به این نتیجه رسیدم چون تو کار کردن باهاش بد نیستم… و به کامپیوتر و اینجور چیزا هم علاقه دارم برنامه نویسی باید جالب باشه… اینکه به یک دستگاه کاری رو بگی کنه… برات کارو راحت کنه… و اینکه توانایی زورس نیست که نمیدونم زور بخواد… و خوب منم نه که بگم خوشم مساد 10 ساعت بشینم سر سیستم… چون تاحالا امتحان نکردم… ولی… اره خوب من مستونم یعنی تا اینجای کار عادت دارم زیاد بشینم پاش


#23

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