برنامه نويسي

اينجا قراره ياد بگيريم چطور برنامه نويسي رو شروع كنيم

به عنوان يك برنامه نويس بايد كدام مهارت هاي نرم (soft skill) خود را افزايش دهيم؟

در نگاه اول عموم مردم تصور مي كنند برنامه نويسي تنها يك مهارت سخت فني (technical skill) است. به همين دليل است كه اكثر توسعه دهندگان و برنامه نويسان تازه كار، اهميت مهارت هاي نرم  (soft skill) را دست كم ميگيرند و تنها به مهارت هاي سخت فني توجه ميكنند. اما ناديده گرفتن اين مهارت ها مي تواند موجب بروز مشكلات زيادي مانند كمبود ارتباط موثر بين اعضاي تيم و در نهايت كاهش عملكرد مثبت آنان شود.
در اين پست در ابتدا بيان مي كنيم چرا مهارت هاي نرم، حياتي محسوب مي شوند و بعد از آن مهارت هاي ضروري تر براي يك مهندس نرم افزار را بررسي مي كنيم.

 

مهارت هاي نرم در برنامه نويسي

 

تفاوت مهارت هاي نرم و سخت چيست؟

زماني كه فرد برنامه نويس براي يك موقعيت شغلي رزومه ميفرستد، كارفرما براي تصميم گيري در مورد استخدام او به هر دو مهارت سخت و نرم توجه مي كند.

  • مهارت هاي نرم بيشتر جنبه ذهني دارد و به سختي قابل اندازه گيري است. اين مهارت ها شامل انعطاف پذيري، مديريت فكري و تيمي، ارتباط موثر، مديريت زمان و... است.
  • مهارت هاي سخت بيشتر جنبه فني دارد و معمولا درصد بيشتري از رزومه برنامه نويس را شامل مي شود مثل مهارت برنامه نويسي، تايپ سريع، كار با سيستم و...

 

چرا مهارت هاي نرم مهم هستند؟

دلايل مختلفي وجود دارد كه نشان مي دهد مهارت هاي نرم اهميت كمتري نسبت به مهارت هاي سخت ندارند و بايد به همان اندازه مورد توجه قرار گيرند. در واقع داشتن مهارت هاي نرم يعني داشتن ارتباط مثبت و موثر با ساير توسعه دهندگان و اعضاي تيم

  • مهارت هاي نرم به توسعه دهندگان و برنامه نويسان كمك مي كند يك شبكه ارتباطي بسيار عالي با متخصصان صنعت برقرار كنند و بتوانند از اين طريق پروژه ها و فرصت هاي شغلي جديد به دست بياورند يا در زمينه كاري خود راهنمايي كسب كنند.
  • مهارت هاي نرم در واقع به معناي كار تيمي است. براي شما به عنوان يك برنامه نويس شايد بسيار راحت تر باشد كه فقط روي وظايف خود تمركز كنيد و مشكلات برنامه نويسي خود را برطرف كنيد. اما توسعه نرم افزار چيزي فراتر از اين ميطلبد. توسعه نرم افزار در حقيقت يك كار تيمي است و همه اعضاي تيم براي رسيدن به هدف و ساخت محصول موردنظر، بايد با يكديگر در ارتباط باشند.
  • و در آخر يكي از مهم ترين دلايلي كه مهارت هاي نرم اهميت پيدا مي كند، نگه داشتن اعضاي تيم در كنار يكديگر براي همكاري هاي بلندمدت است.

مهارت نرم در برنامه نويسي

 

10 مهارت نرم بسيارمهم كه هر توسعه دهنده بايد داشته باشد

 

