Logotipo de Orbis Sapientia Elearning Services

Servicios de formación. Especialistas en E-learning.

Cómo ser desarrollador web

Se trata de una de las salidas laborales actuales más demandadas asi que veamos en este artículo ¿cómo ser desarrollador web? Sin embargo, “ser programador de aplicaciones para móviles o APPS es más actual”.

Es posible, no voy a entrar en un debate que solamente sirve para perder el tiempo. En definitiva, yendo a lo práctico: como desarrolador web disponemos de más areas sobre las que podemos aplicar nuestros conocimientos, incluyendo la creación de aplicaciones para móviles.

“Deducimos de ello entonces que la creación de aplicaciones móviles puede formar parte de ser desarrollador web”

Ahora es cuando algunos me pueden quemar en una hoguera… Sigamos leyendo y veamos más información al respecto.

Voy a evitar datos tales como lo que puedes ganar o no ya que esto es muy variable y existen muchos factores. Me centro en el apartado técnico que es lo que trata este blog al fin y al cabo.

¿Qué es ser desarrollador web?

Básicamente, una persona que crea aplicaciones web.

Para quien no lo sepa, una aplicación web es un programa que necesita de un servidor web o de aplicaciones y cuya interfaz está realizada en lenguaje HTML, CSS y JavaScript. Es necesario un programa adicional para que nuestra aplicación funcione: el servidor.

Por tanto se necesita para interactuar con su interfaz, un programa que lea y procese ese código HTML, CSS y JavaScript: desde luego el clásico navegador web es el más usado.

Frondtend

Las aplicaciones web suelen dividirse en dos grandes áreas. El área que ve el usuario, la interfaz de la aplicación comúnmente llamada frontend, es la primera. Sirve para que el usuario pueda trabajar con la aplicación e interactuar con ella.

La interfaz de la aplicación o frontend, muestra los datos que necesita el usuario, provee de los controles que le permiten trabajar, enviando datos que puedan ser procesados o solicitándolos y presenta el resultado obtenido de nuevo al usuario.

Cuando un usuario accede en su navegador web a la url de nuestra aplicación, le aparecerá la interfaz pública o frontend. Ésta, estará por tanto creada mediante HTML, CSS y JavaScript.

En definitiva, si queremos ser especialistas en este área, debemos conocer HTML (versión 5), CSS (versión 3) y JavaScript como mínimo.

JS

Aparte de esas herramientas esenciales es muy conveniente conocer otras que nos permiten ser más productivos, crear interfaces más mantenibles, etc. Veamos unas cuantas.

HERRAMIENTAS DE DESARROLLO DEL NAVEGADOR

Prácticamente, cualquier navegador de hoy en día tiene unas herramientas de desarrollo y en casi todos ellos, se puede acceder a ellas pulsando la tecla .

Son de gran ayuda para verificar el DOM resultante, la aplicación de estilos CSS, gestionar la consola de JavaScript, localizar los ficheros fuente de CSS, JavaScript, etc., y mucho más.

FRAMEWORKS CSS

Sin ser herramientas imprescindibles, los frameworks CSS ofrecen un medio de utilizar unos estilos predefinidos que mediante su aplicación, realizan tareas frecuentes de una forma mucho más rápida entre otras ventajas, como por ejemplo, hacer que nuestra aplicación web sea responsive o adaptable.

En resumen, nos ahorran el trabajo de definir unos estilos que sean compatibles entre navegadores, evitar errores, seguir algún estándar y en definitiva, ser más productivos. Los más conocidos son:

PREPROCESADORES CSS

De acuerdo, preprocesadores CSS pero, ¿qué son?  Se trata de herramientas que nos permiten utilizar entidades de programación como variables, funciones, bucles, condiciones, etc. Esto es, permite generar estilos CSS con scripts CSS.

Personalmente los uso en la actualidad porque hay herramientas que para trabajar con ellas, me “obligan” a usarlos. En proyectos propios he preparado mis propios scripts: al fin y al cabo, se trata de generar CSS personalizado dependiendo de ciertos factores.

En cualquier caso, los más conocidos son:

FRAMEWORKS JAVASCRIPT

Tareas como realizar peticiones AJAX, cambiar los elementos HTML y CSS de una página, seleccionar un objeto o un conjunto de ellos más un largo etcétera, hace que usar un framework JavaScript sea una elección más que interesante.

Resumiendo, si la aplicación web usa JavaScript (y hoy día esto es redundante), es casi imprescindible usar un framework que nos facilite muchas acciones.

Angular JS
React
Angular
VUE JS
JQuery

MINIFICADORES DE CÓDIGO

