Computer Science

Learn to code for free, selecting only the programming languages that you need, based on what you want to develop. Massive use of open-source libraries and code snippets will save you time, and speed the learning curve.

Website Design

Offer your visitors a single purpose, whether to sell something, to educate or to entertain. The second goal is to guide the user through that experience. Therefore, skip the flash introduction, avoid blinking buttons, and cut out the clutter of words. Good website design is the same thing as good page design, like you see in a magazine. Basically, page layout can be restricted to a header, a two or three-column main body, and a footer. Menu choices should highlight your main offerings, and make it easy for your viewers to find the rest of your site.

As the field of website design expands, developers have become responsible for many areas, including writing content, graphics, template layout, and online marketing. In addition, web developers may handle technical, back-end problems for the site.

Some of the design skills for making websites do not change much over time, but other critical areas, including market research, search engine optimization, and conversion optimization, are constantly shifting as new tools become available. Browse the following split-screen example pages from w3schools.com, where you can see changes that you make to your page in real time. Following each example set, try taking the 20-question quiz on the same subject. When you've finished reviewing your results, browse the reference pages, and save all links as a resource, for when you are making your own site.

Success is governed by two main factors, visitor traffic and sales conversions. How many of the right people can you attract to your site, and how many of those people can you persuade to take the action that you want them to take? Not only can you practice making your own websites to earn money, but if you focus your talents, you can find part-time employment designing websites for small businesses and individuals. A good portfolio often is the deciding factor in getting a job. Students interested in graphic design programs should take basic courses in studio art, computerized design, commercial graphics, or website design.

HTML5 Test
Bootstrap Test
HTML5 Introduction
HTML Examples
HTML tutorial HTML Reference

CSS Style Sheets
CSS Test
CSS Examples
CSS Tutorial, CSS3
CSS Reference

JavaScript Tutorial
JavaScript Test
jQuery Test
JavaScript Examples
JavaScript Tutorial

php programming
PHP Test
php Tutorial
php Reference
XML Test
AJAX Examples

ASP.NET programming
ASP Test
ASP.NET Examples
ASP.NET Reference
ASP.NET Tutorial

SQL database calls
SQL Test
SQL Tutorial

Swift Tutorial

Learn how to code with Swift in this full tutorial course. Swift is a powerful and intuitive programming language for macOS, iOS, watchOS and tvOS.

Learn Java

Learn Java 8 and object oriented programming with this complete Java Tutorial.

Python Django Framework

Django is an extremely popular and fully featured server-side web framework, written in Python. Django allows you to quickly create web apps.

C++ Tutorial

C++ is a general purpose, case-sensitive, free-form language that supports object-oriented programming.

Android, iOS Apps

Android Design Style, building blocks, downloads, and video.

Android Development Training, API Guides, a quick reference, and samples.

Google Play Google Play is an easy way to distribute your Android Apps. Register, upload, and publish your app, so Android users can rate and add comments.

Google Apps Marketplace Google Apps already has 40 million users and an additional 5,000 companies a day are signing up.

Chrome Web Store The Chrome Web Store lets you publish apps and games for 200+ million Google Chrome users.

Web In-App Payments Use Google In-App Payments to sell digital and virtual goods within a web application.

Google Play In-App Billing Google Play In-App Billing allows you to sell digital content, including downloadable content such as media files or photos, and virtual content such as game levels or access.

Modern programming is becoming less about knowing how to program, and more about sourcing code snippets, and accessing software libraries. Google recently opened their Google Apps and API's to developers.

Domain Name Registration and Renewals

By December 2009, there were 192 million domain names registered. A large fraction of them are in the .com TLD, which as of March 15, 2010, had seen 84 million domain names in use, including 11.9 million online business and e-commerce sites, 4.3 million entertainment sites, 3.1 million finance related sites, and 1.8 million sports sites.

Domain Names
Website Hosting
Free Blog

