بیا دو خط به زبان Swift کد بزنیم

سوئیفت از زبان‌هایی مثل #Objective-C، Rust، Haskell، Ruby، Python، C و بسیاری دیگر الهام گرفته‌شده

صرفا قرار نیست امروز کل سوئیفت (یا سویفت) رو یاد بگیرید و همه‌ی سینتکس ها رو باهم بررسی کنیم ولی بد نیست ی تجربه کمی از کار با سوئیفت تو زندگیتون داشته باشید.

من وارد توضیحات و پیدایش سوئیفت و این صحبت ها نمیشم و میسپرم به خودتون که اگه علاقه دارید برید دنبالش چون هدف ما اینجا فقط کد زدن و کار عملی هستش! ولی در این حد بدونید که زبان جدیدی هست که کمپانی اپل سال ۲۰۱۴ جایگزین Objective-C کرده و برنامه نویس‌ها و توسعه دهندگان جدیدا ازش برای توسعه iOS و TvOS و MacOS و WatchOS استفاده میکنن.

اول از همه ما در سوئیفت شاهد Constants و Variables هستیم که خیلی ساده هست، وقتی شما Constant که به معنی ثابت هست رو تعریف کنید امکان تغییر مقدار رو دیگه ندارید و فقط Variable که به معنی متغیر هست این امکان رو داره !

یک مثال الان همه چیز رو روشن میکنه

 

به راحتی دو مقدار رو تعریف کردیم که از جنس Int هستن و لزومی نداره شما مشخص کنید که Int هست یا Double یا String … ولی اگه لازم باشه این قابلیت رو داره که مشخص کنید، نگران نباشید :))

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

خب حالا میخوایم ببینیم واقعا Variable و Constant فرق دارن یا سوویفت داره ما رو سر کار میذاره؟
برای مقدار دهی دوباره و تغییر مقدار کافیه بدون var و let اون تکه کد رو تکرار کنیم چون یکبار تعریف شده و مقدار جدید رو بهش اعلام کنیم
من تصمیم میگیرم x رو به ۵۰ تغییر بدم و y رو ۱۰۰ کنم، یعنی به این شکل

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

خب قطعا منتظر ارور هستیم و ارور میگیریم که میگه یا y رو مقدارش رو تغییر نده و بیخیالش شو یا از نوع var تعریفش بکن و خیال همه رو راحت کن
که ارور دقیقا همین رو به صورت انگلیسی ازتون میخواد

خب مشخصه راه حل چیه فقط باید let رو تبدیل به var کرد


یکم بریم با print کار کنیم جذاب تر بشه کد زدنمون
مثل سی شارپ و خیلی زبان های دیگه شما میتونید دوتا جمله رو با + بهم متصل کنید و جملات هم داخل دوتا ” قرار میگیرن، این زیر میخوایم چند مدل Hello World چاپ کنیم ببینیم داستان از چه قراره

اگه همین خط ها رو تست کنید دقیقا خروجی که رو به روش نوشته شده رو میگیرید، اگه جایی رو متوجه نشدید میتونید با جستجو راجع‌بهش مطالعه کنید یا در بخش نظرات بنویسید تا کمکتون میکنم

بد نیست تلاش کنید چالش زیر رو انجام بدید تا دو خط بیشتر کد زده باشید و دستاتون حسابی به کد آلوده شه


  • سعی کنید اسمتون رو در متغیر name و نام خانوادگی رو در متغیر family تعریف کنید و با تابع پرینت ازش به همراه یک Hello چاپ بگیرید.
    بر فرض اگر اسم من Nim و فامیلی من Nimak هست خروجی به شکل !Hello Nim Nimak باشه.
  • سعی کنید با دو عدد ۸ و ۴، ۴ عمل اصلی ریاضی (ضرب جمع تقسیم منها) رو انجام بدید و چهار بار به کمک تابع print جداگانه چاپ کنید.
  • سعی کنید چالش دوم رو تنها و تنها فقط به کمک یک تابع پرینت انجام بدید.

خب فکر کنم برای امروز کافی باشه، امیدوارم تنبل نباشید، لب تاب رو روشن کنید و این چالش ها رو که شاید ۱۰ خط هم نشه انجام بدید، البته اگه مثل من خیلی خسته هستین توی گوشی هم میشه کد زد ولی یکم سخته

پیشاپیش از دوستانی که حرفه‌ای هستن هم عذر خواهی میکنم، خلاصه یکی باید هوای تازه وارد ها رو داشته باشه !

