WEB DEVELOPMENT 101










The Basics
Baseline knowledge 'programming' aspects of web development & install the necessary software on your computer.
The Front End
You'll learn what a framework is, why we use them, and get acquainted with the ones we'll be covering in future courses.
Web Development Frameworks
Tying it All Together
We will introduce you to a variety of essential supporting technologies for your journey into web development.
We'll take a step back and remember where they all fit into the bigger picture.
You'll get to build a webpage with HTML/CSS and learn some
programming fundamentals with Javascript.






Here you'll learn about the back end, where we'll demystify what goes on behind the scenes on a web server.
The Back End
LEARN MORE
LEARN MORE
LEARN MORE
LEARN MORE
LEARN MORE
LEARN MORE
Additional Important

The Basics
This section will cover the baseline knowledge you need before getting into the more 'programming' aspects of web development. You'll also get a chance to install the necessary software on your computer.




How It Works?
This curriculum works by pulling together the best content we can find to learn a particular topic. In each lesson, we'll introduce the topic and try to provide some useful context before pointing you to external resources made by others.
Step 1: How This Course Will Work
On (Not) Getting Pulled Down Rabbit Holes
This course links out to LOTS of high quality learning resources. Students frequently report getting distracted and spending a lot of time playing with those tools or taking the other courses we link to from here.If your goal is to take the shortest possible path to web development, be aware of this risk and try to stay focused on doing our curriculum step by step. Avoid the temptation to go off and learn everything you can about Bash scripting or image optimization or taking an entire MOOC course just because it sounds cool. Focus!
What Comes Afterwards
Once you've completed Web Development 101, you'll be well set up to take those next steps.
Step 2: How Does The Web Work
HTTP, the Hypertext Transfer Protocol, is the application-level protocol that is used to transfer data on the Web. HTTP comprises the rules by which Web browsers and servers exchange information.
HTTP
The Internet's equivalent of a phone book. They maintain a directory of domain names and translate them to Internet Protocol (IP) addresses.
DNS servers
HTML is a computer language devised to allow website creation. These websites can then be viewed by anyone else connected to the Internet.
HTML
CSS is the language for describing the presentation of Web pages, including colors, layout, and fonts.
CSS
Points To Ponder

The contents will be the front end technologies like:
Step 1: How This Course Will Work





HTML is a computer language devised to allow website creation. These websites can then be viewed by anyone else connected to the Internet.
HTML
CSS
CSS is the language for describing the presentation of Web pages, including colors, layout, and fonts. Independent of HTML and can be used with any XML-based markup language.
Javascript
Javascript can interact with HTML source code, enabling Web authors to spice up their sites with dynamic content. JavaScript is endorsed by a number of software companies.
Ruby
Clouds
A dynamic, open source programming language with a focus on simplicity and productivity.
Cloud computing is a model for enabling ubiquitous, conve-
nient,on-demand access to share.
Step 2: How Does The Web Work
The Internet is a global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link several billion devices worldwide.
Internet
A packet is the unit of data that is routed between an origin and a destination on the Internet or any other packet-switched network.
Packets
The client part of a client-server architecture. Typically, a client is an application that runs on a personal computer or workstation and relies on a server to perform some operations.
Clients
Server
Points To Ponder

Step 2: How Does The Web Work
Static Web pages display the exact same information whenever anyone visits it. Static Web pages do not have to be simple plain text. They can feature detailed multimedia design and even videos.
Static Webpages
Dynamic Web pages are capable of producing different content for different visitors from the same source code file. The website can display different content based on what operating system or browser the visitor is using
Dynamic
Webpages
The "inspector" that comes with Chrome and Firefox are great tools for understanding and manipulating and de-bugging HTML and (particularly,) CSS code.
Developer Tools
There are tens of thousands of more or less accurate answers, educated guesses, half truths and myths. Google seems to be providing an answer here but it is not very revealing.
Search
Points To Ponder

The Command Line
That black screen (or window) is the command line, where you're able to enter commands that your computer will run for you. And while that image of a programmer is a bit overdone, the command line really is sort of like our base of operations, from which we'll launch other programs to do our "real developing" in. It has a syntax of its own which is different but not all that difficult to pick up.
Step 3: How Does Your Computer Work
How do you open it on your computer?
Launch The Command Prompt From The Run Window. One of the quickest ways to launch the Command Prompt is to use the Run window (press Win+R on your keyboard to open it). Then, type cmd or cmd.exe and press Enter or click/tap OK.
Command prompt in Mac
Command prompt in Ubuntu
The Mac command line is a program called Terminal. It lives in the/Applications/Utilities/ folder. To find it, go to your Applications folder. Near the bottom, there is a folder called Utilities. Go inside, and one of the applications listed is called Terminal.
Command prompt in Windows
The location of the command line depends on whether you are using the Gnome or KDE window manager. (If there is a big K icon on the bottom left of the screen, you are using KDE; if not, you are using Gnome.) If you are using KDE, click the K button, select System, and click on Konsole. If you are using Gnome, click the Applications button at the top left, select System Tools, and click on Terminal.
Command prompt in Linux
Open the Dash by clicking the Ubuntu icon in the upper-left, type "terminal", and select the Terminal application from the results that appear. Hit the keyboard shortcut
Ctrl - Alt + T








How to navigate into a particular file folder
In Windows
To navigate between folders in the command prompt, you can use the 'CD' command. 'CD' stands for 'Change Directory' and it works as you'd think it would. To get to the 'windows' folder from the C:\> prompt;
type: cd windows
Then, hit the enter key. Your prompt will now read 'C:\WINDOWS>' indicating you are in the 'windows' folder on the 'C:\' drive. Typing 'DIR' now will get you a list of the files in the windows folder.
To go 'back' to the parent folder or drive of the folder you are currently in;
type: cd..
How can you create directory
How to destroy directory
How to rename directory
To create a directory in MS-DOS or the Windows command line, use the md or mkdir MS-DOS command
RMDIR [drive:]path
RD [drive:]path
RD /S /Q "C:\Users\UserName\Desktop\Folder"
Rename dir_oldname dir_newname
This will return you to the C:\> prompt.
Note that you can navigate multiple directories at a time by typing in the full path after the 'CD' command. Let's say you wanted to reach the C:\windows\system32\drivers folder. The easiest way to do this from the C:\> prompt would be to;
type: cd windows\system32\drivers
That command will navigate directly to the folder you are trying to reach. This brings us to changing drives, which is handled differently from changing folders. Instead of using the 'CD' command, you can simply type the drive letter like this;
type: d:
How to navigate into a particular file folder
By typing the drive letter you automatically move to your most recent location in that drive. Now use the 'CD' command to navigate to the desired folder on the new drive.
Why is file permission important
Permissions are important for keeping your data safe and secure. Utilizing permission settings in your computer can benefit you and those you want to give access to your files and you don’t need to open up everything just to share one file or directory (something Windows sharing often does). You can group individual users together and change permissions on folders (called directories) and files and you don’t have to be in the same OU or workgroup or be part of a domain for them to access those files. You can change permissions on one file and share that out to a single group or multiple groups. Fine grained security over your files places you in the driver seat in control of your own data.
The Front End
In this section you'll spend a good deal of time getting familiar with the major client-side languages like HTML, CSS, and Java script. You'll get to build a webpage with HTML/CSS and learn some programming fundamentals with Java script.