The right to use a domain name is delegated by domain name registrars. In addition to ICANN, each top-level domain (TLD) is maintained and serviced technically by an administrative organization operating a registry. The domain registry is responsible for maintaining the database of names registered within the TLD it administers. The registry receives registration information from each domain name registrar authorized to assign names in the corresponding TLD and publishes the information via the 'whois' protocol. Registrars charge a yearly fee for the service of delegating a domain name to a user and providing a default set of name servers. GoDaddy is a popular discount registrar, charging about $10/year to register a domain name. For hosting, you can try BlueHost, which we have had good luck with over the past year.

Cloud Hosting

Google hosting, with a learning curve at first but then reasonably-priced, scalable stable hosting. likely better uptime, loading speed worldwide, and resources.

Google Cloud Hosting Prices

Google Cloud Hosting

Google Cloud Hosting Trial

Color and Images

There are many publishing and blogging platforms around today, like Word Press, which mean that almost anyone can publish online within minutes. Website design is a new field, and it's constantly changing as cloud programming and open source enables new design software.

Live Color Palette
Stock Photography
GIF Animation

- iStockPhoto
- Flickr Creative Commons
- Digital Photography
- Sell Stock Photography
- Sell Stock Photos
- iStockPhoto Affiliate Program

For layout, just use one of the many free template sites found via a Google search. A live color wheel and color lab can be found at Visibone.com, and graphics work can be done on the Free Photoshop Trial offered by Adobe. Learn more from the Photoshop Tutor.


Identification and authentication techniques sometimes use biometric information to add further confidence that users are legitimate when attempting physical or logical access to system resources. Single sign-on and associated technologies and protocols aim to reduce the proliferation of IDs and passwords to better control the security of access control mechanisms both within and outside the organization. Industry alliances, such as the Liberty Alliance, are moving toward federated identities that permit single sign-on or reduced sign-on for e-commerce users.

Cryptography relies on two basic methods: transposition and substitution. With transposition, ciphertext is created by scrambling a message based on a shared secret key. In substitution, letters are exchanged with other letters based on a substitution pattern known by both the sender and receiver. The strength of a cryptosystem rests in the size and means used to protect cryptographic keys; in general, the longer the key, the harder it is to break the encryption. The same key can be used to both encrypt and decrypt information and is called a symmetric key, or different keys can be used for encryption and decryption and are called asymmetric keys.

Digital signatures are used in asymmetric key cryptography to protect a message’s content from disclosure, prove the integrity of a message upon receipt, and verify that the sender of the message is indeed who he or she claims to be. Digital signature technology relies on a Public Key Infrastructure for implementation and is at the heart of many commercial products that are used in modern electronic commerce.

Virtual private networks (VPN)

Virtual private networks (VPN) are secure connections over the Internet that enable remote users and sites to connect to a central network. You can use PPTP, L2TP, or IPSec to create a VPN. IPSec is considered the most secure of the three. Administrators creating a VPN protocol should consider how the packets are encrypted, what sort of authentication is used, and whether the current hardware and software supports that technology. The protocols used by many common attacks are ICMP, UDP, and TCP. IP address spoofing is a serious threat, and although there are various techniques for avoidance, including reverse path forwarding, route filtering, and reverse DNS look-up exist, none are foolproof by themselves. Used in combination with other firewall methods, such as ignoring ICMP echo requests sent to broadcast addresses, it may reduce the impact of DoS attacks in which IP address spoofing is prevalent.

Each category of firewall has its own unique set of features and functionality, and you must perform a careful analysis to determine which firewall is needed in your environment. Personal firewalls are needed even in an environment where an enterprise firewall is installed, since they protect a computer from internal attacks. One economical personal firewall is available on any Windows XP system. It provides incoming protection and should be used if no other firewall will be installed on the host computer. Other personal firewalls, such as Zone Alarm, provide enhanced functionality that goes beyond the capabilities of the Windows Firewall.

Computer Programmer Jobs