Los minificadores de código realizan una importante tarea: aligeran el código del frontend o interfaz para que sea más rápida la carta de una página o pantalla.

Para ello realizan en general tres funciones básicamente:

  1. Eliminar comentarios, espacios en blanco innecesarios y otro código superfluo.
  2. Cambiar el nombre de las funciones, reglas, etc., por otros más pequeños.
  3. Juntar todo el código CSS y JavaScript en un solo fichero.

El resultado es que HTML, CSS y JavaScript “pesa menos” y se realizan menos accesos al servidor (y al disco) que ralenticen la carga de una pantalla.

Por supuesto, existen minificadores que hacen todos los puntos anteriores, otros que solamente hacen algunos de ellos y otros que solamente trabajan con JavaScript, CSS o HTML.

Como efecto secundario de un código minificado, es la “ofuscación” del código y por tanto de una capa de protección contra miradas no deseadas a éste.

La minificación de código resulta indirectamente en la ofuscación básica de éste
Es conveniente el uso de esta herramienta en formato comando de consola para, de esta manera, realizar la minificación en la construcción/despliegue de la aplicación. De todas formas, también las encontramos frecuentemente de forma online como MINIFY CODE .

Backend

Obviamente, el backend necesitará una interfaz con la que comunicarse con el usuario, tanto si los datos que provee se muestran en el área pública como en el área administrativa de la aplicación.

El backend provee al frontend de los datos que muestra.

Recibe datos que el usuario ha proporcionado a través del frontend para ser procesados y devuelve un resultado que se mostrará, nuevamente, en el frontend.

Finalmente, también tomará las acciones realizadas por el usuario en la interfaz o frontend para realizar una o más acciones.

A diferencia del frontend que se ejecuta en el navegador web, el backend se ejecuta en un servidor web o un servidor de aplicaciones.

Otra diferencia es que mientras que el frontend se realiza con HTML, CSS y JavaScript, el backend se ejecuta en un lenguaje de servidor.

El lenguaje de servidor puede ser en principio cualquiera. Sin embargo es cierto que a día de hoy existen una serie de lenguajes que dominan en este área. Voy a mencionar los lenguajes considerados “free” hasta la fecha, más usuales.

Del mismo modo, es casi seguro que la aplicación web necesitará gestionar datos almacenados. Necesitaremos para ello, un motor de base de datos.

Hoy en día los lenguajes de lado servidor más usuales para crear aplicaciones web son (no necesariamente en orden de porcentaje de uso):

  • PHP . Actualmente no es el lenguaje más usado para crear aplicaciones web. Sin embargo, WordPress es la aplicación web más usada y esta, está creada con PHP. Si le sumamos que Prestashop, Joomla, Drupal, Magento y otras herramientas también usan PHP, ya no queda tan claro que no sea el lenguaje más usado.
  • Java. A día de hoy se discute mucho sobre si Java ha finalizado como lenguaje libre, gratis o qué. Mira este artículo dónde se explica todo eso.
  • Python . Cada día crece más y se acerca a ser el lenguaje más usado. Lo cierto es que al ser un lenguaje de propósito general, fácil de aprender, está arrasando.
  • JavaScript de lado servidor. A día de hoy, JavaScript no solamente sirve para utilizarse en el frontend. También puede usarse digamos, con variaciones en el lado servidor. Node JS + Express es un ejemplo de JavaScript en el lado servidor.
  • TypeScript . Otra posibilidad de programar mediante JavaScript en el backend o lado del servidor. TypeScript es JavaScript con “esteroides”. Suele usarse a menudo junto a Angular.
  • Ruby . Durante algún tiempo se dijo que era el sustituto de Java. Hoy día tiene su nicho. A su favor también, la facilidad de aprendizaje.
  • etc. Existen muchas más posibilidades…

Dependiendo del lenguaje de lado servidor elegido, es posible que necesitemos aprender el uso de herramientas adicionales. Ejemplo: con Python es muy probable que necesitemos aprender a utilizar Django o Flask. Otro ejemplo con Java: JSP, Spring, Hibernate, etc.

Adicionalmente podemos encontrarnos con lenguajes como Go, Rust, Kotlin, etc., que cada día se van conociendo más.

Sin embargo, como he mencionado, lenguajes pueden ser cualquiera, incluyendo a C, C++ y Perl por citar a unos clásicos de los primeros tiempos de las aplicaciones web. Y no nos llevamos a engaño, siguen utilizándose.

En el mundo del desarrollo con herramientas de software libre, PostgreSQL, MySQL y MaríaDB son nombres que os acabarán sonando.

Son motores de base de datos relacionales. Las tradicionales, vamos. Lo que tienen en común todas ellas es que para realizar las consultas de los datos que guardan, se basan en el lenguaje SQL. Hay diferencias entre las versiones de SQL usado en cada motor pero la base es la misma. Resumiendo: hay que aprender SQL.

Ya hace tiempo que disponemos de alternativas a las bases de datos relacionales. Son las llamadas bases de datos NoSQL. Existen muchas y muy diferentes. Sin embargo, haré mención especial de una de ellas por la difusión que ha tenido. Hablo de MongoDB que, hace uso de JavaScript como lenguaje de consulta. Ahí lo dejo.

No sé vosotros pero a estas alturas, creo que queda claro que aprender JavaScript con profundidad es importantísimo.

Full Stack

Ser programador o desarrollador Full Stack implica conocer muy bien el Frontend, el Backend y la integración de los dos.

En lo que respecta al Frontend, hay cierta “homogeneidad” en cuanto a lo que se necesita y hemos visto más arriba. En cuanto al Backend, ¿en qué lenguaje nos especializaremos?

INDICE TIOBE OCTUBRE 2019

Oct 2019Oct 2018LenguajeCalificaciónCambio
11Java16.884%-0.92%
22C16.180%+0.80%
34Python9.089%+1.93%
43C++6.229%-1.36%
56C#3.860%+0.37%
65Visual Basic .NET3.745%-2.14%
78JavaScript2.076%-0.20%
89SQL1.935%-0.10%
97PHP1.909%-0.89%
1015Objective-C1.501%+0.30%
1128Groovy1.394%+0.96%
1210Swift1.362%-0.14%
1318Ruby1.318%+0.21%
1413Assembly language1.307%+0.06%
1514R1.261%+0.05%
1620Visual Basic1.234%+0.58%
1712Go1.100%-0.15%
1817Delphi/Object Pascal1.046%-0.11%
1916Perl1.023%-0.14%
2011MATLAB0.924%-0.39%
Ser programador Full Stack implica dominar el Frontend, Backend y la relación entre los dos

Formatos de archivo

En todo este mundo, la configuración de las herramientas, la comunicación de datos entre áreas, el almacenamiento de éstas y otras funciones, hace necesario o al menos conveniente, conocer ciertos formatos de archivo entre los que destacan dos: JSON y XML.

Control de versiones

Una tarea importante en el desarrollo de software es el control de versiones. Sobre todo, si trabajamos en equipo con otras personas. Evitamos así que toquemos algo que ya había sido tocado, trabajemos sobre algo más antiguo que ya tiene una versión más actual, etc. Las herramientas clásicas son CVS y SVN. Hoy día sin embargo, es la herramienta que más se utiliza (o basados en ésta como GitHub o GitLab).

Servicios Web

Los servicios web en realidad son un sistema que facilita intercambiar datos entre aplicaciones, web. Es por ello que ese intercambio se realiza a través de la Web, valga la redundancia.

Todos estos sistemas están basados o utilizan estos formatos: XML o JSON.

Por otro lado, los más comunes son:

  • SOAP: basado en XML, hoy en día se encuentra cada vez más en desuso.
  • REST: usa masivamente JSON y es hoy por hoy el sistema más usado.
  • GraphQL: alternativa a REST que se abre paso poco a poco.

El entorno de desarrollo y otras herramientas

El entorno de trabajo es la herramienta o conjunto de ellas que vamos a utilizar para crear, depurar y realizar prácticamente, sino absolutamente, todo el ciclo de desarrollo del software.

En definitiva, conocer el entorno de trabajo es IMPRESCINDIBLE si queremos ser productivos.

Puesto que estamos hablando de hacer aplicaciones web, el entorno de trabajo sería el conjunto de herramientas, configurado para que trabajen con una aplicación de forma conjunta.

O también puede ser un entorno de desarrollo integrado que ofrezca un solo lugar desde el que trabajar con todas las herramientas como es el caso de Eclipse IDE , Netbeans IDE o IntelliJ IDEA .

  • Eclipse IDE es un referente. Su uso está superextendido y es ampliable en sus funcionalidades con el uso de plugins tanto de terceros como los personalizados que podamos crear.
  • Netbeans IDE. Su uso cayó hace algún tiempo. Actualmente está en manos de la Apache Software Foundation y promete bastante.
  • IntelliJ IDEA es un poderoso entorno de trabajo al que le pongo un pero: es de pago. Si, dispone de una versión Community pero con bastantes menos funcionalidades.

Otras herramientas

Servidor web o de aplicaciones