Step 1: Introduction to the Front End
The "front end languages" live in the browser. After you type in an address in the address bar at the top and hit Enter, your browser will receive at least an HTML file from the web server. That file will likely tell the browser to go and also ask for a CSS file and a Javascript file as well. Each of these languages performs a separate but very important function and they work harmoniously together to determine how the web page is STRUCTURED (HTML), how it LOOKS (CSS), and how it FUNCTIONS (Javascript). And keep in mind that your browser handles figuring out how to make these files into a functioning webpage (not the server).
Front end web development is NOT design, but a front end developer does apply the work of designers to the webpage by translating their well-designed layouts into real code. The front end developer stands between the designer on one end and the back end developer on the other, translating the design into code and plugging the data from the back end developer into the right spots. You will need to be highly conscious of who your users are and how they will be interacting with your webpage because you are building their gateway to your page or product.

HTML is the language for describing the structure of Web pages. HTML gives authors the means to:
Publish online documents with headings, text, tables, lists, photos, etc.
Retrieve online information via hypertext links, at the click of a button.
Design forms for conducting transactions with remote services, for use in searching for information, making reservations, ordering products, etc.
Include spread-sheets, video clips, sound clips, and other applications directly in their documents.



What is the role of HTML in a web page?
What is the role of CSS in a web page?
What is the role of Javascript in a web page?




What is the role of HTML in a web page?
What is the role of CSS in a web page?
What is the role of Javascript in a web page?
CSS is the language for describing the presentation of Web pages, including colors, layout, and fonts. It allows one to adapt the presentation to different types of devices, such as large screens, small screens, or printers. CSS is independent of HTML and can be used with any XML-based markup language. The separation of HTML from CSS makes it easier to maintain sites, share style sheets across pages, and tailor pages to different environments. This is referred to as the separation of structure from presentation.




What is the role of HTML in a web page?
What is the role of CSS in a web page?
What is the role of Javascript in a web page?
Javascript is the scripting language of the Web. JavaScript is the workhorse of the common Internet page. It is used to carry out the higher, more advanced functions inherent to more and more of today's web pages. JavaScript is used in millions of web pages to add functionality, validate forms, detect browsers, and much more. The main benefit of JavaScript is to add additional interaction between the website and its visitors with just a little extra work by the web developer.
Step 2: HTML and CSS 101
HTML and CSS are two different types of markup (code), which have their own unique syntax (the arrangement in which code is written). There’s an important distinction between the two. You can think of the HTML as the structure for the page, while the CSS gives the HTML it’s styling.
Points To Ponder

Why do we separate HTML and CSS?
Efficiency of code: The larger your files are, the longer they will take to download, and the more they will cost some people to view (some people still pay for downloads by the megabyte.) You therefore don’t want to waste your bandwidth on large pages cluttered up with styling and layout information in every HTML file. A much better alternative is to make the HTML files stripped down and neat, and include the styling and layout information just once in a separate CSS file.
Ease of maintenance If your styling and layout information is only specified in one place, it means you only have to make updates in one place if you want to change your site’s appearance.


What are classes and IDs (and how are they different)?
Use a class when you want to consistently style multiple elements throughout the page/site. Classes are useful when you have, or possibly will have in the future, more than one element that shares the same style.
Use the ID when you have a single element on the page that will take the style. Remember that IDs must be unique. In your case this may be the correct option, as there presumably will only be one "main" div on the page.
A good way to remember this is a class is a type of item and the id is the unique name of an item on the page.
Points To Ponder


What are elements?
The paragraph texts, the page banners, and the navigation links are all elements of the web page. The term element is a just a name given to any piece of a web page. Many HTML elements are actually invisible to visitors and work quietly behind the scenes to provide web crawlers and search engines useful information about the site.
An element consists of three essential pieces: an opening tag, the content, and a closing tag
Points To Ponder


What are attributes?
HTML elements can have attributes. Attributes provide additional information about an element. They are always specified in the start tag. Attributes come in name/value pairs like: name="value"
Points To Ponder


What is a div?
Div, an abbreviation for ‘division’, is an HTML tag (otherwise known as an element). Used to create containers around groups of content on Web pages, it is usually given a unique id to distinguish it from other div elements on the same page.
Points To Ponder


What are selectors?
A CSS selector is the part of a CSS rule set that actually selects the content you want to style. It sets the individual styles for each of your tags.
Points To Ponder


What are forms?
A webform, web form or HTML form on a web page allows a user to enter data that is sent to a server for processing. Forms can resemble paper or database forms because web users fill out the forms using checkboxes, radio buttons, or text fields. For example, forms can be used to enter shipping or credit card data to order a product, or can be used to retrieve search results from a search engine.
Points To Ponder


What are values?
A value is given to the property following a colon (NOT an “equals” sign) and semi-colons separate the properties. It is the amount of which you will adjust all the properties an element can have.
Points To Ponder


What is the "query string" in a URL and what does it do?
A query string is the portion of a URL where data is passed to a Web application and/or back-end database. The reason we need query strings is that the HTTP protocol is stateless by design. For a website to be anything more than a brochure, you need to maintain state (store data). There are a number of ways to do this: On most Web servers, you can use something like session state server-side. On the client, you can store via cookies. Or in the URL, you can store data via a query string.
Points To Ponder


What is the difference between "pixels" and "ems"?
Pixels are the natural unit for measuring dimensions on a screen and are often used when precise design is required. Ems are the natural unit for measuring type and used when you want to allow maximum design flexibility.
Points To Ponder


