Web Coding Center

In this digital age, software skills boost productivity and help you to succeed in your industry. According to the U.S. Bureau Of Labor Statistics, the employment of software engineers is projected to grow by more than 20 percent in the coming decade. This website guides you to various aspects of modern Information Technology with free tutorials.

Web Hosting

To host a website with a domain name you desire (such as mydomain.com), you should first decide where to store the files of the server, the central computer serving the public.

Setting up the server in your own premises can be cheaper in the long run. However, if you don't want to purchase all the hardware upfront and continuously maintain the server from top to bottom, you can choose to rent a remote server in a cloud network.

There are three levels of cloud computing:
  1. IaaS: Infrastructure-as-a-Service
    Manages the application development and operating system.
    eg. Amazon Web Services(AWS) - EC2, Microsoft Azure, Google Compute Engine (GCE)
  2. PaaS: Platform-as-a-Service
    Manages the application development only.
    eg. AWS Elastic Beanstalk, Windows Azure, Google App Engine
  3. SaaS: Software-as-a-Service
    Uses the application only.
    eg. wordpress.com, Google Drive, Zoom, Netflix, Dropbox, Google Apps

You should also decide whether to use a Content Management System such as Wordpress. A CMS is a website builder that allows you to create and maintain simpler websites right away without having to code. SEO-friendly and mobile-friendly templates are provided out of the box.

Note that, although the diagram does not show this, you can also use a CMS with an IaaS provider, and that a PaaS web host can be shared or dedicated too.
Where do you want toWhere do you want tohost your website?host your website?Rent a Remote ServerRent a Remote Serverin a Cloud Network.in a Cloud Network.Do you want toDo you want tomanage the operating system?manage the operating system?Set up a Server inSet up a Server in my own Premises. my own Premises.Do you want toDo you want touse a website builder?use a website builder?YESYESIaaS Server HostIaaS Server HostDo you want toDo you want toshare the server?share the server?NONOWeb HostWeb HostDo you want toDo you want touse a website builder?use a website builder?YESYESSelf-Hosted CMSSelf-Hosted CMSeg. wordpress.orgeg. wordpress.orgNONOYESYESSharedSharedeg. shared AWS EC2eg. shared AWS EC2NONODedicatedDedicatedYESYESHosted CMSHosted CMSeg. wordpress.comeg. wordpress.comNONOPaaSPaaSeg. FastCometeg. FastComet

CMS

A Content Management System (CMS) is a website builder that allows you to quickly create and manage SEO-friendly and mobile-friendly websites on a browser. If you don't want to code the front end and back end, and are fine with the limitations, you can turn to a CMS.

WordPress, originally a blogging system, with its massive ecosystem of plugins, has become the king of CMS. You can:
  • pay to use hosted WordPress directly on wordpress.com.
  • pay to use hosted WordPress indirectly on a third-party web host such as FastComet and Hostinger.
  • freely use WordPress on your own server by hosting it yourself, ie. wordpress.org.
Wix is not as old as WordPress but is fast gaining popularity. With its drag-and-drop interface, it is somewhat easier to use than WordPress, and offers better support in case you need help.
Content Management SystemCMSCMS28+ Million Live WebsitesWordPressWordPress4.5+ Million Live WebsitesWixWix3.1+ Million Live Websites (Paid)Progress SitefinityProgress Sitefinity2.5+ Million Live Websites (Paid)SquarespaceSquarespace1.8+ Million Live WebsitesShopifyShopify1.5+ Million Live WebsitesJoomla!Joomla!1.5+ Million Live Websites (Paid)GoDaddy Website BuilderGoDaddy Website Builder1+ Million Live Websites (Paid)WeeblyWeebly0.58+ Million Live WebsitesDrupalDrupal(Hosted)(Hosted)(Self-Hosted)(Self-Hosted)

Front-End Web Development

Focusing on the end users' interactions with a website on a browser, front-end web development is a science as much as an art. An accomplished front-end web developer has a profound understanding of how to make browsers display web pages that are user-friendly and visually appealing. To these ends, the developer needs to have both a knowledgeable and sharp mind, as well as a creative and aesthetic spirit. Without any of the two, the developer is destined to fail in his or her job.

The basis of the World Wide Web, HTML defines the underlying structure of a webpage.

CSS specifies how HTML elements are displayed and animated. It is used to make web pages responsive (able to look nice with different screen dimensions), a very important principle of modern web design. Bootstrap is the most popular CSS framework.

JavaScript is the programming language used to execute programs on all modern browsers.

As of Nov 2021, React is the most popular front-end JavaScript framework, often a requirement for a web development job. Organizing the user interface into a hierarchy of reusable components that are updated intelligently, React enhances and expedites the process of web development.

