——Cómo utilizar las habilidades del programador para el trabajo remoto Parte 5: ¿Cómo puede un programador convertirse en un excelente experto técnico?

Autor: Zen y el arte de la programación informática

1. Introducción

Si es un experto técnico o un ingeniero senior y puede dominar algunos algoritmos básicos, estructuras de datos, diseño de sistemas y otros conocimientos en el campo de la tecnología informática, entonces puede participar en trabajos de I+D y desarrollo de productos para empresas de Internet. La industria de Internet se encuentra actualmente en una etapa de rápido desarrollo y muchas empresas están contratando y capacitando a expertos técnicos, no solo a empleados comunes y corrientes. No solo eso, muchas excelentes empresas de Internet han adoptado el trabajo remoto como un nuevo modelo y forma de trabajo. Para los programadores, el trabajo remoto les permite concentrarse mejor en el trabajo de codificación y completar las tareas de desarrollo de proyectos de manera más eficiente. Pero, ¿cómo convertir la capacidad de programación en eficiencia laboral y luego en valor? Hay varios factores importantes a considerar aquí:

① Cambio de mentalidad: el trabajo remoto en realidad tiene requisitos muy bajos para los programadores, porque pueden trabajar en sus propias oficinas y no disfrutan de un ambiente colectivo. Pero si quieres trabajar de manera eficiente, necesitas establecer un espíritu de colaboración remota, perseverar cuando encuentres dificultades y ser bueno pidiendo ayuda. ② Mejora de las capacidades técnicas: dado que el trabajo remoto no puede utilizar herramientas de programación en el sentido tradicional, los programadores deben tener sólidas capacidades de programación. Por lo tanto, dominar varios lenguajes y marcos de programación y aprender las tecnologías informáticas subyacentes son habilidades que los programadores deben tener. Además, también es importante mantener una buena ética profesional y evitar cometer errores, malversar o apropiarse indebidamente de los intereses de otros. ③ Capacidades de análisis y comprensión empresarial: el modelo de I + D de las empresas de Internet ha experimentado cambios tremendos y la complejidad empresarial también está aumentando. Por lo tanto, los programadores deben tener sólidas habilidades de comprensión empresarial, ser capaces de comprender claramente las necesidades empresariales, los puntos débiles de los clientes y los resultados esperados, y lograr un control preciso. Al mismo tiempo, debemos ser buenos analizando la experiencia del usuario, el comportamiento y los hábitos del operador, etc., para mejorar la experiencia del usuario y reducir los costos operativos.

Después de un largo período de precipitación y acumulación, creo que los programadores tienen las condiciones básicas y necesarias para convertirse en excelentes expertos técnicos. A continuación, echemos un vistazo a cómo un programador puede convertirse en un excelente experto técnico.

2. Conceptos básicos y terminología

2.1 Términos relacionados con la ingeniería de software

gestión de proyectos:

La Gestión de Proyectos se refiere a las actividades responsables de organizar y gestionar el desarrollo de uno o más proyectos. La gestión de proyectos incluye muchos aspectos como la planificación, organización, asignación de recursos, control del progreso, control de costos, control de calidad, control de riesgos y manejo de emergencias.

Desarrollo ágil:

Agile Development es un modelo de proceso de desarrollo incremental iterativo que está orientado a las necesidades del usuario y se centra en la respuesta rápida y la entrega de productos de software que satisfagan las necesidades del usuario. El desarrollo ágil fomenta una forma de trabajo iterativa y en bucle de retroalimentación, creando software funcional a través de reuniones breves y enfocadas y equipos pequeños, en lugar de desarrollar todo el software de una sola vez.

Método SCRUM:

El método SCRUM (inglés: Scrum, un método de proceso iterativo e incremental para proyectos de desarrollo, propuesto originalmente por British Scrum Inc.) es un marco de desarrollo de proyectos ágil que se utiliza para guiar la autoorganización y la autoorganización entre los equipos de desarrollo. , proceso de respuesta propia. SCRUM es un proceso impulsado por el tiempo que se lleva a cabo cada dos semanas en reuniones de iteración (sprints), cada reunión del ciclo de iteración generalmente tiene objetivos fijos, planes, pasos de trabajo, revisión y ajuste.

Tarjeta de historia de usuario:

Una tarjeta de historia de usuario (también llamada tarjeta de caso de uso) es un documento pequeño y sencillo que se utiliza principalmente para describir una función específica o un escenario específico de un producto. Una tarjeta de historia de usuario consta de cuatro partes: "usuario", "requisitos", "función" y "restricciones". La parte de usuario representa a las personas involucradas en el caso de uso, la parte de requisitos enumera la descripción funcional y la información básica relacionada del caso de uso, la parte de función explica el propósito que el usuario puede lograr en el escenario y la parte de restricciones enumera las restricciones. al probar el caso de uso.

Desarrollo front-end:

El desarrollo front-end es la parte front-end de un sitio web, aplicación u otro servicio web (la parte que ven los usuarios). Los desarrolladores de aplicaciones para el usuario crean y organizan los elementos gráficos, texto, vídeo y sonido de un sitio web, aplicación u otro servicio web. Los desarrolladores de front-end deben dominar HTML, CSS, JavaScript y otras tecnologías relacionadas en el desarrollo de front-end.