What are two CSS attributes you can change to push an element around on the page?
Padding which can move the elements around the container or div it is in.The Float attribute sets the where the elements should appear in the web site, whether right, left or clear which is basically none.
Points To Ponder


How do CSS styles for a particular element get inherited? ie. how does an element get its "default" styles?
The idea behind inheritance is relatively easy to understand. Elements inherit styles from their parent container. If you set the body tag to use color: red then the text for all elements inside the body will also be red unless otherwise specified.
Not all CSS properties are inherited, though. For example margins and paddings are non-inherited properties. If you set a margin or padding on a div, the paragraphs inside that div do not inherit the margin and padding you set on the div. The paragraph will use the default browser margin and padding until you declare otherwise.
Points To Ponder


What are the three different ways to include CSS in your project or use CSS to style a particular element?
Inline – you style the element within its tag. This is used for specific styles for specific elements
External – the style is in another file and you just need to include it in your html file. This is used for styling the whole website.
Embedded – the style is located at the head section of the html file.
Points To Ponder


What is the "default stylesheet" or "user agent stylesheet"?
Your user agent is your browser, different browsers set different default CSS rules, try including a reset.css or a normalise.css (Google either one or reset vs normalise to see the differences) to remove those defaults
Points To Ponder


Why use a CSS reset file?
A CSS Reset (or “Reset CSS”) is a short, often compressed (minified) set of CSS rules that resets the styling of all HTML elements to a consistent baseline.
Points To Ponder

Step 3: Javascript 101
Javascript is the in-browser code that gets run to make things on your webpage moveable and clickable, including the dropdown menus and hover affects you use every day. It is not that hard to learn and it is very versatile. It plays nicely with other web technologies — such as HTML and CSS — and can even interact with plugins such as Flash. JavaScript allows us to build highly responsive user interfaces, prevent frustrating page reloads and even fix support issues for CSS.

What is a scripting language?
A scripting language or script language is a programming language that supports scripts, programs written for a special run-time environment that can interpret (rather than compile) and automate the execution of tasks that could alternatively be executed one-by-one by a human operator.
Points To Ponder


What is a variable?
A scripting language or script language is a programming language that supports scripts, programs written for a special run-time environment that can interpret (rather than compile) and automate the execution of tasks that could alternatively be executed one-by-one by a human operator.
Points To Ponder


What is a string?
Strings are useful for holding data that can be represented in text form. Some of the most-used operations on strings are to check their length, to build and concatenate them using the + and += string operators, checking for the existence or location of substrings with the indexOf() method, or extracting substrings with the substring() method.
Points To Ponder


What is an array?
An array is a container object that holds a fixed number of values of a single type. The length of an array is established when the array is created. After creation, its length is fixed.
Points To Ponder


What is a Boolean?
A Boolean value is one with two choices: true or false, yes or no, 1 or 0. In Java, there is a variable type for Boolean values:
So instead of typing int or double or string, you just type boolean (with a lower case "b"). After the name of you variable, you can assign a value of either true or false. Notice that the assignment operator is a single equals sign ( = ). If you want to check if a variable "has a value of" something, you need two equal signs ( = =).
Points To Ponder


What is an event?
An event generally occurs when something changes within a graphical user interface. If a user clicks on a button, clicks on a combo box, or types characters into a text field, etc. Then an event will trigger.
The graphical component generating the event is known as an event source. The event source will then send out an event object - it will contain information about the event. For example, an identifier for the component that generated the event.
Points To Ponder

Step 3: JQuery Basics
jQuery is a library of commonly used javascript widgets and functions that has more or less taken the internet by storm. It's written in javascript and it means that you don't have to go through the pain of building a popup modal dialog box or a dropdown menu, for example, the long way. It also gives you the incredibly easy ability to select elements on the webpage ("DOM elements") so you can start modifying their properties, whether that's hiding them, moving them, changing their contents
jQuery will let you take your javascript knowledge and start really diving into your webpages and messing with the elements.

What is the DOM?
One of the most important aspects of JavaScript and thereby jQuery, is manipulation of the DOM. DOM stands for Document Object Model and is a mechanism for representing and interacting with your HTML, XHTML or XML documents. It allows you to navigate and manipulate your documents through a programming language, which in the browser will almost always be JavaScript. DOM navigation and manipulation using standard JavaScript can be pretty cumbersome, but fortunately for us, jQuery comes with a bunch of DOM related methods, making it all much easier.
Points To Ponder


How can you interact with the DOM?
Iterating Through Nodes
Modifying Object Properties
Accessing Attributes
Modifying Attributes
Modifying Multiple Attributes
Adding and Removing Nodes
Appending to Nodes
Wrapping Elements
Removing Nodes
Points To Ponder


How can you add elements to the DOM?
To add a new element to the HTML DOM, you must create the element (element node) first, and then append it to an existing element.
Points To Ponder


How can you modify the contents of an element?
A few of these methods—such as .attr(), .html(), and .val()—also act as "getters," retrieving information from DOM elements for later use.
All of the methods stated manipulate the DOM in some manner. A few of them simply change one of the attributes of an element (also listed in the Attributes category), while others set an element's style properties (also listed in the CSS category). Still others modify entire elements (or groups of elements) themselves—inserting, copying, removing, and so on. All of these methods are referred to as "setters," as they change the values of properties.
Points To Ponder


Here you'll learn about the back end, where we'll demystify what goes on behind the scenes on a web server. You'll get to take a crack at Ruby, the sublimely awesome language that runs Ruby on Rails.
The Back End