An unnoticed website is of no use to anyone. In order to successfully deliver the objectives of a website, it is important to drive organic traffic to the website with the techniques of SEO.
Hyper-Text Markup Language defines the underlying structure of a webpage.HTMLHTMLCascading Stylesheets controls how the HTML elements are displayed.CSSCSSSearch Engine Optimization helps a website to gain exposure in search engines such as Google.SEOSEOScalable Vector Graphics is used to create images that can be zoomed without loosing quality.SVGSVGJavaScript, the programming language of browsers, is used to control how webpages behave.JavaScriptJavaScriptCSS ExtensionsExtensionsExtensionsCSS FrameworksFrameworksFrameworksData-Driven Documents is a JavaScript library for manipulating documents based on data.D3D3The lightweight library for manipulating and animating SVG.SVG.jsSVG.jsRapahel.js is a javascript library designed specifically for artists and graphic designers.Rapheal.jsRapheal.jsSVG is an excellent way to create interactive, resolution-independent vector graphics that will look great on any size screen.Snap.svgSnap.svgECMAScriptECMAScriptIt's CSS, with just a little more.LessLessSass is the most mature, stable, and powerful professional grade CSS extension language in the world.SassSassExpressive, Dynamic, Robust CSSStylusStylusBootstrap is the most popular CSS framework. With it, you can easily create interactive and visually appealing components.BootstrapBootstrapRapidly build modern websites without ever leaving your HTML.Tailwind CSSTailwind CSSA modern responsive front-end framework based on Material DesignMaterializeMaterializeJS ExtensionsJS Extensions<canvas> is an HTML element where graphics can be drawn using JavaScript.CanvasCanvasBrowsers provide many advanced web APIs.Advanced Web APIsAdvanced Web APIsThe Document Object Model controls how HTML elements can be accessed and manipulated.HTML DOMHTML DOMTypeScript is a programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript and adds optional static typing to the language. TypeScript is designed for the development of large applications and transcompiles to JavaScript.TypeScriptTypeScriptFlow is a static type checker that allows a developer to check for type errors while developing code.FlowFlowCoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.CoffeeScriptCoffeeScript2D2D3D (WebGL)3D (WebGL)Assets BundlersAssets BundlersTesting FrameworksTesting FrameworksJS FrameworksJS FrameworksGoogle Maps is a web mapping platform and consumer application offered by Google.Google MapsGoogle MapsFabric.js is a powerful and simple Javascript HTML5 canvas library.Fabric.jsFabric.jsHTML5 2d canvas js library for desktop and mobile applicationsKonva.jsKonva.jsA JavaScript library that makes working with the HTML5 Canvas element easyEasel.jsEasel.jsPaper.js offers a clean Scene Graph / Document Object Model and a lot of powerful functionality to create and work with vector graphics and bezier curves.Paper.jsPaper.jsOne unified platform with flexible solutions for you to build, manage, and grow your game.UnityUnityThe leading platform for 3D & AR on the webSketchfabSketchfabThree.js is a application programming interface used to create and display animated 3D computer graphics.Three.jsThree.jsModel. Animate. Render. Online.Clara.ioClara.ioA-Frame is a web framework for building virtual reality experiences.A-FrameA-FrameBabylon.js is a real time 3D engine for displaying 3D graphics.Babylon.jsBabylon.jsWebpack is made primarily for JavaScript, but it can transform front-end assets such as HTML, CSS, and images if the corresponding loaders are included. webpack takes modules with dependencies and generates static assets representing those modules.WebpackWebpackParcel combines a great out-of-the-box development experience with a scalable architecture that can take your project from just getting started to massive production application.ParcelParcelBrowserify is an open-source JavaScript bundler tool that allows developers to write and use Node.js-style modules that compile for use in the browser.BrowserifyBrowserifyJest is maintained by Facebook, Inc. It focuses on simplicity and support for large web applications. It works with projects using Babel, TypeScript, Node.js, React, Angular, Vue.js and Svelte.JestJestMocha allows asynchronous testing, test coverage reports, and use of any assertion library. Chai is a BDD / TDD assertion library for NodeJS and the browser that can be delightfully paired with any javascript testing framework.Mocha & ChaiMocha & ChaiJasmine aims to run on any JavaScript-enabled platform, to not intrude on the application nor the IDE, and to have easy-to-read syntax. It is heavily influenced by other unit testing frameworks, such as ScrewUnit, JSSpec, JSpec, and RSpec.JasmineJasmineOriginally developed for testing jQuery, jQuery UI and jQuery Mobile, it is a generic framework for testing any JavaScript code. It supports client-side environments in web browsers, and server-side.QUnitQUnitKarma is a node-based test tool that allows you to test your JavaScript codes across multiple real browsers.KarmaKarmaThe most popular front-end JavaScript framework, React splits the user interface into a hierarchical of reusable components that are updated intelligently.ReactReactAngular is a complete rewrite from the same team that built AngularJS.AngularAngularMaintained mainly by Google, AngularJS is a front-end web framework for developing single-page applications.Angular.jsAngular.jsVue.js is an open-source model–view–viewmodel front end JavaScript framework for building user interfaces and single-page applications.Vue.jsVue.jsWrite Less. Do more.JQueryJQueryEmber.js utilizes a component-service pattern. It allows developers to create scalable single-page web applications by incorporating common idioms, best practices, and patterns from other single-page-app ecosystem patterns into the framework.Ember.jsEmber.jsWhereas traditional frameworks like React and Vue do the bulk of their work in the browser, Svelte shifts that work into a compile step that happens when you build your app.SvelteSvelteHelping you manage shared 'global' states across the different parts of your application, Redux is a library that can be used with any UI layer or framework, including React, Angular, Vue, Ember, and Vanilla JS.ReduxReduxReact Router allows the user to navigate the app around varied bookmarkable URLs.React RouterReact RouterReact Native is an open-source UI software framework. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities.React NativeReact NativeNext.js is an open-source web development framework built on top of Node.js enabling React-based web applications functionalities.Next.jsNext.js

