در پست های قبل 6 کتاب و مرجع آنلاین برای برنامه نویسی را معرفی کردیم. در این پست 6 مورد دیگر را باهم بررسی می کنیم.
7-
Effective Java by Joshua Bloch
کتاب effective java یک منبع عالی برای یادگیری تکنیک ها، ترفندها و کاربردهای زبان برنامه نویسی جاوا است. این کتاب یک راهنمای جامع است که تمام اطلاعات و مفاهیم موردنیاز برای یادگیری این زبان برنامه نویسی را پوشش میدهد مانند:
اگر به زبان جاوا علاقه مندید و قصد دارید این زبان را به طور کامل یاد بگیرید، خواندن این کتاب برایتان از نان شب واجب تر است.
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-
Codeacademyrsquo;s Free Course
یادگیری از طریق کتاب یکی از بهترین روش های جمع آوری اطلاعات و فراگیری مقدمات اولیه برای انجام دادن پروژه های آینده است. اما تمرین روی پروژه های واقعی است که برای شما تجربه های فراوانی به ارمغان می آورد. سایت
11-
Udemyrsquo;s Course
Udemy یکی از بهترین پلتفرم های یادگیری برای کسانی است که میخواهند به طور خودآموز مطلبی را یاد بگیرند. اگر وارد سایت شوید و قصد داشته باشید کدنویسی را شروع کنید، با انواع دوره های آموزشی مختلف مواجه می شوید.یکی از بهترین دوره ها برای شروع
این دوره آموزشی در 8 ساعت و 34 قسمت مفاهیم اصلی کدنویسی ، زبان های برنامه نویسی ، پروژه ها و اصول و قواعد کار را آموزش می دهد.
12-
Udacityrsquo;s Free Course
Udacity یکی دیگر از پلتفرم های آموزش کدنویسی است که دارای انواع دوره های آموزشی رایگان و غیر رایگان است. دوره آموزشی که ما در این پست قصد معرفی آن را داریم،
براساس توضیحات این دوره آموزشی، شما می توانید ساختار و مفاهیم پایه و اصلی توسعه وب را به همراه مثال ها و تمرین های متنوع و حرفه ای یاد بگیرید. این دوره برای افراد مبتدی تهیه شده است پس اگر می خواهید برنامه نویسی چالش برانگیزتری تجربه کنید، باید به سایر دوره های این سایت هم سر بزنید.
اگر قصد دارید
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) یکی از پراستفاده ترین زبان های برنامه نویسی است که بهتر است تمام کدنویسان در مورد آن و نحوه استفاده از آن اطلاعات مفیدی داشته باشند. این کتاب یک منبع بسیار عالی برای آموزش ساخت انواع اپلیکشن هاست. مهارت هایی که در این کتاب یاد خواهید گرفت، رزومه کاری شما را بسیار قوی تر می کند و به شما در یافتن فرصت های شغلی بهتر کمک شایانی می کند.
منبع:
در نگاه اول عموم مردم تصور می کنند
در این پست در ابتدا بیان می کنیم چرا مهارت های نرم، حیاتی محسوب می شوند و بعد از آن مهارت های ضروری تر برای یک مهندس نرم افزار را بررسی می کنیم.
تفاوت مهارت های نرم و سخت چیست؟
زمانی که فرد برنامه نویس برای یک موقعیت شغلی رزومه میفرستد، کارفرما برای تصمیم گیری در مورد استخدام او به هر دو مهارت سخت و نرم توجه می کند.
چرا مهارت های نرم مهم هستند؟
دلایل مختلفی وجود دارد که نشان می دهد
10 مهارت نرم بسیارمهم که هر توسعه دهنده باید داشته باشد
توانایی برقراری ارتباط
توانایی حل مسئله
در طول یک پروژه یا قبول کردن یک مسئولیت، بسیار طبیعی است که مشکلات پیش بینی نشده ای اتفاق بیفتد. مهارت حل مسئله به شما کمک میکند مشکلات کار را بدون متوقف کردن کل پروژه، مدیریت کنید.
مشارکت فعال در گروه
توانایی مشارکت فعال در گروه یک مهارت است که هریک از اعضای تیم به طور فعال در پایان دادن وظایف، مدیریت پروژه و رسیدن به هدف همکاری می کنند. همکاری درست افراد احتمال ایجاد محصول بهتر، با ایده های خلاقانه تر و جدیدتر را بسیار بالا می برد.
مسئولیت پذیری
مسئولیت پذیری یک مهارت مهم است که توسعه دهندگان و برنامه نویسان را قادر می سازد مسئولیت اشتباهات خود را بپذیرند و بر اساس آن ها تصمیم بهتری اتخاذ کنند. گرچه بسیار سخت است که قبول کنید انتخاب یا عدم توجه شما به یک مسئله موجب اشتباه شده است ولی باید تمرین کنید اولا مسئولیت ان ها را بپذیرید و سپس از تکرار آن ها جلوگیری کنید.
سازگار بودن با محیط و سایر افراد
انطباق دادن خود با شرایط جدید یک مهارت نرم است که هر برنامه نویس یا مدیر پروژه باید بتواند تغییراتی که در محیط و حیطه توسعه محصول ایجاد می شود را مدیریت کند و خود را با آن وفق بدهد. شما به عنوان یک توسعه دهنده باید همواره امادگی لازم برای پیشرفت تکنولوژی چه از لحاظ سخت افزاری و چه از لحاظ نرم افزاری را داشته باشید.
مهارت های زبانی و کلامی
مهارت های کلامی شامل روش صحبت کردن و نوشتن مطالب است. خیلی مهم است که شما بتوانید به صورت شفاف و راحت با مشتریان محصول خود صحبت کنید. همچنین ممکن است شما مشتریانی داشته باشید که زبان طبیعی شما را متوجه نشوند بنابراین باید زبان جدیدی یاد گیرید و بتوانید با انان ارتباط برقرار کنید.
اعتماد سازی
جلب اعتماد دیگران مهارتی است که افراد حرفه ای و متخصص را قادر می کند تصمیمات مستقلی در مورد پروژه های خود بگیرند و برای پایان دادن به وظایف خود به بهترین نحو تلاش کنند. در ابتدای کار شاید سخت به نظر برسد که بتوانید اعتماد سایر افراد به ویژه مدیران خود را جلب کنید ولی به مرور زمان که پروژه های بیشتری را با موفقیت به پایان برسانید این اعتمادسازی به طور خودکار اتفاق می افتد.
مدیریت زمان
مدیریت زمان یک مهارت نرم است که متناسب با نقشی که در فرایند توسعه نرم افزار دارید، تغییر می کند. به عنوان مثال اگر شما مدیریت پروژه را برعهده داشته باشید، باید وظایف و اعضای تیم را در مدت زمان مشخص مدیریت کنید. یا اگر شما تنها یک توسعه دهنده هستید باید بتوانید زمان خود را برای طراحی، ساخت و افزایش کیفیت نرم افزار مدیریت کنید. در این صورت شما یاد میگیرید کارها و وظایف خود را اولویت بندی کنید و هرکدام را در بازه زمانی مرتبط انجام دهید.
توانایی یادگیری به صورت خودآموز
اکثر شرکت های نرم افزاری به دنبال افرادی هستند که بتوانند زبان ها و تکنولوژی های جدید را به طور خودآموز یاد بگیرند و در مواقع لازم راه حل های مناسب ارائه دهند. پس اگر شما تا به حال این کار را شروع نکرده اید، بهتر است خودتان موضوعات جذاب روز را پیدا کنید و با استفاده از منابع و ویدئوهای آموزشی آن ها را یاد بگیرید.
یکی از سایت هایی که همواره در زمینه تکنولوژی و آموزش نرم افزار پیشرو بوده، سایت
توانایی صبور بودن در مواقع بحرانی
فرایند توسعه نرم افزار فرایندی طولانی است . به پایان رساندن پروژه ها، تست و به کارگیری آن ها و اعمال تغییرات لازم در هنگام پشتیبانی، همه و همه فرایندهای زمان بری است که صبر میطلبد. در این گونه مواقع باید به خودتان زمان کافی را بدهید تا بدون استرس اشتباهات و خطاهای پیش آمده را برطرف کنید.
این روزها علم داده یا data science طرفدارهای بسیار زیادی پیدا کرده و به سرعت در حال گسترش است. اما سوالی که برای بسیاری از برنامه نویسان مطرح می شود این است که کدام
علم داده یا data science چیست؟
اگر در محیط وب جستجویی در مورد علم داده داشته باشید حتما با دنیایی از مقالات طولانی و پیچیده مواجه می شوید اما ما فقط یک جمله برای تعریف آن بیان می کنیم. علم داده هنر جمع آوری، اندازه گیری، ارزیابی، مرتب سازی و آنالیز مجموعه داده (data set) است. این مجموعه داده می تواند بسیار کوچک مثلا در حد شناسایی افراد بازدیدکننده از سایت شما در یک بازه زمانی خاص باشد یا داده های بسیار زیادی را شامل شود مثل بررسی وضعیت هزاران سنسور هوشمند در سراسر یک منطقه.
خب تا اینجا درمورد علم داده صحبت کردیم. در ادامه این مطلب قصد داریم زبان های پایتون و R را از جنبه های مختلفی باهم مقایسه کنیم.
جمع آوری داده (data collection)
اولین تفاوت مهم زبان های پایتون و R در حوزه جمع آوری داده است. برای مثال زبان پایتون از انواع فرمت های گوناگون از csv گرفته تا json و حتی جداول sql پشتیبانی می کند. در حوزه توسعه وب هم پایتون این اجازه را می دهد که داده ها را از دنیای وب جمع آوری کنید و در جداولی که خودتان ساختارش را مشخص کرده اید، قرار دهید. در مقابل زبان R برای وارد کردن داده هایی با فرمت excel ، csv و txt بهینه سازی شده است.
اکتشاف داده (exploring data)
مدل سازی داده (data modeling)
در زبان پایتون کتابخانه های قدرتمند و استانداردی مانند NumPy برای آنالیز مدل سازی عددی یا SciPy برای محاسبات علمی وجود دارد. اما اگر برنامه نویسان بخواهند همین مدل سازی های علمی را در زبان R انجام دهند، باید از پکیج های خارج از این زبان استفاده کنند. البته ممکن است راه حل هایی در درون خود زبان R هم وجود داشته باشد ولی قطعا پیچیدگی هایی را به برنامه اضافه می کند که در زبان پایتون وجود نداشته است.
تصویرسازی داده (data visualization)
تنها حوزه ای که زبان R نسبت به زبان پایتون برتری دارد، حیطه مصورسازی داده است. پایتون ابزارهایی مانند matplotlib دارد که می توانند داده ها را به خوبی نمایش دهد. اما زبان R اساسا برای نمایش نتایج آنالیزهای آماری ساخته شده است و ماژول های گرافیکی آن امکان رسم نمودارها و چارت های مختلف را فراهم می کند.
با این تفاسیر کدام زبان برای افراد مبتدی بهتر است؟
زبان پایتون و R هرکدام مزیت های متفاوتی در حوزه علم داده دارند اما سوال اصلی اینجاست که کدام یک برای افراد مبتدی و کارهای اولیه مناسب تر است؟ با توجه به مواردی که گفته شد به نظر میرسد زبان پایتون انتخاب اصلی برای این دسته از افراد باشد. درست است که افراد تازه کار می توانند از زبان R برای اجرای آنالیزهای ساده و پایه ای در مدت زمان کوتاهی استفاده کنند، اما برای این که این زبان و کتابخانه های آن را به درستی به کار ببرند، باید ساعت ها برای یادگیری تلاش کنند. در مقابل
مرورگر کروم یکی از محبوب ترین و پر استفاده ترین مرورگرهایی است که امروزه استفاده می شود. این مرورگر تعداد بسیار زیادی افزونه دارد که به طراحان و توسعه دهندگان وب کمک میکند کارهای خود را در کمترین زمان ممکن انجام دهند و از این طریق کارایی خود را بالا ببرند.
در این پست 9 اکستنشن کروم که زندگی را برای توسعه دهندگان وب آسان می کند، معرفی می کنیم. این افزونه ها همگی تست شده اند و از لحاظ کارایی و رابط گرافیکی جزء بهترین ها هستند.
افزونه
افزونه
اگر در حال طراحی یک صفحه واکنش گرا (responsive) هستید، افزونه
توانایی مشاهده کدهای CSS هر المان دلخواه در هر سایتی که مدنظر دارید، از قابلیت های
این افزونه به شما اجازه می دهد به راحتی تمام صفحات وبی را که مدنظر دارید، بر اساس ویژگی های از پیش تعیین شده مثل seo یا web performance تست کنید. شما می توانید با استفاده ازافزونه
افزونه
افزونه تولید متن آزمایشی
افزونه
یکی از ابزارهای بسیار مفید برای برنامه نویسان و توسعه دهندگان، افزونه
درباره این سایت