The median annual wage for computer programmers was $108,530 in May 2021. Employment of software developers is projected to grow 15 percent from 2021 to 2025, much faster than average. Software developers also need skills related to the industry in which they work. Developers working in a bank, for example, should have knowledge of finance so that they can understand a bank's computing needs. In fact, many students gain experience in software development by completing an internship at a software company while in college.

Job Search
  job title, keywords or company
  city, state or zip
Network Analyst, Network Engineer

Sometimes referred to as a Network Support Engineer. The role sometimes overlaps with Network Architect roles. Typical responsibilities / skills: work with a variety of types of networks including LANs, WANs, GANs and MANs; determine network capacity requirements and ensure that the infrastructure can handle it; monitor and administrate the network; troubleshoot problems. Depending on the size of the organization, a person in this role might also setup, install and configure all types of hardware, from servers and printers to desktops and laptops, routers, switches, support internal network users. Non-standard work hours are a possibility. Salary range: $ 58-124K.

Network Architect

Depending on the size of an organization, this role can overlap with that of other network specialists. Typical responsibilities / skills: design internal and intra-office networks, including physical layout: LAN, WAN, Internet, VoIP, etc.; monitor network usage and performance, devise network tests and evaluate them; incorporate any new business requirements so as to upgrade overal network architecture; do any necessary cabling, routers, and install and configure hardware and software; follow or recommend a budget for projects; choose or recommend the appropriate network components; sometimes report to a CTO (Chief Technology Officer). Network Architects usually have five or more years of experience as a Network Engineer, and supervise various other engineers in implement a networking plan. Besides a Bachelor of Science degree, depending on the employer and the specific role, sometimes an MBA in Information Systems is required as well. Salary range: $ 78-156K.

Network Security Engineer

Typically responsible for network and server architecture; implementation, admin, upgrade of hardware and software, e.g., firewalls, etc.; enforcement of security policies set down by either the organization’s Network Architect, Network Security Administrator, or similar position; monitoring and analyzing network usage for security issues; troubleshooting network problems; contributing to the selection of new technology and/or upgrades; contributing to the documenting of systems and processes; providing technical support for IT coworkers. Certification may be required. Knowledge of computer telephony technologies such as VoIP may be required, along with an understanding of relevant compliance issues. May require some physical effort, for cabling and installation work. Salary range: $ 99-131K.

Systems Analyst, Systems Engineer

This role is sometimes referred to as a Computer Systems Analyst, with duties that might overlap that of an IT Project Manager, if overseeing installation or upgrade of computer systems. This role typically analyzes an organization’s computer systems and procedures; makes recommendations for process improvement; interacts with partners/ vendors and with programmers or programmer / analysts. Educational background might be technical, though this is more of an analytical than technical role that is focused on the business aspects of technology, including: analyzing the cost of system changes; the impact on employees; potential project timelines. Needs to interact with department managers on IT requirements; incorporate feedback from both internal and external users into business requirements documents; incorporate feedback from designers; contribute technical requirements; advise technical teams on their and their technology’s role in the organization; provide guidance to programmer / developers with use cases. Salary range: $ 50-108K.

Wireless Engineer

Typical responsibilities / skills: analyze wireless networking and communication requirements; design and develop network infrastructure; capacity planning; recommend system improvements; document necessary processes; develop any necessary software such as drivers; monitor systems use and performance; setup and run wireless network tests. A senior position might lead a team of junior and intermediate engineers. Salary range: $ 46-125K.

Database Administrator

Sometimes has overlapping duties with Database Programmer, Database Analyst and Database Modeller, and may report to a Database Manager and/or Data Architect. Typical responsibilities / skills: maintain an organization’s databases; design and implement databases, in coordination with a Data Architect; schedule and run regular database backups; recover lost data; implement and monitor database security; ensure data integrity; identify the needs of users and provide access to data stakeholders, data analysts and other users, as necessary. DBAs can have broad or specialized duties. E.g., divide tasks up: System DBA upgrades software for bug fixes and new features. Application DBA writes and maintains code and queries for one or more databases in an organization. The role may require certification. Salary range: $ 63-126K.