Back-End Web Development

Back-end web development deals with servers, the central computers serving the public visitors. A web server is responsible for storing and serving webpages and the associated assets, whereas a database server efficiently stores and processes the users' data.

LAMP (Linux - Apache - MySQL - PHP) is a very popular technology stack. Another popular stack of technologies used together is MERN (MongoDB - Express - React - Node).

A developer that does both front-end and back-end web development is called a full-stack web developer.

This diagram is by no means exhaustive. For instance, it is possible to use PHP with IIS or Node.js. Some technologies have also been omitted in the diagram, such as the other web frameworks (eg. Flask, CherryPy, TurboGears, Web2Py) of Python, and the other lesser-known DBMS.

ServersServersWeb ServersWeb ServersMail servers handle the delivery and storage of emails.Mail ServersMail ServersThe Domain Name System (DNS) Server is a server that is specifically used for matching website hostnames (like example.com) to their corresponding Internet Protocol or IP addresses (like 115.164.119.114).DNS ServersDNS ServersFTP servers handle the transfer of files between a server and a remote client.FTP ServersFTP ServersGame servers coordinate multiplayer games.Game ServersGame ServersA Database Managemeent System efficiently stores and manages users' data.DBMSDBMSASP.NET is designed by Microsoft for web development to produce dynamic web pages.ASP.NETASP.NETNode.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.Node.jsNode.jsDjango makes it easier to build better web apps more quickly and with less code.DJangoDJangoThe Spring Framework is an application framework and inversion of control container for the Java platform.SpringSpringThe Apache HTTP Server, colloquially called Apache, is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation.ApacheApacheRuby on Rails, or Rails, is a server-side web application framework written in Ruby. It is a model–view–controller framework, providing default structures for a database, a web service, and web pages. RailsRailsA web server provided by Windows.IISIISGolang is a modern programming language formed by Google for developing web applications. Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.GolangGolangVercel is a cloud platform that enables developers to host websites and web services that deploy instantly, scale automatically, and require no supervision.VercelVercelStructured Query Language is a language for Relational Databases.SQL / RelationalSQL / RelationalNon-relational databases provide a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.NoSQLNoSQLC# is a general-purpose, multi-paradigm programming language. C# encompasses static typing, strong typing, lexically scoped, imperative, declarative, functional, generic, object-oriented, and component-oriented programming disciplines.C#C#Visual Basic, originally called Visual Basic .NET, is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language, the last version of which was Visual Basic 6.0.VB.netVB.netThe language of browsers at the front end, JavaScript can also be used at the back end.JavaScript (ECMAScript)JavaScript (ECMAScript)The language of data science.PythonPythonJava is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.JavaJavaHypertext Preprocessor replaces blocks of code within HTML codes.PHPPHPRuby on Rails, or Rails, is a server-side web application framework written in Ruby. It is a model–view–controller framework, providing default structures for a database, a web service, and web pages. RubyRubyNext.js is an open-source web development framework built on top of Node.js enabling React-based web applications functionalities such as server-side rendering and generating static websites.Next.jsNext.jsMySQLMySQLMS SQLMS SQLPostgreSQLPostgreSQLOracleOracleMariaDB is a community-developed, commercially supported fork of MySQL.MariaDBMariaDBA data storage system designed for storing, retrieving and managing document-oriented information, also known as semi-structured data.Document-OrientedDocument-OrientedA data storage paradigm designed for storing, retrieving, and managing associative arrays, and a data structure more commonly known today as a dictionary or hash table.Key-ValueKey-ValueA type of database that uses tables, rows, and columns, but unlike a relational database, the names and format of the columns can vary from row to row in the same table. A wide-column store can be interpreted as a two-dimensional key–value store.Map-Reduce / Wide ColumnMap-Reduce / Wide ColumnA graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data.GraphGrapha database management system in which information is represented in the form of objects as used in object-oriented programming.ObjectObjectSearchSearchTime-SeriesTime-SeriesNode.js web frameworkExpressExpressTemplate engine for rendering HTMLPugPugTemplate engine for rendering HTMLJadeJadeTemplate engine for rendering HTMLEJSEJSLaravelLaravelSymfonySymfonyCodeIgniterCodeIgniterZend / LaminasZend / LaminasYiiYiiCakePHPCakePHPSlimSlimA full-stack PHP framework delivered as a C-extensionPhalconPhalconThe Fuel PHP Framework is a fast, simple and flexible PHP 5.4+ framework, born from the best ideas of other frameworks, with a fresh start!FuelPHPFuelPHPFat-Free FrameworkFat-Free FrameworkThe most popular front-end JavaScript framework, React splits the user interface into a hierarchical of reusable components that are updated intelligently.ReactReactBuild faster. Build smarter.MongoDBMongoDBSeamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.CouchDBCouchDBAmazon DynamoDB is a fast, flexible NoSQL database service for single-digit millisecond performance at any scale.Amazon DynamoDBAmazon DynamoDBRedis is an in-memory data structure store, used as a database, cache, and message broker.RedisRedisA general-purpose distributed memory-caching system.MemcachedMemcachedAn open-source on-disk key-value store written by Google fellows Jeffrey Dean and Sanjay Ghemawat.LevelDBLevelDBA distributed NoSQL key-value data store that offers high availability, fault tolerance, operational simplicity, and scalability.RiakRiakApache HBase is the Hadoop database, a distributed, scalable, big data store.HBaseHBaseApache Cassandra is a NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance.CassandraCassandraGraphDB allows you to link diverse data, index it for semantic search and enrich it via text analysis to build big knowledge graphs.GraphDBGraphDBTrinity is a general purpose distributed graph system over a memory cloud.Microsoft TrinityMicrosoft TrinityDescribed by its developers as an ACID-compliant transactional database with native graph storage and processing, Neo4j is available in a GPL3-licensed source-available community edition, with online backup and high availability extensions licensed under a closed-source commercial license.Neo4JNeo4JObjectDB is an object database for Java. It can be used in client-server mode and in embedded mode. Unlike other object databases, ObjectDB does not provide its own proprietary API. Accordingly, working with ObjectDB requires using one of the two standard Java APIs: JPA or JDO.ObjectDBObjectDBPerst is McObject's open source, dual license, object-oriented embedded database system (ODBMS).PerstPerstThe Zope Object Database is an object-oriented database for transparently and persistently storing Python objects. It is included as part of the Zope web application server, but can also be used independently of Zope. ZopeDBZopeDBElasticSearch is a distributed search and analytics engine built on Apache Lucene.ElasticSearchElasticSearchSphinx is a fulltext search engine that provides text search functionality to client applications.SphinxSphinxSolr is an open-source enterprise-search platform, written in Java. Its major features include full-text search, hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, NoSQL features and rich document handling.SolrSolrApache Accumulo is a highly scalable sorted, distributed key-value store based on Google's Bigtable. It is a system built on top of Apache Hadoop, Apache ZooKeeper, and Apache Thrift. Written in Java, Accumulo has cell-level access labels and server-side programming mechanisms.AccumuloAccumuloOpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase. OpenTSDB was written to address a common need: store, index and serve metrics collected from computer systems (network gear, operating systems, applications) at a large scale, and make this data easily accessible and graphable.OpenTSDBOpenTSDB

