Thursday, 1 October 2015

The Best Way to Learn ASP.NET

You're looking to learn ASP.NET? I can't blame you. Not only is it an extremely flexible platform, but .NET developers are in high demand and will continue to be. Unfortunately, it can be an intimidating platform to learn — especially if you are brand new to development or have never used Java or C++. However, once over the proverbial hump, you’ll find it to be a rewarding and enjoyable platform to develop for. This syllabus is designed to get you up and running on the ASP.NET stack, being able to write your own applications.
Taking a page from Siddharth's earlier guide to learn PHP, disregard the haters. The majority of ASP.NET’s critics are kids who know nothing about the platform other than it was made by Microsoft; they haven't spent five minutes with it to come up with any kind of informed opinion.
While there are certainly valid criticisms of the platform, they are typically made by developers who not only know C# and the .NET Framework, but PHP, Ruby, C++, Java, and other platforms.
ASP.NET isn’t perfect—there is no such thing. But it is one of the most flexible and powerful server-side technologies available today.
I fully recommend you pick C#.
ASP.NET is often incorrectly thought of as a programming language; it is actually a platform built on .NET’s Common Language Runtime (CLR), the component of the .NET Framework responsible for executing .NET applications. Because of this, a .NET developer can use whatever .NET-enabled language they want to write theirASP.NET application. This means you can write an application in C#, VisualBasic.NET, Python, PHP, Perl, and many other languages. As long as there is a .NET compiler for your chosen language, you can write an ASP.NET application with it.
Keeping that in mind, I fully recommend you pick C#. While it may be tempting to pick another language you might be more familiar with, the bulk of information, both in books and on the Web, are geared towards Microsoft's officially supported languages: C# and VB.NET. Additionally, C# was specifically designed for the .NET Framework, and thus, is the most intuitive for using .NET's features. This is one of the reasons why .NET is intimidating; not only do you have to learn the framework, but a new language, too. But it is well worth it in the end.
  • Visual C# 2010 Step by Step: After you pick a language, it's a good idea to get familiar with it. If you want to dig into the C# language before getting intoASP.NET, I recommend Visual C# 2010 Step by Step. It is a very good introduction to the language, and will introduce you to many aspects of the .NET Framework as well. It's not required reading, but you'll have an easier time learning ASP.NET with a solid foundation in C#.
  • ASP.NET from Scratch: Nettuts+ has a semi-fast-paced series calledASP.NET from Scratch, presented by yours truly. The beginning lessons are a couple years old, but Lesson 1 and Lesson 2 give you some background of the platform as well as a brief introduction to ASP.NET. You don't necessarily have to follow along with the examples (they use older tools which you will not want to download),  but watch the first few lessons to get an idea of what you're getting into. The later lessons work with the MVC framework, which  you should wait on learning until a later time. The series was designed to get you up and running with ASP.NET, so it is not as comprehensive as a book might be, but that'll be taken care of with...
Two to be exact. There is no shortage of ASP.NET books in the world, but there are bad books, good books, and excellent books. The two listed here are excellent, and I want you to read them in order.
Nettuts image
Author: Imar Spaanjaars
Beginning ASP.NET 4 in C# and VB starts at the very beginning by walking you through downloading and installing a free version of Visual Studio called Visual Web Developer Express. You’ll then embark on yourASP.NET journey, learning syntax, controls, themes, and other features of the platform. Just as Visual C# 2010 Step by Step gives you solid foundation in C#, Spaanjaars’ Beginning ASP.NET 4 in C# and VB gives you a solid foundation in ASP.NET fundamentals.
Nettuts image
Author: Bill Evjen, Scott Hanselman and Devin Rader
This book dives deeper into ASP.NET to give you a more complete understanding of the platform. It will not only expand upon the topics covered in Spaanjaars’ book, but it will introduce you to other features ofASP.NET and the .NET Framework: sessions, the provider model, membership (authentication and user roles), security, state management, caching, and the list goes on. There is not much this book does not cover, and it will be an invaluable resource you can return to when you need a refresher on a particular feature or topic.
By the time you finish these two books, you’ll have a very good understanding of the platform. So it's time to branch out and...
Reading is one thing; doing is another.
Reading is one thing; doing is another. While you undoubtedly followed along with the examples in the previous listed books, doing something on your own is one of the best ways to learn. So for this assignment, write something. Building your own blogging engine, forums, or to-do list will put what you've learned into practice. Start small and add more to your project as you finish a piece. Make sure you include the following features:
  • Database-Driven: It should be database driven. Use Microsoft's SQL Server Express as your data store, and design the tables you'll need for your application. If you're new to designing databases, it's typically a good idea to think of your data as logical objects. For example, a blog app could have a table called BlogPosts where the table's fields describe blog posts (title, posting, date of post, etc). Keep it simple and logical.
  • UI: It should have a "front-end." By this, I mean the portion of the app that visitors would see; it's the content that your project is supposed to display. If you build a blog, it's the blog posts, archives, etc. If you're building a forum, it's the threads and posts contained within the forum. If it's a to-do, list, it's the tasks you (or other users) are to keep track of.
  • Admin: It should have a "back-end." This is the administrative portion of the project, where you maintain the blog posts, forum, or to-do list. Make sure you protect it by requiring administrators to authenticate.