ممنون میشم نظراتتون رو بدونم و اگه دوست داشتید همین روند رو چه در این زبان یا در زبان های دیگه ادامه بدم تا با چند زبان مختلف یک آشنایی ریزی داشته باشید

نوشته بیا دو خط به زبان Swift کد بزنیم اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

دیزاین‌پترن Builder در اندروید چیست؟

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

A design that doesn’t take change into account risks major redesign in the future. – Erich Gamma

دیزاین پترن ها میتونن به سه دسته کلی تقسیم بشن:

  • ساختنی: ارائه‌ی راهکارهایی برای ساخت کلاس ها و اشیاء ( Singleton, Factory, Builder و… )
  • ساختاری: به منظور سازمان دهی و مرتب سازی اشیاء و کلاس ها ( Composite, Facade, Adapter و…)
  • رفتاری: ارائه راهکار برای ایجاد ارتباط بین اشیاء و کلاس ها ( Command, Observer, Strategy و… )

حالا که با مفهوم کلی دیزاین‌پترن ها آشنا شدیم میخوام بهتون یک دیزاین پترن محبوب در اندروید رو معرفی کنم، دیزاین پترن Builder. اگر تا به حال با کلاس AlertDialog کار کرده باشید، میدونید که برای ساختن یک دیالوگ جدید میتونید از این روش استفاده کنید:

 

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

مثال:

اولین قدم برای پیاده سازی دیزاین‌پترن Builder در این مثال اینه که من یک کلاس User ایجاد کنم:

هدف ما اینه کاربرمون به جای اینکه با دادن ورودی های مختلف، یک شی از این کلاس بسازه، با فراخوانی چند متد در نهایت بتونه یک نمونه از این کلاس داشته باشه، به این صورت:

دومین قدم ایجاد یک کلاس static در در داخل کلاس User به نام Builder هست، که کاربرمون با فراخوانی این کلاس، شی رو ایجاد کنه.

در واقع برای هر فیلد در کلاسمون، یک setter ایجاد کردیم که نوع بازگشتیش هم خود کلاس Builder هست. زمانی که آخرین متد یعنی create فراخوانی میشه، یک شی یوزر با اطلاعات داده شده به متدهای setter ساخته شده و به عنوان خروجی متد تحویل متغیر ما داده میشه.

بدون مقررات و طراحی، برنامه‌نویسی هنر قرار دادن باگ در یک فایل متنی خالی است – Louis Srygley

قدم آخر این هست که سازنده‌ کلاس User رو private کنیم تا کاربر نتونه به صورت مستقیم یک نمونه از کلاس بسازه. و به بیانی دیگه در واقع فقط کلاس Builder بتونه این سازنده رو فراخوانی کنه.

به همین راحتی! 🙂 الان میتونید با فراخوانی کلاس Builder و متد هاش از کلاس User یک شی جدید رو بسازید.

نکته بعدی اینکه اگر خواستید بعضی از فیلدهاتون رو اجباری کنید، میتونید این کار رو در متد create از کلاس Builder انجام بدید:

به عنوان آخرین نکته هم دوباره تاکید میکنم این دیزاین‌پترن بیشتر برای زمانی استفاده میشه که اون مدل/کلاس شما دارای فیلد ها و پارامتر های زیادی باشه که با فراخوانی اونها از طریق سازنده خوانایی و تمیز بودن کدتون به شدت کم میشه، میتونید با این روش کد بسیار خوانا تر و کاربرپسند تری بنویسید 🙂

امیدوارم این مطلب براتون مفید بوده باشه 🙂

نوشته دیزاین‌پترن Builder در اندروید چیست؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

یکم دستت رو به کد زدن آلوده کن

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

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

  • مهندس بیا این نامه اداری رو واسه ما تایپ کن
  • قربون دستت این آپدیت ویندوز ۱۰ رو از کجا خاموش کنم؟ پدرمو درآورده
  • مهندس کی وقت میکنی بیای ویندوزمونو عوض کنی؟
  • راستی مودم رو هم سر راه داری میای کانفیگ کن

این روز ها توی مدارس کشور های دیگه زبان های ساده ای مثل Swift رو دارن جدیدا آموزش میدن که حسابی جای بحث داره ولی جالب این هست که سال گذشته (۹۶-۹۷) اولین سالی بود که کتاب مبانی علم رایانه رو در پایه یازدهم (سوم دبیرستان سابق) در رشته ریاضی برداشتند و زمین شناسی به جاش قرار دادند !


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