توانايي برقراري ارتباط

  • خوب گوش دهيد. مهارت خوب گوش دادن و خوب شنيدن يكي از مهم ترين مهارت هاي برقراري ارتباط است. تمرين كنيد قبل از آن كه نظرات خود را در مورد فرايند توسعه محصول يا مشكلات پيش آمده مطرح كنيد، ابتدا نظر ديگر افراد تيم را به خوبي بشنويد و تلاش كنيد بعد از آن بهترين راه حل را پيدا كنيد.
  • حرف ديگران را قطع نكنيد. تمرين كنيد حتي اگر در زمينه اي اطلاعات كاملي داريد، حرف درست يا نادرست ساير افراد را حين صحبت كردن قطع نكنيد.
  • شفاف و واضح صحبت كنيد. زماني كه بحث يا اختلاف نظر در مورد روند انجام كار پيش مي آيد، شما بايد بتوانيد به آرامي و به صورت شفاف ايده هاي خود را براي پايان دادن به آن مسئله بيان كنيد.
  •  

توانايي حل مسئله

در طول يك پروژه يا قبول كردن يك مسئوليت، بسيار طبيعي است كه مشكلات پيش بيني نشده اي اتفاق بيفتد. مهارت حل مسئله به شما كمك ميكند مشكلات كار را بدون متوقف كردن كل پروژه، مديريت كنيد.

 

مشاركت فعال در گروه

توانايي مشاركت فعال در گروه يك مهارت است كه هريك از اعضاي تيم به طور فعال در پايان دادن وظايف، مديريت پروژه و رسيدن به هدف همكاري مي كنند.  همكاري درست افراد احتمال ايجاد محصول بهتر، با ايده هاي خلاقانه تر و جديدتر را بسيار بالا مي برد.

 

مسئوليت پذيري

مسئوليت پذيري يك مهارت مهم است كه توسعه دهندگان و برنامه نويسان را قادر مي سازد مسئوليت اشتباهات خود را بپذيرند و بر اساس آن ها تصميم بهتري اتخاذ كنند. گرچه بسيار سخت است كه قبول كنيد انتخاب يا عدم توجه شما به يك مسئله موجب اشتباه شده است ولي بايد تمرين كنيد اولا مسئوليت ان ها را بپذيريد و سپس از تكرار آن ها جلوگيري كنيد.

 

سازگار بودن با محيط و ساير افراد

انطباق دادن خود با شرايط جديد يك مهارت نرم است كه هر برنامه نويس يا مدير پروژه بايد بتواند تغييراتي كه در محيط و حيطه توسعه محصول ايجاد مي شود را مديريت كند و خود را با آن وفق بدهد. شما به عنوان يك توسعه دهنده بايد همواره امادگي لازم براي پيشرفت تكنولوژي چه از لحاظ سخت افزاري و چه از لحاظ نرم افزاري را داشته باشيد.

 

مهارت هاي نرم در برنامه نويسي

 

مهارت هاي زباني و كلامي

مهارت هاي كلامي شامل روش صحبت كردن و نوشتن مطالب است. خيلي مهم است كه شما بتوانيد به صورت شفاف و راحت با مشتريان محصول خود صحبت كنيد. همچنين ممكن است شما مشترياني داشته باشيد كه زبان طبيعي شما را متوجه نشوند بنابراين بايد زبان جديدي ياد گيريد و بتوانيد با انان ارتباط برقرار كنيد.

 

اعتماد سازي

جلب اعتماد ديگران مهارتي است كه افراد حرفه اي و متخصص را قادر مي كند تصميمات مستقلي در مورد پروژه هاي خود بگيرند و براي پايان دادن به وظايف خود به بهترين نحو تلاش كنند. در ابتداي كار شايد سخت به نظر برسد كه بتوانيد اعتماد ساير افراد به ويژه مديران خود را جلب كنيد ولي به مرور زمان كه پروژه هاي بيشتري را با موفقيت به پايان برسانيد اين اعتمادسازي به طور خودكار اتفاق مي افتد.

 

مديريت زمان