Never fear to crack open a book or ask questions on the Web. Sites likewww.stackoverflow.com and forums.asp.net are valuable resources where you can ask questions and get tips from pros who have used the platform for years.
For extra credit, add in users and roles.
  • For a blog, add the ability to have multiple authors post blog posts, and give them roles that determine what privileges they have.
  • If a forum, add the capability for users to sign-up for an account and start and add to topics. Also use roles to determine what users can and cannot do. Add moderators and super-admins for extra extra credit.
  • If a to-do list, make it multi-user capable, where users can have their own unique and private to-do list.
Naturally, you'll need some way to administer these users and roles, so be sure to add that capability to your "back-end."
The WebForms technology you have been using up to this point is just one of the programming patterns you can use to create ASP.NET applications. A second programming model is ASP.NET MVC. It's still ASP.NET but uses a different programming pattern called Model-View-Controller (MVC), and it is noticeably different than WebForms.
To get started with the MVC Framework, watch the following ASP.NET from Scratch lessons:
These lessons will get you up and running on the MVC path quickly.
Nettuts image
Author: Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen
Parts of this book will be reviewed from the ASP.NETfrom Scratch screencasts, but it does cover other topics such as Test Driven Development (TDD), security, and extending MVC, as well as dive deeper into topics covered in the ASP.NET from Scratch videos. This is a must have resource for any ASP.NETdeveloper wanting to grasp the MVC Framework.
Nettuts image
Author: Steven Sanderson, Adam Freeman
Once again, there will be review material, as many topics are covered in ASP.NET from Scratch and Professional ASP.NET MVC 3, but this is an excellent resource to give you other developers' perspective on the MVC framework.
Just as writing something for Assignment 3 helped solidify your understanding ofASP.NET WebForms, you need to write something using the MVC Framework. When I learn a new language or pattern, I like to rewrite an existing project using my newfound knowledge. So for this assignment, rewrite the app you wrote for Assignment 3, but use the MVC Framework instead of WebForms. This rewrite should adhere to the same requirements as Assignment 3, and it has the same extra credit.
Once again, don't forget that you're not alone; use your book or visit www.stackoverflow.com andforums.asp.net if you get stuck.
Many Microsoft employees involved with ASP.NET blog and tweet regularly, but not every ASP.NET master works for Microsoft. Be sure to follow these guys and subscribe to their blogs:
  • Scott Guthrie (@scottguweblogs.asp.net/scottgu/) is one of the original architects of ASP.NET and offers informational tweets and blog posts on the subject (particularly new stuff).
  • Scott Hanselman (@shanselmanhanselman.com/) tweets a lot, but he provides a ton of information on .NET and technology in general.
  • Phil Haack (@haackedhaacked.com/) also works for Microsoft in the MVC team, and his information blog posts cover a wide array of ASP.NET topics. He's also responsible for NuGet, a package management utility for Visual Studio and .NET apps.
  • ASP.NET Team (@aspnetwww.asp.net) is the ASP.NET website, featuring community spotlights, forums, and tutorials.
