- شخصیتهای مختلف برنامه نویسان
- مهارت های مورد نیاز برنامه نویس
- پیش نیاز های برنامه نویسی
مهارت های برنامه نویس مهم است چون اکنون که ما تصمیم گرفته ایم به دنیای بی انتها و لذت بخش برنامه نویسی قدم بگذاریم، مجبوریم تا در کنار اصول و مفاهیم برنامه نویسی به علوم و مهارت های جانبی که به حرفه ما کمک می کنند نیز نیم نگاهی داشته باشیم.
مهارتهایی که باید در کسب آنها بکوشید ، بستگی به علایق، توانایی ها و استعداد شما و همچنین اهداف شغلی و منابع موجود دارد. اما با وجود نامشخص بودن وضعیت اقتصادی پیش رو، دستیابی به مهارت هایی که برای پیشرفت و آینده شغلی شما مفید خواهد بود، بسیار حیاتی است.
در حقیقت در کنار فراگیری اصول برنامه نویسی، ما می بایست تفکری انتقادی یا اصطلاحاً 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): این دسته همیشه در حال تجربه کردن چیزهای جدید هستن که اکثر اوقات به پیشرفت هم منجر میشه!
برای اینکه نظر بقیه را درباره این دستهبندی بدانیم، از بین ۱۰۰ برنامهنویس یک نظرسنجی به عمل آوردیم! در این نظرسنجی گروههای «همه فن حریف و با استعداد»، «کمال گرا» و «شلخته» به ترتیب بیشترین درصد برنامهنویسها رو به خودشان اختصاص داده اند.
(>> بر اساس مطلب “What Type of Coder Are You” از Pavan Belagatti در DZone)
21 مهارتی که یک برنامه نویس به آن نیاز دارد
مهارتهایی که هم اکنون در بازار کار بسیار مورد نیاز است و طبق نظر وزارت کار آمریکا در فهرست کار فرمایان قرار دارد، عبارتند از:
- هماهنگی: تنظیم اقدامات بر اساس اقدامات دیگران
- برنامه نویسی: نوشتن برنامه های کامپیوتری با اهداف مختلف
- مدیریت زمان: مدیریت زمان خود و دیگران
- تفکر انتقادی: استفاده از منطق و دلیل برای تشخیص میزان ضعف یا قدرت راه حل های جایگزین، نتایج یا رویکردهایی به مسئله
- تجزیه و تحلیل سیستم ها: تشخیص اینکه یک سیستم چگونه کار می کند و چه طور تغییر شرایط، عملکردها و محیط، می تواند روی خروجی آن تاثیرگذار باشد.
- حل کردن مسائل پیچیده: تشخیص پیچیدگی مسائل و بازخوانی اطلاعات مرتبط برای توسعه و ارزیابی گزینه ها و به اجرا درآوردن راه حل ها.
- صحبت کردن: صحبت با دیگران برای انتقال موثر اطلاعات
- یادگیری پویا: یادگیری به نحوی که فرد یادگیرنده در فرایند حل مسئله یا تصمیم گیری به صورت عملی درگیر باشد.
- انتخاب تجهیزات: تشخیص انواع ابزارها و تجهیزاتی که برای یک کار مشخص موردنیاز است.
- توانایی خواندن متون و درک مطلب: درک جملات نوشته شده و پاراگراف ها در مستندات مرتبط با موضوعات کاری
- استراتژی های یادگیری: انتخاب و به کارگیری روش ها و رویه های مناسب برای یادگیری و آموزش
- تجزیه و تحلیل کنترل کیفیت : اجرای آزمون و بررسی هایی روی محصول، خدمات، عملکرد یا حتی فرآیندهایی که کار ارزیابی کیفیت را برعهده دارند.
- تحلیل عملیات: تحلیل نیازمندی های محصول برای خلق طراحی
- ریاضیات: استفاده از علم ریاضی برای حل مسئله
- شنیدن پویا: یعنی توجه کامل به چیزی که دیگران در حال گفتن آن هستند، وقت گذاشتن برای فهمیدن نکته هایی که سعی در گفتن آن داشتند، پرسیدن سوال های مناسب، قطع نکردن صحبت دیگران
- نصب و راه اندازی: نصب تجهیزات، ماشین ها، سیم کشی یا برنامه ها.
- خطایابی : تشخیص علت خطاهای عملکردی و تصمیم گیری لازم برای حل آنها.
- قضاوت و تصمیم گیری: توجه به هزینه/ فایده اقدامات احتمالی برای تصمیم گیری صحیح.
- طراحی تکنولوژی: تولید و تطابق امکانات و تکنولوژی برای ارائه پاسخ مناسب به نیاز.
- • تمرکز بالا : به منظور جلوگیری از خطا و اشتباه در تولید کدهای جدید و حفظ یکپارچگی در کدهای تولید شده
- بررسی مداوم فن آوری های جدید در حوزه برنامه نویسی : و استفاده از آخرین تکنیک ها برای نوشتن کدها و برنامه های جدید
پیش نیازهای شروع برنامه نویسی
دو پیش نیاز اساسی و مورد هر برنامه نویس در استارت یک برنامه نویسی
۱. تاثیر تایپ اصلی در راندمان برنامه نویسی
در واقع همان طور که یک ویرایشگر کد به منزله یک ابزار برنامه نویسی است، نحوه صحیح تایپ نیز میتواند همچون ابزاری کاربردی، کمک شایانی در حرفه ای شدن ما به عنوان یک برنامه نویس کند. از دید ما کسب مهارت تایپ صحیح (ده انگشتی) برای حرفه ی برنامه نویسی لازم و ضروری است. به عبارت دیگر برنامه نویسی صرفاً در نوشتن کد خلاصه نمی شود بلکه ما به عنوان یک برنامه نویس گاهی نیاز داریم تا پیرامون اپلیکیشن خود توضیحاتی بنویسیم و یا چنانچه عضو یک تیم برنامه نویسی باشیم نیاز داریم تا با مابقی برنامه نویسان در تعامل بوده و مکاتبه نماییم و یا از طریق Comment، توضیحاتی را درون کد خود بنویسیم.
۲. تاثیر دانش زبان انگلیسی در پیشرفت در برنامه نویسی
مهارت دومی که برای یک برنامه نویس لازم و ضروری است فراگیری زبان انگلیسی است. در واقع دلایل مختلفی وجود دارند که ما تاکید داریم برنامه نویسان مبتدی می بایست حداقل به زبان انگلیسی آشنایی داشته باشند (اگر توجه کرده باشید به هیچ وجه از اصطلاح تسلط به زبان انگلیسی استفاده نکردیم چرا که اگر نگوییم تسلط به یک زبان خارجی کاری محال است، می توانیم بگوییم که کاری بسیار دشوار می باشد.)
از جمله این دلایل می توان به این نکته اشاره کرد که یک برنامه نویس برای این که همواره به روز باشد و از آخرین پیشرفت ها در زمینه برنامه نویسی مطلع باشد می بایست با زبان انگلیسی آشنا باشد چرا که تولید علم در دنیا به این زبان صورت می گیرد. از سوی دیگر Documentation یا اسناد زبان های برنامه نویسی کاملاً به زبان انگلیسی نوشته شده است و برای خواندن آن ها ما می بایست با زبان انگلیسی آشنا باشیم.
یکی دیگر از مواردی که دانستن زبان انگلیسی در آن به کمک ما می آید مکاتبه با دیگر برنامه نویسان در سراسر دنیا است. به طور مثال وب سایت Stack Overflow این امکان را به ما می دهد که سؤالات یا مشکلات خود به همراه کدی که نوشته ایم را به اشتراک بگذاریم و از نظر دیگر برنامه نویسان پیرامون آن آگاه شویم.
سخن پایانی
برای اینکه یک برنامه نویس شوید لازم نیست حتما تمام مهارت های گفته شده را از اول راه داشته باشید . شما می توانید با کسب مهارت های اولیه برنامه نویسی را شروع کنید و سپس در مسیر به رشد خود بپردازد . در هر شرکت به همه نوع تیپ شخصیتی برنامه نویس نیاز است .
توصیه ما به شما این است که حتما زبان انگلیسی خود را تقویت کنید و اگر اشتیاق سوزان دارید پا پیش بگذارید چون این مسیر پر از خطا و باگ هست و باید صبر ایوب داشته باشد 🙂 .
شما چه تجربهای در یادگیری برنامهنویسی دارید؟ چند تا از این مهارت هایی که یادشده را دارید ؟ در قسمت دیدگاه برایمان بنویسید .