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

javascript
python
learning-to-program

#2

اول از همه فریلنسری برای یک فرد بدون تجربه کاری کار سختیه

درمورد این که چه چیزی باید یادبگیرین میتونین برین سایت هایی مثل جابینجا یا Indeed و استخدام با عنوان کارآموز در حوزه ای که علاقه دارین رو جستوجو کنین و اون موارد درخواستی از سوی شرکت ها حداقل هایی هستند که باید یاد بگیرید تا بتونین بصورت واقعی کار کنین (البته اگه هدفتون استخدام هست!! از این لحاظ که اگه بخوایین صرفا پروژه شخصی رو بالا بیارین شاید مواردی که باید یاد بگیرین متفاوت باشن)

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

و همچنین خیلی روی زبان انگلیسی سرمایه گذاری کنین


#3

سلااااام … خوش اومدی …سال نو رو هم به همه کاربرای عزیز و دوست داشتنی سایت تبریک میگم . ایشالله که سال خوبی رو داشته باشیم …:pray::hibiscus:

خواستم منم یه پاسخی جالبی بدم .

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

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

من بیشتر فارغ از زبان برنامه نویسی گفتم . ولی سرچ بزن تو سایت زیاد بحث شده . و به نکته های خوبی میرسی .
دوستان هم اومدن نظر خودشونو میگن .
موفق باشید .


#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

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