Lo que debe saber un buen programador

7 de mayo de 2021

Lang: cs en de es

¿Quieres convertirte en un buen programador o estás buscando uno? Entonces necesitas saber qué debe saber un buen programador. En este artículo aprenderá qué cualidades, habilidades y conocimientos debería tener idealmente un buen programador. Puedes empezar con una lista de tecnologías básicas y las llamadas softskills.

A menudo, las empresas toman a un programador como un trabajador más. Pero es en el pensamiento, y especialmente en el pensamiento creativo, donde reside el mayor valor. Sí, hay puestos en los que basta con crear rutinariamente código similar al que se hacía antes o copiar al estilo CTRL-C y CTRL-V bloques de código ya existentes. existentes. Pero ese trabajo no añade mucho valor y a menudo puede automatizarse.
Y la capacidad de automatizar es una de las principales fortalezas de la industria de TI porque hace que el trabajo sea más eficiente.

Ya sea como candidato para un puesto específico que se está cubriendo o como persona que ayudó a seleccionar personas para el equipo, me he encontrado con diferentes ideas y requisitos de las personas para los puestos de TI.
Entonces, ¿qué debe saber hacer un programador capaz de crear soluciones y trabajar de forma eficiente?

Softskill y Hardskill

Un buen desarrollador de software debe tener muchos requisitos previos, varias habilidades y mucha experiencia....
He aquí un esbozo de lo que un buen programador debe saber:

  • Pensamiento lógico y crítico. Habilidades matemáticas superiores.
  • Conocimientos de tecnología.
  • Conocimiento de la tecnología = conocimiento general de TI.
  • Principios y conocimientos básicos de informática.
  • .
  • Comunicaciones.
  • Dominio de herramientas: versionado, bases de datos, etc.
  • .
  • Cualquiera probablemente tendrá al menos lo básico: HTML, CSS
  • .
  • Descomponer (dividir) el proyecto.
  • Saber centrarse
  • Adivinar y tener pensamiento crítico
  • Mantenerse en buenas condiciones físicas y mentales
  • .
  • Capacidad para cuestionar, aprender y concentrarse
  • Un estilo de vida saludable
  • es necesario para funcionar a largo plazo.
  • El senior debe ser capaz de reunir todos los materiales necesarios y luego trabajar de forma independiente
  • .
  • Capacidad para seleccionar una tecnología eficaz para un subsistema determinado y defender el tema
  • .
  • Capacidad para transmitir/explicar las cuestiones con mayor profundidad
  • .
Esta lista no es exhaustiva.
¿No sabes exactamente qué hace un programador informático? En el artículo encontrarás más detalles.

Pensamiento lógico

El pensamiento lógico es importante para analizar y resolver problemas, especialmente los técnicos. A la hora de estudiar, el pensamiento lógico se suele entrenar en la asignatura de matemáticas. Un ejemplo más práctico del uso del pensamiento lógico son los problemas de palabras, que pueden ser de la vida. Una aplicación concreta de las matemáticas y el pensamiento lógico es en la asignatura de física, donde los estudiantes se encuentran con problemas que parten de simples necesidades cotidianas en la vida de un técnico.
De ello se deduce que una persona que ha sido un solucionador en las olimpiadas de matemáticas y física es un excelente adepto a ser un capaz programador.

Tecnología

Conocer las tecnologías que utiliza tu proyecto es esencial para trabajar con eficacia. Pero no es necesario conocer las tecnologías al principio. Las tecnologías se pueden aprender. Un desarrollador de software capaz puede cambiar a otras tecnologías si tiene una buena base teórica. Tanto si alguien utiliza el framework Nette o Symfony, es porque casi no importa, ambas son tecnologías diseñadas para el lenguaje PHP, diseñadas según las reglas de MVC.
Para la implementación de nuevos proyectos, aprender tecnologías sobre la marcha es obviamente un riesgo. Por lo tanto, es una buena idea absorber nuevas tecnologías en proyectos pequeños, o en proyectos que ya están construidos, en el caso de grandes proyectos nuevos, debería haber al menos una persona que haya probado la tecnología y sepa cuáles son sus capacidades y cómo utilizarlas correctamente.

Principios básicos y conocimientos de informática

