Introduction to Software Development Flashcards

1
Q

Describe how websites and cloud applications work.

A

Websites: Browser uses url to to request information from server. Server sends response with HTML, CSS, & Javascript

Cloud applications: request content that server returns similar to website. Built to work seamlessly with cloud-based back-end infrastructure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Identify the technologies you can use to create reactive and responsive websites.

A
  • HTML, CSS, JavaScript, SASS, LESS languages
  • Angular framework (google)
  • React.js (Facebook)
  • Vue.js (Crowd sourced?)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Identify the back-end technologies you can use to create functionality in your websites.

A
  • API - code that works with data, usually using JSON. APIs have set rules & structures
  • Routes - path to a website or page that the user interacts with
  • Endpoint processes- can be API or be a path
  • Javascript - node.js, express
  • Python - Django, flask
  • SQL (structured query language)
  • ORM (object relational mapping)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe how teams and squads work in a software engineering context.

A

Teamwork can include:
* Kick-off
* Design & code reviews
* Walkthroughs
* Retrospectives
* Mentoring

Squad
* Used in agile environment methodology
* Small team of up to 10 developers
- Squad leader
- Product developers
- UX developers/designers
* May practice pair programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Identify the benefits of different pair programming styles.

A

Driver/navigator - most common
* ‘Driver’ types in the code
* Navigator reviews code as it’s written and giving directions where to go next
* Important to swap roles regularly
Ping-pong
* First developer writes failing test
* Second developer writes code to pass test
* Important to swap roles regularly
Strong style
* Pair junior programmer with experienced one
* Senior is the navigator
* Junior is the driver

Share knowledge & skills
Build soft skills
Fewer typos, logical errors, bugs
Code review on the fly
Identify optimal solution early on
Overall efficiency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Classify common web technologies into front-end and back-end technologies.

A

Front-end:
Javascript
CSS
HTML
SASS
Angular frameworks
Vue.js
React.js
LESS

Back-end:
XML
JavaScript
JSON
Node.js
Python
Flask
Django
Express

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Identify commonly used types of development tools, including version control software, libraries, and frameworks.

A

Version control
* Examples: Git, GitHub for source code storage and management

Libraries
* Examples: Jquery - javascript; email validator; apache commons

Frameworks
* Examples: Angular JS (dynamic web applications); Vue JS (user interface);Django Python (web development)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe how some key developer tools work, including CI/CD tools, build tools, packages, and package managers.

A

Continuous Integration with Continuous Delivery or Continuous Deployment

  • You can use developer tools to track who makes what changes to your code with version control software, access libraries of reusable code, and use frameworks to build and deploy applications in a standard way.
  • CI/CD tools, build tools, packages, and package managers help you build and distribute your applications.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Describe software stacks and identify the advantages of three popular stacks.

A

Software stacks:
* Combination of technologies (software / programming languages)
* Used for creating applications and solutions
* Typically include:
- Front-end technologies like programming languages, frameworks, user-interface tools
- Back-end technologies like programming languages, frameworks, web servers, app servers, operating systems, messaging applications, and databases

MEAN (MongoDB, Express.js, Angular.js, Node.js) (MEVN, MERN)
* Free, open source
* All parts use Javascript, only one language to learn
* Lots of documentation and reusable code for developers

MEVN
* Similar to MEAN, uses Vue.js instead of Angular.js for user interfaces
* Newer, less reusable libraries

LAMP (Linus, Apache, MySQL, Python)
* Open source
* One of oldest stacks
* Lots of reusable code and support

How well did you know this?
1
Not at all
2
3
4
5
Perfectly