0% encontró este documento útil (0 votos)
41 vistas7 páginas

Conceptos de La Programación

Este documento introduce los conceptos básicos de la programación, incluyendo los tipos de lenguajes de programación, paradigmas, desarrollo web y móvil. Explica que un lenguaje de programación permite escribir instrucciones en forma de algoritmos, y describe lenguajes populares como Python, Java y JavaScript. También cubre temas como programación orientada a objetos, funcional, estructurada, frameworks, y las diferencias entre front-end y back-end.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas7 páginas

Conceptos de La Programación

Este documento introduce los conceptos básicos de la programación, incluyendo los tipos de lenguajes de programación, paradigmas, desarrollo web y móvil. Explica que un lenguaje de programación permite escribir instrucciones en forma de algoritmos, y describe lenguajes populares como Python, Java y JavaScript. También cubre temas como programación orientada a objetos, funcional, estructurada, frameworks, y las diferencias entre front-end y back-end.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

Conceptos de la programación

Introducción al ecosistema de la programación


Que es un lenguaje de programación? → Serie de reglas que permite escribir
instrucciones en forma de algoritmo para controlar el comportamiento de un
sistema

Tipos de paradigmas de programación

Imperativos vs declarativos

imperativos → Paradigmas antiguo, una secuencia de instrucciones que


se define paso a paso. Ej: Paso 1 carga navegador, P2 escribe
google.com, P3 buscar como aprender a programar

Declarativo → Se centra en cual va a ser el resultado final.

Ventajas y desventajas: Legibilidad, Facilidad de aprendizaje y


escalabilidad del código (todo gana imperatividad)

Funcionales vs Procedimentales

Procedimentales consisten en algo similar a lo imperativo

Conceptos de la programación 1
Funcional se encarga en ir creando una serie de funciones en los
cuales introducimos un parámetro y obtenemos otro

División por niveles

0 - Lenguaje maquina → Nos comunicamos a base de 1 y 0

1 - Lenguaje Ensamblado → Serie de instrucciones especificas muy


difíciles de aprender (primer lenguaje de programación)

2 - Bajo Nivel →Relacionados con el comportamiento del hardware y la


arquitectura (L. Maquina & L. Ensamblador)

3 - Medio-Bajo → Mas conocido “C/C++”, capacidades de alto nivel y


capacidades de bajo nivel (acceso a registro de memoria)

4 - Medio-Alto → Lenguajes de programación modernos (php, java,


javascript, python, etc)

5 - Alto Nivel → Frameworks (serie de funcionalidades extra de los


lenguajes), están basados en lenguajes de medio nivel.

Proceso de conversión

Nuestro ordenador sólo entiende 1 y 0, para poder hablarle a una computadora


necesitamos un traductor, para esto tenemos lenguajes de programación
compilados o un intérprete

IDEs
Entorno de desarrollo integrado (IDE) → Existen varios: VSCode, Atom, Sublime
Text, PyCharm, Notepad++
Control de versiones: Si quiero volver a versiones anteriores necesito utilizar
diferentes sistemas, ejemplo git y github. Antes existía CVS y SVN para
controlar versiones del código

Lenguajes de programación
Introducción
python → Lenguaje de programación más utilizado, se utiliza para todo y tiene
frameworks para desarrollo web (django y flask), es un lenguaje fácil de utilizar

Conceptos de la programación 2
y de programación interpretado.

Java → Es un lenguaje de programación orientado a objetos, mas utilizado para


grandes corporaciones, lenguaje base para aplicación android, lenguaje
relativamente fácil de aprender.
JavaScript → Lenguaje para aplicaciones web y páginas web, las nuevas
empresas usan NodeJS (framework) para sus servidores, lenguaje para
startups modernas y es más fácil de aprender que JAVA
TypeScript → Es desarrollado en base a javascript, desarrollado y mantenido
por microsoft, agarra js y le agrega lo de los tipos y un poco más complejo que
javascript
C# → Derivado de C/C++, es muy versátil, sirve para backend, videojuegos o
app de microsoft, se utiliza para crear videojuegos en el modo Unity, y lenguaje
de dificultad moderada

