دستهبندی کلی از انواع شخصیتهای برنامه نویسان
برنامهنویسها افرادِ بسیار خلاقی هستند. بخش مثبتی از زندگی شغلی ما این بوده که همیشه فرصت همکاری با برنامهنویسها و کنجکاوی درباره کارشان را داشتهایم: چه شد که؟ چرا؟ چه وقت؟ چگونه؟
برای اینکه یک برنامه نویس شوید لازم نیست حتما تمام مهارت های گفته شده را از اول راه داشته باشید . شما می توانید با کسب مهارت های اولیه برنامه نویسی را شروع کنید و سپس در مسیر به رشد خود بپردازد . در هر شرکت به همه نوع تیپ شخصیتی برنامه نویس نیاز است .
توصیه ما به شما این است که حتما زبان انگلیسی خود را تقویت کنید و اگر اشتیاق سوزان دارید پا پیش بگذارید چون این مسیر پر از خطا و باگ هست و باید صبر ایوب داشته باشد
اما پیش از مشاهده این دستهبندی، اجازه بدهید به مهارت های یادگیری اشاره کنیم که در محیط کار دیدهایم:
- تفکر تحلیلی (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): این دسته همیشه در حال تجربه کردن چیزهای جدید هستن که اکثر اوقات به پیشرفت هم منجر میشه!
21 مهارتی که یک برنامه نویس به آن نیاز دارد
مهارتهایی که هم اکنون در بازار کار بسیار مورد نیاز است و طبق نظر وزارت کار آمریکا در فهرست کار فرمایان قرار دارد، عبارتند از:
- هماهنگی: تنظیم اقدامات بر اساس اقدامات دیگران
- برنامه نویسی: نوشتن برنامه های کامپیوتری با اهداف مختلف
- مدیریت زمان: مدیریت زمان خود و دیگران
- تفکر انتقادی: استفاده از منطق و دلیل برای تشخیص میزان ضعف یا قدرت راه حل های جایگزین، نتایج یا رویکردهایی به مسئله
- تجزیه و تحلیل سیستم ها: تشخیص اینکه یک سیستم چگونه کار می کند و چه طور تغییر شرایط، عملکردها و محیط، می تواند روی خروجی آن تاثیرگذار باشد.
- حل کردن مسائل پیچیده: تشخیص پیچیدگی مسائل و بازخوانی اطلاعات مرتبط برای توسعه و ارزیابی گزینه ها و به اجرا درآوردن راه حل ها.
- صحبت کردن: صحبت با دیگران برای انتقال موثر اطلاعات
- یادگیری پویا: یادگیری به نحوی که فرد یادگیرنده در فرایند حل مسئله یا تصمیم گیری به صورت عملی درگیر باشد.
- انتخاب تجهیزات: تشخیص انواع ابزارها و تجهیزاتی که برای یک کار مشخص موردنیاز است.
- توانایی خواندن متون و درک مطلب: درک جملات نوشته شده و پاراگراف ها در مستندات مرتبط با موضوعات کاری
- استراتژی های یادگیری: انتخاب و به کارگیری روش ها و رویه های مناسب برای یادگیری و آموزش
- تجزیه و تحلیل کنترل کیفیت : اجرای آزمون و بررسی هایی روی محصول، خدمات، عملکرد یا حتی فرآیندهایی که کار ارزیابی کیفیت را برعهده دارند.
- تحلیل عملیات: تحلیل نیازمندی های محصول برای خلق طراحی
- ریاضیات: استفاده از علم ریاضی برای حل مسئله
- شنیدن پویا: یعنی توجه کامل به چیزی که دیگران در حال گفتن آن هستند، وقت گذاشتن برای فهمیدن نکته هایی که سعی در گفتن آن داشتند، پرسیدن سوال های مناسب، قطع نکردن صحبت دیگران
- نصب و راه اندازی: نصب تجهیزات، ماشین ها، سیم کشی یا برنامه ها.
- خطایابی : تشخیص علت خطاهای عملکردی و تصمیم گیری لازم برای حل آنها.
- قضاوت و تصمیم گیری: توجه به هزینه/ فایده اقدامات احتمالی برای تصمیم گیری صحیح.
- طراحی تکنولوژی: تولید و تطابق امکانات و تکنولوژی برای ارائه پاسخ مناسب به نیاز.
- • تمرکز بالا : به منظور جلوگیری از خطا و اشتباه در تولید کدهای جدید و حفظ یکپارچگی در کدهای تولید شده
- بررسی مداوم فن آوری های جدید در حوزه برنامه نویسی : و استفاده از آخرین تکنیک ها برای نوشتن کدها و برنامه های جدید
پیش نیازهای شروع برنامه نویسی
دو پیش نیاز اساسی و مورد هر برنامه نویس در استارت یک برنامه نویسی
۱. تاثیر تایپ اصلی در راندمان برنامه نویسی
در واقع همان طور که یک ویرایشگر کد به منزله یک ابزار برنامه نویسی است، نحوه صحیح تایپ نیز میتواند همچون ابزاری کاربردی، کمک شایانی در حرفه ای شدن ما به عنوان یک برنامه نویس کند. از دید ما کسب مهارت تایپ صحیح (ده انگشتی) برای حرفه ی برنامه نویسی لازم و ضروری است. به عبارت دیگر برنامه نویسی صرفاً در نوشتن کد خلاصه نمی شود بلکه ما به عنوان یک برنامه نویس گاهی نیاز داریم تا پیرامون اپلیکیشن خود توضیحاتی بنویسیم و یا چنانچه عضو یک تیم برنامه نویسی باشیم نیاز داریم تا با مابقی برنامه نویسان در تعامل بوده و مکاتبه نماییم و یا از طریق Comment، توضیحاتی را درون کد خود بنویسیم.
۲. تاثیر دانش زبان انگلیسی در پیشرفت در برنامه نویسی
مهارت دومی که برای یک برنامه نویس لازم و ضروری است فراگیری زبان انگلیسی است. در واقع دلایل مختلفی وجود دارند که ما تاکید داریم برنامه نویسان مبتدی می بایست حداقل به زبان انگلیسی آشنایی داشته باشند (اگر توجه کرده باشید به هیچ وجه از اصطلاح تسلط به زبان انگلیسی استفاده نکردیم چرا که اگر نگوییم تسلط به یک زبان خارجی کاری محال است، می توانیم بگوییم که کاری بسیار دشوار می باشد.)
یکی دیگر از مواردی که دانستن زبان انگلیسی در آن به کمک ما می آید مکاتبه با دیگر برنامه نویسان در سراسر دنیا است. به طور مثال وب سایت این امکان را به ما می دهد که سؤالات یا مشکلات خود به همراه کدی که نوشته ایم را به اشتراک بگذاریم و از نظر دیگر برنامه نویسان پیرامون آن آگاه شویم.