Es la herramienta que provee la aplicación web, donde se encuentra ésta para poder ser ejecutada, normalmente.

Ejemplos son Apache HTTP Server o Nginx.

Propios del lenguaje Java son Tomcat, JBoss, GlassFish, etc.

Otros como el framework Django o la herramienta NodeJS, proveen de un servidor cuando se “ejecuta la herramienta”.

Cliente web

Se trata ni más ni menos que del famoso navegador web. Firefox, Opera, Chrome, etc.

Muestran la interfaz de la aplicación web o Frontend para que el usuario pueda interactuar con ella.

Herramientas para gestión y construcción de proyectos

Solamente mencionarlas para indicar su existencia y que pueden ayudarnos mucho:

  • Maven: para Java. Permite generar el esqueleto de aplicaciones, automatizar procesos y gestionar dependencias.
  • Ant: como el anterior aunque más antiguo.
  • Gradle: como Maven pero más actual.

Es posible encontrar equivalentes de estas herramientas en otros lenguajes.

Testeo

Definitivamente, la depuración de la aplicación es un paso importantísimo porque corregimos errores en ella.

Sin embargo existen otros errores que no son tan fáciles de ver porque son de “comportamiento” de la aplicación.

Las herramientas de testeo de aplicaciones nos permiten generar pruebas para ellas que nos de un grado muy alto de seguridad en cuanto a que todo se comportará como debe hacerlo.

Hay muchas (exclusivas de un lenguaje o no) como Selenium, JUnit, Cucumber, Postman y un largo etcétera.

Integración continua

La integración continua es una tendencia muy actual de construir aplicaciones donde se priman ir desplegando continuamente cambios para facilitar el depurado.

La herramienta más conocida para este tema es Jenkins .

Herramientas para testear rendimiento

El rendimiento de una aplicación es muy importante. Aún más en una aplicación web que puede tener que aguantar a multitud de personas utilizándola al mismo tiempo.

Es por ello que existen herramientas muy conocidas para ayudarnos en esta tarea. Una de ellas es JMeter .

Pretensiones, objetivos y demás

Lo que pretende este artículo es dar a conocer a las personas interesadas, lo que han de tener en cuenta, aprender, para ser un desarrollador o programador web.

Desde luego, si no tenemos ni idea de programación, un buen punto para empezar con ella es este curso: Curso de introducción a la programación.

En este artículo indicamos muchas herramientas y tecnologías; imprescindibles algunas, recomendables otras. Lo cierto es que todo lo que nos permita ser más productivos en nuestra tarea, mejor.

Recordemos que existen muchas más, así que una labor de investigación sobre cada área o ciclo de desarrollo es muy importante también.

Eso sí, centrémonos en aquello que elijamos. Si nos dedicimos a desarrollar con Java y solamente en Backend, centrémonos en lo relacionado. Evitaremos dispersarnos y nos especializaremos mucho más.

Aprender a programar no es solamente conocer una base que nos permita saber que significa cada término que nos permita seguir avanzando. Es importante igualmente educarse en buenas prácticas, saber los procesos de creación de una aplicación y otras. Por experiencia puedo deciros que lo mejor es aprender un lenguaje estricto en estas prácticas como puede ser Pascal o C. Con estos cursos podríais obtener esos conocimientos y mucho más:

Por otro lado y como hemos visto en el artículo, conocer otras materias como JSON, es muy importante. Si quieres aprenderlo, usa este curso: Curso de JSON.

IMPORTANTE
Recuerda que el Campus y los cursos están evolucionando y aumentando periódicamente sus funcionalidades y contenidos.

Conclusión

Se trata de un mundo cambiante en el que es necesario estar reciclándose continuamente. Sin embargo, merece la pena por todo lo que nos puede ofrecer. Nada más, un saludo y hasta otra.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Logotipo de Orbis Sapientia Elearning Services

Protegemos tus datos

En este portal web procesamos datos personales como, por ejemplo, tus datos de navegación. Si sigues navegando por nuestro portal, nosotros y otras compañías seleccionadas, podrán instalar cookies o acceder a información no sensible de tu dispositivo con el objetivo de crear perfiles, personalizar contenidos, servir anuncios adaptados a tus preferencias y elaborar estadísticas. Es imprescindible para acceder al sitio web, aceptar:
Con este acto reconoces que has leído y comprendido todos ellos.
Algunas cookies son esenciales para la carga del portal y que puedas ver este mensaje por lo que ya han sido cargadas.
Si lo deseas, puedes eliminar y bloquear todas las cookies de esta web tal como se indica en las Políticas de cookies, aunque de hacerlo, el portal no funcionará correctamente.