Desarrollo de back-end:

El desarrollo backend es la parte backend de un sitio web, aplicación u otro servicio web (es decir, la parte procesada por el servidor). Los desarrolladores de back-end son responsables de implementar la base de datos, la configuración del servidor, la configuración de seguridad, la lógica del algoritmo, etc. de un sitio web, aplicación u otro servicio de red. Los desarrolladores de back-end deben dominar lenguajes como PHP, Java, Python y Ruby, así como bases de datos, marcos y otras tecnologías relacionadas en el desarrollo de back-end.

control de versiones:

El Control de Versiones es un sistema que registra cambios en el contenido de uno o más archivos para que puedas verificar el estado de revisión de una versión específica en el futuro. Al guardar, anotar, comparar y otras operaciones en diferentes versiones de archivos, puede realizar un seguimiento del historial de archivos y realizar operaciones como comparar, fusionar y restaurar diferentes versiones.

Herramientas de Git:

Git es actualmente el sistema de control de versiones distribuido (Sistema de control de versiones distribuido) más popular del mundo. Las ventajas de Git son que es liviano, rápido, simple y fácil de usar, y es adecuado para administrar repositorios de archivos de gran tamaño. Git puede rastrear y registrar el contenido de uno o varios archivos, y también puede generar archivos de diferencias para mostrar las diferencias entre dos versiones.

Proceso CI/CD:

CI/CD (Integración continua/Entrega continua/Implementación continua) es un proceso de desarrollo de software que tiene como objetivo automatizar varios procesos generados durante el proceso de desarrollo y mejorar la eficiencia del trabajo de los desarrolladores y la calidad del producto. Detecta e implementa automáticamente el código enviado por los desarrolladores al entorno de producción mediante compilación, pruebas unitarias, pruebas de integración y otros procesos. El proceso CI/CD puede reducir eficazmente la cantidad de errores después del lanzamiento del producto, mejorar la transparencia y la velocidad del proceso de desarrollo de software y mejorar la agilidad y competitividad de la empresa.

DevSecOps:

DevSecOps es un nuevo conjunto de conceptos, herramientas y métodos de pensamiento, práctica que combina procesos de desarrollo, prueba y operación y aplica "redes definidas por software" (SDN) para mejorar el desempeño de los desarrolladores, probadores y operadores de software, habilidades profesionales y niveles de competencia.

API:

La interfaz de programación de aplicaciones API (Application Programming Interface) se refiere a un protocolo, estándar o conjunto de rutinas que permite la comunicación entre dos o más aplicaciones (sistemas o módulos) diferentes. Las API proporcionan los componentes básicos de las aplicaciones que les permiten comunicarse entre sí.

POO:

OOP (Programación Orientada a Objetos) es un paradigma de programación que considera los objetos como los componentes básicos del programa y la relación entre objetos como una descripción de todo. Los objetos reciben mensajes para solicitar cambios de estado o realizar operaciones. Este proceso es la interacción de objetos.

Patrón MVC:

El patrón MVC (Modelo-vista-controlador, abreviado como MVC) es un patrón de diseño de software de uso común. Divide una aplicación en tres capas: la capa de modelo (M) representa los datos del mundo real, la capa de vista (V) representa la interfaz vista por el usuario y la capa de controlador (C) es responsable de procesar la entrada del usuario y el sistema. producción. A través de esta estructura en capas, se puede mejorar la flexibilidad y la capacidad de mantenimiento, y se puede reducir la duplicación de código.

Principios SÓLIDOS:

Los principios SOLID (SRP: principio de responsabilidad única, OCP: principio abierto-cerrado, LSP: principio de sustitución de Liskov, ISP: principio de segregación de interfaz, DIP: principio de inversión de dependencia) son cinco principios para crear principios de diseño de código escalables, mantenibles y reutilizables. Son el principio de responsabilidad única, el principio de apertura y cierre, el principio de sustitución de Liskov, el principio de aislamiento de interfaz y el principio de inversión de dependencia.

2.2 Terminología relacionada con lenguajes y frameworks de programación

Pitón:

Python es un lenguaje de programación dinámico, de alto nivel y de propósito general que es conciso, eficiente y legible. Python se usa ampliamente en varios sitios web de comercio electrónico, desarrollo web, informática científica, análisis de datos y otros campos.

Java:

Java es un lenguaje de programación estático de alto rendimiento, multiplataforma y orientado a objetos creado por Sun Microsystems. Es uno de los lenguajes de programación más populares en la actualidad y se utiliza ampliamente para el desarrollo de Android.

JavaScript:

JavaScript es un lenguaje de secuencias de comandos que se utiliza para la interacción dinámica en páginas web y se usa ampliamente en campos como el desarrollo web, el desarrollo de aplicaciones móviles y la programación de juegos. JavaScript es parte del estándar ECMAscript y es un lenguaje de secuencias de comandos que se ejecuta en el lado del servidor, el lado del navegador y los dispositivos integrados.

Reaccionar:

