DevTwitter | توییت برنامه نویسی

#بدرد
Канал
Логотип телеграм канала DevTwitter | توییت برنامه نویسی
@DevTwitterПродвигать
15,71 тыс.
подписчиков
2,49 тыс.
фото
153
видео
2,15 тыс.
ссылок
توییت های برنامه نویسی و طراحی وب :) @dvtwi هشتگ های کانال: devtwitter.t.center/5 DevBooks Channel: https://t.me/+AYbOl75CLNYxY2U0
#بدرد

اون روزهایی که تازه داشتم React یاد میگرفتم خیلی سر درگم بودم و دنبال منابع خوب میگشتم!
به مرور از جاهای مختلف به یک سری newsletterهای مشتی دسترسی پیدا کردم و الان هر هفته کلی مقاله جذاب و جدید به دستم میرسه که باعث پیشرفت سریعترم میشن.
حالا که دارم Vue.js رو یاد میگیرم، میخوام این گنجینه رو به شما انتقال بدم. یه عالمه نیوزلتر خوب که مطمئنم بهتون کمک میکنه. میتونید برید موضوع هر newsletter رو ببینید و هرکدوم رو که دوست داشتید subscribe کنین.
بعضی از newsletterهای جذابی که دارم:

React Digest:
یه گنجینه‌ی واقعی از مقالات
https://reactdigest.net/

Kent C. Dodds:
این آقا یه نابغه است و بلاگش پر از نکات کاربردیه.
https://kentcdodds.com/blog

This Week in React:
هر هفته خلاصهای از مهمترین اخبار React رو براتون میفرسته.
https://thisweekinreact.com/

Large Apps:
برای ساختن اپلیکیشنهای بزرگ، این newsletter عالیه.
https://largeapps.substack.com/

The T-Shaped Dev:
اگه میخواید توسعهدهندهی همه کاره بشید، این newsletter رو از دست ندید.
https://thetshaped.dev/

Daily.dev:
یه پلتفرم جامع برای developerهاست که هر روز مقالههای جدید داره.
https://app.daily.dev/

Craft Better Software:
برای اونایی که به تست نویسی علاقه دارن، این newsletter فوقالعادست.
https://craftbettersoftware.com/

Cassidoo:
یه newsletter فان و خنده‌دار با کلی نکتهی کاربردی.
https://cassidoo.co/newsletter/

System Design:
اگه به معماری سیستم علاقهمندید، این newsletter براتون جذابه.
https://newsletter.systemdesign.one/

The Hustling Engineer:
برای مهندسهایی که میخوان حرفه خودشون رو ارتقا بدن.
https://thehustlingengineer.substack.com/

@DevTwitter | <Reihaneh Sadat Shokouhi/>
#بدرد

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

https://github.com/jwasham/coding-interview-university

@DevTwitter | <DaDelphia/>
#بدرد

نظریه‌ی نامحبوب:

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

چیزی که به شما نمیگن، یادگیری از طریق کسب تجربست.

@DevTwitter | <Sabber/>
#بدرد

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

خیلی چالش های دیگه ای دارید که اینجا میخوام راجع بهش کمی صحبت کنم

- درک پایه برنامه نویسی
قبل از اینکه شما بخواید در یک زبان یا فریم ورک توانایی های لازم رو کسب کنید نیازه که پایه های برنامه نویسیتون رو قوی کنید، درک کنید که سیستم چطور کار میکنه، تایپ ها چی هستن، مدیریت حافظه و منابع رو بفهمید


- پاس کردن پیشنیاز ها
خیلی ها به اشتباه قبل از اینکه پیش نیاز های یک ابزار یا فریم ورک رو پاس کنند سریعا توش شیرجه میزنن و همین باعث میشه که یجاها غرق بشن توی دریایی که اونو از قبل نشناختن.
شما برای اینکه بتونید از یک فریم ورک بدرستی استفاده کنید نیازه که در ابتدا برنامه نویسی و زبانی که اون فریم ورک باهاش نوشته شده و اصول رو درک کنید بعد ازش استفاده کنید.

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


- تسلط کامل به فریم ورک و زبان
اگر از زبان یا فریم ورک خاصی استفاده میکنید، خیلی منطقیه که در اولین مرحله کاملا به اون زبان یا فریم ورک و لایف سایکل و اکثر ویژگی هاش مسلط بشید.

حتی اگر نیاز شد برید کد های اون فریم رو مطالعه کنید و روش کانتریبیوت کنید.


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


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

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


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


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


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


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


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


- کد ریویو
شاید عجیب باشه ولی این هم خیلی مهمه!
شما باید از یه جایی به بعد کد هم تیمی هاتون رو ریویو کنید و فلو های CI/CD رو مدیریت کنید، پس این مفاهیم رو باید درک کنید.


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

چاره دیگه کورس ویدئویی نیست و باید بریم سمت کتابا تا نیازهامونو رفع کنیم.

@DevTwitter | <Reza/>
#بدرد

بعضی از دوستان من، از تلگرام به عنوان Backup Storage استفاده می کنند. ترجیح خودم استفاده از Telegram برای این جور موارد نیست ولی اگر شما هم برای پشتیبان‌گیری استفاده می کنید، نرم‌افزار Telegram Drive، دقیقا تلگرام را مانند گوگل Drive می کند.
https://github.com/divyam234/teldrive

@DevTwitter | <Vahid Nameni/>
#بدرد

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

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

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

1-  Zety
zety.com

2-  Hloom
hloom.com

3-  Indeed
indeed.com

4-  Jobscan
jobscan.co

5-  CVmaker
cvmaker.com

6-  VisualCV
visualcv.com

7-  EnhanCV
enhancv.com

8-  ResumUP
resumup.net

9-  Resumonk
resumonk.com

10-  Resume. Io
resume.io

11-  ResumeLab
resumelab.com

12-  KickResume
kickresume.com/en

13-  Novoresume
novoresume.com

14-  ResumeHelp
resumehelp.com

15-  Cake Resume
cakeresume.com/en

16-  Resume Nerd
resumenerd.com

17-  Resume-Now
resume-now.com

18-  Resume Genius
resumegenius.com

19-  GotResumeBuilder
gotresumebuilder.com

@DevTwitter | <Bahram/>
#بدرد

تمام یوتیوب رو (رایگان) با زیر نویس فارسی ببین.
دیگه وقت یادگیری بدون هیچ محدودیتی رسیده

ازونجایی که روزانه پیام های زیادی دریافت میکنم که در مورد هوش مصنوعی یا برنامه ای برای فارسی کردن ویدیوهای یوتیوب باشه، تصمیم گرفتم آموزشش بدم.
محصولی که قصد معرفی اون رو دارم نامش هست ejoy که اخیرا امکانات زیادتری هم بهش اضافه شده و به گفته خودشون، هوش مصنوعی هم به این محصول اضافه شده. Ejoy در واقع یه افزونه قابل نصب روی گوگل کروم شماست که بعد از نصب در زمان تماشای ویدیوهای یوتیوب تصویر یه قطره آب رو در تنظیمات ویدیو میبینید که میشه زبان فارسی رو هم انتخاب کرد و از اون لحظه ویدیوها با کمک هوش مصنوعی در لحظه زیرنویس فارسی میشه.
ازین لینک دریافت و فعال کنین
https://chrome.google.com/webstore/detail/ejoy-ai-dictionary/amfojhdiedpdnlijjbhjnhokbnohfdfb

@DevTwitter | <Bahram/>
#بدرد

10 ابزار خارق العاده از هوش‌مصنوعی برای استفاده در کارها و پروژه ها ( بخش اول )


1- Vidnoz AI
این هوش مصنوعی توسط شرکت Anthropic ساخته شده و میتونه مثل یک انسان، طبیعی صحبت کنه. این هوش مصنوعی توانایی درک زبان طبیعی، استنتاج و استدلال منطقی داره تا بتونه پاسخ مناسبی به سوالات و گفتگوهای انسانی بده. همینطور Vidnoz از الگوریتم‌های پیشرفته یادگیری ماشین استفاده میکنه تا بتونه دانش خودش رو گسترش بده. از کاربردهایی که به ذهنم میرسه میشه به:
استفاده به عنوان راهنما در سایت یا اپلیکیشن استفاده کرد. میشه کلیپ های کوتاه یک دقیقه ای باهاش به زبان های مختلف ساخت و تولید محتوا کرد. البته که فراموش نکنید این هوش مصنوعی هنوز در مراحل اولیه توسعه هستش و ممکنه تو برخی موارد نیاز به بهبود داشته باشه و در حال توسعه و رشد هست.
vidnoz.com

2- Eightify app

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

3- stockimg ai
این سایت هم یه سرویس هوش مصنوعی برای تولید تصاویر استاک است.
کاربرها میتونن با توصیف متنی، دستور تولید تصاویر مد نظر خودشون رو به این سایت بدن و این سایت با استفاده از الگوریتم‌های هوش مصنوعی و یادگیری ماشین، تصاویر تولید شده رو بر اساس درخواست کاربر نشان بده. stockimg کاربردهای زیادی تو طراحی گرافیک، تبلیغات، محتواسازی و ... میتونه داشته باشه. این رو هم بگم که کیفیت تصاویر تولید شده بسته به نوع اشتراکی که کاربر تهیه کرده متفاوته.

stockimg.ai

4- temp-mail
این وبسایت به موضوع حریم شخصی مربوط میشه و کمک میکنه تا ایمیل های اصلی شما کمتر دچار اسپم بشه. حتما این تجربه رو داشتین که با ثبت نام در سایت های مختلف با ایمیلتون به مرور دچار انواع ایمیل های اسپم بشید یا حتی نخواید که ایمیل اصلی خودتون رو دراختیار سایت ها بزارید. اینجاست که tempmail وارد عمل میشه و به شما یه ایمیل موقت برای ثبت نام میده.این آدرس ایمیل بعد از یک تایم مشخصی منقضی میشه و غیرفعال میشه و در کل کاربر میتونه از این ایمیل موقت برای ثبت نام تو سایت‌ها و سرویس‌های مختلف استفاده کنه بدون اینکه نیاز باشه اطلاعات شخصی یا ایمیل اصلی خودش رو وارد کنه. ایمیل‌های دریافتی به این آدرس موقت در همین وبسایت قابل مشاهده هستن و کاربر میتونه اونها رو مدیریت کنه. بنظرم این سرویس میتونه برای حفظ حریم خصوصی و امنیت کاربر مفید باشد.
temp-mail.org

5- Pixabay
این سرویس هم در واقع یه وبسایت بزرگ برای به اشتراک‌گذاری تصاویر، ویدیو و گرافیک رایگان و بدون حق امتیاز هستش. بنظرم این وبسایت منبع بسیار خوبی برای دریافت تصاویر و ویدیوهای با کیفیت بالا برای استفاده تو وبسایت‌ها، وبلاگ‌ها، شبکه‌های اجتماعی و پروژه‌های مختلف هست.
خبر خوب اینکه تمامی محتواهای Pixabay کاملا رایگان هستن و نیازی به پرداخت هزینه یا حق امتیاز برای استفاده از اونها نیست، پس با خیال راحت ازشون در پروژه هاتون استفاده کنین. Pixabay الان بیش از 1.5 میلیون تصویر، ویدیو و گرافیک در دسته‌بندی‌های مختلف داره که روزانه به حجم اونها داره اضافه میشه. اینم بگم که کیفیت عکس ها عالی هستن.
pixabay.com

@DevTwitter | <Bahram/>
#بدرد

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

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

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

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

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

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

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

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

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

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

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

‏و یه نکته دیگه ای هم که هست شما توی اکثر بوت کمپ ها و دوره های پولی یه منتور همراهتون دارید که بهتون کمک میکنه، دست شمارو میگیره و از شما آدم با تجربه تریه پس نتایج خیلی بهتریو معمولا تجربه میکنید.

ولی کدوم دوره رایگان همچین آپشنی رو به شما میده؟

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

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

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

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

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

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

‏و اینکه من نمیگم دوره رایگان نبینید، میگم گاردی نگیرید بابت هزینه کردن، بعضی جاها واقعا نیازه و نتایجش چه بخواید چه نخواید خیلی سریعتره و میتونید روی مسیر شغلیتون اینو حس کنید.

وگرنه خود منم اکثر دوره هایی که دیدم رایگان و از یوتیوب بودن.

@DevTwitter | <Reza/>
#بدرد
یکی از مهارتهایی که به عنوان برنامه نویس باید روش کار بشه توانایی حل مسئله است چند تا سایت پیدا کردم. که با زبان های مختلف می تونید مسئله ها رو حل کنید

kaggle.com
quera.org
codewars.com
codecademy.com
leetcode.com

@DevTwitter | <omid/>
#بدرد

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

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

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

حالا چه طور رزومه بنویسیم؟
- برند
اسم شما برند شماست! اولین مواردی که ذکر می‌کنید اسم و اطلاعات تماس باید باشه. توضیح یکی دو خطی کافیه و نه بیشتر!

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

هر مهارتی غیر مرتبط رو با شغل مورد علاقه‌تون رو حذف کنید. چون باعث سردرگمی می‌شه. حتی ممکنه باعث بشه مهارت‌های شما برای اون کار زیادتر از حد نیاز باشه. (Over qualified)

(من حتی با این که دنبال کار نیستم گاهی میرم آگهی‌ها رو میخونم تا از جریان صنعت و ترندهای روز خبر داشته باشم)

- تجربه کار حرفه‌ای

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

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

- تحصیلات و دوره‌های آموزشی
تحصیلات دانشگاهی با گرایش، دوره‌های آموزشی معتبری که گذروندید رو نام ببرید. باز هم تاکید میکنم به غیر از مدرک دانشگاهی دوره‌های غیر مرتبط رو لازم نیست ذکر کنید.
اگر برای کار اپلای می‌کنید و نه دانشگاه، رتبه کنکور، مانور رو دانشگاهی که درس خوندید تاثیر چندانی نداره.

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

- افتخارات
اگر جایی مقامی کسب کردید یا جایزه‌ای بردید ذکر کنید. همینطور که اگر ثبت اختراع دارید هم جاش همینجاست.

- علاقمندی‌ها
این نکته خیلی سرش بحثه که تو رزومه دکتر بشه یا نه. اما اگر با هوشمندی ذکر بشه تاثیر مثبت داره. مثلاً اگر توی یه ورزش خوب هستید و مدالی دارید خیلی روی خواننده تاثیر مثبت می‌ذاره.

- بایدها و نبایدها
لیست مهارت‌ها رو نمره و امتیاز ندید. مثلاً سی‌شارپ ۴/۵ هیچ معنایی رو منتقل نمی‌کنه. گاها تاثیر منفی هم داره!

عکس خودتون رو در صورتی تو رزومه بذارید که ظاهر تو کار تاثیر داره. من وارد جزییات نمی‌شم. اما خودتون میتونید تحقیق کنید و تصمیم بگیرید.

تعداد صفحات باید بین ١ (بهترین حالت) تا نهایت ٣ صفحه باشه. پس در کوتاه و موجز نویسی تلاش کنید.

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

فرمت رزومه pdf صفحه سفید و فونت مشکی استفاده کنید. تنها یک فونت استاندارد به کار ببرید.

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

درج سایت شخصی، پروفایل گیتهاب، آرت‌استیشن و غیره رو فراموش نکنید.

- نکته آخر
کم، گزیده و مفید بگید. خودتون باشید حتی اگر تمام این نکات رو نادیده بگیرید.

@DevTwitter | <Mohammad Iraji/>
#بدرد

رودمپ برای برنامه نویسی در Web3

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

1. Dapp developer
این نوع توسعه دهنده ها اپلیکشن هایی که دارن رو روی یه بلاکچین ران میکنن تا بقیه از اون استفاده کنن
‏و اکثر برنامه نویس هایی که در این حوزه فعال هستن dapp developer هستن.

2. Core developer
همونطور که از اسمش معلومه این دسته از توسعه دهنده ها هسته ی بلاکچین رو توسعه میدن، یعنی بلاکچین هایی مثل اتریوم و بیت کوین و ... رو توسعه میدن و مشخصا کار این دسته خیلی سخت تر از dapp developer ها هست.
(رودمپِ این پست برای dapp developer ها هست)


1. فاندامنتال بلاکچین
برای شروع، ما نیاز به شناخت فاندامتال بلاکچین و اینکه چطور کار میکنه داریم. این موضوع توی برنامه نویسی کمک خیلی زیادی به ما میکنه و دلیلش هم اینه که ما برای
پیاده سازی اپلیکیشن به یه سری کانسپت ها نیاز داریم.

2. بلاکچین اتریوم
هرچقدر اطلاعات ما در مورد بلاکچین اتریوم بیشتر باشه کار ما راحت تر میشه.
از اونجایی که اکثر بلاکچین های معروف EVM Compatible هستن ما میتونیم کدهایی که روی اتریوم اجرا کردیم رو روی اونها هم اجرا کنیم.

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

4. جاوااسکریپت
شما برای تست کردن قرارداد هوشمندتون نیاز به جاوااسکریپت دارین، البته با سالیدیتی هم میتونین تست بنویسید

‏5. ری‌اکت
ری‌اکت یه کتابخونه جاوااسکریپت هست که شما برای شروع به کار باید حداقل مباحث پایه اون رو بدونید.
(برای بازارکاری که در حال‌حاضر هست شما نیاز به دونستن جاوااسکریپت و ری‌اکت دارید اما در گذشته تایتل شغلی smart contract developer هم داشتیم ولی با پیشرفت برنامه نویس ها توی این حوضه کسانی که فقط smart contract بلد بودن از بازارکار کنار زده شدن)

6. هارد هَت - Hardhat
برای توسعه دادن ما به ابزارهایی مثل Hardhat نیاز داریم. Hardhat یه فریمورک برای توسعه فول‌استک برای اتریوم هست.

7. کتابخانه ethers.js یا web3.js
این کتابخونه ها برای وصل کردن اسمارت کانترکت به فرانت‌اند استفاده میشن که شما اگر فقط یکی از اونها رو بلد باشید کارتون راه میوفته.

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

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

@DevTwitter | <Soheilprs.eth/>
#بدرد

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

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

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

‏در حالت سوم، شما دانش و بینش عمیقی نسبت به یکایک اجزای یک الگوریتم یادگیری ماشین یا شبکه‌ی عصبی ژرف دارید، با ریاضیات و پایه‌های الگوریتمی آن به خوبی آشنا هستید، و علاوه بر «چیست» می‌توانید به سوال «چرا» پاسخ دهید:
مثلا چرا یک لایه‌ی Convolutional برای تصویر بهتر از یک لایه‌ی Fully Connected کار می‌کند، چرا Transformer ها نسبت به RNN عمل‌کرد بهتری در پردازش زبان‌های طبیعی دارند، یا چرا در یک Transformer از اتصال Residual استفاده می‌شود؟

در ادامه فرض می‌کنم قصد شما، حالت سوم است یعنی می‌خواهید دانش و بینش عمیقی نسبت به هوش مصنوعی داشته‌باشید و بتوانید آن را توسعه دهید.

برای این مسیر شما به یک «هرم یادگیری» نیاز دارید. به «حداقل» درس‌های لازم در این هرم اشاره می‌کنم؛ می‌توان برای فهم گسترده‌تر درس‌های دیگری افزود.

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

پس از تسلط به درس‌های قبل، آماده‌ی گذراندن درس‌های «یادگیری ماشین Machine Learning» و «یادگیری ژرف Deep Learning» خواهید بود. محتوای این درس‌ها بسته به ارائه‌کننده و سال ارائه متفاوت است. به طور کلی، الگوریتم‌های یادگیری ماشین در طول زمان تحول چشم‌گیری داشته‌اند: روش‌های کلاسیک نظیر SVM و PCA از چند دهه پیش مورد استفاده قرار می‌گرفتند؛ ولی در یک دهه‌ی اخیر معماری شبکه‌های عصبی ژرف (Deep Neural Networks) رشد حیرت‌انگیزی کرد و در اکثر مسائل، به خصوص زمانی که داده‌ی کافی وجود دارد، جایگزین روش‌های کلاسیک شد.

(بخش ۱ - بخش ۲)

@DevTwitter | <علی شریفی زارچی/>
خیلی #بدرد

با این دوره ها، DevOps و پردازش ابری رو یاد بگیرید + مدرک رایگان

Git
https://www.simplilearn.com/learn-git-basics-skillup

Linux
https://www.mygreatlearning.com/academy/learn-for-free/courses/linux-tutorial

DevOps
https://openclassrooms.com/en/courses/7853556-discover-the-devops-methodology

CI/CD
https://www.simplilearn.com/free-ci-cd-online-training-course-skillup

Docker
https://cognitiveclass.ai/courses/docker-essentials

Kubernetes
https://www.simplilearn.com/learn-kubernetes-basics-free-course-skillup

Cloud Computing
https://cognitiveclass.ai/courses/introduction-to-cloud

AWS
https://openclassrooms.com/en/courses/7864796-discover-cloud-with-amazon-web-services

Azure
https://www.mygreatlearning.com/academy/learn-for-free/courses/azure-course

GCP
https://www.simplilearn.com/learn-google-cloud-platform-fundamentals-free-course-skillup

Serverless
https://mygreatlearning.com/academy/learn-for-free/courses/serverless-computing

Jenkins
https://mygreatlearning.com/academy/learn-for-free/courses/jenkins-tutorial

Puppet
https://simplilearn.com/free-course-to-learn-puppet-basics-skillup

Chef
https://simplilearn.com/chef-in-devops-basics-free-course-skillup

Ansible
https://simplilearn.com/learn-ansible-basics-free-course-skillup

Selenium
https://mygreatlearning.com/academy/learn-for-free/courses/selenium-basics

GitHub
https://mygreatlearning.com/academy/learn-for-free/courses/github-tutorial-for-beginners

VirtualBox & vSphere
https://openclassrooms.com/courses/7163136-set-up-virtual-machines-using-virtualbox-and-vsphere

@DevTwitter
#بدرد

‏فقط ChatGPT تو کارها می‌تونه بهت کمک کنه و دیگه گزینه‌ای نیس؟ قطعا هست!
تو این توییت ۵ تا از AIهایی که استفاده ازشون توانایی‌مون رو خیلی بالاتر می‌بره رو بهت معرفی می‌کنم

Perplexity
برعکس ChatGPT از پرپلکسیتی هر چیزی رو می‌تونی بپرسی و تو سریع‌ترین زمان جواب بگیری؛ میشه گفت دیگه لازم نیست ۲ میلیون تومن برای ورژن پولی chatGPT هزینه کنی و این هوش مصنوعی مدل توسعه یافته‌تر جی‌پی‌تیه که سوال‌‌ها رو بدون در نظر گرفتن نوع‌کاربر، تو بالاترین سرعت ممکن پاسخ میده.

ChatPDF
شده یه فایل پی دی اف ۲۰۰ صفحه‌ای داشته باشی و توش فقط دنبال یک سطر باشی؟ اینجور مواقع بهتره فایل رو تو ChatPDF آپلود کنی و ازش سوالاتت رو بپرسی!
این هوش مصنوعی می‌تونه تو خلاصه‌سازی و آموزش بر اساس یک منبع مشخص خیلی کمک‌ کننده باشه.

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

Sheet+
این روزا برای بلد بودن چیزی لازم نیست تمام مطالب عمیق اون مبحث رو موشکافی کنید؛ شیت پلاس ساخته شده تا فرمول‌های پیچیده‌ی اکسل رو تو کمترین زمان براتون بنویسه و براتون جدول درست کنه.

Jenni AI
گرامرلی خیلی تو رایتینگ کمک کننده‌ست ولی قطعا نمی‌تونه مثل یه هوش مصنوعی متن ایده آلی رو بهت تحویل بده.
جنی مخصوص رایتینگ و بهبود محتواست.

@DevTwitter | <Shayan Rezapoor Nikroo/>
#بدرد

اگر دنبال سوالات مصاحبه با کیفیت و سطح بالا هستید این ریپو مال شماست

https://github.com/yangshun/tech-interview-handbook

@DevTwitter
#Wordpress #بدرد

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

حالا می‌خوام به راهکار بپردازم
۱- از نسخه اصلی افزونه‌ها استفاده کنید.
مارکت‌های داخلی به فرض تمیز بودن سورس اصلی خودشون افزونه رو کد می‌کنن. و مهمتر اینکه دسترسی به آپدیت منظم ندارید. برای آپدیت باید افزونه نصب کنید و بدتر تو باتلاق فرو می‌رید.
پس اگر کسب و کار یا سایتتون جدیه، تو این موضوع سهل انگاری نکنید.
اگر کردید شک نکنید یک روزی از همینجا صدمه می‌بینید.
۲- همه چیز رو آپدیت کنید. افزونه‌ها، پوسته‌ها و وردپرس همیشه باید به‌روز باشن.
۳- از سیستم‌های امنیتی وردپرس استفاده کنید. (اینجا بهش نمی‌پردازم.)
۴- تو انتخاب هاست، سرور و کانفیگ اون دقت کنید.
۵- موارد عمومی و تنظیماتی امنیت وردپرس رو رعایت کنید.
۶- همیشه بکاپ بگیرید. اینجوری دیگه هیچ وقت سایت وردپرسیتون به مشکل نمیخوره. اسم وردپرس هم خراب نمیشه :)))
امیدوارم کمکتون کنه این موارد. گزینه‌های زیادی میشه به لیست اضافه کرد که مطمئنا امنیت رو بالاتر می‌بره اما تا همینجا کفایت می‌کنه.

@DevTwitter | <Saeed Fard/>
#بدرد

من بعد از ۸-۹ سال کار تو حوزه برنامه نویسی تصمیم گرفتم عوارضی که برای من داشته رو اینجا لیست کنم

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

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

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

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

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

سر و کله زدن با مشتری که هیچ ایده ای از نحوه پیاده سازی فنی کار نداره و نیازهاش دائما در حال تغییره کار خیلی سختیه و نیاز به صبور بودن داره و صبور بودن هم کار خیلی راحتی نیست.

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

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

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

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

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

@DevTwitter | <Mehdi/>
#بدرد

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

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

پس کی باید برنامه نویسی یاد بگیریم؟

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

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

امیدوارم تونسته باشم منظورم رو برسونم

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

@DevTwitter
#بدرد

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

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

- Programming Language
خب در وهله اول شما باید با زبان های برنامه نویسی اشنا باشید و یکیشون رو خوب بلد باشید و بتونید باهاش برنامه نویسید، این که واضحه…

از سمتی مفاهیم کلی برنامه نویسی رو هم بلد باشید بدور از یک زبان، در واقع برنامه نویسی رو بلد باشید نه یک زبان برنامه نویسی رو

- Software development
یکی از کارهای یک مهندس نرم افزار، توسعه یک نرم افزاره که یک فلوی طولانی از تحلیل تا نگهداری یک پروژه هستش، که باید بعنوان مهندس نرم افزار مسلط باشید به این قضیه.

- Maintaining a project
نگهداری یک پروژه و برنامه ریزی برای نگهداری اون از بالا اوردن اون پروژه خیلی مهم تره، شما باید بتونید یک پروژه رو بعد از توسعه نگه‌داری کنید.

- Testing
بعنوان یک مهندس نرم افزار، شما باید بتونید نرم افزاری که نوشتید رو تست کنید که ببینید درست کار میکنه یا نه و edge case هاش رو هم در نظر بگیرید و حالت های خاص رو هم مورد تست قرار بدید.
و البته باید بدونید که تست نوشتن خودش یک trade off هستش و باید ارزشش رو بسنجید.

- Database
خب شما تقریبا توی اکثر پروژه هاتون با دیتابیس ها و داده ها سر و کار دارید، پس باید دیتابیس هارو بشناسید، بتونید باهاشون کار کنید و ازشون توی پروژه هاتون بدرستی و در بهینه ترین حالت کار کنید، پس دیتابیسو فراموش نکنید.

- Algorithm & Data structure
یکی از مهم ترین هارد اسکیل هایی که باید بدونید الگوریتم و ساختمان داده هستش، تفکر الگوریتمی به تحلیل های شما کمک میکنه و باعث میشه که efficient تر کد بزنید.

- Network
شما باید بدونید که سیستمی که دارید توسعه میدید چطور کار میکنه، و احتمالا چون اکثر پروژه هاتون روی یکسری شبکه دارن بالا میان، بهتره که نتورک رو بدونید تا بهتون کمک کنه در روند توسعه نرم افزار.

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

- Debugging
علاوه بر اینکه شما باید ابزارهای دیباگ رو بدونید، نیازه که فلوی دیباگ رو هم یاد بگیرید که چطور باید یک باگ رو پیدا کنید و چطور اون رو فیکس کنید، پیدا کردن بعضی باگ ها اونطور که فکر میکنید ساده نیستن و باید شما بتونید بدرستی اون هارو در سریعترین زمان ممکن پیدا کنید.

- Software architecture
اگه شما مهندس نرم افزار هستید، باید بدونید معماری نرم افزارتون به چه صورتی بهینه تر خواهد بود، پس شما تا حدودی باید معماری نرم افزار هم بلد باشید
بدونید که چطور قطعات نرم افزارتون کنار هم قرار میگیرن و با چه معماری ای اگه کنار هم کار کنن بازدهی بهتری دارن.
البته بازدهی بیشتر منظور روند توسعه پذیری نرم افزاره

- Programming best practices
شما یکسری پارادایم و یکسری بست پرکتیس هم نیازه بدونید که چطور بهتر برنامتون رو بنویسید، مثل یکسری قوانین بابت کلین کد، دیزاین پترن ها، Object Design،  SOLID و...
برای تقویت این اسکیل ها کتاب های زیادی هستن که میتونید مطالعه کنید

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

- Analyzing Tasks
احتمالا شما بعنوان مهندس نرم افزار هرروز دارید با یکسری تسک سر و کله میزنید، پس نیازه که بتونید این تسک هارو تحلیل کنید، اون هارو خرد کنید به قطعات کوچک تر و اون هارو حل کنید، پس اینکه بتونید تسک هارو هم آنالیز کنید یک اسکیل خیلی ضروری و مهمه.

- Technology choosing
اینکه بعنوان یک مهندس نرم افزار تکنولوژی های مختلف رو بشناسید و در شرایط مختلف بتونید تصمیم بگیرید که استفاده از چه تکنولوژی ای به پروژه کمک میکنه هم خیلی مهمه!

@DevTwitter | <Reza/>
Ещё