Step 1: Introduction Back End
The three languages of the front end are fairly standardized -- HTML for markup, CSS for presentation, and Javascript for scripting. The back end is a different story... you can run pretty much anything you want to on your server since it doesn't rely on your user's browser understanding what's going on. All the browser cares about is whether you've sent it properly formatted HTML, CSS and Javascript files (and other assets like images). That's led to a whole lot of different choices for back-end languages. As long as it can take in an HTTP request and spit out some HTML, you can probably put it on a server somehow.
Some of the most popular server-side languages are PHP, ASP.NET, Ruby, Python and Java (not to be confused with Javascript). And just like I can say "which way to the nearest pub?" in Swedish, French, Italian, English and Bad English, all of those languages can perform almost exactly the same functions, just using different syntaxes.
The difference between front- and back-end development
You should understand
FRONT END
BACK END
When we discuss the “frontend” of the web, what we’re really talking about is the part of the web that you can see and interact with. The frontend usually consists of two parts: the web design and front end web development.
So now when we discuss the term “web design”, we’re really talking about those that work with Photoshop and Fireworks, and those that code using HTML, CSS, JavaScript or jQuery (it might be important here to state that jQuery is a compiled library of Javascript).
The backend usually consists of three parts: a server, an application, and a database. If you book a flight or buy concert tickets, you usually open a website and interact with the frontend. Once you’ve entered that information, the application stores it in a database that was created on a server. For sake of ease, just think about a database as a giant Excel spreadsheet on your computer, but your computer (server) is stored somewhere in Arizona.
Why you need to install Ruby but not Javascript
You should understand
RUBY
JAVA
SCRIPT
Ruby is pretty darn close to Python. In some ways, they sort of resemble romance languages once you've learned one, it's not terribly hard to pick up another because they tend to follow many of the same conventions, just using different "words". Python tends to be taught more in colleges and is used a fair bit for more data-intensive and processor-heavy applications.
But Ruby has a secret weapon that makes it the love of fast-iterating website producers -- the framework Ruby on Rails (which we'll cover in the next section on Frameworks). It has been optimized for being able to write code faster and with less headache, which allows you to iterate more frequently when building a website. By so doing, the end product is more likely to suit the client or the user's needs, making your first mission as an engineer a success.
With either of the languages, there are a couple of things that aren't immediately intuitive but become very useful when you understand them. These are the quirks and nifty tricks that you didn't see in Javascript.
In this lesson we'll do a healthy introduction to Ruby and then, later on in the full Ruby course, you'll get to understand it like the back of your hand.
NOT
A primary key is a special relational database table column (or combination of columns) designated to uniquely identify all table records.
A primary key’s main features are:
It must contain a unique value for each row of data.
It cannot contain null values.
A primary key is either an existing table column or a column that is specifically generated by the database according to a defined sequence.
Points To Ponder
Primary Key

Step 2: Ruby Basic
Our back end focus will be on Ruby, the language designed for programmer happiness. What takes dozens of lines of code in Java or a hundred in C could take just a couple in Ruby because it prepackages lots of sneaky functions into easy-to-use convenience methods.
Ruby is pretty darn close to Python. In some ways, they sort of resemble romance languages -- once you've learned one, it's not terribly hard to pick up another because they tend to follow many of the same conventions, just using different "words". Python tends to be taught more in colleges and is used a fair bit for more data-intensive and processor-heavy applications.
In computer programming, an iterator is an object that enables a programmer to traverse a container, particularly lists. Various types of iterators are often provided via a container's interface. Though the interface and semantics of a given iterator are fixed, iterators are often implemented in terms of the structures underlying a container implementation and are often tightly coupled to the container to enable the operational semantics of the iterator. Note that an iterator performs traversal and also gives access to data elements in a container, but does not perform iteration (i.e., not without some significant liberty taken with that concept or with trivial use of the terminology). An iterator is behaviorally similar to a database cursor. Iterators date to the CLU programming language in 1974.
Points To Ponder
Interartor

In computer science, array programming languages (also known as vector or multidimensional languages) generalize operations on scalars to apply transparently to vectors, matrices, and higher-dimensional arrays.
Array programming primitives concisely express broad ideas about data manipulation. The level of conciseness can be dramatic in certain cases: it is not uncommon to find array programming language one-liners that require more than a couple of pages of Java code.
Points To Ponder
Array

A language that requires a compiler program to turn programming source code into an executable machine-language binary program. After compiling once, the program can continue to be run from its binary form without compiling again. Compiled languages/programs tend to be faster than interpreted or p-code languages, but require compilers (which can be expensive), and are often more difficult to program in than interpreted and p-code languages. Examples of compiled languages are C and C++, COBOL, and FORTRAN.
Points To Ponder
Compiled Language

In computer science, an object is a location in memory having a value and possibly referenced by an identifier. An object can be a variable, a data structure, or a function. In the class-based object-oriented programming paradigm, "object" refers to a particular instance of a class where the object can be a combination of variables, functions, and data structures. In relational database management, an object can be a table or column, or an association between data and a database entity (such as relating a person's age to a specific person).
Points To Ponder
Objects

In computer programming, a block is a section of code which is grouped together. Blocks consist of one or more declarations and statements. A programming language that permits the creation of blocks, including blocks nested within other blocks, is called a block-structured programming language. Blocks are fundamental to structured programming, where control structures are formed from blocks.
The function of blocks in programming is to enable groups of statements to be treated as if they were one statement, and to narrow the lexical scope of variables, procedures and functions declared in a block so that they do not conflict with variables having the same name used elsewhere in a program for different purposes. In a block-structured programming language, the names of variables and other objects such as procedures which are declared in outer blocks are visible inside other inner blocks, unless they are shadowed by an object of the same name.
Points To Ponder
Block

In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).In many languages, the class name is used as the name for the class (the template itself), the name for the default constructor of the class (a subroutine that creates objects), and as the type of objects generated by instantiating the class; these distinct concepts are easily conflated.
Points To Ponder
Class

In computer science, a library is a collection of non-volatile resources used by computer programs, often to develop software. These may include configuration data, documentation, help data, message templates, pre-written code and subroutines, classes, values or type specifications. In IBM's OS/360 and its successors they are referred to as partitioned data sets.
Points To Ponder
Library

A method (or message) in object-oriented programming (OOP) is a procedure associated with an object class. An object is made up of behavior and data. Data is represented as properties of the object and behavior as methods. Methods are also the interface an object presents to the outside world. For example a window object would have methods such as open and close. One of the most important capabilities that a method provides is method overriding. The same name (e.g., area) can be used for multiple different kinds of classes. This allows the sending objects to invoke behaviors and to delegate the implementation of those behaviors to the receiving object. For example an object can send an area message to another object and the appropriate formula will be invoked whether the receiving object is a rectangle,circle, triangle, etc.
Points To Ponder
Methods

A hash is a data structure that stores items by associated keys. This is contrasted against arrays, which stores items by an ordered index. Entries in a hash are often referred to as key-value pairs. This creates an associative representation of data.Most commonly, a hash is created using symbols as keys and any data types as values. All key-value pairs in a hash are surrounded by curly braces {} and comma separated.
Points To Ponder
Hashes

(IRB or irb) is a REPL for programming in the object-oriented scripting language Ruby. The abbreviation irb comes from the fact that the filename extension for Ruby is ".rb", although interactive Ruby files do not have an extension of ".irb". The program is launched from a command line and allows the execution of Ruby commands with immediate response, experimenting in real-time. It features command history, line editing capabilities, and job control, and is able to communicate directly as a shell script over the Internet and interact with a live server. It was developed by Keiju Ishitsuka.
Points To Ponder
Interactive Ruby Shell

Step 3: Testing
Testing is one of those things that people often don't think about when they decide to learn about web development but it's critically important to the production of professional quality applications and it will save you tons of time and headache in the end.
Let's say you're building a simple website and you've got a couple of pages linked together with a simple navigation bar at the top. You make some changes to the code and want to know if the website still works. So you open up your local version of the webpage and click through each of the buttons on the navigation bar to make sure they each still lead to the right location. Not too difficult, is it? It doesn't take too long, and it doesn't seem like such a bad way of doing things.
Web testing is the name given to software testing that focuses on web applications. Complete testing of a web-based system before going live can help address issues before the system is revealed to the public. Issues such as the security of the web application, the basic functionality of the site, its accessibility to handicapped users and fully able users, as well as readiness for expected traffic and number of users and the ability to survive a massive spike in user traffic, both of which are related to load testing.
Points To Ponder
Web Testing

Rubyists call it RubyGems (one word), or just "gems" for short. There are two main sides to this term. The first side refers to a collection of Ruby files, or Ruby library, that performs a certain task. The other side refers to the publishing system that is behind organizing, listing, and publishing those libraries, or gems.The publishing system behind RubyGems is designed to let you download, publish and use useful ruby libraries on your system. That system is powered by the website rubygems.org. The libraries that the system publishes are called "gems".
Points To Ponder
Gem

Legacy code is source code that relates to a no-longer supported[citation needed] or manufactured operating system or other computer technology. The term can also mean code inserted into modern software for the purpose of maintaining an older or previously supported feature — for example supporting a serial interface even though many modern systems do not have a serial port. It may also be in the form of supporting older file formats[citation needed] that may have been encoding in non-ASCII characters, such as EBCDIC
Points To Ponder
Legacy Code

If we all had identical computers running identical software website testing would be a breeze. But we don’t.
Do your website visitors have a PC or a Mac? What browser are they using? Internet Explorer? Firefox? Safari? Chrome? And what version is that browser? Do they have javascript turned off? Do they allow images? What font size do they use as their default? Do they have a user-defined stylesheet? What is their screen resolution? What about your handicapped and impaired visitors? What will their experience be? As you can see, unlike printed media a website can be viewed on any number of systems that offer seemingly endless variables to take into account when designing a website. And this is why website designers have to test
Points To Ponder
Why we have to test a Web

Everyone does testing a little differently. Some teams still rely heavily on a Quality Assurance (QA) department with people manually executing checklists like we described in the example above. Some people use an approach called Test Driven Development (TDD) in which they write the (failing) test first and only then do they actually write the code necessary to make it pass, and thus very deliberately build the application out with 100% test coverage. Others prefer to keep their test suites fairly light and will only write tests for the major interactions on their pages and any bugs that they have to fix along the way (to make sure they don't come back).
Points To Ponder
Approach To Testing

RSpec is a behavior-driven development (BDD) framework for the Ruby programming language, inspired by JBehave. It contains its own mocking framework that is fully integrated into the framework based upon JMock. The framework can be considered a domain-specific language (DSL) and resembles a natural language specification.
Points To Ponder
Rspec

Step 4: Databases
Databases are kind of hidden in the back of the web application so people treat them with a sort of suspicion and awe. That's nonsense and you should get over it -- your database and you are going to become very good friends (or at least frenemies). By the end of this curriculum, you're going to understand what's going on with your databases and be able to interact with them like a pro (and probably better than some people you'll work with). This lesson is a teaser for that.
Compared to a normal programming language like you've already learned, SQL (Structured Query Language), which is used to query databases, is a very simple syntax... there are only a small handful of verbs to learn. What trips people up is that you need to be able to visualize in your head what it's going to be doing. We'll spend a fair bit of time on SQL and databases because they're so fundamental, but for now we'll just cover enough to get you familiar with what's going on in there.
A database is a collection of information that is organized so that it can easily be accessed, managed, and updated. In one view, databases can be classified according to types of content: bibliographic, full-text, numeric, and images.
A relational database is a collection of data items organized as a set of formally-described tables from which data can be accessed or reassembled in many different ways without having to reorganize the database tables. The relational database was invented by E. F. Codd at IBM in 1970.
Points To Ponder
Database

Relational databases are better for handling large volumes of data within a system. They have mature management systems that can efficiently and reliably maintain large quantities of structured data. This data can be updated via transactions that ensure the integrity of the database and the content can be extracted very quickly when properly configured. There is no equivalent XML management system, and using XML documents directly for storing and maintaining large volumes of data can prove both inefficient and unreliable.
Points To Ponder
Relational Database

XML documents contain both the data and the informative relationship structuring of that data in a that both machines and people can read. An XML document can be electronically transmitted from one party to another and all the information is carried with it, so they are self describing. Databases, although self-describing to a knowledgeable database technologist using appropriate tools, are not generally transmitted in their entirety from one party to another.
Since XML does a very good job of delivering self-describing data feeds it has become a key standard in Service Oriented Architectures (SOA) and Web Services.
Points To Ponder
XML

SQL stands for Structured Query Language. SQL language is used to create, transform and retrieve information from RDBMS (Relational Database Management Systems). SQL is pronounced SEQUEL. SQL was developed during the early 70’s at IBM
Points To Ponder
SQL

SQL Server is a Relational Database Management System. Data is stored is Tables consisting of columns and rows. Tables can be linked, or “Related”, to one another. Tables and objects that belong to the same family or require similar security are collectively stored in a Database.
Points To Ponder
SQL Server

The SELECT statement is used to select data from a database.The result is stored in a result table, called the result-set.
SQL SELECT Syntax
SELECT column_name,column_name
FROM table_name;
and SELECT * FROM table_name;
Points To Ponder
How do you get all the records from a table in SQL?

It is possible to write the INSERT INTO statement in two forms.The first form does not specify the column names where the data will be inserted, only their values:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
The second form specifies both the column names and the values to be inserted:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
Points To Ponder
How do you insert a record in SQL?

A foreign key is a column (or columns) that references a column (most often the primary key) of another table. The purpose of the foreign keyis to ensure referential integrity of the data. In other words, only values that are supposed to appear in the database are permitted.
Points To Ponder
Foreign Key

You've probably heard about 'Ruby on Rails' and 'Backbone.js' and other sleek-sounding development frameworks. In this section, you'll learn what a framework is, why we use them, and get acquainted with the ones we'll be covering in future courses.
Web Development Frameworks



Step 1: Introduction to Frameworks
If you're programming with Ruby or any other language, you pretty much start with a blank text file and go from there. Programmers, the best of whom are pretty lazy folk (in a good way), got tired of having to write the same code over and over and over again just to cover the basic tasks that they wanted their applications to perform. So they batched that recycled code together and called it a framework.
In addition to preventing repetition, frameworks provide great organization. They tend to force you to organize your files and code in a way that keeps it highly modular and really clean.
You'll Need to Know
Framework
Frameworks are typically (though not always) open-source and their license allows you to use them, modify them, make money off them, sell products with them etc. A framework is generally more comprehensive than a protocol and more prescriptive than a structure.
Programming language
Programming Language is a specified, standardized method of communication between the programmer and computer. It is a pure abstraction that specifies its structure, syntax and semantics implementations of the language are generally considered part of the environment in which the programmer develops, and incorporate the compiler and any virtual machine implementation.
Framework is a standardized set of pre-written code libraries designed to be used and reused by developers, and is again tied more to the environment. An environment is the intersection of the language, framework, virtual machine or runtime (an abstraction layer in which managed or interpreted code is translated from a machine-independent form into native code) and machine (the hardware layer on which native instructions are executed).
Framework
vs
Step 2: Backbone.js
Backbone.js is a JavaScript library with a RESTful JSON interface and is based on the model–view–presenter (MVP) application design paradigm. Backbone is known for being lightweight, as its only dependency is on one JavaScript library, Underscore.js. It is designed for developing single-page web applications, and for keeping various parts of web applications (e.g. multiple clients and the server) synchronized.
A brief introduction to get you introduced to Backbone.js, a popular front-end web development framework we'll be covering in a separate course later.
This section has a bunch of short lessons that will introduce you to a variety of essential supporting technologies for your journey into web development.

Additional Important




Step 1: Git Basics
Git is the most popular distributed version control system used for software development. It is used to efficiently maintain and manage code for a project, is free and open source, has an emphasis on speed and data assurance, and allows for multiple workflows which can branch out or merge as needed.
Points to Ponder
How do you commit changes?
By typing a git command, "git commit -m "Your message". It will move the files from staged to unmodified. Type "git status" prior to commit. You can see "Changes to be committed:". Type "git status" again after commit, you will see "nothing to commit, working directory clean".
The other way is typing a git commit -am "Your message", which will both stage and commit changes.

Points to Ponder
Git
Git is the most popular distributed version control system used for software development. It is used to efficiently maintain and manage code for a project, is free and open source, has an emphasis on speed and data assurance, and allows for multiple workflows which can branch out or merge as needed.

Points to Ponder
VCS
Veritas Cluster Server (also known as VCS and also sold bundled in the SFHA product) is a High availability cluster software, for Unix, Linux and Microsoft Windows computer systems, created by Veritas Software (now part of Symantec. It provides application cluster capabilities to systems running other applications, including databases, network file sharing, and electronic commerce websites.

Points to Ponder
SCM
Supply chain management (SCM) is the management of the flow of goods and services.It includes the movement and storage of raw materials , work-in-process inventory, and finished goods from point of origin to point of consumption. Interconnected or interlinked networks, channels and node businesses are involved in the provision of products and services required by end customers in a supply chain. Supply chain management has been defined as the "design, planning, execution, control, and monitoring of supply chain activities with the objective of creating net value, building a competitive infrastructure, leveraging worldwide logistics, synchronizing supply with demand and measuring performance globally.

Points to Ponder
What does it mean to host your application in the cloud?
An explanation of Cloud Hosting, how it works and how it can be used. ... deployapplications, store, scale and protect your data in our Global VDC zones. ... install their own choice of software environment before building their web application.

Points to Ponder
Why Git is useful for a team developers
Using Git allows a team of developers to independently work alongside one another, while having the ability to seamlessly implement those changes to the main project. It also helps situations where independent developers work may contradict each other, by showing changes and allowing the developers to choose which ones they would like to keep.

Points to Ponder
Why Git is useful for developers
Git version control system is useful for a developer because it allows the developer the ability to access previous versions of their project, essentially being able to rewind time if they decide that a previous commit is better suited for their needs; be it a current implementation isn't working out, or to investigate changes to find where any problems may exist.

Points to Ponder
How do you check the status of your current repo in git?
$ git status
# On branch master
nothing to commit (working directory clean)
The command checks the status and reports that there’s nothing to commit, meaning the repository stores the current state of the working directory, and there are no changes to record.
We will use the git status, to keep monitoring the states of both the working directory and the repository.

Points to Ponder
What is "Forking" a repo?
Making a copy of another master repo into your own github account so as to not disturb the master in order to do work on it, make changes and/or corrections and later submit for a pull request

Points to Ponder
What is the difference between committing your changes and pushing them to Github?
Committing your changes will only save them in your local repository. Pushing them to Github will save them to your remote repository.

Points to Ponder
How do you create it on Github?
In the upper-right corner of any page, click , and then click New repository.
Create a short, memorable name for your repository. For example, "hello-world".
Optionally, add a description of your repository. For example, "My first repository on GitHub."
Choose between creating a public or private repository.
Public repositories are a great choice for getting started! They're visible to any user on GitHub, so you can benefit from a collaborative community.
Private repositories require a little more setup. They're only available to you, the repository owner, as well as any collaborators you choose to share with. Private repositories are only available for paid accounts.
Select Initialize this repository with a README
Click Create repository.

Points to Ponder
What is a "Pull Request"?
A pull request is when you contribute to someones else's project, and you let them know that you have made changes that they can look over and possibly implement into their project.

Points to Ponder
What is a "Merge"?
A merge is when you take the changes you've made on one branch, and bring them into another branch to update it with the new changes.

You've almost certainly heard of the Cloud before and have maybe also heard of SAAS. The Cloud is really just a way of saying "stored out on the Internet somewhere", which really means "stored on someone else's systems that they let us access using the Internet". With more and more of the world in possession of 24/7 internet access, that's not necessarily a bad thing. For software, it has been a great thing.
Points to Ponder
What are the major areas where a web application is vulnerable?
Remote code execution
SQL Injection
SQL Injection
Cross Site Scripting
Username enumeration

Points to Ponder
SAAS
SaaS is a method of software delivery that allows data to be accessed from any device with an Internet connection and web browser. In this web-based model, software vendors host and maintain the servers, databases and code that constitute an application. This is a significant departure from the on-premise software delivery model. First, companies don’t have to invest in extensive hardware to host the software, and this in turn, allows buyers to outsource most of the IT responsibilities typically required to troubleshoot and maintain the software. The SaaS vendor takes care of it all.

Points to Ponder
Cloud Comptuting
The practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer.

Points to Ponder
What does it mean to host your application in the cloud?
An explanation of Cloud Hosting, how it works and how it can be used. ... deployapplications, store, scale and protect your data in our Global VDC zones. ... install their own choice of software environment before building their web application.

Points to Ponder
Advantage for SaaS (hosted) solutions:
Shared maintenance and development costs. Essentially, your store has the benefit of sharing costs with plenty of other ecommerce retailers. CAVEAT: this is only truly and advantage if your software provider has lots of other retailers to share that cost with AND if they actually reinvest funding into their software (SaaS ecommerce is almost pure profit if you have a scalable infrastructure framework so the software provider may opt to invest more in marketing or new client acquisition).
Standardized training materials and technical support. Often one of the unappreciated elements of SaaS carts is they have fairly well documented user manuals. This brings your cost for training onboarding new staff and maintaining your store down.

Points to Ponder
What is the difference between staging and committing changes?
Staging is moving files from Modified to Staged by issuing a git command, "git add your_file", "git add . ", or "git add -A". Committing is moving files from Staged to Unmodified.

Points to Ponder
Disadvantages for SaaS (hosted solutions):
The "crowd benefit" is only a benefit if you're okay with being one of the crowd. Inherently, SaaS models require that you work within the confines of commonly demanded / needed features. Usually, this means that if you compare a hosted solution to an open source solution, you'll find that the hosted solution is a year or more behind the capabilities availed by technology on the market. You'll be hard pressed to find a SaaS store that is cutting edge- look at a front runner in ecommerce like Fab.com and then ask Shopify / Bigcommerce / Volusion to show something as capable, and you'll get nothing in response. (Please understand, that I'm talking about functionality and not surface aesthetics).

Step 3: Security, SSL ,and Best Practices
There are a couple of basic areas where security is particularly important -- authenticating users, creating secure connections and securing your databases. Luckily, the tools we'll be learning have already figured out good solutions to most of these problems.
Points to Ponder
Why is security for an application important?
According to Verizon’s preview of its 2011 annual data breach report1 92% of breaches reported were from external attackers. As the sophistication of network level protection has increased, hackers have discovered a target rich environment in vulnerable websites.

Points to Ponder
How is HTTPS different from HTTP?
It is always necessary to know something about basics before going to the advanced topics. HTTP stands forHyperText Transfer Protocol. It is the system for transmitting and receiving information across server and the client. The Server is the machine where your website code is placed and client is nothing but your browser. HTTP manages the mutual understanding between server and the client to exchange information or data successfully. The first HTTP had only one method called as GET, which would request a page from server and the response was a HTML page. The latest version of HTTP defines nine request methods.

Points to Ponder
What is HTTPS
HTTPS or Secure HTTP some may call it is a combination of Hypertext Transfer Protocol (HTTP) with SSL/TLS protocol. Now everything you communicate over HTTPS will be sent and received in encrypted form, which adds the element of safety.

Points to Ponder
What is an SSL certificate?
SSL certificate sare small data files that digitally bind a cryptographic key to an organization's details. When installed on a web server, it activates the padlock and the https protocol (over port 443) and allows secure connections from a web server to a browser.

Step 3: FTP Basics
The File Transfer Protocol (FTP) is a standard network protocol used to transfer computer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and uses separate control and data connections between the client and the server.
Points to Ponder
When and how FTTP used?
To transfer files between computers on a network.
You canuse FTP to exchange files between computer accounts, transfer files between an account and a desktop computer, or access online software

Points to Ponder
FTTP
The File Transfer Protocol (FTP) is a standard network protocol used to transfer computer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and uses separate control and data connections between the client and the server.

Tying It All Together
Now that you've had a healthy taste of all the major components in a web application, we'll take a step back and remember where they all fit into the bigger picture.




Step 1: How Website Build In Real World
You will be building applications either for yourself or someone else, and in either case that application will be part of a greater project with some sort of user-focused goal, i.e. what does it enable the user to do? So it should be pretty obvious that the application is just a part of a larger whole, and in the real world you'll be interacting with multiple people during the process of its creation.
Points To Ponder
Major components of ruby rails
Points To Ponder
Active Support is a compatibility library including methods that aren't necessarily specific to Rails.
Active Model hooks into features of your models that aren't really about the database
Active Record is an Object-Relational Mapper (ORM). That means that it maps between Ruby objects and tables in a SQL database.
Action Pack does routing - the mapping of an incoming URL to a controller and action in Rails.
Action Mailer is used to send out email, especially email based on templates.

Points To Ponder
What is waterfall Development?
Points To Ponder
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. Waterfall development has distinct goals for each phase of development. Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. It is the same with waterfall development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back.

Points To Ponder
What is waterfall development good for?
Points To Ponder
This model is simple and easy to understand and use.It is easy to manage due to the rigidity of the model each phase has specific deliverables and a review process.In this model phases are processed and completed one at a time. Phases do not overlap.Waterfall model works well for smaller projects where requirements are very well understood.

Points To Ponder
What is agile development?
Points To Ponder
Agile is an iterative, team-based approach to development. This approach emphasizes the rapid delivery of an application in complete functional components. Rather than creating tasks and schedules, all time is “time-boxed” into phases called “sprints.” Each sprint has a defined duration (usually in weeks) with a running list of deliverables, planned at the start of the sprint. Deliverables are prioritized by business value as determined by the customer. If all planned work for the sprint cannot be completed, work is reprioritized and the information is used for future sprint planning.

Points To Ponder
What is agile good for?
Points To Ponder
The customer has frequent and early opportunities to see the work being delivered, and to make decisions and changes throughout the development project.
The customer gains a strong sense of ownership by working extensively and directly with the project team throughout the project.
If time to market for a specific application is a greater concern than releasing a full feature set at initial launch, Agile can more quickly produce a basic version of working software which can be built upon in successive iterations.
Development is often more user-focused, likely a result of more and frequent direction from the customer.

Points To Ponder
What is DRY means?
Points To Ponder
Don’t repeat yourself (DRY) is a principle of software development, aimed at reducing repetition of information of all kinds, especially useful in multi-tier architectures. The DRY principle is stated as “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.”

Points To Ponder
What is a user “ROLES”?
Points To Ponder
A user role defines permissions for users to perform a group of tasks. In a default WordPress installation there are some predefined roles with a predefined set of permissions. These roles are Super Admin, Administrator, Editor, Author, Contributor, and Subscriber. Each roles has a certain number of set tasks it is allowed to perform that are known as “capabilities”. There are numerous capabilities including “moderate_comments”, “publish_posts”, and “edit_users”..

Points To Ponder
What is a user “STORY"?
Points To Ponder
A user story is a tool used in Agile software development to capture a description of a software feature from an end-user perspective. The user story describes the type of user, what they want and why. A user story helps to create a simplified description of a requirement.
An Agile user story is meant to be short, usually fitting on a sticky note or note card. The user stories should be written by the business in the language of the customer so that it is clear to both the business and the development team what the customer wants and why he wants it. The development team's job is to take care of how to develop the code that will satisfy the requirements of the user story. In best-case scenarios, developers collaborate closely with the business owners to clarify the details as the code gets developed.

Points To Ponder
What's the difference between a "Feature" and a story?
Points To Ponder
A feature is a distinct element of functionality which can provide capabilities to the business.
A story is a small aspect of a feature which you can use to get feedback from your stakeholders and find out if you're doing anything wrong.
For instance, a feature might be "allow users to comment on articles". The stories associated with that feature might then be:
save comments,filter comments for rude words,limit comments to 400 characters and feed back to users,add captchas to stop bots spamming the site,allow users to log in via Google id

Points To Ponder
What members of a team typically work together to produce a web application?
Points To Ponder
A web developer is a programmer who specializes in, or is specifically engaged in, the development of World Wide Web applications, or distributed network applications that are run over HTTP from a web server to a web browser.
A systems analyst is an IT professional who specializes in analyzing, designing and implementing information systems. Systems analysts assess the suitability of information systems in terms of their intended outcomes and liaise with end users, software vendors and programmers in order to achieve these outcomes. A systems analyst is a person who uses analysis and design techniques to solve business problems using information technology. Systems analysts may serve as change agents who identify the organizational improvements needed, design systems to implement those changes, and train and motivate others to use the systems.

Points To Ponder
What members of a team typically work together to produce a web application?
Points To Ponder
A web developer is a programmer who specializes in, or is specifically engaged in, the development of World Wide Web applications, or distributed network applications that are run over HTTP from a web server to a web browser.
A systems analyst is an IT professional who specializes in analyzing, designing and implementing information systems. Systems analysts assess the suitability of information systems in terms of their intended outcomes and liaise with end users, software vendors and programmers in order to achieve these outcomes. A systems analyst is a person who uses analysis and design techniques to solve business problems using information technology. Systems analysts may serve as change agents who identify the organizational improvements needed, design systems to implement those changes, and train and motivate others to use the systems.

Step 2: Principles of Good Programming
There are a handful of generally accepted principles of good programming. Common expressions like "be lazy" and "don't repeat yourself" go a long way. You'll hear them used by name more than a few times in the coming months but it's good to get familiar with them up front.
Points To Ponder
What does DRY stand for and why is it relevant to you?
Points To Ponder
Don’t repeat yourself (DRY) is a principle of software development, aimed at reducing repetition of information of all kinds, especially useful in multi-tier architectures. The DRY principle is stated as “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.”

Points To Ponder
What does KISS stand for and why do engineers love it?
Points To Ponder
ISS is an acronym for "Keep it simple, stupid" .The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore simplicity should be a key goal in design and unnecessary complexity should be avoided. Variations on the phrase include "Keep it Simple, Silly", "keep it short and simple", "keep it simple and straightforward" and "keep it small and simple".

Points To Ponder
MVC
Points To Ponder
Model: The business entity on which the overall application operates. Many applications use a persistent storage mechanism (such as a database) to store data. MVC does not specifically mention the data access layer because it is understood to be encapsulated by the Model.
View: The user interface that renders the Model into a form of interaction.
Controller: Handles a request from a View and updates the Model that results in a change of the Model's state

Points To Ponder
What is "You ain't gonna need it?" (YAGNI)
Points To Ponder
"You aren't gonna need it (acronym: YAGNI)[ is a principle of extreme programming (XP) that states a programmer should not add functionality until deemed necessary.
"Always implement things when you actually need them, never when you just foresee that you need them."Even if you're totally, totally, totally sure that you'll need a feature later on, don't implement it now. Usually, it'll turn out either a) you don't need it after all, or b) what you actually need is quite different from what you foresaw needing earlier.

Points To Ponder
TETO -- test early, test often
Points To Ponder
Testing early and often means that bugs, hiccups or defects of any size can be highlighted and fixed as part of the development process, improving the quality and security of the software and saving valuable time. Testing the code early and often throughout the development process means that the developers writing the software can identify potential bugs more easily, putting them right as they go. It’s much easier to get your head around a potential defect if you find out about it when you build the software and it’s in your current thinking than someone asking you to delve into some code several months after it was written.

Points To Ponder
How "Don't Make Me Think" is applicable to far more than just writing code?
Points To Ponder
As a rule, people don’t like to puzzle over how to do things. If people who build a site don’t care enough to make things obvious it can erode confidence in the site and its publishers. The web interface should be user friendly, must have descriptive buttons and must be easily understand by those people who are not computer literate.

Step 3: Conclusion
You've come a long way up the learning curve but there is so much more cool stuff that you'll learn to do!
With what you know already, you could start putting together some basic websites or strike out to increase your knowledge on your own. You should be able to create a basic web page and make it do some basic things with Javascript. You should also be able to write a simple Ruby script, test it, and describe what Rails and Backbone actually are. Finally, you should have a clear understanding of how all this fits together in your future as a builder of web applications.
WEB DEVELOPMENT 101









deck
By Micah Babon
deck
- 1,354