Microsoft releases several Community Technical Previews (CTP) before every major release.
Computer technology is a fast-paced industry, and ASP.NET is no exception. Since its release in 2002, ASP.NET has gone through five major versions (and one point release), with a new version coming in 2012, and ASP.NET MVC has seen three versions since its 2009 release. Things move rather quickly, and keeping up with the changes and improvements of new versions are a necessity.
Thankfully, it is relatively easy to stay current with ASP.NET. Microsoft releases several Community Technical Previews (CTP) before every major release. Not only do you get to play with the new features in the upcoming version, but you have documentation, including a thorough "what's new/changed", with every CTP release.
This lesson plan will get you on the road to ASP.NET goodness. It's a fantastic platform, and it gets better with every new version and point release. If you have any questions, feel free to ask them in the comments or tweet me. If you have anything to add, please share it with the rest of us in the comments. Thanks, and I hope you enjoy ASP.NET!
--------------------------------------------------------------------------------------------------------------------
Reposted From : http://code.tutsplus.com/tutorials/the-best-way-to-learn-aspnet--net-22404

The Best Way to Learn Ruby on Rails

I come from a PHP background, but these days, I'm a full-time Rails developer. The difficulty for most people who make the switch lies in the learning curve that’s involved. Once you've become proficient in a language or framework, switching to a new one feels like an unnecessary (and time-consuming) challenge.
However, learning Ruby and Rails is actually pretty easy! It's an incredibly powerful framework, and has a huge community pushing it along. So that begs the question: what's the best way to learn Rails? Here's a lesson plan.
This article details a full lesson plan that will get you up and running in no time! Follow each assignment below in order.
You might think learning Ruby is the most important step, and this is probably the part where everyone stops learning and just sticks with their current framework.Don’t do that! Don’t be scared to learn this language (or any language, really). Ruby is a fun, beautiful, and easy-to-learn language. Plus, you don’t really need to dominate the language 100% to be able to learn Rails. You just need the basics to begin.
Tryruby
Work through the Try Ruby exercises.
The most recommended tool for dipping into Ruby's syntax is the Try Ruby website. It provides you with an interactive, web-based shell to play with the language. If you type help, you’ll be greeted with an interactive, 15 minute tutorial that’ll teach you the very basics of the language. Typing help 2 will take you to the second chapter of the tutorial.
Once you’ve worked through these exercises a couple of times, you'll have a solid base. Personally, completing those two tutorials is all I initially did. The rest I’ve learned by creating web sites with Rails, Googling, and playing in IRB.
Run gem install rails to install Rails.
If you want to learn Rails, you’ll of course need to install it on your machine. There are multiple ways to do this, depending on your platform. If you’re on a Mac or a Linux-based computer, I recommend you use RVM. It’s a great tool to install Ruby. Refer to this article for installation instructions. If you’re on Windows, refer toRubyInstaller for Windows.
Next, you need to install Rails. To do so you should have RubyGems installed on your computer. If you used RVM to install Ruby, congratulations, you already have it! If you’re on Windows, refer here. To install Rails, run gem install rails, and, tada, you're all set up!
rbenv is another increasingly popular method for installing Ruby. Research that as well.
The Intro to Rails Screencast I Wish I Had
In this 40 minute screencast, Jeffrey Way, Nettuts+ editor extraordinaire, teaches you all the basics you need to know to start developing with Rails.
By following this screencast, you'll pick up a lot of information on topics including:
  • Models and generators
  • Test-driven development
  • ActiveRecord
  • Rspec and Capybara
  • Partials
  • …and plenty more