به نظرم شروع کن به جستجو و توی پلتفرمی که بهش علاقه داری شروع کن فعالیت کردن یا حداقل به پیشنهاد من، دوره پایتون یک مرد بزرگ، یعنی جادی رو ببین که توی GoToClass.ir رایگان قرار داده.

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


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

تابستون هم که هست، چی از این بهتر؟ چرا شروع نمیکنی؟

نوشته یکم دستت رو به کد زدن آلوده کن اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چه جوری پروژه فریلنسری بگیریم؟ قسمت دوم

تو قسمت قبل در مورد فریلنسری کمی صحبت کردیم تو این مطلب بیشتر به روش های انجام پروژه خواهیم پرداخت

گفتیم که چه چیز های رو باید در نظر بگیرین قبل از قبول کردن یه پروژه فریلنسری, تو این قسمت می خوایم درباره این صحبت کنیم که چه جوری این پروژه ها رو بگیریم و از کجا مشتری پیدا کنیم پس بیشتر تو این قسمت می خوایم درباره بازاریابی برای کارتون صحبت کنیم

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

روش اول : سایت های پروژه های فریلنسری

سایت های انجام پروژه فریلنسری

خوشبختانه چندتا سایت خوب فارسی برای برون سپاری کار ها و انجام پروژه های فریلنسری وجود داره

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

۱-رقابت زیاد :

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

۲- عدم اطمینان از قطعی بودن پروژه:

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

۳- عدم اطمینان از انجام کار:

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

روش دوم: شبکه های اجتماعی

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

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

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

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

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

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

روش سوم: برند سازی شخصی

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

در این مورد چون کارفرما شما رو پیدا کرده به راحتی با شرایط شما کنار میاد و دوست داره تا شما بیاید و اون پروژه رو انجام بدین

روش چهارم: معرفی توسط دیگران

به جرعت می تونم بگم این روش بهترین روش برای انجام پروژه است  در این روش شما توسط فرد دیگری که با شما آشنای داره و احتمالا قبلا برای او کاری رو انجام دادین به کارفرمای جدید معرفی می شوید

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

این روش می تونه یکی از بهترین روش های کسب درامد و انجام پروژه باشه به شرطی که سابقه خوبی پیش افراد داشته باشین و اونو خراب نکنید

شما هم اگر تجربه مشابهی دارین یا روش های دیگه رو می شناسین به ما معرفی کنید

https://mrasgari.ir/%da%86%d9%87-%d8%ac%d9%88%d8%b1%db%8c-%d9%be%d8%b1%d9%88%da%98%d9%87-%d9%81%d8%b1%db%8c%d9%84%d9%86%d8%b3%d8%b1%db%8c-%d8%a8%da%af%db%8c%d8%b1%db%8c%d9%85%d8%9f-%d9%82%d8%b3%d9%85%d8%aa-%d8%af%d9%88/

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

گردآوری توسط ایده طلایی

چه جوری پروژه فریلنسری بگیریم؟ قسمت اول

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

خب ببینین بزارین فریلنسر رو تعریف کنیم اول فریلنسر به کسی می گن که یک پروژه (در هر زمینه ای ) رو قبول می کنه و برای کارفرما انجام میده ولی استخدام اون نیست و فقط تعهدش برای اون پروژه است ممکنه برای پروژه نیاز به حضور در محل باشه یا نباشه

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

مثلا شما می خواین خونتون رو تعمیر کنید برای تعمیر خونتون با شخصی قرار داد می بندید که طی زمان مشخصی بیاد خونه شما رو تعمیر کنه و مبلغ مشخصی رو بگیره و بره… خب ما اینجا قصدمون در صحبت درباره جذب پروژه تعمیرات منزل نیست قصدمون صحبت درباره پروژه های it هستش که از انجام کار شبکه بگیرین تا تولید نرم افزار و….

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

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

ولی خب برای شروع کار نیاز نیست که یه راننده خفن باشین فقط کافیه رانندگی رو بلد باشیم کار های it و بقیه کار ها هم همینطوره شما نیاز نیست که خیلی خفن باشید برای انجام اون کار ولی باید یکم تو اون کار تجربه داشته باشین و قبلا یه کارای انجام داده باشین

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

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

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

گردآوری توسط ایده طلایی

چرا مهندسی کامپیوتر و چرا نه؟!

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


این مطلب به درد چه کسانی میخوره؟!

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

