3. Training outline
• Terms Review
• SDLC overview
• Engagement models
• Business domains at a glance
• Technologies explained
• Major players
• Second echelon technologies
• QC at a brief
4. Terms Review
• Front/Back-end developer
• Full stack developer
• Desktop/Mobile/Embedded
• IDE
• Issue tracking system
• Version/Source control
• OOP
• Garbage Collection
(GC)
• Compiled vs
interpreted
• Static/dynamic typing
• TDD/BDD/DDD
• Web service
• SOA/Microservices
• Continuous Integration (CI)
• Continuous delivery (CD)
• Business intelligence (BI)
• Business analyst (BA)
• Product Manager
• User experience (UX)
• Agile
• SCRUM/Kanban/Waterfall
• SDLC
12. • C++ is a middle-level programming language developed
by Bjarne Stroustrup starting in 1979 at Bell Labs
• Compiled, static type check
• Fully compatible with C
• Direct mapping of hardware features provided by the C
subset
• Standards: 98, 2011, 2014, 2017, (2020)
• IoT ready
• STL – standard library
• Other libraries: Boost, Qt, POCO,
• Drawbacks:
• No Garbage Collection (GC)
• Slow compilation
• Low portability
16. C# and .Net
• Microsoft reply to Sun’s proprietary Java
• Follows syntax traditions of C++
• Very similar to Java at initial launch
• Evolved to more advanced language features with time
• Enterprise ready
• Only one major framework: .Net
• Strives to be less “Windows” now
• Mobile framework Xamarin
19. Front-End
• JavaScript (ECMAScript 5/6/7/8/9) - dynamic
programming language, allowing client-side script to
interact with the user and make dynamic web pages. It is
an interpreted language with object-oriented capabilities
• HTML 5 - markup language for describing web pages
• CSS 3 – styling web page
20. Front-End terms
• Web Server - program that uses HTTP to serve Web pages to users
• DOM - Document Object Model, all elements on a webpage
• Responsive web design - approach to web design which makes web pages
render well on a variety of devices and window or screen sizes.
• Native/hybrid mobile apps - platform (iOS, Android etc.)
specific/independent app design, distributed via AppStore. Partially
running in a mobile browser, hybrids do not have a URL, support a rich
user interface and access to system capabilities.
• Progressive Web Applications - web applications that can appear to the
user like traditional applications or native mobile applications. The
application type attempts to combine features offered by most modern
browsers with the benefits of a mobile experience.
21. JavaScript Frameworks 1
• React.js – powers Facebook and Instagram and is best at rendering complex user interfaces with high
performance. fundamental behind React is the concept of virtual DOM, which can be rendered either at
client or server side. React component libraries can be created and used across applications (e.g.
Material-UI framework)
• React Native, React for IoT, React for AR/VR - React has broken free of its web roots.
• Angular JS – JavaScript framework for developing Single Page Web Applications. Designed by Google.
Reached version 5.0. It gives option to extend HTML attributes by the use of Angular directives. Two way
data binding is at the core: When user interacts with the interface and provides an input, the view and
the model (JavaScript objects) are synchronized, the logic in the model is executed and the DOM gets
updated. This essentially takes away all the pain of writing manual code for DOM manipulation.
• Node.js – framework for developing server-side Web applications, uses non-blocking, event-driven I/O to
remain lightweight and efficient in the face of data-intensive real-time apps that run across distributed
devices. It helps build scalable and fast network applications, as it’s capable of handling a large number
of simultaneous connections with high throughput, which brings out high scalability
• also…
• Vue.js – newer MVVM framework, minimalism to the extreme, use selective modules and updates model
and view via two way data binding
• jQuery - cross-platform library designed to simplify the client-side scripting of HTML.
22. JavaScript Frameworks 2
• PhoneGap (Ionic) – popular hybrid frameworks
• Ember.js - MVC JavaScript framework. Targets the best of both AngularJS
(two way data binding) and ReactJS (server side rendering)
• Polymer.js – web component development. Created by Google in 2013
• Knockout.js - MVVM design paradigm. Currently slowed at development
• Meteor.js – frameworks that allows for rapid prototyping and produces
cross-platform (web, Android, iOS) code. Allows building end to end
mobile and web applications completely in JavaScript at lightning speed.
Meteor.JS is modular. server side packages run in the node.js.
• Backbone.js – lightweight, simple, small size package and easy to learn.
Powers Pinterest, Foursquare, Walmart. Slowed at development recently
• Underscore &lodash – utility libraries to increase productivity
23. CSS Frameworks
• Bootstrap – helps to build web design concepts, mobile first
projects, grid systems, typography, buttons and so on.
• Foundation - building websites, creating email templates, building
mobile and web apps.
• CSS Preprocessors:
• Sass
• LESS
24. JavaScript Tools
• Chrome Dev Tools: DOM inspect & JS debugger
• Gulp (Grunt) - toolkit that helps you automate painful or time-consuming tasks
in your development workflow.
• Npm (Yarn): The standard open-source package repository for the JavaScript
language.
• Webpack (Browserify): The most popular bundler for standard JavaScript look
for simple starter kit/boilerplate config examples to get things running fast)
• Mocha (Jasmine) - JavaScript test framework
• Sublime, Atom, VSCode, or WebStorm - the most popular JS editors today.
• ESLint: Catch syntax errors and style issues early. After code review and TDD,
the third best thing you can do to reduce bugs in your code.
• TypeScript - strict superset of JavaScript, and adds optional static typing and
class-based object-oriented programming to the language
• Babel: Used to compile ES6/7 to work on older browsers.
26. SQL
Did not change significantly since 1992
No compatibility issues
Used universally across all technologies
Skills:
• Queries
• Writing stored procedures
• Creating DB structure from domain
• Administering DB
27. Major RDBMS Comparison
• MS SQL Server
• Microsoft
• Enterprise-ready
• Popular due to flexible pricing
model
• Windows only (but soon Linux!)
• Oracle
• All platforms
• #1 in enterprise
• Very expensive
• Looses market share
• Most instances: MySQL (because it's free)
• Most paid-for instances: MS SQL Server
(because it's cheap)
• Most license revenue: Oracle (because
it's expensive)
29. DevOps
• DevOps is a culture, that emphasizes the collaboration and
communication of both software developers and other IT
professionals while automating the process of software
delivery and infrastructure changes.
38. Python
• Very easy to learn
• Diverse and big community with strong ties to Linux and academia
• Main Web framework – Django
• Language of choice for Machine Learning
• Python 3.0 (2008) broke backward compatibility, and much Python 2
code does not run unmodified on Python 3.
40. Ruby
• More tied to Web Development
• Adds lots of new features but less tricky at debugging and scaling
• Main Web Framework Ruby on Rails
• Example of users: Apple, Twitter, Github, Groupon, Shopify, Airbnb
44. PHP
• Backend oriented
• PHP is interpreted/scripting language
• Designed for web development
• Lots of legacy apps
• Current version 7 (fast) but 80% run on 5th
• PHP is used by 83.5% of all the web
• Slack, Etsy, Cloudflare, Tesla, Wikipedia,
WordPress.com, Tumblr
Facebook!
46. GO
• Open sourced, created by Google (with c++ in mind)
• Compiled, statically typed, with garbage collection
• It also aims to be modern, with support for networked and
multicore computing (easy channels, “goroutines”)
• Users: Google, Netflix, Dropbox, Docker
• Drawbacks – still mostly experimental and not quite enterprise-
ready, poor community, small package supply
• Go is a programming language that values machine time over
human time
48. Objective C / Swift
• Used in Apple’s IOS/MacOS
• Objective C – very similar to C++ (a bit more dynamic and modern in
syntax)
• Swift is newer language, easier to read and maintain, more bug-safe
• Swift is not for legacy apps (>= Mac OS X 10.9, iOS 7.0)
50. Scala / Functional programming
• Scala came from Java
• Scala tied to Functional programming
• Scala often used with Spark – Big data solution
• Functional programming - a style of building the structures that
avoid changing - state and mutable data.
• Benefits: Functional is more explicit, easier to test
• Cons: “pure” functional is hard to follow
• Also Haskell, Clojure
• No modern production language is “purely” functional
52. QC at a Brief
• Manual QC – trained tester assumes the role of end-user.
• Automation QC – develops test scripts or tools which perform defined actions within user
environment.
• QC tools:
• Selenium
• xUnit
• Jmeter
• Postman
• …others
• Types of automation testing:
• Desktop UI
• Web
• Mobile
• Use BDD