Zombies
I’ve always thought that learning by example is the best (and only) way to learn a language and a framework. A free and incredible course that you must take is Rails For Zombies, from the folks at EnvyLabs. It's interactive, which means that, after watching each video, you'll work through a handful of exercises.
Agile Rails
Up until now, every tool I’ve given you has been free and interactive. Now, you need to purchase the book on Rails: Agile Web Development with Rails. It teaches you Rails by means of building a website from scratch. It goes through the very basics, creating controllers, models, scaffolding and even unit and functional testing, plus some AJAX! Be sure to buy the latest edition though!
Here's some more popular Rails books that you might consider.
I know it sounds boring (it does to me), but it's a great example and is used everywhere for a reason: it's simple, you can finish that kind of tutorial in under an hour, and you learn the basics very fast. Now, if you read the book from assignment four, you should already have enough knowledge to build something like this. I encourage you to try and build one by yourself, from memory, without checking any tutorials on the subject. You can check some methods, look at how to validate some fields, etc., but the idea is that you need to put your knowledge to the test.
Blog Post
Build a simple blog that has support for comments. You don't need to implement a fancy authentication system; just something simple to get started.
Great! You've built yourself a basic blog. It certainly lacks some basic functionality one would expect from a blogging platform, but it's a start. Let's put more work into it.
Auth
Add a basic authentication system to your blog. This might sound somewhat complicated, but I won't force you to do this completely on your own. There are a number of tools/gems available that will make the job a lot simpler, but they're too advanced for your current skill level. Plus, we need you to keep learning the inner workings of a Rails application before relying on third-party tools.
Watch this screencast by Ryan Bates, where he covers the entire process of creating a basic authentication system from scratch. Apply that to your blog and make sure only you are able to create and edit posts, and delete comments (but make sure every one can create comments!).
  • Form validation is equally important, and isn't difficult to implement. Refer tothis screencast to make the task easier.
  • Refer to this article for more information on model associations in Rails. You can use the techniques outlined to add tagging to your blog.
This is where you need to get creative. For me, learning a language or framework by following tutorials works well up to a point. The first thing I created after I finished my sample blogging applications was an invoicing application. I found a simple design template online and started working on that. That allowed me to build something useful and according to my needs, while having actual fun!
If you want to follow in my footsteps, download the Twitter Bootstrap web app template (if you wish), so that you may spend more time programming than designing, and build yourself an invoicing application. Try to include authentication, clients, invoices (which should let the user apply a discount and taxes), and invoice items (which should include a description, quantity and price). This will teach you various important parts of a Rails application, such as nested forms.
  • Nested Model Form Parts One and Two: You'll need this the moment you create an invoice, since invoice items will be "nested" inside the invoice form. Watch the videos to learn more.
  • Simple Invoicing App: This is the invoicing app I created to learn Rails. It's built with Rails 3.0.4 though, so keep that in mind. It might be handy to check the models, associations, and JavaScript files.
Learning to program well is a never-ending process. That's why you should subscribe to various blogs and Twitter accounts on the subject. Here's a list of influential Rails people for you to follow on Twitter:
  • @dhh: The creator of Ruby on Rails. Posts insight on new releases and various tips.
  • @rbates: Producer of Railscasts, posts tips and tricks very often.
  • @rails: The official Ruby on Rails Twitter account. Follow them if you want insight on release dates, and development.
  • @rails_apps: They're posting new Rails example apps pretty often, pretty useful.
And here are some websites you should subscribe to:
  • Railscasts: A must! Awesome screencasts about Ruby on Rails, best practices, tips, new gems, etc.
  • Asciicasts: If you're not into watching videos, this site mimics Railscasts' tutorials in text. It's not as up-to-date as the first one, but it's excelent.
  • Nettuts+: While we're not 100% focused on Ruby and Rails, we're posting more and more applicable content these days!
  • The Rails Way: Cool blog with various articles and tutorials.
  • Riding Rails: The official Ruby on Rails blog. They don't post many tips or tutorials, but they announce official releases, so it's good to read it often.
  • Planet Ruby on Rails: A Ruby on Rails blog aggregator. It's no as filtered as reading one of the blogs I listed above, but it's a good resource to check every once in a while.
This lesson plan will turn you into a Rails developer in no time. As you'll find, Rails is an amazing framework, and it continues to get better every single year. I learned Rails using the same tools I recommended above; you should too!
If you have any questions, feel free to ask them in the comments or tweet me. And feel free to share your experience! Tell us how you learned Rails, what tools you used, and how you’re using it today.
--------------------------------------------------------------------------------------------------------------------
Reposted From : http://code.tutsplus.com/tutorials/the-best-way-to-learn-ruby-on-rails--net-21820

The Best Way to Learn Python