اگر جز سه دسته بالا هستین، این مطلب ممکنه اطلاعات خوبی رو بهتون بده. اگرم نیستین بازم مطلب رو بخونین و نکات جدیدی رو بهش اضافه کنین تا شامل طیف وسیع‌تری از تجربیات بشه…

قبلش هم این نکته رو بگم که این مطلب صرفن نظرات و تجربیات شخصیم هستش و نه یک دستورالعمل ثابت برای همه افراد و البته کمی طولانی 🙂

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

همین کار رو هم کردم و ترم‌‌های اول و دوم معدلم بالای ۱۹ بودش اما نهایتن به این نتیجه رسیدم که این مسیری نیست که من همیشه دنبالش بودم. از صبح برم دانشگاه بعد بشینم تمرین‌هارو انجام بدم و خودم رو برای امتحانا آماده کنم و روزی حداقل یکی دوساعت وقت بزارم روشون. من دنبال خلق ایده‌هام بودم، یک چیزی تولید کنم، بتونم یک ابزاری بسازم برای رفع نیاز مردم، اما این مسیر هیچ شباهتی بهش نداشت.

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

دانشگاه بدی هم نبودم، بین دانشگاه‌های غیرانتفایی توی ایران رتبه اول رو داره و هر سال پنج شش تا رتبه تک‌رقمی تو ارشد، اما محیط‌های آکادمیک دانشگاهی ما خاصیتشون اینه که جوری شما رو هدایت میکنن که از شما یک استاد دیگه بسازن تا توی یک دانشگاه دیگه درس بدین! روال همینه. یعنی اگر بخواین توی این سیستم به شما فرد موفق بگن باید مباحث عمومن قدیمی علوم کامپیوتر رو به شکل کاملن تئوری مسلط بشین و نمره بیست بگیرین. در بهترین حالت این از شما یک فرد مسلط به دانسته‌های از رده خارجی میکنه که با قطعیت بیش از ۹۰ درصدشون توی دنیای واقعی کاربردی ندارن و یا ۳۰ سال پیش داشتند. اما به شما تبریک میگم، شما حل تمرین ترم بعد شدید!

از نظر من این یک سیر باطل هستش که اگر به خودتون نیاین و هدف مشخصی برای مسیرتون معین نکنید در نهایت مشابه خیلی از دوستانی میشین که در حال فارغ‌التحصیلی هستن، اما خب یک خط کد واسه پروژه پایان‌نامه‌شون نمیتونن بزنن و هیچی از دنیای مهندسی کامپیوتر نمیدونن و گیر کردن.

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

برای مسیر استاد دانشگاه و هیئت علمی شدن باید حواستون باشه که در حال حاضر دانشگاه‌ها دیگه برای پذیرشِ چیزی به عنوان عضو هیئت علمی ظرفیت ندارن و فقط اساتید حق‌التدریس با حقوق ساعتی میگیرن که در عمل باید تقریبن تمام طول هفته از هشت صبح تا هشت شب در انواع و اقسام دانشگاه‌های دولتی(با شرایط و رزومه خاص!)، غیرانتفایی و آزاد کلاس بردارین و با همه نوع قشر دانشجو سر و کله بزنین و همین مباحث منسوخ شده رو دوباره تدریس کنین تا در ماه چیزی حدود ۲ تا ۳ میلیون تومان درآمد داشته باشین. (در بهترین حالت که رزومه درسی شمارو اون دانشگاه قبول کنه و اجازه تدریس بده و اون تعداد واحد هم در طول ترم به شما داده بشه و البته اونم در سن ۲۶ سالگی برای آقایون که سربازی هم رفتن که بازم بهترین حالتِ سنش رو گفتم).

یک مورد خیلی کوتاه بگم که من دوستانی دارم که با ۱۸ سال سن درحال حاضر توی شرکت‌های مختلفی به صورت ریموت و نیمه‌وقت مشغول به کار(برنامه‌نویسی) هستن و ماهانه ۴میلیون تومان میگیرن(بدون احتساب  پروژه‌های فریلنسری).

برای مورد قبلیم که گفتم نمونه عینی این مثال، اعضای هیئت علمی دانشگاه خود ما هستن که با مدرک فوق‌لیسانس سال ۶۴ هنوز توی این پست هستند اون هم بدون انجام هیچ پروژه تحقیقاتی و یا ارائه مقاله جدیدی از خودشون. تنها دلیلشم داشتن سهام از دانشگاه هستش و رابطه! از طرف دیگه‌ای ما شخصی رو داریم که رتبه ۴ کنکور ارشد شده و بورس مقطع دکترا از شریف که درخواست تدریس داده و تنها یکی دو کد درس ۳واحدی به عنوان حق‌التدریسی بهش داده بودن 🙂

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

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

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

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