مديريت زمان يك مهارت نرم است كه متناسب با نقشي كه در فرايند توسعه نرم افزار داريد، تغيير مي كند. به عنوان مثال اگر شما مديريت پروژه را برعهده داشته باشيد، بايد وظايف و اعضاي تيم را در مدت زمان مشخص مديريت كنيد. يا اگر شما تنها يك توسعه دهنده هستيد بايد بتوانيد زمان خود را براي طراحي، ساخت و افزايش كيفيت نرم افزار مديريت كنيد. در اين صورت شما ياد ميگيريد كارها و وظايف خود را اولويت بندي كنيد و هركدام را در بازه زماني مرتبط انجام دهيد.

 

توانايي يادگيري به صورت خودآموز

اكثر شركت هاي نرم افزاري به دنبال افرادي هستند كه بتوانند زبان ها و تكنولوژي هاي جديد را به طور خودآموز ياد بگيرند و در مواقع لازم راه حل هاي مناسب ارائه دهند. پس اگر شما تا به حال اين كار را شروع نكرده ايد، بهتر است خودتان موضوعات جذاب روز را پيدا كنيد و با استفاده از منابع و ويدئوهاي آموزشي آن ها را ياد بگيريد.

يكي از سايت هايي كه همواره در زمينه تكنولوژي و آموزش نرم افزار پيشرو بوده، سايت الگوريتم اول است. شما مي توانيد با مراجعه به اين سايت، آموزش هاي برنامه نويسي را از بهترين اساتيد به صورت آفلاين و آنلاين ياد بگيريد و پس از گذراندن آزمون هاي دوره، مدرك معتبر دانشگاه شيراز دريافت كنيد. اين مدرك مي تواند به شما در افزايش سطح رزومه تان كمك شاياني كند.

 

توانايي صبور بودن در مواقع بحراني

فرايند توسعه نرم افزار فرايندي طولاني است . به پايان رساندن پروژه ها، تست و به كارگيري آن ها و اعمال تغييرات لازم در هنگام پشتيباني، همه و همه فرايندهاي زمان بري است كه صبر ميطلبد. در اين گونه مواقع بايد به خودتان زمان كافي را بدهيد تا بدون استرس اشتباهات و خطاهاي پيش آمده را برطرف كنيد.

12 كتاب و مرجع آنلاين براي برنامه نويسان در سال 2021 - قسمت دوم

در پست هاي قبل 6 كتاب و مرجع آنلاين براي برنامه نويسي را معرفي كرديم. در اين پست 6 مورد ديگر را باهم بررسي مي كنيم.

7-

Effective Java by Joshua Bloch

مرجع آموزش برنامه نويسي الگوريتم اول

كتاب effective java يك منبع عالي براي يادگيري تكنيك ها، ترفندها و كاربردهاي زبان برنامه نويسي جاوا است. اين كتاب يك راهنماي جامع است كه تمام اطلاعات و مفاهيم موردنياز براي يادگيري اين زبان برنامه نويسي را پوشش ميدهد مانند:

  • Object
  • Class
  • Library
  • Method
  • Serialization
  • ...

اگر به زبان جاوا علاقه منديد و قصد داريد اين زبان را به طور كامل ياد بگيريد، خواندن اين كتاب برايتان از نان شب واجب تر است.

8-

Eloquent Ruby by Russ Olsen

آموزش برنامه نويسي الگوريتم اول

كتاب eloquent Ruby يك فرصت بسيار مناسب براي شروع يادگيري زبان ruby فراهم مي كند. اين كتاب به شما كمك مي كند با استفاده از زبان ruby بتوانيد برنامه هاي خود را به راحتي بنويسيد و اجرا كنيد. نويسنده ي كتاب تجربيات ارزشمند خود را در زمينه مفاهيم و كاربردهاي آن به زيبايي و بسيار قابل فهم بيان ميكند.

9-

Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming by Eric Matthes

آموزش برنامه نويسي پايتون الگوريتم اول

زبان برنامه نويسي پايتون يك زبان ساده و قدرتمند است كه در سال هاي اخير بسيار محبوب شده و به طور گسترده استفاده مي شود. اين كتاب به دو قسمت تقسيم مي شود:

در قسمت اول مفاهيم اصلي و اوليه زبان پايتون مانند متغيرها، ليست ها، حلقه ها، كلاس ها و... آموزش داده شده كه با تمرينات زيادي همراه است. در قسمت دوم نيز 3 پروژه معرفي شده كه بتوانيد دانش خود را در اين زبان برنامه نويسي به كاربردهاي عملي تبديل كنيد. همچنين اين كتاب به شما نحوه استفاده از كتابخانه هاي پرقدرت پايتون مانند pygame ، matplotlib ،   Django و... را آموزش ميدهد.

يكي ديگر از روش هاي يادگيري زبان برنامه نويسي پايتون استفاده از ويدئوهاي آموزشي است كه ميتوانيد با مراجعه به سايت الگوريتم اول ، از آموزش ها و تجارب مدرس اين زبان به خوبي استفاده كنيد.

10-

Codeacademy’s Free Course

يادگيري از طريق كتاب يكي از بهترين روش هاي جمع آوري اطلاعات و فراگيري مقدمات اوليه براي انجام دادن پروژه هاي آينده است. اما تمرين روي پروژه هاي واقعي است كه براي شما تجربه هاي فراواني به ارمغان مي آورد. سايت codeacademy يك منبع بسيار خوب براي ياد گرفتن html, css, bootstrap است كه به شما آموزش ميدهد چطور يك وبسايت را بسازيد و با چالش هاي آن مواجه شويد.

11-

Udemy’s Course

 Udemy يكي از بهترين پلتفرم هاي يادگيري براي كساني است كه ميخواهند به طور خودآموز مطلبي را ياد بگيرند. اگر وارد سايت شويد و قصد داشته باشيد كدنويسي را شروع كنيد، با انواع دوره هاي آموزشي مختلف مواجه مي شويد.يكي از بهترين دوره ها براي شروع coding for begginers1: you can learn to code است كه زبان هاي برنامه نويسي مختلفي مانند اسكرچ ، پايتون ، جاوا اسكريپت ، روبي ، سي شارپ و... را پوشش مي دهد و بيش از 15 هزار نفر اين در اين دوره شركت كرده اند.

اين دوره آموزشي در 8 ساعت و 34 قسمت مفاهيم اصلي كدنويسي ، زبان هاي برنامه نويسي ، پروژه ها و اصول و قواعد كار را آموزش مي دهد.

12-

Udacity’s Free Course

Udacity يكي ديگر از پلتفرم هاي آموزش كدنويسي است كه داراي انواع دوره هاي آموزشي رايگان و غير رايگان است. دوره آموزشي كه ما در اين پست قصد معرفي آن را داريم، intro to html and css است.

براساس توضيحات اين دوره آموزشي، شما مي توانيد ساختار و مفاهيم پايه و اصلي توسعه وب را به همراه مثال ها و تمرين هاي متنوع و حرفه اي ياد بگيريد. اين دوره براي افراد مبتدي تهيه شده است پس اگر مي خواهيد برنامه نويسي چالش برانگيزتري تجربه كنيد، بايد به ساير دوره هاي اين سايت هم سر بزنيد.

12 كتاب و مرجع آنلاين براي برنامه نويسان در سال 2021 - قسمت اول

 

اگر قصد داريد كدنويسي را شروع كنيد يا مهارت هاي كدنويسي خود را افزايش دهيد، يكي از نكات مهم اين است كه بدانيد از چه منابعي براي يادگيري دانش و مهارت خود استفاده كنيد. از آن جايي كه منابع زيادي در سراسر وب براي اين كار وجود دارد، انتخاب بهترين كتاب ها و آموزش ها چالش بزرگي است.در اين مطلب 12 مورد از بهترين كتاب ها و منابع آنلاين براي كدنويسان را با هم بررسي مي كنيم:


1-
Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman, with Julie Sussman

معرفي كتاب برنامه نويسي الگوريتم اول


هميشه يكي از راهكارهاي اصلي در شروع برنامه نويسي اين است كه از اصول و مقدمات آن شروع به يادگيري كنيد. اگر به تازگي قصد شروع كدنويسي داريد يا ميخواهيد پايه خود را در اين مفاهيم قوي تر كنيد، اين كتاب يكي از بهترين انتخاب هاي موجود است.

ويژگي هاي اين كتاب:

اين كتاب توسط جمعي از متخصصان مهندسي برق و كامپيوتر در دانشگاه MIT نوشته شده است.اين كتاب به صورت بسيار فشرده و استادانه، مفاهيم اصلي ترين سيستم هاي برنامه نويسي را پوشش مي دهد.همچنين اين كتاب يكي از بهترين منابع براي نوشتن مقالات در زمينه هاي تخصصي برنامه نويسي و دانشگاهي است.


2-
Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

معرفي كتاب كدنويسي الگوريتم اول


اين كتاب يك راهنماي فوق العاده براي درك كد نويسي و كاربردهاي آن است. جالب است بدانيد بسياري از كدنويسان از لحاظ فني ميدانند چطور كدنويسي را انجام دهند اما نمي توانند آن را توضيح دهند. اين كتاب با بيان مثال هاي متنوع و توضيح رازهاي پردازش هاي دروني كامپيوتر، اين كار را ساده مي كند.


3-
Code Complete: A Practical Handbook of Software Construction by Steve McConnell

معرفي كتاب كدنويسي الگوريتم اول

اين كتاب يكي از محبوب ترين راهنما هاي كاربردي برنامه نويسي است كه اصول و قواعد اوليه را به خوبي براي كدنويسان و تمام كساني كه نياز به يادگيري مفاهيم مختلف دارند، توضيح ميدهد.
كد نويسي، رفع خطا (debugging) ، طراحي (design) ، تست نرم افزار (testing) و ساخت پروژه از جمله مفاهيمي است كه به طور عميق در اين كتاب مورد بررسي قرار گرفته است. اين كتاب فارغ از سطح دانش و تجربه هر فرد، به تمامي كدنويسان توصيه مي شود.


4-
Think Like a Programmer: An Introduction to Creative Problem Solving by V. Anton Spraul

معرفي كتاب كدنويسي الگوريتم اول

اين كتاب به شما كمك ميكند خلاقانه و بدون مرز فكر كنيد و ايده هاي متنوع و جذاب خود را در برنامه نويسي و كدنويسي پروژه هاي گوناگون به كار ببريد. محتواي اصلي اين كتاب به هيچ زبان برنامه نويسي وابسته نيست و هدف آن بيشتر حل مسائل با تفكر خلاقانه است.


5-
The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin

معرفي كتاب الگوريتم اول


يكي ديگر از منابع بسيار عالي براي متخصصاني كه قصد دارند دانش و مهارت خود را رشد دهند، اين كتاب است. اين كتاب توصيه هاي بسيار كاربردي در همه زمينه هاي اصلي تكنيك ها، ابزار و اصول و قواعد كدنويسي را به همراه دارد و به طور كامل توضيح ميدهد كه يك كدنويس حرفه اي چطور بايد رفتار كند، چطور فكر كند و چطور كار كند.


6-
Eloquent JavaScript by Marijn Haverbeke

معرفي منبع برنامه نويسي الگوريتم اول

زبان جاوا اسكريپت (javascript) يكي از پراستفاده ترين زبان هاي برنامه نويسي است كه بهتر است تمام كدنويسان در مورد آن و نحوه استفاده از آن اطلاعات مفيدي داشته باشند. اين كتاب يك منبع بسيار عالي براي آموزش ساخت انواع اپليكشن هاست. مهارت هايي كه در اين كتاب ياد خواهيد گرفت، رزومه كاري شما را بسيار قوي تر مي كند و به شما در يافتن فرصت هاي شغلي بهتر كمك شاياني مي كند.

 

منبع: وبلاگ selftaught