Python is more popular than ever, and is being used everywhere from back-end web servers, to front-end game development, and everything in between. Python is a true general purpose language and is quickly becoming a must-have tool in the arsenal of any self-respecting programmer.
But Python isn't popular just because it's popular. It is easy to learn, reads like pseudo-code, and is wickedly agile. However, learning any new language can be a daunting task, and finding the right places and people to learn from is half the battle. That's where this guide can help. This is your blueprint for making Python easy, fun and rewarding to learn.
At the time of this writing, there are two main versions of Python in circulation: Python 2.7 and Python 3.2. Which you choose to learn really doesn't matter too much, as the differences will be minimal—especially to a beginner. But you should know that, while Python 2 has far, far more 3rd party support, Python 3 is the primary focus of the developers designing the language. The choice is yours, but if your code acts differently to any given tutorial, make sure you use the same Python version used in the tutorial.
Wikibooks is always a great source to learn something new, and Python is no exception. Here you will find a solid and to the point series of guides that will teach you the ropes of Python. It doesn't get too technical, and you can jump into coding something somewhat useful and rewarding pretty quickly. Because of this, I recommend this site as the best place to start on your Python journey.
You won't find a better source of information than the official python.orgdocumentation. However, if you want to jump right in, as I'm sure many of you will, this might not be the best place to start.
The content tends to be more technical than wikibooks, which will be helpful later on as you progress through the language. But, for a beginner, it may just get in the way of what really is a very simple and beautiful language.
For beginners, the biggest difference between Python 2 and Python 3 will most likely be that Python 2 can use print without parentheses. Python 3 requires parentheses, but that's all.
TheNewBoston's playlists are always great, and you can learn a whole host of languages. ‘Bucky' is a great instructor because he strikes a really great balance between being funny while also being easy to listen. I highly recommend any of his playlists—especially his Python playlist. He assumes zero prior knowledge of programming and will leave you with a firm grasp of the language.
A little closer to home is Giles Lavelle's intro to Python. Like TheNewBoston's series, Lavelle also assumes zero prior programming experience.
If you want to see some real-world applications of your applications, or would like to aim towards web development with Python, this series might be the one for you.
The screencast takes you from nothing to building a dynamic website using a Python web framework called Django.
StackOverflow isn't just full of 'newbie' errors and problems.
ShowMeDo has a huge catalogue of Python related videos. While it may not be the most user friendly experience around, the videos range in level from absolute beginner to the most advanced Python techniques. It is well worth checking out.
This tutorial is pretty specific in terms of what you're going to learn, and I do not recommend it for a complete beginner. I feel, however, that it's worth a mention. In this guide, Chris Kiehl shows you how to build a very interesting Python bot that will play a simple game for you. The tutorial really goes to show the power of Python; it can be applied to do everyday repetitive tasks that you may have on your computer.
Its hard to beat a good book when your trying to learn something new, and with the great community that has developed around the Python language, there is a plethora of free high quality e-books to choose from. Below is a quick list of some of the best. You can download a free e-book version for each of them, or you can choose to buy the physical book (or donate) if you want to support the author, which I'm sure they would greatly appreciate.
Despite the name, Learn Python The Hard Way makes learning Python incredibly easy—the way it's meant to be! In this book, Zed A. Shaw works from the ground up giving you a detailed and comprehensive guide to Python without getting in your way of the actual coding. Shaw is informal but thorough, making the book an easy but rewarding read.
You won't find a better source of information than the official python.org documentation.
As the sub title might suggest, “How to think like a computer scientist”, Think Python stays a little more towards the theoretical side of things. This may prove a little frustrating for a total beginner, but the book is well worth the read in regards to algorithm theory and high level concepts.
If ‘learning by doing' is your thing, then building your own game will prove to be a rewarding experience! In this book, Al Sweigart assumes no prior knowledge of Python and takes you all the way to building your own game. Given that the book is geared towards game development, the book may move a little quickly for a total beginner. Later on in this article, I mention a similar book of his where he assumes a prior knowledge of Python. If you feel you are have a good grasp of the language, then his other book might be a better resource for you.
If you want to learn Python for web development, then you're probably going to be using the Django framework. This book assumes fluency in Python, but it teaches Django as if you are a beginner to the framework. The Django Book is as good as they come and will be invaluable for any budding web developer.
If you don't have enough to read yet, or want a book on a specific topic, then you should follow this link. The folks over at python.org have complied an extensive list of books, sorted by difficulty and topic.
Thousands of developers have experienced every problem that you are bound to face. StackOverflow is a great resource where developers find solutions to their problems. When you happen upon an error that you're not sure how to fix, search StackOverflow. You will more than likely find a solution and how other people solved their problem.
But StackOverflow isn't just full of 'newbie' errors and problems; there are some really clever and helpful people that use the site - learn from them!
Take a look at the Hidden features of Python thread, for example.
Many of the tips and tricks you see here may not be covered in many formal tutorials, but they will be extremely helpful for intermediate to advanced Python users.
Project Euler (pronounced ‘Oil-er', to save you some embarrassment later on) is one of my favorite websites. After making an account, you can work through the ~400 problems on the website. Each problem is about 50% mathematics and 50% programming and, in my opinion, the most rewarding way to learn more of either subject.
The problems start off easy to test your knowledge of the language, but grow in difficulty to challenge even the most seasoned programmers. Eventually, the difficulty of the problems will force you to find the most efficient algorithm - that is if you don't want to wait hours to compute the answer.
Nothing will turn you into a programming wizard more quickly than pushing yourself for the fastest and most efficient solutions to the Project Euler problems.
When you crack a new problem, you gain access to that problem's forum thread where many people discuss their solutions and ideas with one another. Many of the solutions in later pages of the thread will be in Python. This is really the key to growing your programming prowess. If there is someone with a solution that is faster than yours, take the time to analyze it to see where you could improve your own solution. Over time, you will pick up all the tricks of the trade and grow your Python knowledge in a meaningful and rewarding way.
Additionally, there are also some really great blogs that work through the Project Euler problems in Python. If you are stuck on a problem, there is no shame in having a sneak peak at other developers' work, as long as you intend on learning from it. Here are two of my favorite:
Few things are more satisfying than building your own game.
Few things are more satisfying than building your own game. It can be a steep learning curve, but well worth it and very rewarding. PyGame is the best known game library for Python, and you will be able to find many free tutorials on it. Here are some of the best PyGame tutorials. 
As with the case of the original Python tutorials, the developers of PyGame also have their own intro documentation. But these may be overly technical if you want to jump straight in and start building your game. Developer documentation, however, will always be your best source of information; so, I still recommend you get familiar with the site.
This free e-book by Al Sweigart runs through the PyGame library, taking you from zero knowledge to building a couple of games for yourself. The simple games will provide you with a perfect platform to start your own projects, if you are so inclined. Sweigart provides extensive and detailed comments throughout all of his code to help you learn as you go.
This is another Playlist from TheNewBoston. It serves well as an intro to PyGame. It assumes zero knowledge and gives you a good feel for the PyGame library, but unlike the InventWithPython guide, it is more to the point and won't bring you to making your own full game.
Python is a general purpose language that can do almost anything; so, of course, there is a seemingly endless supply of libraries and tools out there. Here are some of the most popular.
If you ever want to scrape a HTML for some information... BeautifulSoup will do all this for you and add years to your life.
If you are doing some CPU intensive work, and you find that Python is proving itself to be a bottleneck, then maybe you need PyPy. PyPy is an alternative compiler for Python that can really speed up your processing.
These two usually go hand in hand (SciPy is dependent NumPy). If you are doing some serious number crunching for mathematical or scientific research, then these two libraries will be your best friends. NumPy and SciPy extend the mathematical functions and capabilities of Python and can greatly speed up some of your tasks.
BeautifulSoup really is beautiful. If you need to scrape a HTML page for some information, you will know all too well the frustration and hair loss that it can bring. BeautifulSoup will do all this for you and add years to your life. Highly recommended and fun to play around with.
The Python Image Library (PIL) is an extensive library that is great for anything to do with images. If you need to manipulate an image, chances are PIL can do it for you.
As mentioned previously in the article, the Django framework is what you will probably use if your aim is web development. It is the most common web framework for Python and also has the most learning resources available.
After you have a decent grasp of the language, being able to read and understand other people's code is always an important skill to have - not to mention that it is a really great way to learn too.
For this reason, open source projects are great. Github or Bitbucket are the to go-to places for this. Don't worry about people judging your code, you don't have to contribute right away. You are always free to fork a project, tinker with it yourself, and see how things work. If you do happen to see something that you think could be improved, great! Go for it and submit your improvement. That's what open source is for.
I hope I have been able to provide a solid base of Python knowledge for you. If there are other places of interest that you think should have been included in this syllabus, let me know in the comments below to help others out!
------------------------------------------------------------------------------------------------------------------
Reposted From : http://code.tutsplus.com/articles/the-best-way-to-learn-python--net-26288