تا اینجا بیشتر در مورد کسانی حرف زدیم که در حال حاضر مشغول به تحصیل توی رشته مهندسی کامپیوتر هستن، از اینجا روی صحبتمون میره سمت کسانی که در حال انتخاب رشته هستند و از روی شنیده‌ها قصد دارن بیان کامپیوتر…

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

یکی از بزرگترین دلایل این قضیه بی‌مهارتی و بی‌تخصص بودن فارغ‌التحصیلان این رشته هستش. یعنی با جرئت میتونم بگم که از هر ۱۰ نفر فارغ‌التحصیل این رشته چیزی حدود ۷نفر هیچ تخصصی از هیچکدوم از شاخه‌های مهندسی کامپیوتر ندارن و فقط دروس رو پشت همدیگه پاس کردن و رسیدن به تهش… این اعدادی که گفتم یک آمار تجربی بود که شاهد این قضیه هم تعداد پیام‌هایی هستش که در آخر هر ترم برای زدن پروژه‌های درسی میگیرم و همینطور افرادی که دربه‌در برای زدن پروژه فارغ‌التحصیلیشون دنبال افراد مختلف هستند. (راستی قبل اینکه این تیپ پیام‌هارو بدین یک سری به اینجا (+) بزنین شاید پروژتونو پیدا کردین 🙂 )

بازار کار رشته مهندسی کامپیوتر به شدت به مهارت و تخصص شخص ارتباط داره و متاسفانه این مهارت هارو در هیچ درس دانشگاهی پیدا نمی‌کنید و به همین دلیل اگر کسی صرفن دروس این رشته رو پاس کرده باشه و امید به پیدا کردن کار مرتبط با رشتش داشته باشه، هیچوقت به نتیجه نمیرسه و بیکار میمونه و یا مشغول به یک کار بی‌ربط میشه و تمام اون ۴ سال از عمرش رو بیهوده هدر داده!

نکته جالبی که میخوام بگم اینه که شاید رشته مهندسی‌کامپیوتر و به‌ویژه برنامه‌نویسی بیشترین آمار جذب نیرو با حقوق‌ و مزایای بسیار مناسب رو داره که برای اثبات این حرف میتونین سری به اینجا(+) بزنین و آگهی‌های استخدام برنامه‌نویس در شرکت‌های مختلف رو ببینید. اما مشکلی که این شرکت‌ها دارن نبود نیروی متخصص و فنی هستش. بعضی از این آگهی‌ها برای مدت ۶ماه تا یکسال در این سایت هستند و هنوز شخص مناسب که مهارت‌های مرتبط با اون موقعیت شغلی داشته باشه رو پیدا نکردن.

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

توی ذهنتون اگر به شبکه، انیمیشن، گرافیک، امنیت و هک، برنامه‌نویسی وب و موبایل فکر میکنید و دنبال این موارد توی رشته کامپیوتر هستید باز هم در اشتباهید… چون هیچکدوم از موارد بالا رو توی دانشگاه به شما آموزش نخواهند داد.

همینطور اگر دنبال یادگیری کارهای روزمره مثل کار با آفیس، فوتوشاپ و این چیزا هستید دوره‌های ICDL بیشتر از رشته دانشگاهی کامپیوتر به‌دردتون میخوره و البته اگر حوصله یادگیری مفاهیم جدید و سخت رو ندارین هم سمت این حوزه نیاین…

تمام موارد بالا رو گفتم تا درک بهتری از فضای این رشته، آیندش و بازار کارش ارائه داده باشم و در نهایت تصمیم‌گیری و انتخاب مسیر با خود شماست.

این رو هم بدونید که برای رسیدن به موفقیت به اندازه تمام انسان‌های روی کره‌زمین راه وجود داره و هیچ دستورالعمل مشخص و تضمینی برای موفقیت وجود نداره.

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

اگر هم تجربیات مشابه و یا متضاد مطالب گفته شده رو دارید، خیلی خوشحال میشم تا نظرات شما رو هم بشنوم و چیزای بیشتری یادبگیرم…

با آرزوی موفقیت برای هممون 🙂

نوشته چرا مهندسی کامپیوتر و چرا نه؟! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

آموزش PHP

برای شروع یادگیری برنامه نویسی PHP پیش نیازهایی هست:

آشنایی با مفاهیم اساسی وب مانند هاست، سرور، دامین، DNS و…

تسلط بر HTML

آشنایی بر اصول کلی برنامه نویسی

آشنایی با بانک های اطلاعاتی (MySQL می تواند کافی باشد)

آشنایی با جاوا اسکریپت (مفید است)

آشنایی با HTML5 و طراحی ریسپانسیو (مفید است)

توانایی اولیه در فتوشاپ

دوستی با گوگل!

اگر این پیش نیازها را تا حدی می توانید تامین کنید، روزهای آینده منتظر پست های بعدی من باشید.

نوشته آموزش PHP اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

تجربیات جالب از مصاحبه های کاری

سلام و روز بخیر

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

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

قانون کار کلمه طلایی: نکته بسیار جالی که من دیدم و باعث تاسف هست اینه که یک سری مدیران هستند که اصلا به تخصص شما کار ندارند. یعنی مهم نیست براشون چی بلد هستید، چه کارهایی کردید، چه رزومه ای دارید، چند سال سابقه کار دارید، هیچی مهم نیست. هر کس بشینه جلوشون پیشنهادشون ثابت هست. و خیلی غیر حرفه‌ای میگن ما به همه همین پیشنهاد رو میدیم به شما هم همین رو میگم. من نمیخوام بگم اینجا فرد متخصصی هستم و … به من کم گفتن 🙂  من میخوام بگم این شیوه حقوق پیشنهادی زشت و بسیار غیر حرفه‌ای هست. باید مدیر محترم یک شیوه درخواست حقوقی بدست بیاره مثلا بگه این زبان رو بلد بود ۲۰۰ هزار تومان، اون یکی رو بلد بود ۳۰۰ هزار تومان، Git بلد بود هیچی اضافه نمیشه (این رو باید همه بلد باشن) و اگر کسی جلوشون نشسته بود که با توجه به تخصص حقوق شون زیاد تر از توان شرکت میشد اون وقت فقط کافیه بگن ببخشید حقوق تخصصی شما بیشتر از توان پرداخت شرکت در حال حاضر هست و ما نمیتونیم با هم همکاری کنیم.

دوره تست: اینم بسیار دیده شده. بعضی دوستان هستن اگه Richard Stallman رو هم بخوان جذب کنند ازش درخواست دوره همکاری تستی میکنند. حالا این مشکلی نیست زیاد، قابل قبول هست اما فرض کنید همین Richard خودمون 😀 بهش پیشنهاد بدن با حقوق ماهیانه ۳۰۰ هزار تومان بیاد و دوره تست رو بگذرونه جدی میگم بعضی ها همین قدر رو دارن. من اگه باشم به خودم اجازه نمیدم همچین حرفی بزنم. نهایتش اینه میگم جناب آقای ریچارد خان بیایید سر یک مبلغی کمتر از مبلغ واقعی مناسب تخصص شما به توافق برسیم. بعد اگر بعد از مثلا دو ماه هر دو طرف نسبت به همکاری تمایل داشتند برای ادامه کار مذاکره میکنیم. نه اینکه به ریچارد بگین ما ۳۰۰ تومن میدیم دو ماه اینجا کار میکنید اگه ما تشخیص دادیم شما بدرد ما میخورید یک قرارداد یک ساله می‌نویسیم.

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