Data Warehouse Developer / Analyst

A data warehouse is a repository that combines data from several sources, internal and external, within an organization – e.g., sales and marketing – and is used for trend reporting. Typical responsibilities / skills for a Data Warehouse Developer: interact with business analysts to understand the necessary business logic; follow standards and procedures for databases set down by a Data Warehouse Manager; design and create databases for the purpose of data warehousing; design and run ETL (Extract, Transform, Load) procedures to extract external data and load into a data warehouse; test integrity of data warehouse; write and maintain any code necessary for data warehousing tasks including report generators. This position may require experience with specific 3rd-party applications, and often overlaps with Database Developer duties. Salary range: $ 60-133K.

Database Developer

Typical responsibilities / skills: data management and administration, data modeling, data warehousing, investigate data integrity issues; devise and conduct data tests for integrity, and follow an action plan for any necessary recovery; document access of specific databases for developers in other departments; work with logical and physical models of data; understand principles of distributed data, data redundancy; incorporate database updates as per stakeholder requirements; produce reports on analyzed business intelligence data; write database queries and complementary computer code to support internal applications, and which are possibly shared with developers in other departments. This may require knowing “back end” programming or scripting languages such as Java, Ruby, Python, Perl, etc., as well as knowledge of both traditional RDBMSes (Relational Database Management Systems) and newer NoSQL databases such as Cassandra, CouchDB, MongoDB, Hadoop and others. The role tends to require specific commercial database system experience, experience with database performance tuning and troubleshooting, and may require some forms of certification. Salary range: $ 73-134K.

Data Modeler

Typical responsibilities / skills: creates the Conceptual Data Model representing an organization’s data requirements for various business processes; produces the plan for building the Logical Data Model(s) from the conceptual model. (The physical data model is the actual implementation (database) where data will be stored.) Data modeling (aka database modeling) covers business requirements for databases and is an organic process, so this role also requires adapting a database to business requirements changes. Salary range: $ 76-134K.

Data Architect

Depending on the size of an organization, this role can overlap with that of over database specialists. Typical responsibilities / skills: provide a data architecture for an organization’s data assets, including databases, data integration (combining data sources into one view), data access; define the formal data description, structures, models, flow diagrams, and overall metadata; enable stakeholders to manage their portion of the databases or data warehouse, under guidance and data access policies; have logical and physical data modeling skills, whether they’re used in actuality or to oversee a Data Modeler’s efforts; defines data warehouse policies including for Information Assurance. The role usually requires senior experience as a Database Developer/ Analyst / Engineer. Salary range: $ 111-153K.

Data Security Analyst / Information Security Analyst

Typical responsibilities / skills: determine security risks for an organization’s computer systems, databases and networks; monitor external activity; install and configure security-related software (firewalls, encryption); understand compliance issues related to security, especially for a publicly-traded organization; make recommendations to management for security policies and procedures; design and run penetration testing (simulation of attacks); keep abreast of new attack techniques and implement means of preventing these. Salary range: $ 61-137K.

Junior Developer

Typical responsibilities / skills: produce the overall design of new software or modules based on requirements passed down; produce flowcharts, algorithms and anything else necessary for the actual coding. Junior developers might start out by maintaining (debugging) existing code / features rather than design new code. If code in an organization is not done separately by Computer Programmers, then it falls to the Software Developers — who might also do testing and debugging, or work with teammates who do that work. Salary range: $ 80-127K.

Software Engineer

In government positions and some more established corporations, Software Engineer and other IT positions are often divided into Levels indicating experience / rank. Each higher rank incorporates more responsibilities for the role. While there is a theoretical technical difference between a Software Developer and a Software Engineer, many organizations use the term Engineer when they mean Developer. True “software engineers” are certified by an engineering board. While a Software Engineer creates/ tests/ documents software just as a Software Developer does, the former is more likely to also optimize software based on their technical, mathematical and/or scientific knowledge. They produce more reliable software through engineering principles. The salary range listed here covers any use of the title Software Engineer. Salary range: $ 61-160K.