React es un marco de JavaScript lanzado por Facebook que se utiliza para crear componentes de interfaz de usuario para interfaces de usuario. Facebook lanzó una versión de código abierto en 2013, que ahora se ha convertido en una tecnología popular y es conocida como la creadora de los marcos de interfaz web.

Nodo.js:

Node.js es un entorno de ejecución de JavaScript basado en el motor Chrome V8. Node.js utiliza un modelo de E/S sin bloqueo controlado por eventos, admite inherentemente asíncrono y tiene un rendimiento excelente.

Angular:

Angular es un marco front-end TypeScript lanzado por Google, que está diseñado para resolver el desarrollo de aplicaciones complejas. Proporciona funciones ricas, como enlace bidireccional, inyección de dependencia, enrutamiento, animación, pruebas unitarias, etc.

Django:

Django es un marco de Python cuyo objetivo es hacer que a los desarrolladores les resulte más rápido y sencillo desarrollar aplicaciones web. Django está escrito en lenguaje Python, que proporciona funciones convenientes en la capa de base de datos, validación de formularios y representación de plantillas.

Matraz:

Flask es un marco de Python que pretende ser un marco de desarrollo web liviano, centrándose en escenarios simples como proyectos pequeños y microservicios. Flask está escrito en lenguaje Python y tiene módulos funcionales integrados como Werkzeug, Jinja2, Flask-SQLAlchemy, etc., que pueden desarrollar rápidamente API RESTful.

Expresar:

Express es un marco Node.js proporcionado por la comunidad de código abierto. Express es un marco de desarrollo web Node.js rápido, abierto y minimalista. Proporciona una serie de funciones potentes, incluidos servicios HTTP, middleware, enrutadores, etc.

Ruby on Rails:

Ruby on Rails (RoR) es un marco Ruby cuyo objetivo es crear rápidamente aplicaciones web escalables y de alto rendimiento. RoR está escrito en lenguaje Ruby y tiene módulos funcionales integrados como ActiveRecord, ActionPack, ActiveJob y ActionCable, que pueden desarrollar rápidamente aplicaciones web.

GráficoQL:

GraphQL es un lenguaje de consulta basado en texto que define cómo interactúan los datos entre clientes y servidores. GraphQL implementa la adquisición de datos a través de un marco altamente integrado.

2.3 Terminología relacionada con los conceptos básicos de informática

UPC:

CPU (Unidad Central de Procesamiento) es el componente central de la computadora, que es responsable de ejecutar instrucciones informáticas y diversas señales de control. La CPU puede realizar operaciones aritméticas, lógicas, de control y de otro tipo, y comunicarse con la memoria y los dispositivos de E/S a través de interfaces de bus.

RAM:

RAM (memoria de acceso aleatorio) es una memoria volátil que almacena programas en ejecución, datos, contadores de programas y otra información. Cuanto mayor sea la cantidad de RAM, más programas y datos podrá contener, pero el precio será mayor.

ROM:

ROM (Read Only Memory) Memoria de sólo lectura, su contenido no se puede modificar. Generalmente se utiliza para almacenar activos fijos, como BIOS, ROM de arranque, etc.

SSD:

SSD (Solid State Disk) tiene un espacio de almacenamiento mucho mayor que un disco duro tradicional y su velocidad de lectura también es mucho más rápida. Puede lograr un almacenamiento y recuperación rápidos y económicos, y también es adecuado para la nube, informática de alto rendimiento, procesamiento de datos en tiempo real y otros campos.

GPU:

La tarjeta gráfica GPU (Unidad de procesamiento de gráficos) es un chip especial que se utiliza especialmente para el procesamiento de imágenes y gráficos por computadora. Las GPU pueden proporcionar aceleración para la representación y animación de gráficos, mejorando así el rendimiento general de su computadora.

SO:

Sistema operativo OS (sistema operativo), que son los servicios, el software y el hardware de soporte necesarios para ejecutar programas y programas en un sistema informático y la interfaz proporcionada a los usuarios. Existen varios tipos de sistemas operativos: Windows, Linux, MacOS, Android, iOS, etc.

TCP/IP:

TCP/IP (Protocolo de control de transmisión/Protocolo de Internet) es un conjunto de protocolos de red que se utiliza para la comunicación entre hosts en Internet. Define las reglas de comunicación del remitente al receptor y el enrutamiento desde el nodo intermedio al nodo final.

IPv4:

IPv4 (Protocolo de Internet versión 4) es un protocolo importante en TCP/IP y es un protocolo de transmisión de paquetes utilizado en Internet. IPv4 admite una cantidad ilimitada de nodos, que se pueden dividir en direcciones de clase A, B, C y D. Cada dirección de clase está determinada de forma única por un número binario de 32 bits.

DNS:

DNS (Sistema de nombres de dominio) es un servicio de directorio que se utiliza para convertir nombres de host en direcciones IP. El Sistema de nombres de dominio utiliza nombres de dominio para identificar sistemas o servicios informáticos designados en Internet.

Supongo que te gusta

Origin blog.csdn.net/universsky2015/article/details/133565489
Recomendado
Clasificación