آدم متخصص باید زمینه کاریش مشخص  باشه، محدود باشه، عمیق باشه، صاحب نظر باشه. مثلا  آدم‌هایی هستن که تخصصشون فقط HTML, CSS هست و کلی از این راه پول درمیارن و کلی شهرت بین‌المللی دارن. بعضی آگهی‌که کلا مغزم رو منفجر میکنن طرف زده بود مدیر پروژه دارای مهارت کامل در برنامه نویسی Android, IOS و همیچنین مهارت در برنامه نویسی وب و زبان های Python و C# باشد. آشنایی کامل به مباحث مدیریت پروژه، مهندسی معکوس، تکنیک های یادگیری ماشین، مدیریت سرورهای لینوکس، تجربه کار با سایت‌های پربازدید، آشنا به مباحث بازاریابی نوین، دارای حداقل مدرک کاشناسی ارشد، تسلط کامل به زبان انگلیسی و آشنایی به زبان فرانسه، حداقل ۵ سال سابقه کار مرتبط، بعد حقوق پیشنهادیشون هم ماهیانه ۲ میلیون تومان هست با ساعت کاری ۱۰ ساعت در روز. دیدم که میگم.

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

  • اطلاعات فردی: نام و نام‌خانوادگی، شماره ملی، شماره شناسنامه، شماره تلفن همراه، گروه خونی خود و همسر، آدرس منزل، تلفن منزل، کروکی منزل، آیا مالک هستید؟، پایان خدمت، نام نام‌خانوادگی پدر و مادر، صادره از کجا؟، شهر تولد پدر و مادر، تحصیلات پدر و مادر نام رشته و مقطع تحصیلی، شماره ملی پدر و مادر، تعداد برادران و خواهران، سن همه اونها به همراه تحصیلات، میزان درآمد پدر، نام ونام‌خانوادگی همسر، شماره تلفن همسر، تحصیلات همسر، آدرس منزل همسر و …
  • سوابق تحصیلی: همه مقاطع تحصیلی از ابتدایی تا انتها، معدل هر مقطع، نام، تلفن و آدرس مدرسه و دانشگاه، نام تعدادی از اساتید، نام تعدادی از همکلاسان
  • سوابق کاری: چه شرکت هایی کار کردید، چند سال؟، با چه میزان حقوق، روی چی کار میکردید، چرا از اونجا اومدید بیرون؟، تلفن و آدرس اون شرکت ها، نام مدیر شرکت.
  • لیست مقالات و پروژه های کاری
  • آیا با شرکت ما آشنا هستید؟ بعدش هم یک فرم چند صفحه ای شامل یک نظر سنجی برای شرکت و بخش های مربوطه و پیشنهاد شما برای بهتر شدن شرکت و ….
  • حقوق پیشنهادی: اینم جالب هست. خدمتتون بگم که هدف از این قسمت در نظر بسیاری از دوستان این هست که شاید شما یک رقمی بنویسید که از حقوق پیشنهادی اونها کمتر باشه و خیلی ها بعد از دیدن تعداد صفر ها چشم هاشون گرد میشه میگن قوانین کار در شرکت ما رعایت میشه که بطور ضمنی یعنی حقوق قانون کار میدیم و اصلا حتی برای یک لحظه هم فکر نمیکنن که این طرفی که این رقم رو مینویسه آیا عادلانه حساب کرده یا نه؟ آیا ممکنه حقش همین قدر باشه؟ ایا ممکنه تخصصش اینقدر ارزش داشته باشه؟ آیا میتونه اینقدر ارزش افزوده تولید کنه?

یعنی روشون نمیشه وگرنه میگفتن رنگ چشم و رنگ مو و قد و وزن و اینها رو میخواستن. کلا به نظرم درخواست بعضی از این اطلاعات که تجاوز به حریم خصوصی حساب میشه. تازه توجه داشته باشین همه اینها فقط و فقط قبل از مصاحبه شغلی هست. یعنی شما بعد از پر کردن این اطلاعات و یک ساعت منتظر ماندن میرین برای مصاحبه و بعد از ۳۰ ثانیه متوجه میشین که نه امکان همکاری نیست. خوب یکی نیست بگه خوب همکار عزیز کمی فکر کن و کمی احترام بزار و کمی توجه کن.

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

نمونه خوب: اون وقت یک نفری از یک شرکت آمریکایی کوچک سر کاری قرار شد باهم صحبت کنیم. در جلسه اول مصاحبه فقط دو تا مثال داد که کار الگوریتمی بود و گفت شما چطوری حل میکنی این مسایل رو. خودش هم مقداری کمک کرد و گفت میدونم اینها نیاز به فکر داره. زیاد سخت نگیر و فقط سعی کن هر چی به ذهنت میرسه بگی. نپرسید کی هستی؟ کجا هستی؟ پدر و مادرت کین؟ حتی نپرسید چه زبانی بلدی؟ فقط رزومه ام رو خونده بود. چند تا سوال خیلی ساده راجع علایق و سلایق. و بدون اینکه از من چیزی بپرسه گفت ما حقوقی که برای این سمت شغلی در نظر گرفتیم A تومان هست. (نگین باید دلار میگفته، کار از راه دور بود و طرف هم ایرانی بود). آیا برای شما کافی هست؟ و بعدش هم کلی عذر خواهی که ببخشید وقت شما رو گرفتم. کلا ۱۵ دقیقه وقت گذاشتیم. در آخر هم فقط اطلاع داد که روند پذیرش ما بعد از دو مصاحبه هست و یک ماه فرآیند قرارداد طول میکشه. اگر پیشنهاد دیگری رو در این مدت پذیرفتید حتما به ما خبر بدید.و خداحافظ. اینها هم حتما موقع قرارداد کلی اطلاعات از نیروشون میخوان اما نمیاد در جلسه اول تخلیه اطلاعاتی کنن طرف رو.

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