.NET → Framework para crear sitios web, app web, y servicios web, tiene
dificultad moderada y fue creado por Microsoft.
PHP → Lenguaje más utilizado para desarrollar app web, compite directamente
con javascript y python, muy sencillo de aprender y apoyo de la comunidad, las
webs son un poco mas lentas a JS
HTML → Lenguaje de etiquetado, deben interpretar todos los navegadores, se
utiliza para crear sitios web ESTÁTICAS, es muy sencillo de aprender.

CSS → Forma parte de la triada HTML-CSS-JS, lenguaje de diseño gráfico,


aplica lo visual de una página web HTML.

Ajax → Se utiliza para complementar las características de una pagina web, es


una extensión de JS para interactuar con sitios externo (Mantener la página
web y esperar a recibir info a base de datos)
Ruby → Se utiliza para servidores, lenguaje de programación sencillo de
aprender

Perl → Se utiliza para administrar sistemas, desarrollo web y desarrollo de GUI,


complejidad moderada

Dart → Desarrollado por google, se utiliza para web, servidores y móvil, sintaxis
como C y lenguaje complejo de aprender y con comunidad muy pequeña
Kotlin → Se desarrollo para competir contra JAVA, mas sencillo que utilizar con
el mismo output, puede interactuar con código java y se utiliza para desarrolla
app móviles.

Conceptos de la programación 3
Swift → Lenguaje para desarrollar app de IOS, esta respaldado por Apple y
tiene soporte a partir del iOS7

BONUS → Lenguajes más utilizados JS, HTML/CSS, Python, SQL, Java, Node,
TypeScript, C#, Bash, C++, PHP, C, PowerShell, Go, Kotlin, Rust, Ruby.

Paradigmas de programación
Programación Estructurada → Primera programacion, por secuencias para
ejecutar una instrucción abajo de la otra, que puede tener una condición y
variar una instrucción o otra

POO → Importancia en los OBJETOS, lo bonito es que los objetos se van


relacionando entre sí, lo importante de estos objetos es que tienen 2 tipos de
propiedades.

Atributos: Nombre, Apellido, Edad, Email, etc.

Métodos: login, registro, logout, comprar, etc.

Para crear los objetos se hace uso de las CLASES, en base a esta clase (que
tiene métodos y atributos) podemos crear diferentes objetos.

Conceptos claves:

Abstracción: Definir atributos y funcionalidad a los objetos

Encapsulamiento: Dentro de un obj, tener todos los atributos y métodos

Herencia: Podemos tener una clase padre y de este podemos hacer clases
derivadas

Polimorfismo: Nosotros podemos usar un mismo método puede tener


diferentes formas según el atributo del objeto

Programación Funcional → Características:

Utiliza las funciones PURAS, estas al llamarse una vez se obtiene un


resultado no importa cuantas veces lo llames, siempre va a dar el mismo
resultado.

Funciones sin estado, no tiene variables internas. RECURSIVIDAD, es una


función se llama a si misma

Conceptos de la programación 4
Se puede utilizar tanto como Programación Estructurada y POO.

Desarrollo web
Front y Back → Frontend (el diseño o la cara visible) Backend (darle la
informacion al frontend), & FULLSTACK (comprende ambos desarrollo)

Lenguajes del lado del servidor → Java, Ruby, PHP, Python, C#, .NET, Perl,
NodeJS. Se encarga de liberar de carga computacional al cliente.

Lenguajes del lado del cliente → HTML, CSS, JS, TypeScript, Ajax.

CMS → Wordpress, Joomla, Drupal, Magento, PrestaShop, Shopify, Odoo.


Software que ya tiene todo (Front y back) a través de esto puedes programar
una página sin necesidad de programarlo.

Frameworks → Librerias que complementan a los lenguajes de programación,


desde el cliente “Front” (Angular, Vue, ReactJS, Laravel, Spring, .NET, Flashk,
Django), desde el servidor “Back” (ExpressJS, Adonis). desde el testing o
pruebas unitarias (PyTest, Jest, JUnit, PHPunit, Nunit, xUnit.net).
Librerias → JQuery, React, Boostrap. React y JQuery trabaja desde el DOM
(manipular el html), y Bootstrap trabaja desde los Estilos (a través de las
etiquetas “class”)

Servidores → Apache, Nginx, OpenLiteSpeed, Apache Tomcat. Casi siempre se