XML

XML represents a way to store data in a human-readable and machine-readable format. Inherently hierarchical, an XML document resembles an HTML document, except that the tag and attribute names are not pre-defined. With XML, data can be easily prepared, transformed and transported.

XPath is a language for selecting nodes from an XML document. It is used in XQuery, XSLT, XPointer, XInclude, XSD, Schematron, XForms etc.

XSLT is a language for transforming XML documents. XSLT templates are themselves XML documents. The functionalities of XSLT overlap with those of XQuery, a funtional languange primarily used to query a large collection of XML documents.

Schema languages define the permissible grammar of an XML document. They are used to validate XML documents.

XSL-FO is a markup language for XML document formatting that is most often used to generate PDF files.

Extensible Markup Language is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.XMLXMLXPath is a language for selecting nodes from an XML document.XPathXPathA schema language defines the permissible grammar, structures, contents, and orders of the elements, attributes, and entities.Schema LanguagesSchema LanguagesIntegrationsIntegrationsApplicationsApplicationsA query language which is designed to be broadly applicable across many types of XML data sourcesXQueryXQueryA language designed primarily for transforming XML documents into other XML documents.XSLTXSLTDocument Type Definition is declared internally or externally using <!DOCTYPE …>. It is the only schema language that allows entities to be defined.DTDDTDXML Schema Definition, or W3C XML Schema (WXS), is XML-based.XSDXSDItself an XML document, a RELAX NG schema specifies a pattern for the structure and content of an XML document.Relax NGRelax NGA variation of Relax NG using a compact syntax.Relax NG CompactRelax NG CompactSchematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees.SchamatronSchamatronJavaScriptJavaScriptPHPPHPParsersParsersXSL Formatting Objects defines an XML vocabulary for specifying formatting semantics.XSL-FOXSL-FOeXtensible Business Reporting Language is a freely available and global framework for exchanging business information.XBRLXBRLXProc is an XML based programming language for processing documents in pipelines: chaining conversions and other steps together to achieve the desired results.XProcXProcXForms is an XML markup for a new generation of forms and other applications on the Web.XFormsXFormsXKMS provides syntax by which applications can request the registration, revocation, and validation of public/private key pairs.XKMSXKMSMathML is a low-level specification for mathematical and scientific content on the Web and beyond.MathMLMathMLThe Darwin Information Typing Architecture (DITA) specification defines a set of document types for authoring and organizing topic-oriented information, as well as a set of mechanisms for combining, extending, and constraining document types.DITADITADocBook is a schema particularly well suited to books and papers about computer hardware and software.DocBookDocBookA DOCX is a convenient XML format used by documents of Microsoft Word.MS Word DocumentMS Word DocumentReal Simple Syndication (RSS) is a family of web feeds formats that are used to publish frequently updated works. Atom refers to a pair of standards for web feeds. Web feeds such as RSS and Atom are often used in order to get regular updates from websites.RSS & ATOMRSS & ATOMThe Web Services Description Language is an XML-based interface description language that is used for describing the functionality offered by a web service.WSDLWSDLSimple Object Access Protocol is a messaging protocol specification for exchanging structured information in the implementation of web services in computer networks.SOAPSOAPXML-RPC (Remote Procedural Call) is a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet.XML-RPCXML-RPCXQuery Full Text extends XQuery with full-text search capabilities.XQFTXQFTThe XQuery Update Facility provides expressions that can be used to make persistent changes to instances of the XQuery 1.0 and XPath 2.0 Data Model.XQUFXQUFDOMDOMSAXSAXStAXStAXVTD-XMLVTD-XMLExpatExpatPull ParsingPull ParsingXercesXercesMSXMLMSXMLlibxml2libxml2