به امید روزهای بهتر.

منتشر شد در وبلاگ شخصی مهدی باقری

نوشته تجربیات جالب از مصاحبه های کاری اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

برنامه نویس وب شدن(فرانت اند)

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

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

فرانت اند و بک اند.

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

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

اول کار هم باید برنامه نویس فرانت اند شید!

حالا واسه برنامه نویس فرانت اند شدن چیا باید یاد بگیرید و بلد باشید؟

چیزی که خیلی واضحه، همه چی تو وب با سه تکنولوژیه HTML, CSS و JavaScript کار میکنه. پس بریم سراغه تکنیک های مورد نیازشون:

  • یادگیری پایه ای HTML و CSS
  • یادگیری کانسپتی به نام Semantic HTML
  • یادگیری CSS Box Model
  • یادگیری CSS Preprecessors
  • یادگیری CSS Media Queries
  • یادگیری Bootstrap
  • یادگیری SASS و LESS
  • یادگیری پایه ای JavaScript
  • یادگیری کار با DOM, JSON و AJAX
  • یادگیری مهم ترین ویژگی های JS مانند: functional composition, prototypical inheritance, closures, event delegation, scope و higher-order functions
  • کار با promises و callbacks در جاوا اسکریپت
  • یادگیری درست کردن ساختار کدتون، چیزایی مثه webpack و gulp.js
  • یادگیری جدیدترین و بهترین فریمورک های فرانت اند مانند: React.js, Angular.js و Vue.js
  • یادگیری jQuery
  • یادگیری ویژگی های ES6

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

خیلی سخت بود نوشتن فارسیه این متن، چون تمام اصطلاحات مربوط به اینا همش انگلیسیه و شمام سعی نکنید فارسی گوگلشون کنید.

ببخشید اگه واضح نیستن!

مرسی بابت وقتی که گذاشتین ❤️

اگه کسی سوالی داشت و تو گوگل کردن به انگلیسی مشکل داشت، میتونه بهم ایمیل بزنه و من حتما جوابشو میدم. اینم آدرس ایمیلم : yripila@gmail.com

نوشته برنامه نویس وب شدن(فرانت اند) اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

مشکل در یادگیری برنامه نویسی

یادگیری برنامه نویسی در ابتدا کمی گنگ به نظر میرسه طوری که مخاطب فکر میکنه برنامه نویسی رو متوجه نمی شه در صورتی که اینطور نیست همه میتونن با هر ضریب هوشی برنامه نویس بشن در واقع این باور غلطیه که خودتون به خودتون میدید و فکر میکنید هیچی یاد نمیگیرید.

در ادامه کار به نکته هایی اشاره میکنم که امیدوارم مورد استفاده قرار بگیره.

۱- هیچ کسی یک شبه برنامه نویس نشده

برنامه چیزی نیست که با سر هم کردن چندین ماژول پیاده سازی بشه و برنامه نویس شدن کار یه شبه نیست شما نیاز دارید یه فرآیند آموزش تقریبا طولانی مدت رو پشت سر بگذارید پس آرامش خودتون رو حفظ کنید و صبور باشید.

تنبلی نه تنها در برنامه نویسی بلکه در هیچ کاری شما را موفق نمیکنه سعی کنید روزانه حداقل ۳ ساعت تمرین و مطالعه داشته باشین.

۲- کپی نکنید منطق را یاد بگیرید

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

۴- کد های مرتبی داشته باشید

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

۵- مسیر خود را درست انتخاب کنید

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

۶- سورس بخوانید!

سورس برنامه هایی که توسط دیگران نوشته شده که در اینترنت بسیارند رو تهیه کنید و مطالعه کنید این کار به شما کمک میکنه تا ساختار برنامه ها رو بهتر بشناسید و بفهمید مثلا متغیر در برنامه واقعی چه کاربردی داره!

۷- به حرف های کذب دیگران گوش ندهید

دلسرد کردن یه نفر از کاری که داره میکنه خیلی بده ، که ما ایرانیا استادیم!

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

  • آموزش و فروش فیلم های آموزش
  • برنامه نویسی در شرکت ها و ادارات
  • نوشتن برنامه و کسب درآمد

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

نوشته مشکل در یادگیری برنامه نویسی اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی