Application (Layer 7)
This layer supports application and end-user processes. Communication partners are identified, quality of service is identified, user authentication and privacy are considered, and any constraints on data syntax are identified. Everything at this layer is application-specific. This layer provides application services for file transfers, e-mail, and other network software services. Telnet and FTP are applications that exist entirely in the application level. Tiered application architectures are part of this layer.
Presentation (Layer 6)
This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer formats and encrypts data to be sent across a network, providing freedom from compatibility problems. It is sometimes called the syntax layer.
Session (Layer 5)
This layer establishes, manages and terminates connections between applications. The session layer sets up, coordinates, and terminates conversations, exchanges, and dialogues between the applications at each end. It deals with session and connection coordination.
Transport (Layer 4)
This layer provides transparent transfer of data between end systems, or hosts, and is responsible for end-to-end error recovery and flow control. It ensures complete data transfer.
Network (Layer 3)
This layer provides switching and routing technologies, creating logical paths, known as virtual circuits, for transmitting data from node to node. Routing and forwarding are functions of this layer, as well as addressing, internetworking, error handling, congestion control and packet sequencing.
Data Link (Layer 2)
At this layer, data packets are encoded and decoded into bits. It furnishes transmission protocol knowledge and management and handles errors in the physical layer, flow control and frame synchronization. The data link layer is divided into two sub layers: The Media Access Control (MAC) layer and the Logical Link Control (LLC) layer. The MAC sub layer controls how a computer on the network gains access to the data and permission to transmit it. The LLC layer controls frame synchronization, flow control and error checking.
Physical (Layer 1)
This layer conveys the bit stream – electrical impulse, light or radio signal — through the network at the electrical and mechanical level. It provides the hardware means of sending and receiving data on a carrier, including defining cables, cards and physical aspects. Fast Ethernet, RS232, and ATM are protocols with physical layer components.
The W3C or World Wide Web Consortium was created in 1997, only 4 years before I started developing websites, and is the division responsible for standarizing coding practicies. They have created an excellant resource for learning the standards of web design, XML, web services, web devices, browsing and authoring tools. You can visit the site by going to http://www.w3.org.
You can also participate in their blogs as well as contribute to their open source projects.
They also have a tutorial section that goes over all kinds of web develpment ideologies and methods. Here is a list of all the things they go over:
Audio and Video
Device Independence and Content Negotation
HTML and CSS
Identifiers (URIS and more)
Semantic Web Data
Semantic Web Ontology
Scripting and Ajax
Web Services Description
Web Services Protocols
XForms (and other XML Components)
XML (Extensible Markup Language) Essentials
XML Transformations (XSL)
This list was directly derived from the w3c.org website! You can view this list by going to http://www.w3.org/2002/03/tutorials.
There are many things that need to be considered when looking for a career position in the technical sector:
1) You need to research all the businesses that you might be interested in applying to and find out whether or not you like the company in question and what they develop or offer as products. Obviously everyone wants to work for Microsoft or Apple but that is not realistic. It would really benefit you to find out if the companies you are applying to will be the company you want to work for and grow with for the next 5 to 10 years!
2) Research the person you will be working for, if at all possible. As your boss and mentor you will want them to not only teach you the best way to develop code or design hardware systems but to also have the ability to nudge you in areas that are completely foreign or new to you. If your mentor is not capable or unwilling to help in expanding your knowledge then there is no way you will progress in your field.
3) Always find ways to expand your knowledge and skills by learning new methodologies and working on hobby projects on your own. Most companies are not looking to hire someone just for their skills. You not only have to be a perfect match skill set wise but you also need to be on the bleeding edge of technology. What that means is always being familiar with the newest methods as well as being able to progress on your own.
4) Get certified! Now I understand that most people do not have the time or money to get all the certifications that are available but what you can do is slowly take classes or teach yourself at your own pace which will allow you to mention the fact that you are in the process of becoming certified on your resume. Remember that most companies want candidates that are growing their skills on their own. Remember that some companies will help pay for certifications once you are hired too!
5) Find a job with upward mobility. A lot of entry level positions are curtailed to only one ideology which means you may be stuck developing the same type applications or building the same type systems throughout you career. Look for a position that is going to help get you to the next level of where you want to be so you could possibly fill his or her position in the future.
6) Have fun at your job! Now I know when you are fresh out of college and are looking for your first job that this may not be a huge concern when considering what positions you apply for but remember that you are going to have that job hopefully for a long time and to just settle for a position just to get experience under your belt will make your time at that company that much more grueling. You need to have passion for the position and the company you will be working for!
7) Consider the incentives! A lot of companies will offer bonuses or stock options as well as paid time off and sick time for their employees. Now this will not be that much of an option for the entry level positions but in order to see if that will be a good company to stick with for a long time make sure that there will be something in return for your hard work and dedication!
8) Make sure you like where the company is located. This may be a silly thing to consider but if you are going to be making a long and dreadful commute every day then think of how that is going to effect your work product. How the drive makes you feel day in and day out and what kind of work product you will produce after that long and tiring commute.
9) Have a high work ethic and expect the same from your employer! Do not just find a position with the easiest place to land a job! You may be settling into a career path that will lead you nowhere. Make sure that the company holds the same values on what products they produce instead of just following a turn and burn type method! This could not only hurt the companies reputation but hurt yours in the process!
10) Find ways to help contribute or collaborate on blogs and forums. This will not only help expand your mind or mode of thinking but it can also help to show your potential employer that you like to be part of something bigger than yourself and what you know. Even if you start off by only reading and then slowly making comments, eventually you will become more confident in you knowledge and capabilities that someday you will too be able to help mentor or guide someone in ways you may never have thought of.