Mobile App Development

Mobile apps can work offline on mobile devices. They can be uploaded to app stores such as Google Play Store, Apple App Store and Huawei App Gallery.

Native app development targets one specific mobile platform (Android or Apple) at one time only. Coding an app natively means having direct access to all the low-level APIs exposed by the mobile platform. Android Studio is primarily the IDE for Android/Huawei apps, while XCode is generally used to code iOS Swift Applications.

Hybrid app development targets multiple platforms at once with a single codebase. Sometimes this includes desktop environments such as Windows and Mac. JavaScript is commonly used as the programming language along with HTML and CSS. Plugins can be installed to access various functionalities of mobile devices.

Mobile App DevelopmentMobile App DevelopmentNative app development targets one specific mobile platform (Android or Apple) at one time only.NativeNativeHybrid app development targets multiple platforms at once with a single codebase.HybridHybridAndroid/Huawei is a mobile/desktop operating system based on a modified version of the Linux kernel and other open source software, designed primarily for touchscreen mobile devices such as smartphones and tablets.Android & HuaweiAndroid & HuaweiiOS is a mobile operating system created and developed by Apple Inc. exclusively for its hardware.Apple iOSApple iOSApache Cordova wraps your HTML/JavaScript app into a native container which can access the device functions of several platforms.CordovaCordovaReact Native is an open-source UI software framework. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities.React NativeReact NativeAn open source mobile toolkit for building high quality, cross-platform native and web app experiences. It can work with React, Angular or Vue.IonicIonicMonaca makes HTML5 hybrid mobile app development with Apache Cordova simple and easy. Monaca is the most open hybrid app development platform available and ready to be immediately plugged into your existing workflow and development environment. From Cloud IDE, CLI to debugger and remote online build, everything you need for your hybrid app development is here.MonacaMonacaThe most beautiful and efficient way to develop HTML5 hybrid and mobile web apps.Onsen UIOnsen UIBuildFire's powerful and easy to use mobile app builder makes it so you can create mobile apps for iOS & Android in a fraction of the time and cost.BuildFire App BuilderBuildFire App BuilderBuild full featured iOS, Android & Desktop apps.Framework 7Framework 7A complete, powerful development environment. Create apps for iOS, Android, Windows, MacOS and Linux.NSB / AppStudioNSB / AppStudioResponsive UI components for great calendaring and scheduling experiences.MobiscrollMobiscrollDeliver the best user experience through a comprehensive platform that will help you uncover, analyze and fix any app performance, quality or stability issues.InstabugInstabugLiberate your development by using platform APIs directly without leaving your love of JavaScript.Native ScriptNative ScriptEffortlessly build high-performance & high-quality Vue.js 3 user interfaces in record time.QuasarQuasarSencha Ext JS is the most comprehensive JavaScript framework for building data-intensive, cross-platform web and mobile applications for any modern device. Ext JS includes 140+ pre-integrated and tested high-performance UI components.Sencha Ext JSSencha Ext JSAn app platform for building Android and iOS apps with .NET and C#. Develop on Windows and macOS.XamarinXamarinThe Svelte Mobile Development ExperienceSvelte NativeSvelte NativeOne unified platform with flexible solutions for you to build, manage, and grow your game.UnityUnityKotlin is a cross-platform, statically typed, general-purpose programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of Kotlin's standard library depends on the Java Class Library, but type inference allows its syntax to be more concise.KotlinKotlinJava is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.JavaJavaAndroid Studio is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development.Android StudioAndroid StudioSwift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. and the open-source community.SwiftSwiftThe Xcode IDE is at the center of the Apple development experience. Tightly integrated with the Cocoa and Cocoa Touch frameworks, Xcode is an incredibly productive environment for building apps for Mac, iPhone, iPad, Apple Watch, and Apple TV.XCodeXCode