Web Developer

This is a wide-ranging role that can include “front-end” (Web browser: JavaScript, HTML, CSS and related technologies) and “back-end” coding, or require specialization. Back-end coding could be using Java, Ruby, Python or Perl, etc., and might involve database queries and manipulation. A person focusing on back-end web development might also develop APIs (Application Programmer Interfaces) which layout a blueprint of commands for allowing integration of a software platform beyond its own code — such as for building the mobile version of a Web application, etc. Some jobs labeled “Web Developer” also have an expectation of front-end design, though such a role is usually denoted as Web Designer / Developer. Another role in this category is a Web Applications Developer, which involves integrating 3rd-party Web technologies. Salary range: $ 60-135K.

Applications Developer

Typical responsibilities / skills: focus might be on middleware applications; interact with business analysts to understand and incorporate customer and business requirements; understand the SDLC (System Development Life Cycle); follow design specs and programming standards for coding applications; develop and test application-specific software and modules; interact with quality assurance specialists. Possibly requires experience with multi-tier environments. Requires an understanding of specific programming/ scripting languages and development frameworks, and possibly specific database packages. Salary range: $ 69-137K.

Mobile App Developer

This covers multiple related roles which require knowledge of at least one mobile operating system and development platform, such as Android or iOS, and the underlying programming languages. In some roles, Mobile Web development skills are a requirement. Typical responsibilities / skills: design, write and maintain mobile application code; port features for an app from another platform (such as desktop, Web, phone, tablet, wearable computing) to the mobile platform in question; integrate databases (internal) and REST APIs (internal and external); produce API components as necessary and document usage for other developers (internal and sometimes external); devise and run code tests in simulator or hardware; work with Quality Assurance staff for additional; testing log and fix defects. The role can sometimes require design skills for a front-end position. Salary range: $ 100-144K.

ERP Technical Developer

Typical responsibilities / skills: understand the SDLC (Software Development Life Cycle); interact with business teams to understand requirements; analyze technical problems in ERP configurations and assess risk; write any necessary code for extending an ERP platform’s features, or to integrate with an organization’s applications. This position usually requires experience with a particular ERP solution and with one or more facets/ modules. Salary range: $ 94-130K.

IT Project Manager

This is a broader role than for an Applications Development Project Manager and may not require as much of a technical background. Project Managers should have at least an understanding of — if not experience with — the computer systems or software being built / maintained. Responsible for defining, maintaining, and enforcing a project schedule; updating schedule when requirements change or project facets become overdue; keep projects on or under-budget. Other responsibilities and requirements: understand Agile development process (where necessary); run scrums; interact with multiple departments and many levels of co-workers, and convey to them the importance of their respective stakes while also keeping technical resources such as developers goal-oriented; update management on the status of projects, bottlenecks, requests for resources. IT Certifications such as PMP (Project Management Professional) can increase opportunities and salary. Salary range: $ 56-135K.

Technical Support

The focus of a support tech’s work is interacting with non-IT users, whether internal to a company or external. One group of technicians may support internal users of 3rd-party software, while another group may support internal and external users of company software. Responsibilities include being familiar with the software, hardware or systems they support, including keeping up to date with both new and retired features; knowing where to find the answers to questions that come in to the help desk; possibly contribute to a repository of FAQs (frequently asked questions). Salary range: $ 49-140K.

CRM Technical Developer

Most CRM (Customer Relationship Management) software has both internal and external (Web) components. Users can be internal (sales staff, support, admin, systems developers) and external (customers, vendors, partners, researchers). These are the users a CRM Developer needs to keep in mind when developing solutions. Typical responsibilities/ skills: experience with a specific CRM system; custom configure a CRM used by the organization; develop custom modules to extend CRM functionality; integrate CRM features into an organization’s own computer systems, including for customer use – which requires experience with a programming or scripting language, and either server, desktop/ laptop, Web or mobile (phone, tablet) development experience as necessary; document custom settings, modules and features for different levels of user. Salary range: $ 89-119K.

