top of page

How to Speak Tech: The Non-Techie’s Guide to Key Technology Concepts - Vinay Trivedi

Writer's picture: Anderson PetergeorgeAnderson Petergeorge

Overview

Exploring the realm of technology through a non-technical lens, this guide offers invaluable insights into key tech concepts for non-techies. With clarity and accessibility, it demystifies complex jargon and provides a comprehensive understanding of fundamental technological principles.


Notes

Hosting Considerations:

  • Server type - does not matter for the average user and use case

  • Disk space allowance - size of website determines memory needed

  • Bandwidth - how many people you can service at once

  • Reliability and uptime

  • Price

Different Types of Hosting:

  • Shared hosting: multiple users share single server. Typically cheapest but most inflexible

  • Dedicated server: Increase in cost for added flexibility and control. Good if you have several websites, significant traffic or substantial database use

  • Virtual dedicated server: Mix between shared and dedicated, you can customize the server but multiple customers can use the same server

  • Collocated hosting: You own server but delegate its management to a hosting provider



  • Compiled languages: Use a compiler to translate the code into language that the computer's processor understands. Examples is C or Java. Compiled languages are fast to run but slow to develop

  • Interpret languages: Are translated in real time. The execution is one or two orders of magnitude slower than compiled systems. Often use more memory but are quicker to develop. Example PHP, Python

Taxonomies of high-level languages

  • Imperative languages: Focus on how to achieve an objective and are typically written as a sequence. Ex. C and Java

  • Declarative languages: Focus on the what of an objective and leave the how to the programming language. Ex. SQL

  • Functional languages: Rely on functions and recursions as their main method of computing instead of stored variables or iterations. Ex. CAML, Standard ML

  • Object-oriented languages: Create objects to store information and execute commands. Examples C++ and Java

  • Scripting languages: share many qualities with imperative and object-oriented programming. Examples Python and Ruby

  • Parallel programming languages: allow for multiple execution sequences to proceed concurrently.

  • Query languages: are used to interact with a database

  • Markup languages: use tags and special characters to give structure to a document. Example is HTML and XML

Evaluating programming languages for their suitability, technical and design considerations:

  • Naturalness of application, refers to the relative ease of coding your application in a particular language based on the functionalities and constructs it provides. Object-oriented programming languages became popular in part because they allow the programmer to think about the solution to the problem in many ways and therefore fit many programmers' uses

  • Reliability refers to a program's ability to perform the same way each time. It is cheaper to catch errors at compile time rather than at runtime. Compiled languages typically take longer to develop and execute. The trade off between cost of execution and reliability is one that programmers constantly face.

  • Support for abstraction, refers to the ability to define and use complicated structures or operations in a way that allows many of the details to be ignored

  • Portability refers to the ease with which your program can be translated into another programming language.

  • Efficiency refers to the time that the code takes to execute often at a cost to abstraction

Practical considerations:

  • Applicability: If you have the wrong tool for the job, your code might become unnecessarily complicated

  • Documentation: refers to resources that explain a language's syntax, usage and constructs.

  • Development time: Historically, speed and memory usage were key factors in choosing a language, because processors were slow and memory was limited. Now, however, hardware is cheap and becoming cheaper. Now organizations tend to prioritize development time over execution time.

  • Reliably updated: More popular languages, such as PHP and Python, tend to be updated regularly based on programmer feedback.

  • Maintainability: This practical factor relates to a language's simplicity and readability.

  • Committed community: Another benefit of popular languages is the community of programmers using it.

  • Talent pool: The committed community also comprises your target market for technical hires.

  • APIs, libraries and tools: A large community of programmers might post tools that you can plug into your program to save the time of programming it yourself.

  • Integrated development editors (IDEs): This one-stop application has an editor for typing code, a source compiler to translate the code, a debugger to help spot any errors in the program, and a few other project management-related tools.

The Front End: Presentation

  • Wireframes are simple blueprints for a screen. Putting together wireframes forces you to think about information design and interaction design.

  • Information design relates to how you present all of the content or messaging you want to communicate to the user

  • Interaction design refers to the series of actions you want the user to perform to complete some overall task

  • User interface (UI) is how your application looks

  • User experience (UX) is how your user feels about using your application

  • HTML is a markup language that defines the content and structure of pages

  • Cascading Style Sheets (CSS) is a language that tells the browser how to style and position the various HTML/XHTML elements.

  • Eight general styles categories:

    • Type: Font, color

    • Background: Color, image

    • Block: Word spacing, line spacing

    • Box: Width, height, float

    • Border: Style, color

    • List: Style, position

    • Positioning: Position, height, visibility

    • Extensions: Page break, cursor

  • JavaScript is a object based scripting language that allows interactivity (e.g. Drop down menus)

  • Ajax is asynchronous JavaScript and XML combined. Allows a webpage to create functions in the background

Databases: The Model

  • Four components: Data, hardware, software and users

  • A database management system (DBMS) is responsible for defining the database and storing, manipulating and sharing the data across users and applications

  • Four most common data models: Relational model, non-relational model, the object-oriented model, and the object-relational model.

  • Application Programming Interfaces (APIs)


Comentários


bottom of page