Operating System & Cloud

When it comes to programming operating systems, C is a natural choice.

There are three major variants of OS in use today: Microsoft Windows, Linux, and Apple MacOS. Of these, Linux is free and open-source software.

Cloud service providers such as Amazon Web Services (AWS), Microsoft Azure and Google Cloud allow you to rent a remote server, thus saving you the hassle of setting up and maintaining the server.

Docker is an open-source containerization platform. It enables developers to package applications into containers—standardized executable components combining application source code with the operating system (OS) libraries and dependencies required to run that code in any environment.

OSOSC is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, with a static type system. By design, C provides constructs that map efficiently to typical machine instructions. CCVariantsVariantsDocker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels.DockerDockerCloud NetworksCloud NetworksC++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language, or "C with Classes".C++C++WindowsWindowsLinuxLinuxMacMacKubernetes is an open-source container orchestration system for automating software deployment, scaling, and management. Google originally designed Kubernetes, but the Cloud Native Computing Foundation now maintains the project.KubernetesKubernetesAmazon Web Services, Inc. is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis.AWSAWSMicrosoft Azure, often referred to as Azure, is a cloud computing service operated by Microsoft for application management via Microsoft-managed data centers.AzureAzureBuild apps faster, make smarter business decisions, and connect people anywhere.Google CloudGoogle CloudAlibaba Cloud, also known as Aliyun, is a cloud computing company, a subsidiary of Alibaba Group. Alibaba Cloud provides cloud computing services to online businesses and Alibaba's own e-commerce ecosystem. Its international operations are registered and headquartered in SingaporeAlibaba CloudAlibaba CloudC# is a general-purpose, multi-paradigm programming language. C# encompasses static typing, strong typing, lexically scoped, imperative, declarative, functional, generic, object-oriented, and component-oriented programming disciplines.C#C#Launch and manage virtual private servers.LightsailLightsailVirtual servers in the cloud.EC2EC2Scalable storage in the cloud.Simple Storage Service (S3)Simple Storage Service (S3)High performance managed relational database.AuroraAuroraManaged NoSQL database.DynamoDBDynamoDBManaegd relational database service for MySQL, PostgreSQL, Oracle, SQL Server and MariaDB.RDSRDSRun code without thinking about servers.LambdaLambdaIsolated cloud resources.VPCVPCBuild, train, and deploy maching learning models at scale.SageMakerSageMakerProvision Windows and Lnux VMs in seconds.Virtual MachinesVirtual MachinesModern SQL family for migration and app modernization.Azure SQLAzure SQLDeploy and scale containers on managed Kubernetes.Azure Kubernetes Service (AKS)Azure Kubernetes Service (AKS)Execute event-driven serverless code with an end-to-end development experience.Azure FunctionsAzure FunctionsUnify on-premises, hybrid, and multicloud infrastructure.Azure ArcAzure ArcEnable a secure, remote desktop experience from anywhere.Azure Virtual DesktopAzure Virtual DesktopBuild or modernize scalable, high-performance apps.Azure Cosmos DBAzure Cosmos DBAdd cognitive capabilities to apps with APIs and AI services.Azure Cognitive ServicesAzure Cognitive ServicesEverything you need to build and operate a live game on one platform.Azure PlayFabAzure PlayFabExperience quantum impact today on Azure.Azure QuantumAzure QuantumVirtual machines running in Google's data center.Compute EngineCompute EngineManaged environment for running containerized apps.KubernetesKubernetesContent delivery network for delivering web and video.Cloud CDNCloud CDNPlatform for modernizing existing apps and building new ones.AnthosAnthosObject storage that’s secure, durable, and scalable.Cloud StorageCloud StorageRelational database service for MySQL, PostgreSQL and SQL Server.Cloud SQLCloud SQLData warehouse for business agility and insights.Big QueryBig QueryStreaming analytics for stream and batch processing.DafaflowDafaflowFully managed environment for running containerized apps.Cloud RunCloud RunSecure virtual cloud servers to power your applications based on real-time demands.Elastic Compute ServiceElastic Compute ServiceA single server-based service for application deployment, security management, O&M monitoring, and more.Simple Application ServerSimple Application ServerNext-generation relational database independently developed by Alibaba.PolarDBPolarDBAutomatically distribute traffic across multiples instances for improved availability and capability of your applications.Server Load BalancerServer Load Balancer