usa Apache o NodeJS. Sirve como servidores Web, FTP, BDD, Correo
electronico.

Navegadores → Edge, Opera, Safari, Chrome, Brave, Firefox.

Stacks → Conjuntos de tecnologías que permiten crear web full stacks. LAMP,
WAMP, XAMPP (Basados en php), MERN, MEAN, MEVN, PERN (Basado en JS).

Introducción al desarrollo mobile


Plataformas Moviles → Android, iOS.
IDEs y Emuladores → XCode & Android Studio.

Lenguajes de desarrollo → Java o Kotlin y Swift

Freameworks y librerias → Xamarin, Flutter, React Native, IONIC

Conceptos de la programación 5
Desarrollo multiplataforma
Crear un solo codigo y que despues se creen diferentes archivos para las
diferentes plataformas existen.
Plataformas → iOS, MacOS, Windows, Linux, Android, JVM.

Lenguajes multiplataforma → JS, JAVA, Python, C#, Ruby, Dart. Pero necesito
tambien diferentes Frameworks para que funcione multiplataforma

Frameworks → Flutter, IONIC, ReactNative, Xamarin, NiteScritp, Appcelerator


(los mas utilizados POR ORDEN)

Code review
Que es? Cuando trabajamos en un equipo utilizando git se crea un “pull
request”, va a pasar el filtro de alguien que revisa y testea el codigo antes de
llevarlo a produccion.
Las plataformas que facilitan la revision del codigo son muchas, las mas
utilzadas son GitLab, GitHub, CodeFactor

Base de datos (BDD)


Una BDD es un sistema que nos permite almacenar información, lo más típico
es en formato tabla.

SQL → Tablas base de datos relacionales, ya que se puede crear relaciones en


base a claves de otras tablas. Ej: Se puede unir Tabla usuarios con Tabla de
lenguaje (grafico que relaciona 1 INT y 1 INT). Los proovedores MySQL,
MariaDB, PostgreSQL, Oracle.
NoSQL → BDD NO relacionales, Ejemplo las Key-Value (clave valor), tenemos
claves diferentes y con esas claves encontramos el valor, esto trabaja mas con
memoria RAM, por lo que es rapidisima. Otro modo son los OBJETOS, es un
tipo muy flexible. Proovedores, MongoDB, CloudFirestore, Cassandra, Redis,
GraphQL.

DevOps y CICD

Conceptos de la programación 6
Que son DevOps → Es una metodologia de desarrollo de software que consiste
en ir desarrollando y publicando codigo de poco en poco, PAra las facilidades
se desarrollo el CI (integracion continua, lo que hace es publicar el codigo a
travez de un merge, pull, etc.) y CD (despliegue continuo, desplegar la
aplicacion a produccion para que se pueda utilizar).
Las herramientas o servicios que ofresen soporte CI/CD, Ansible, HELM,
Jenkins, GitLab, GitHub, BitBucket.

Contenedores
Contenedores → infraestructura, el sistema operativo, el software (contenedor
motor) donde le paso cada uno de los contenedores, libreria, software, etc. Por
lo que trabajamos con menos MB por contenedor (mayor rapidez). Docker y
Pdman.

Orquestación → Rol del desarrollador (realizar una interfaz-FrontEnd que


necesita un servicio de Backend y acceso a la base de datos. “desarrollar 3
contenedores”), Rol de Operaciones IT (ayuda con el despliegue, escabilidad,
network,etc. Por lo que el servicio de orquestacion tiene sus diferentes nodos,
que tiene los 3 contenedores pero guardados en 1 nodo y lo que realiza el
Master es darle facilidad a la hora de desplegar los contenedores, pero el nodo
lo que hace es darle mas recursos SOLO a lo que realmente necesito)
DockerCompose, Kubernetes, OpenShift (redhat).

Cloud Computing
Que es? → Es un modelo de entrega de servicios de computación a través de
Internet. En lugar de almacenar y procesar datos en dispositivos locales, como
computadoras personales o servidores locales, el Cloud Computing permite
acceder a recursos informáticos, como almacenamiento, potencia de
procesamiento y software, a través de la red. Las companias mas conocidas
son AWS, Google Cloud y Azure.

Quality Assurance

Conceptos de la programación 7

También podría gustarte