Cualquiera que se haya graduado en una universidad centrada en ciencias de la computación ha realizado cursos como: algoritmización, datos datos, programación orientada a objetos. Dicha persona debería entonces saber cómo diseñar objetos correctamente en una aplicación, cómo diseñar bases de datos correctamente y tener conciencia de lo que hace el código. No ocurrirá que haya un problema de rendimiento debido a una base de datos mal diseñada o a una aplicación con una arquitectura deficiente. Alternativamente, él o ella es capaz de identificar tal problema y, dependiendo de los recursos financieros, al menos parcialmente abordarlo después del hecho.

Comunicaciones

Una persona puede ser un excelente programador, pero si no se comunica no podrá trabajar para otras personas. La comunicación es la base para conocer las necesidades del cliente. Ante cualquier confusión, un programador no debe tener miedo a preguntar. Las herramientas básicas de comunicación son: correos electrónicos, teléfono, conversación personal, videoconferencia, chat. Por supuesto, hay muchas herramientas de comunicación herramientas.
La elección de una herramienta concreta depende de la urgencia y la necesidad de interacción. Para una lista de requisitos técnicos para un trabajo que se realizará más adelante, lo ideal es un texto como el correo electrónico. De este modo, la otra parte podrá leer el texto en cualquier momento con tranquilidad para reflexionar sobre él y después sólo tendrá que confirmar el contenido. Esta comunicación no saca a nadie del trabajo. El teléfono es bueno para asuntos urgentes. Las videollamadas son para consultas, cuando hay que mostrar el monitor, y hay que discutirlo.

Herramientas

No sólo es necesario conocer un determinado lenguaje de programación, sino también conocer otras herramientas, ya que dichas herramientas permiten trabajar y colaborar de forma eficiente.
Lo principal es saber cómo versionar el código fuente -aquí la herramienta GIT se ha convertido en el estándar-. Cuando aprendes a usar GIT, adquieres una habilidad que cualquier programador puede utilizar con confianza. Pero también es útil para otras personas de TI, incluidos los gestores de proyectos.

Aunque no vaya a ser un especialista en bases de datos, necesita saber cómo utilizar una base de datos: los fundamentos de SQL.
Existen herramientas para gestionar dependencias y construir un proyecto, que es diferente para cada ecosistema. Sin una herramienta de este tipo no podrás desplegar el proyecto y hacer un cambio tecnológico importante. Y por supuesto, agiliza el trabajo.
Un conocimiento básico del sistema operativo Unix típicamente Linux también es útil.

HTTP, HTML

Internet y las aplicaciones web están por todas partes hoy en día, por lo que todo programador se ha encontrado normalmente con el protocolo HTTP, el lenguaje de marcado HTML y CSS. Así que se puede asumir que él o ella es capaz de incorporar su aplicación en una plantilla preparada por el diseñador y codificador.

Descomposición

Con el fin de dividir un proyecto en partes individuales, es necesario poder descomponer los requisitos y sistemas en partes más pequeñas más pequeñas. Esto permitirá que las partes trabajen de forma independiente, haciendo que el proyecto sea más manejable más sostenible y seguro. Al mismo tiempo, se pueden aplicar soluciones preconstruidas a dichas partes. Por último, pero no menos importante, la descomposición permite hacer estimaciones más específicas de las partes individuales y así afinar la estimación y po programado para que sea más visible, qué partes de la aplicación ya están terminadas.

Enfoque

Pensar en los requisitos y diseñar una solución llevará mucho trabajo. Primero hay que entender la tarea en cuestión y luego idear una solución que no sólo sea funcional sino típicamente a sostenible. Para todo ello hace falta tiempo y tranquilidad: concentración. Con cada vez más personas compitiendo por la atención de la gente, no es de extrañar que el desarrollo de software a medida no sea para todo el mundo. Al fin y al cabo, no todo el mundo recuerda cómo tuvo que concentrarse durante los exámenes de matemáticas y física o en las olimpiadas de matemáticas matemáticas y física.

Adivinanzas y pensamiento crítico

Hay muchas cosas a tener en cuenta antes de desarrollar software, entre ellas los recursos, especialmente los financieros. Por lo tanto, es necesario ser capaz de hacer una estimación de la complejidad. la realidad será diferente de la estimación, pero si uno hace es mejor que una bola de cristal.

