اگر دارید اپلای میکنید و بهتون تسک اساین شده در پروسه مصاحبه، نکات زیر رو در نظر بگیرید تا شاید درصدی احتمال آفر گرفتنتون بالاتر بره:
- حتما حتما تست بنویسید.
- کامیت های تمیز و خوبی بزنید.
- حداقلی ترین بست پرکتیس هارو رعایت کنید.
- برای پروژتون یک README تمیز و کامل بنویسید.
اینکه اینقد گارد دارید نسبت به بچه ها و شلوغ کردنشون رو نمیفهمم.
خود الدنگتون وقتی بچه بودید و میرفتید مهمونی مثل هوشنگ ابتهاج غزل میخوندید و یا بحث فلسفی میکردید؟
هیچوقت دومین مرحله مصاحبم با اسنپ رو فراموش نمیکنم، مصاحبه ای که فکر میکردم بیشتر تخریبه تا مصاحبه.
مصاحبه کننده با اینکه میدونست یه بچه ۱۷ ۱۸ ساله جونیور ممکنه خیلی چیزارو ندونه و حتی توی رزومش نیاورده شروع کرد لیست کردنشون و پرسیدنشون که اینم نمیدونی؟!
/
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک Software engineer یا مهندس نرمافزار هستید.
یک مهندس نرمافزار توی سال 2023 نیازه که حداقل یکسری ابزار هارو بلد باشه و بتونه باهاشون کار کنه، خب بیاید ببینیم چه ابزارهایی...
الان که دارید از جبر جغرافیایی میگید.
منم باید بگم که قدر تهران بودنتون رو بدونید، اکثر شرکت ها این روزا دیگه نیروی ریموت نمیگیرن، توی شهرستان شما امکان کارآموزی جای درستی رو ندارید و صدها موقعیت شغلی خوب رو بخاطر حضور نداشتن تو تهران از دست میدید.
برای پیدا کردن پوزیشن جدید به سایت های کاریابی مثل جابینجا دل نبندید، نتیجش اصلا قرار نیست شمارو راضی کنه.
توی دوماه اخیر برای حدود ۵۰ پوزیشن شغلی توی شرکت های مختلف اپلای کردم که نتیجش اصلا جالب نبود، فقط دو مصاحبه!
نصف شرکت ها حتی رزومه رو ندیدن/
اگه میخواید یه فیلد از برنامه نویسی رو یاد بگیرید، اشتباه مارو نکنید که 100 تا کورس دانلود کنید.
یه کورس خوب رو بگیرید و همونو پیش ببرید و در کنارش اگه نیاز بود یه کورس مثل دیتااستراکچر و الگوریتم هم ببینید.
بیاید بهتون بگم چرا.
در مسیر تبدیل شدن به یک مهندس نرمافزار یکی از راه هایی که خیلی میتونه شمارو کمک کنه و مسیر رو براتون شفاف تر کنه، شنیدن پادکست هایی از جنس تجربس.
من این پایین لیستی از چندین پادکست خوب در زمینه مهندسی نرم افزار رو اوردم که میتونید بررسی کنید/
بعنوان برنامه نویس شاید برای شماهم جذاب باشه که بدونید شرکتای بزرگ چطور نرم افزارهاشون رو تولید میکنن؟
با چالشایی مثل Scale, performance, availability و..چیکار میکنن و اصلا ساختار تیماشون به چه شکله؟
این ریپازیتوری منبع خوبیه بابت خوندن درخصوص این مسائل:
هیچ کامیونیتی ای مثل کامیونیتی برنامه نویس ها توی ایران هوای همو ندارن بنظرم.
هرچی بلدنو به اشتراک میزارن، دنبال حل مشکلات همدیگن، حالا این وسط دوتا شوخی هم با هم میکنن.
اگه برنامه نویسید میخواید یه پله به مهندس نرم افزار شدن نزدیک بشید و یا دانشتون رو ارتقا بدید، این چند روز تعطیلات عید تایم مناسبی برای یادگیریه.
و احتمالا یادگیری این مواردی که توی این توییت میگم میتونه بهتون کمک کنه.
یادگیری مبحث System Design میتونه دید خیلی خوبی رو بهتون بده نسبت به طراحی سیستم های نرم افزاری و کمکتون کنه در مسیر مهندس نرم افزار شدن.
اگه میخواید یادشون بگیرید، بیاید تا بریم یه سری منابع رو بررسی کنیم/
بعنوان کسی که الان ۳ ساله دانشجوعه و رتبشم بد نبوده خیلی، باید بگم اگه برگردم به سال کنکور بیشتر میخوندم که تهران قبول میشدم.
کی گفته دانشگاه بدرد مهندس نرم افزار نمیخوره؟
بخونید بچه ها و دانشگاه خوب قبول شید که خیلی تاثیر داره رو کارتون.
شما هرچقدر منابع در دسترستون بیشتر باشه، سرعت یادگیریتون به نسبت کاهش پیدا میکنه.
به شدت بهتون پیشنهاد میکنم که خودتون رو غرق در منابع زیاد برای یادگیری نکنید و بچسبید به منابع خوب با تعداد کم.
خصوصا توی حوزه تکنولوژی با این حجم از منابع.
اگه به تازگی دارید برنامه نویسی رو شروع میکنید و در پروسه یادگیری اید، انجام پروژه تمرینی تقریبا مهم ترین کاریه که میتونه به یادگیری شما کمک کنه.
و ممکنه بعضی وقتا ایده ای نداشته باشید برای پروژه تمرینی، که این ریپازیتوریا میتونن خیلی بهتون کمک کنن.
اگه شماهم مثل من یه برنامه نویس کنجکاوید و همیشه براتون سواله که ابزار هایی مثل گیت، داکر، دیتابیس ها و.. که همیشه دارید ازشون استفاده میکنید چطور ساخته شدن و چطور خودتون میتونید یکی ازونارو بسازید، این ریپازیتوری رو ببینید، بنظرم خیلی باحاله :)
من اول مصاحبه با صراحت اعلام کردم که مسائلی مثل devops رو خیلی تسلط ندارم،
نمیدونم فلو های CI/CD در عمل چطوری هستند، کوبر رو بلد نیستم و..
اما اولین سوال دقیقا شروعش از فلوی cd بود.
هدف فکر میکنم فهمیدن توانایی کنترل استرس من بود تا محک زدن دانشم.
بعنوان کسی که مدتیه دارم با شرکت های خارجی کار میکنم، باید بگم که چالش نقد کردن درآمد دلاری یکی از اصلی ترین چالش های این روزاس
یه راه حل جدیدی رو من پیدا کردم که دیگه نیاز نیست کارمزدهای بالا به صراف بدید و نهایتا کارمزدش ۸ - ۷ درصده و خیلی هم سریعه
#رشتو
یه ریپازیتوری باحال توی گیتهاب پیدا کردم که یکی از بچه های ایرانی آماده کرده.
نکات خیلی خوبی برای گرفتن جاب آفر از جمله رزومه نویسی، مصاحبه ، پروسه اپلای و... رو توش نوشته.
حتما چک کنید:
اینقد با دید بالا به پایین از من سوال پرسیده شد که کل اعتماد به نفسم از دست رفت همون اول.
کل پروسه رو شوکه بودم، اصلا جز اولین مصاحبه های زندگیم بود با سابقه کار خیلی کمتر از الان.
مصاحبه اولشون اصلا اینطور فضایی رو نداشت و همه چی روون و خوب پیش رفت.
بچه ها یکی از مواردی که میتونه توی پروسه یادگیری برنامه نویسی و نرم افزار بهتون کمک کنه استفاده از تجربه شرکت های بزرگ حوزه فناوریه.
من توی این ریپو لیست وبلاگ های فنی چنتا از شرکت های بزرگ ایرانی رو جمع اوری کردم که میتونید بررسیشون کنید:
اگه به تازگی دارید برنامه نویسی رو یاد میگیرید و رفتید سراغ یکسری پروژه های تمرینی که یادگیریتون بهتر شه.
اول از پروژه های کلیشه ای مثل TODO لیست و.. دست بکشید
بعدش بیاید یه سری نکات رو بهتون بگم که کمکتون کنه تا پروژه هایی رو انجام بدید که بیشتر به یادگیریتون کمک کنه/
برخلاف تصوری که اکثر برنامه نویس ها نسبت به ترجیح دادن کورس های رایگان به پولی دارن، باید این وسط من چنتا دلیل بیارم که همیشه هم نباید رایگان یاد بگیریم و یه وقتا باید هزینه کنیم تا نتیجه بهتری بگیریم.
حالا چرا؟
بیاید از آفت های دوره های رایگان بهتون بگم/
مصاحبه کننده سری دوم خیلی سر سوالات الگوریتمی، ابزارای مانیتورینگ و devops گیر بود و سوال داشت.
همون ریجکت شدن توی اون سن یه نقطه عطف شد که بشینم ساعت ها اون مصاحبه رو مرور کنم و بالا پایینش کنم تا بفهمم چیارو بلد نبودم و نقطه ضعفام چیا بوده.
بعد اون شروع کردم دسته بندی کردن چیزایی که خیلی روشون تاکید شده بود و بلدشون نبودم و بعدش ماه ها نشستم سر یادگیری مسائل الگوریتمی، دوآپسی، دیتابیس و.. تا نقطه ضعفامو پوشش بدم.
و بشدت راضیم
اون مصاحبهی پر استرس برای من یه نقطه مثبت توی مسیر شغلیم شد که بشینم و بیشتر یاد بگیرم
نتیجشم این شد که دوماه بعدش اولین مصاحبه ای که دادمو قبول شدم و بعدش هم مسیر پر هیجان تریو تجربه کردم :))
اینکه شما بعنوان یه جونیور یا میدلول بخواید به یک برنامه نویس سینیور تبدیل بشید، فقط نیاز نیست که اون فریم ورک یا زبانی رو که بلدید رو کامل یاد بگیرید.
خیلی چالش های دیگه ای دارید که اینجا میخوام راجع بهش کمی صحبت کنم/
من ی سایت جدید بالا آوردم که مخصوص پادکست های #برنامه_نویسی هستش و امیدوارم که بتونم ی قدم کوچیک توی این مسیر بردارم، شما هم میتونید بیاید توی سایت و پادکست خودتونو قرار بدید به راحتی.
لطفاً حمایت کنید با ریتوییت هاتون و نطراتتونو منشن کنید ❤️
پادکد :
اگه شماهم مثل من به مباحث سیستم دیزاین علاقه زیادی دارید و میخواید در خصوص مفاهمیمی مثل Caching, load balancing, databases و.. چیزای بیشتری یاد بگیرید، توی این ریپازیتوری یکسری منابع مثل مقاله و ویدئو قرار گرفته که میتونه به شما خیلی کمک کنه.
@iranux
شایان جان کار کردن با یه آدمی مثل شما برای دولوپرا علاوه بر اینکه جذاب نیست، بلکه پر از استرسه.
مشکل از بچه ها نیست، توی هر پروژه ای، بزرگ و کوچیک هزاران باگ ممکنه پیدا شه، مشکل از نحوه مدیریت شما بوده که وضعیت این شده.
هزینه بیشتر بکنید از نظر زمانی و خروجی بهتری بگیرید.
اگه دوست دارید که سیستم دیزاین رو با مثال های باحال از پروژه های مشابه Whatsapp, instagram و.. یاد بگیرید این سایت رو چک کنید.
البته فقط مباحث System Design رو کاور نکرده و مباحث دیگه ای هم توی سایتش پیدا میشه مثل ssh، الگوریتم و..
حقیقتا وقتی میبینم بعد حدود 1.5 سال یه پروژه همچنان داره دانلود و نصب میشه، توی کامیونیتی جهانی داره ازش استفاده میشه و من همچنان منشن میشم، لذت میبرم.
کاش برگردم به اون زمان و دوباره شروع کنم
برای مهندس نرمافزار بودن فقط برنامه نویس بودن و یا فقط یادگیری یکسری ابزار کفایت نمیکنه.
برای اینکه شما یک مهندس نرم افزار باشید راه طولانی ای رو پیشرو دارید و نیازه که یکسری توانایی فنی داشته باشید که باهم توی این توییت بررسیشون میکنیم
بریم سراغ این تکینکال اسکیل ها...
#رشتو
حالا چرا زبانی مثل JS نه؟
- تایپ ها که یکی از مهم ترین مباحث کامپیوتر هستند رو درک نمیکنید.
- ارور هندلینگ رو یاد نمیگیرید.
- نمیتونید زبان های دیگه رو بسرعت یاد بگیرید.
- درک درستی از معماری کامپیوتر، مموری و مدیریتشون پیدا نمیکنید.
و خیلی دلیل دیگه که با Js شروع نکنید.
هرکی ازم میپرسه برا شروع برنامه نویسی چی یاد بگیرم پیشنهادم بش «جاوااسکریپته» چرا؟
- سینتکس ساده
- نمودار یاد گیری اسون
- انعطاف پذیری
یعنی شما یاد میگیری یک کانسپتی رو که بعدها اگر بخوای وارد
فرانت، بک، موبایل و... بشی جی اس کاربردیه
اما زبان های سی رو این انعطاف رو ندارن
ازونجایی که من در طول روز با تعداد زیادی از ریپازیتوری های مفید توی گیتهاب برخورد میکنم
تصمیم گرفتم بصورت دسته بندی شده این ریپازیتوری های کاربردی رو توی ریپوی زیر قرار بدم:
شما با مشارکت توی اپن سورس میتونید فرصت های یادگیری بی شماری رو برای خودتون بوجود بیارید، در کامیونیتی خودتون شناخته تر بشید، خودتون رو به چالش بکشید و جاب آفر های خوبی رو بگیرید.
ولی چطور میشه توی اپن سورس مشارکت کرد؟
بیاید تا یکسری نکات رو بررسی کنیم.
دارم به اخرین ساعتای 18 سالگیم نزدیک میشم و 19 خیلی نزدیک شده بهم
18 سالگیم خیلی چالشی بود، پر از اتفاقای خوب و یه چنتایی هم بد...
توی این سال بیشتر از 25 تا مرج ریکوئستم روی لاراول مرج شد.
پروژه های اپن سورسم هزار استار رو رد کردند.
اگر شماهم علاقه دارید که درخصوص معماری نرم افزار یاد بگیرید.
این سایت اومده لیستی از بهترین منابع یادگیری معماری رو برای ما در زمینه های مرتبط با معماری لیست کرده.
منابع در قالب کتاب، مقاله، ویدئو و.. اورده شدن.
باید بگم که از این ۵۰ اپلای فقط دو شرکت از طریق جابینجا با من وارد مصاحبه شدند، چندین شرکت استیت رو به مصاحبه تغییر دادند اما حتی برای هماهنگی تماس هم نگرفتند!
چندین شرکت رزومم رو رد کردند اما بعضی از اون ها از قبل با من از طریق دیگه ای وارد مصاحبه شده بودند :))
- پس چاره چیه؟
از کانکشن هایی که دارید استفاده کنید، اکثر مصاحبه های من از طریق کانکشن هایی که تو لینکدین و توییتر داشتم انجام شدند
- کانکشن ندارم!
خب کانکشن بسازید!
خودتون پیام بدید به شرکت هایی که حس میکنید به شما نیاز دار��د توی تیمشون.
حالا نمیدونم دلیل اینقد هیت دادن نسبت به PHP چیه ولی خب من با کمک PHP خیلی بیشتر از خرجم دراوردم، توی 16 17 سالگی تقریبا بهترین گوشی و لپتاپ بازارو گرفتم، 19 سالگی ماشینمو گرفتم، الانم تو 20 سالگی به فکر اپگریدشونم.
- IDE | Editor
یک مهندس نرمافزار احتمالا بیشترین تایمش رو بابت کد زدن بگذرونه، پس نیازه که محیطی که توش کد میزنه رو خوب بشناسه.
پس اولین ابزار یک IDE یا ادیتور مناسبه که اون رو خوب بشناسه و بهش مسلط باشه تا با سرعت مناسبی بتونه پروسه کد زدن رو پیش ببره.
ما چقدر از صنعت تکنولوژی بخاطر تحریما عقب افتادیم!
توی این شرکت خارجی که تازگی جوین شدم دارن تقریبا اکثر کارای پروداکشن رو با سرویسای aws انجام میدن و چقدر همه چی خوب، سریع و روونه.
- Version control systems
برای مدیریت و توسعه سورس های کد نوشته شده و اشتراک گذاری و توسعه توسط بقیه برنامه نویس ها شما حتما حتما باید یک ورژن کنترل مثل گیت رو خوب بلد باشید تا بتونید در روند توسعه سریع و چابک باشید.
یه راه دیگه هم اینه که از آگهی های این شرکت ها توی پلتفرم های کاریابی استفاده کنید اما بجای اپلای اونجا، به HR اون شرکت مستقیم پیام بدید یا اگر دوستی دارید بهش بگید که شمارو ریفر کنه، اینطور شانس مصاحبه گرفتنتون خیلی بالاتر میره.
حتی با یکی از شرکت ها من وارد دوره آزمایشی هم شده بودم که بدلیل عدم دانش کافی رزومم رو رد کردند، دقت کنید من ۳ مرحله مصاحبشون رو پاس کردم و یکماه قرار داد بستم :)))
احتمالا تا الان از پادکد شنیدید، پادکد جاییه که برنامه نویسا میتونن پادکست گوش بدن و حتی پادکست های خودشون رو ضبط و به اشتراک بزارن.
اگه حس میکنید میتونید توی روند توسعه و یا تولید محتوا توی پادکد کمک کنید به من اطلاع بدید که در این مسیر باهم باشیم :)
- تسلط کامل داشته باشید به کل پروژه و خوب (درواقع عالی) پرزنت کنید.
- معماری مناسبی انتخاب کنید برای پروژه و حتما دلیلی برای انتخابش داشته باشید.
- اگر پروژه خیلی کوچیکه نیاز به کارای عجیب غریب نیست، اونو ساده ولی تمیز نگه دارید.
استاد برنامه نویسی پیشرفته مون گفت تو ۳ ماه چیزایی بهتون یاد میدم که یه سر و گردن از بقیه برنامه نویسا بالاتر باشید و اماده مهاجرت بشید.
من :)))))) جاوا :)))))) دانشگاه :)))))) مهاجرت :)))))))
بچه ها لطفا برای کارتون ارزش قائل باشید.
یکی از این ریکروترای ایرانی برای یه شرکت امریکایی برای سینیور PHP به من مسیج داده، میگه 800 تا 1.500 دلار در ماه، میگم این حقوق 4 برابرشم کافی نیس برای سینیور بک اند
میگه تو ایران همینم نمیدن!!