21 مهارت که یک برنامهنویس به اونها احتیاج داره

اکنون که ما تصمیم گرفته ایم به دنیای بی انتها و لذت بخش برنامهنویسی قدم بگذاریم، مجبوریم تا در کنار اصول و مفاهیم برنامهنویسی به علوم و مهارت جانبی که به حرفه ما کمک میکنند نیز نیم نگاهی داشته باشیم.
مهارتهایی که باید در کسب آنها بکوشید، بستگی به علایق، تواناییها و استعداد شما و همچنین اهداف شغلی و منابع موجود دارد. اما با وجود نامشخص بودن وضعیت اقتصادی پیش رو، دستیابی به مهارت هایی که برای پیشرفت و آینده شغلی شما مفید خواهد بود، بسیار حیاتی است.
در حقیقت در کنار فراگیری اصول برنامهنویسی، ما میبایست تفکری انتقادی یا اصطلاحاً Critical Thinking و تفکر منطقی یا Logical Thinking داشته باشیم، کمی با ریاضیات آشنایی داشته باشیم، معانی رنگها و نحوه به کارگیری رنگ در اپلیکیشن یا نرمافزار را بدانیم و …
دستهبندی کلی از انواع شخصیتهای برنامه نویسان
برنامهنویسها افرادِ بسیار خلاقی هستند. بخش مثبتی از زندگی شغلی ما این بوده که همیشه فرصت همکاری با برنامهنویسها و کنجکاوی درباره کارشان را داشتهایم: چه شد که؟ چرا؟ چه وقت؟ چگونه؟
اما پیش از مشاهده این دستهبندی، اجازه بدهید به برخی ویژگیهای عمومیتر برنامه نویسها اشاره کنیم که در محیط کار دیدهایم:
- تفکر تحلیلی (Analytical Mindset)
- کنجکاوی و پیگیری (Curiosity and Inquisitiveness)
- همدلی (Empathy)
- انعطاف پذیری (Flexibility)
- عشق به یادگیری (Love of Learning)
- عملگرایی (Pragmatism)
- کار تیمی (Team Player)
- تفکر فنی (Technical Mindset)
خوب حالا که نگاهی بیندازیم به دستهبندی های مختلف برنامهنویسها :
- کمالگرا (The Perfectionist): این دسته از برنامهنویسها سروقت میان، کارهاشون رو انجام میدن و سروقت میرن. باگهای زیادی رو فیکس میکنن، تسکهای زیادی انجام میدن و هیچوقت در ددلاینها تاخیر ندارن!
- همه فن حریف و با استعداد (The Street Smart Freak): این مدل توسعهدهندهها بیشتر چیزهای مورد نیازشان رو از وب کپی پیست میکنن؛ حتی اگر سازوکار همه چیز رو ندونن، در نهایت باز هم خیلی خوب همه چیز رو سر هم میکنن!
- تئوریدان (The Theoretical Dude): این نوع برنامهنویسها تئوری پشت علوم کامپیوتری و برنامهنویسی رو میدونن اما در کُدنویسی خیلی قوی نیستن! معمولاً این افراد بلافاصله با هر فردی که بر سر تئوری با اونها اختلاف نظر داشته باشه، دعوا و مرافعه راه میندازن!
- برنامهنویس شلخته (The Sloppy Fellow): این نوع برنامهنویسها میدونن مشکل کار چیه، میدونن چه راه حلی برای اون وجود داره، اما دست آخر به دلیل عدم تمرکز باز هم گند میزنن به همه چی!
- پلیس کُد (The Code Police): این دسته مثل مامورانی هستن که با موشکافی زیاد باگها رو پیدا میکنن و بلافاصله از بقیه میخوان این باگها رو برطرف کنن! جالب اینجاست که حتی به Indentation (تو رفتگی خطوط سورس کُدها) هم حساس هستن و اگه بتونن به اون گیر میدن.
- کشف کننده (Wildcard or Eureka Guy): این دسته همیشه در حال تجربه کردن چیزهای جدید هستن که اکثر اوقات به پیشرفت هم منجر میشه!
پیشنهاد مطالعه: 10 مهارت فنی که هر برنامهنویس وب باید بداند
21 مهارتی که یک برنامه نویس به آن نیاز دارد
برای اینکه نظر بقیه را درباره این دستهبندی بدانیم، از بین ۱۰۰ برنامهنویس یک نظرسنجی به عمل آوردیم! در این نظرسنجی گروههای «همه فن حریف و با استعداد»، «کمال گرا» و «شلخته» به ترتیب بیشترین درصد برنامهنویسها رو به خودشان اختصاص دادن.
(>> بر اساس مطلب “What Type of Coder Are You” از Pavan Belagatti در DZone)
اما پیش از مشاهده این دستهبندی، اجازه بدهید به برخی ویژگیهای عمومیتر برنامه نویسها اشاره کنیم که در محیط کار دیدهایم:
مهارتهایی که هم اکنون در بازار کار بسیار مورد نیاز است و طبق نظر وزارت کار آمریکا در فهرست کار فرمایان قرار دارد، عبارتند از:
- هماهنگی: تنظیم اقدامات بر اساس اقدامات دیگران
- برنامه نویسی: نوشتن برنامه های کامپیوتری با اهداف مختلف
- مدیریت زمان: مدیریت زمان خود و دیگران
- تفکر انتقادی: استفاده از منطق و دلیل برای تشخیص میزان ضعف یا قدرت راه حل های جایگزین، نتایج یا رویکردهایی به مسئله
- تجزیه و تحلیل سیستم ها: تشخیص اینکه یک سیستم چگونه کار می کند و چه طور تغییر شرایط، عملکردها و محیط، می تواند روی خروجی آن تاثیرگذار باشد.
- حل کردن مسائل پیچیده: تشخیص پیچیدگی مسائل و بازخوانی اطلاعات مرتبط برای توسعه و ارزیابی گزینه ها و به اجرا درآوردن راه حل ها است.
- صحبت کردن: صحبت با دیگران برای انتقال موثر اطلاعات
- یادگیری پویا: یادگیری به نحوی که فرد یادگیرنده در فرایند حل مسئله یا تصمیم گیری به صورت عملی درگیر باشد.
- انتخاب تجهیزات: تشخیص انواع ابزارها و تجهیزاتی که برای یک کار مشخص موردنیاز است.
- توانایی خواندن متون و درک مطلب: درک جملات نوشته شده و پاراگراف ها در مستندات مرتبط با موضوعات کاری
- استراتژی های یادگیری: انتخاب و به کارگیری روش ها و رویه های مناسب برای یادگیری و آموزش
- تجزیه و تحلیل کنترل کیفیت : اجرای آزمون و بررسی هایی روی محصول، خدمات، عملکرد یا حتی فرآیندهایی که کار ارزیابی کیفیت را برعهده دارند.
- تحلیل عملیات: تحلیل نیازمندی های محصول برای خلق طراحی
- ریاضیات: استفاده از علم ریاضی برای حل مسئله
- شنیدن پویا: یعنی توجه کامل به چیزی که دیگران در حال گفتن آن هستند، وقت گذاشتن برای فهمیدن نکته هایی که سعی در گفتن آن داشتند، پرسیدن سوال های مناسب، صحبت دیگران را قطع نکردن.
- نصب و راه اندازی: نصب تجهیزات، ماشین ها، سیم کشی یا برنامه ها.
- خطایابی : تشخیص علت خطاهای عملکردی و تصمیم گیری لازم برای حل آنها.
- قضاوت و تصمیم گیری: توجه به هزینه/ فایده اقدامات احتمالی برای تصمیم گیری صحیح.
- طراحی تکنولوژی: تولید و تطابق امکانات و تکنولوژی برای ارائه پاسخ مناسب به نیاز.
- • تمرکز بالا : به منظور جلوگیری از خطا و اشتباه در تولید کدهای جدید و حفظ نظم در کدهای تولید شده
- بررسی مداوم فن آوری های جدید در حوزه برنامه نویسی : و استفاده از آخرین تکنیک ها برای نوشتن کدها و برنامه های جدید
اگر علاقه دارین مهرات برنامه نویسی خودتون رو افزایش بدین:
میتونین همین الان در دورهها
کنین، و وارد بازارکار بشین!