Las estimaciones también pueden señalar los riesgos, ya sea en tiempo o posibilidades si el requisito es factible. Para cosas impredecibles, sin embargo, debería hacerse algún prototipo experimental.

Uno de los riesgos puede ser la entrada imprevista, del usuario o de otro tipo. Tales entradas imprevistas deben esperarse, pensarse y la aplicación debe adaptarse en consecuencia. tratar las entradas e intentar cubrir todas las posibilidades.

Utilizando el pensamiento crítico, todavía puede resultar evidente durante la tarea que la aplicación se puede hacer de manera diferente y mejor que el cliente ha solicitado, o que el cliente necesita algo diferente o surgen nuevas ideas de requisitos que pueden mejorar el producto.

Estar en forma

Mantenerse en buenas condiciones físicas y mentales es importante para ofrecer un buen rendimiento a largo plazo. Todo el mundo debería comer bien y todo el mundo necesita hacer ejercicio. Dado que el trabajo del programador es en una oficina y normalmente sentado o de pie, no deja de ser monótona posición rígida. Por lo tanto, un programador necesita incorporar movimiento a su agenda diaria de forma regular y frecuente. De lo contrario, corre el riesgo de sufrir problemas de salud como diabetes, etc. y, por lo general, dolor de espalda. Y desde luego ninguna empresa quiere que su empleado vaya al médico.

Aprender

El campo de las Tecnologías de la Información es muy complejo y lo más importante es que está cambiando constantemente. Por lo tanto, la capacidad de aprender es esencial no sólo para el crecimiento, sino también para la retención en el campo.

Realización de proyectos de TII

Por desgracia para la complejidad y el tamaño de los proyectos de TI, incluso con la provisión de desarrolladores capaces, no se puede garantizar el tiempo y, por tanto, las necesidades financieras. Sin embargo, un programador que cumpla los puntos anteriores es el más indicado para entregar el proyecto y, al mismo tiempo, tiene la capacidad de señalar los riesgos que pueden poner en peligro la ejecución. Y es capaz de elaborar un plan para que los riesgos se reduzcan al mínimo; al fin y al cabo, eso es lo que hace la gestión de proyectos.

¿Cómo evaluar una empresa?

En mi experiencia he notado algunas cosas interesantes. Algunas empresas hacen hincapié en la programación por objetos, esto es sobre todo porque en dichas empresas objeto no practican mucho la programación. O hablan mucho de testing con UnitTesting, por ejemplo, pero luego resulta que en la práctica, testing a un lado.

Así que lo mejor es ponerse y ya se verá. Si tienes amigos en la empresa, pregunta por ahí.

¿Cómo evaluar a un candidato?

Tras una entrevista inicial de lo que ha hecho y en lo que tiene experiencia, asígnale un trabajo directamente.

Cómo redactar un anuncio para un programador

Para conseguir un programador, necesitas escribir un buen anuncio. Aquí tienes un vídeo sobre Cómo escribir un anuncio para un programador:
>

Artículos sobre un tema similar

Análisis de la asignación y fijación de precios del desarrollo de proyectos de software
Programa Python para controlar Docker mediante la API
Cómo utilizar MailCatcher para probar correos electrónicos
API OpenAI de Python
Creación de una aplicación web WebSocket y configuración de un proxy
Gestión de proyectos: desarrollo ágil de software
Cómo ejecutar aplicaciones PHP antiguas
Lenguaje de programación Rust
NodeJS: desarrollo, configuración del servidor
Fallo de seguridad de Nette CVE-2020-15227
API REST: API de plataforma
Alojamiento web y de correo personalizado con el software ISP Config
Programación en SQL: PostgreSQL, MySQL/MariaDB
HTTPS: web segura
Base de datos NoSQL Mongo DB
Connecting to Microsoft SQL Server from Linux
¿Cuál es la descripción del trabajo de un programador?
Localización de aplicaciones Python
Qué correo y alojamiento web elegir
Digispark - Programar microcontrolador Atmel ATtiny con Arduino IDE
Desarrollo para procesadores ARM con Arduino IDE
Cómo programar el procesador WiFi ESP8266
Smartphone abierto con Linux - Openmoko Neo FreeRunner

Boletin informativo

Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email suscripción de noticias.


+