Artificial Intelligence

A part of artificial intelligence, machine learning is the study of computer algorithms that can improve automatically through experience and by the use of data. In supervised learning, to train a model, a collection of multi-variable inputs are supplied to an estimator, along with the corresponding output for each input. After the model has been successfully trained, predictions can be made from other inputs.

Estimators predicting discrete classes are called classifiers; whereas estimators predicting continuous values are called regressors.

Kaggle, a subsidiary of Google LLC, is an online community of data scientists and machine learning practitioners. You can win cash prizes by taking part in its competitions hosted by companies.

Artificial IntelligenceAIAIapplicationsapplicationsalgorithmsalgorithmsOften the hardest part of solving a machine learning problem can be finding the right estimator for the job.machine learningmachine learninglibrarieslibrariesComputer vision is an interdisciplinary scientific field that deals with how computers can gain high-level understanding from digital images or videos.computer visioncomputer visionnatural languagenatural languagefinancial tradingfinancial tradingproduct recommendationproduct recommendationMemoization is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.MemoizationMemoizationA divide-and-conquer algorithm recursively breaks down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved directly.Divide-and-ConquerDivide-and-ConquerAlpha–beta pruning is a search algorithm that seeks to decrease the number of nodes that are evaluated by the minimax algorithm in its search tree. It is an adversarial search algorithm used commonly for machine playing of two-player games.Alpha-Beta PruningAlpha-Beta PruningGenetic algorithms are commonly used to generate high-quality solutions to optimization and search problems by relying on biologically inspired operators such as mutation, crossover and selection.Genetic ProgrammingGenetic ProgrammingParticle swarm optimization (PSO) is a computational method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality.Particle Swarm OptimizationParticle Swarm OptimizationFirst-order logic uses quantified variables over non-logical objects, and allows the use of sentences that contain variables, so that rather than propositions such as 'Socrates is a man', one can have expressions in the form 'there exists x such that x is Socrates and x is a man', where 'there exists' is a quantifier, while x is a variable. This distinguishes it from propositional logic, which does not use quantifiers or relations; in this sense, propositional logic is the foundation of first-order logic.Propositional & First-Order LogicPropositional & First-Order LogicConstraint satisfaction is the process of finding a solution to a set of constraints that impose conditions that the variables must satisfy.Constraint SatisfactionConstraint SatisfactionA Bayesian network is a probabilistic graphical model that represents a set of variables and their conditional dependencies via a directed acyclic graph (DAG).Bayesian NetworkBayesian NetworkLinearRegression fits a linear model with coefficients to minimize the residual sum of squares between the observed targets in the dataset, and the targets predicted by the linear approximation.Regression / LinearRegression / LinearNaive Bayes methods are a set of supervised learning algorithms based on applying Bayes’ theorem with the “naive” assumption of conditional independence between every pair of features given the value of the class variable. Naive BayesNaive BayesSupport vector machines (SVMs) are a set of supervised learning methods used for classification, regression and outliers detection.Support Vector MachinesSupport Vector MachinesThe principle behind nearest neighbor methods is to find a predefined number of training samples closest in distance to the new point, and predict the label from these.Nearest NeightborsNearest NeightborsDecision Trees (DTs) are a non-parametric supervised learning method used for classification and regression.Decistion TreeDecistion TreeNeural networks are machine learning systems inspired by the biological neural networks that constitute animal brains.Neural NetworkNeural NetworkThe goal of ensemble methods is to combine the predictions of several base estimators built with a given learning algorithm in order to improve generalizability / robustness over a single estimator.EnsemblingEnsemblingFast Artificial Neural Network (FANN) Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks.FANNFANNKeras is an open-source software library that provides a Python interface for artificial neural networks. Keras acts as an interface for the TensorFlow library. KerasKerasNLTK is a leading platform for building Python programs to work with human language data.Natural Language Toolkit (NLTK)Natural Language Toolkit (NLTK)OpenNN is a software library written in the C++ programming language which implements neural networks.OpenNNOpenNNPyTorch is an open source machine learning library based on the Torch library, used for applications such as computer vision and natural language processing, primarily developed by Facebook's AI Research lab.PytorchPytorchScikit-Learn provdies simple and efficient tools for predictive data analysis.Scikit-LearnScikit-LearnSciPy is a free and open-source Python library used for scientific computing and technical computing.SciPySciPyShogun is a free, open-source machine learning software library written in C++.ShogunShogunTensorFlow is a free and open-source software library for machine learning and artificial intelligence. It can be used across a range of tasks but has a particular focus on training and inference of deep neural networks.TensorFlowTensorFlowGiven one or (typically) more images of a scene, or a video, scene reconstruction aims at computing a 3D model of the scene.scene reconstructionscene reconstructionObject detection is a computer technology related to computer vision and image processing that deals with detecting instances of semantic objects of a certain class (such as humans, buildings, or cars) in digital images and videos.object detectionobject detectionevent detectionevent detectionVideo tracking is the process of locating a moving object (or multiple objects) over time using a camera.video trackingvideo tracking3D pose estimation is a process of predicting the transformation of an object from a user-defined reference pose, given an image or a 3D scan.3D pose estimation3D pose estimationMotion estimation is the process of determining motion vectors that describe the transformation from one 2D image to another; usually from adjacent frames in a video sequence.motion estimationmotion estimationImage segmentation is the process of assigning a label to every pixel in an image such that pixels with the same label share certain characteristics.segmentationsegmentationImage restoration is the operation of taking a corrupt/noisy image and estimating the clean, original image.image restorationimage restorationRidge regression addresses some of the problems of Ordinary Least Squares by imposing a penalty on the size of the coefficients.RidgeRidgeThe Lasso is a linear model that estimates sparse coefficients.LassoLassoElasticNet is a linear regression model trained with both l1 and l2-norm regularization of the coefficients.ElasticNetElasticNetKernel ridge regression (KRR) combines Ridge regression and classification (linear least squares with l2-norm regularization) with the kernel trick. Kernel RidgeKernel RidgeIsotonic regression fits a non-decreasing real function to 1-dimensional data.IsotonicIsotonicGaussian Processes (GP) are a generic supervised learning method designed to solve regression and probabilistic classification problems.Gaussian ProcessesGaussian ProcessesStochastic gradient descent is a simple yet very efficient approach to fit linear models.Stochastic Gradient DescentStochastic Gradient DescentMachine learning based on k-nearest neighbors.K NeighborsK NeighborsMachine learning based on neighbors within a fixed radius.Radius NeighborsRadius NeighborsIn a feedforward neural network, the information moves in only one direction—forward—from the input nodes, through the hidden nodes (if any) and to the output nodes.FeedforwardFeedforwardIn deep learning, a convolutional neural network (CNN, or ConvNet) is a class of artificial neural network, most commonly applied to analyze visual imagery.CNNCNNA recurrent neural network (RNN) is a class of artificial neural networks where connections between nodes form a directed or undirected graph along a temporal sequence.RNNRNNBagging methods form a class of algorithms which build several instances of a black-box estimator on random subsets of the original training set and then aggregate their individual predictions to form a final prediction. BaggingBaggingThe predictions of each individual estimator are stacked together and used as input to a final estimator to compute the prediction.StackingStackingBoosting is an ensemble meta-algorithm for primarily reducing bias, and also variance in supervised learning, and a family of machine learning algorithms that convert weak learners to strong ones.BoostingBoostingYou Only Look OnceYOLOYOLOAutomate your image and video analysis with machine learning.Amazon RekognitionAmazon RekognitionCaptionBot is a machine-learning algorithm developed by Microsoft which analyzes an image and generates a caption to go with it.MS CaptionBotMS CaptionBotDerive insights from your images in the cloud or at the edge with AutoML Vision or use pre-trained Vision API models to detect emotion, understand text, and more.Google Cloud VisionGoogle Cloud VisionCloudSight, Inc. is a Los Angeles, CA based technology company that specializes in image captioning and understanding.CloudSightCloudSightLow-cost alternative to object detection services.Priceless AIPriceless AIThe comprehensive annotation platform for images.Scale ImageScale ImageIn random forests, each tree in the ensemble is built from a sample drawn with replacement (i.e., a bootstrap sample) from the training set.Random ForestRandom ForestThe Extra-Tree method (standing for extremely randomized trees) was proposed in [GEW06], with the main objective of further randomizing tree building in the context of numerical input features, where the choice of the optimal cut-point is responsible for a large proportion of the variance of the induced tree. With respect to random forests, the method drops the idea of using bootstrap copies of the learning sample, and instead of trying to find an optimal cut-point for each one of the K randomly chosen features at each node, it selects a cut-point at random.Extra TreesExtra TreesIsolation forest is the first anomaly detection algorithm that identifies anomalies using isolationIsolation ForestIsolation ForestThe core principle of AdaBoost is to fit a sequence of weak learners (i.e., models that are only slightly better than random guessing, such as small decision trees) on repeatedly modified versions of the data.AdaboostAdaboostGradient Tree Boosting or Gradient Boosted Decision Trees (GBDT) is a generalization of boosting to arbitrary differentiable loss functions.Gradient Boosted Decison Trees (GBDT)Gradient Boosted Decison Trees (GBDT)Light Gradient Boosting Machine, is a free and open source distributed gradient boosting framework for machine learning originally developed by Microsoft.Light GBMLight GBMXGBoost has gained much popularity and attention recently as the algorithm of choice for many winning teams of machine learning competitions.XGBoostXGBoostCatBoost is a high-performance open source library for gradient boosting on decision treesCatBoostCatBoostThese histogram-based estimators can be orders of magnitude faster than GradientBoostingClassifier and GradientBoostingRegressor when the number of samples is larger than tens of thousands of samples.Histogram-Based BoostingHistogram-Based Boosting