IT Manager

This role usually requires a technical background and leads a technical team, which could consist of developers, testers, analysts and more – whether or not the organization is technical. Typical responsibilities / skills: oversee the technical aspects of internal projects; maintain corporate IT procedures, with documentation; hire and lead a technical team to support the procedures; manage resources within a budget; keep up to date with new technologies, for recommending possible internal upgrades; interact with various departments, vendors and possibly consultants /contractors. The role can require a master’s degree in computer science or a related field. Salary range: $ 99-142K.

Business Intelligence Analyst

This is not always a purely technical role, though background could be and often is in computer science or a similar field. Usually, it’s a business-focused role that analyzes and reports on data used within the organization. Reports are a key part of such a role and are targeted for executives who will make business decisions upon the recommendations. This could be IT process improvement, software and hardware upgrades, networking, etc. Typical responsibilities / skills: collection and analysis of business data for process improvement, similar to “continuous improvement” philosophy; ability to express technical topics in a form non-technical decision makers can absorb; ability to structure business intelligence for internally-defined purposes. The role can require an understanding of a specific software, particularly database systems, and may involved working closely with developers.Salary range: $ 101-142K.

IT Auditor

Typical responsibilities / skills: reviewing and recommending compliance processes, especially for a publicly-traded company; determine and assess risk pertaining to technology, both for a single location and other corporate offices; audit an organization’s computer systems and infrastructure for secureness; comply with company audit policies (e.g., if in a divisional office); draft a security breech prevention plan; define audit procedures; report audit findings. This role is more likely to require a background in MIS (Management Information Science) or business administration, although IT skills are valuable. Salary range: $ 67-146K.

Quality Assurance Associate / Analyst

Software Quality Assurance (SQA) work is on of those unusual sets of roles where compensation varies widely. Companies that appreciate the value of proper testing and “code coverage” pay more for a good Software QA Analyst/ Engineer than they might for a Software Developer / Software Engineer, and thus often require a seasoned developer/ engineer. Other companies pay less much less and tend to employe QA testers — although both variations are sometimes referred to as a Software QA Engineer. In QA work, these are overlapping roles. The tester role is focused on running pre-defined test suites and verifying the results, reporting bugs or interacting with Software Developers/ Engineers. A QA Analyst / Engineer is more like to be the person designing test suites and improving code coverage to verify that everything that needs to be tested is being tested. The latter role can require experience with programming/ scripting languages and/or Web or Mobile platforms. Salary range: $ 57-147K.

User Experience (UX) Designer

This role comes in various forms: desktop, Web, mobile, wearables. Typical responsibilities / skills: design software interface flow, user interactions, screen layout and organization, screen interaction (between screens), overall appearance (visual design), and optimizes the user experience — typically through iterative improvements and user feedback, to create engaging user experiences; create wireframes or more realistic prototypes — possibly with the help of front-end web developers or a web designer with the necessary development skills; recommend design patterns that are both tested (on other Web sites or apps or desktop software) as well as appropriate to the software at hand; define A/B Split Testing studies to determine which variation of an interface is more engaging. In some companies, UX teams own an application instead of a designated “content owner” and can thus request changes from software developers directly as needed. This is not necessarily a strictly technical role, and is always a creative role that involves an understanding of user psychology. However, it can require technical skills, especially if combined with another role, such as front-end Web development or front-end mobile app development. At the least, an understanding what is and is not possible for a particular software platform is important. Salary range: $ 65-150K.

EMPLOYERS:     Post Jobs     Search Resumes

Degree Programs
Popular Majors
    Test Prep     Privacy Policy     Terms of Use     About     Contact

This website is not affiliated with any educational organization, and all trademarks are the exclusive property of the respective owners. Kooksta.com is the work of a group of students in Bangkok, and all copyrighted works on this website are offered for educational purposes only, governed by the four-factor rule, section 107 of the US Copyright Act, 1976.