
Sucede que es difícil para los principiantes entender a dónde ir después, qué hacer. Sucede que tales problemas surgen no solo para principiantes.
Muchas personas entienden dónde moverse, qué hacer, viene en una corazonada. Y lleva mucho tiempo. El tiempo es el recurso humano más importante que debe ser protegido y no dispersado por él. Y para no perder esta vez, quiero compartir algunos pensamientos, consejos.
Para muchos, estos consejos parecen ser "capitanes" y obvios, especialmente para programadores experimentados, pero esto no debería negar su corrección.
La crítica constructiva es bienvenida.
Sé honesto, no tengas miedo de hacer preguntas y lucir estúpido.
- Los sistemas operativos de dispositivos, compiladores, intérpretes, la arquitectura de sistemas y sistemas de software reconocidos .
Cualquier código ejecutable se crea y ejecuta en algún tipo de entorno. Sin conocer este entorno, es difícil crear un buen producto. - Algoritmos, estructuras de datos, matemáticas discretas .
En nuestra vida real, hay programadores que se sienten muy bien al no tener los conocimientos detallados. Por ejemplo, para resolver muchos problemas aplicados de aplicaciones empresariales, esto es suficiente. La implementación de muchos algoritmos ya está integrada en la plataforma. Por ejemplo, ordenar, buscar, etc.
Pero cuando se hace necesario resolver problemas más complejos, puede comenzar la invención de la bicicleta. El conocimiento de los algoritmos puede simplificar enormemente la tarea. - Otros lenguajes, herramientas de desarrollo e interacción .
Diferentes idiomas resuelven diferentes problemas. Por ejemplo, R, MathLab hará un excelente trabajo de problemas matemáticos. Sin lenguajes de marcado HTML, XML no desarrolla una aplicación web.
Y el conocimiento, por ejemplo, de C o ensamblador le permitirá desarrollar un producto que funcionará de manera más efectiva con "hardware".
Aprender nuevos idiomas, comprender su filosofía, y no solo la sintaxis, ampliará el alcance del pensamiento y la comprensión de los principios de programación. El conocimiento de solo unos pocos idiomas "básicos" permitirá en el futuro aprender fácilmente otros nuevos.
- Código extranjero, documentación y descripción .
Al estudiar el código de otra persona, puedes descubrir muchas cosas interesantes. Otros enfoques y métodos de programación que se pueden adoptar. Cualquier novato debe hacer esto para unirse rápidamente al equipo de desarrollo.
Y si, antes de comenzar a buscar la causa del error en el código de otra persona, lea la documentación o la descripción, puede reducir significativamente el tiempo que lleva buscar.
- Comentarios sobre la revisión de su código .
Puede considerar esto como obtener consejos para mejorar el código y, además, de forma gratuita.
También es una buena manera de "comunicarse" entre programadores. Especialmente si el equipo de desarrollo se distribuye o si hay introvertidos fuertemente expresados en el equipo.
También parece aprender el código de otra persona, pero por otro lado, la moneda. Cuando ambos: el revisor y el revisor, obtienen experiencia y aprenden algo nuevo. - Metodología de desarrollo .
Las metodologías son clave para gestionar el desarrollo de software.
La elección de una metodología específica depende de muchos factores: el tamaño del equipo, los detalles y la complejidad del proyecto, la estabilidad y la madurez de los procesos en la empresa, las cualidades personales de los empleados y muchos otros. El éxito del proyecto depende en gran medida de esta elección.
- El área temática con la que trabaja .
Sin conocer los principios del proceso, qué y cómo hacen las personas, los futuros usuarios del producto en este proceso, es casi imposible automatizarlo y mejorarlo aún más.
Es necesario tratar de comprender qué "cocina" el usuario final.
Puedes leer un montón de libros, hacer mil tareas, pero sin práctica no puedes lograr buenos resultados.
- Presenta tus ideas .
Para que el futuro producto no se desarrolle por sí mismo, sino que traiga beneficios, debe poder presentar sus ideas. Al mismo tiempo, pensando en los objetivos y resultados esperados que persigue el cliente comercial y el usuario final. De lo contrario, la idea no es vender.
Con una buena presentación de la idea, puede obtener buenos consejos antes de su implementación. Incluso si la idea no se vende por primera vez. - Escriba código legible, comprensible, estructurado y extensible .
Si es necesario, desarrolle funcionalidad, proporcione soporte de producto, algún tiempo después puede que necesite averiguar rápidamente el código usted mismo o alguien más. - Código de diseño con el comportamiento esperado .
El producto lanzado debe ser confiable y mantenible. - Prueba tu código tú mismo .
Este elemento no significa que deba realizar la prueba en lugar del probador. Este párrafo indica que el desarrollador debe enviar el código para la prueba teniendo la confianza de que ha hecho todo lo necesario para que el probador pueda detectar la menor cantidad posible de errores.
Al desarrollar el código, se puede suponer que el producto final será el sistema de control de la aeronave, durante los vuelos de prueba en los que el diseñador del sistema debe estar a bordo.
- Practica más .
Como en cualquier otro negocio, la experiencia solo viene con la práctica. Dominar la programación no es el final de una universidad o algún curso. Este es un largo camino hacia la vida. Y es importante no detenerse allí.
Sin comunicación, eres como un buen libro en un idioma "muerto". Lo es, pero no sirve de nada.
- Ayuda, comparte conocimientos .
Hay un importante "¡Pero!": No lo hagas por otro.
Es necesario suprimir el deseo "es más fácil hacerlo usted mismo que explicarlo".
Cuanto más a menudo expliques, en lugar de hacerlo por otro, más personas a tu alrededor podrán aprender algo nuevo. - Búscate un padawan / mentor y conviértete en su mentor / padawan .
Necesito enfatizar.
A pesar de la aparente contradicción de las frases, la esencia radica en una cosa: el mentor y Padawan crecen y se desarrollan juntos. Esta es la diferencia principal y esencial de la interacción de los roles "maestro - alumno" aprendidos en la escuela. Cuando en la mayoría de los casos esta interacción se reduce a la fórmula "Soy el jefe, eres un tonto". - Participa en campeonatos de programación .
Esto le permitirá llevar a cabo una porción de conocimiento, identificar brechas, fortalezas y debilidades, mirarse desde afuera. - Comunícate, trabaja en un equipo de gurús como tú .
En este caso, se pueden distinguir dos componentes:
- el primero es el perfeccionamiento de las habilidades técnicas;
- el segundo - perfeccionamiento de las comunicaciones, habilidades de comunicación.
Ambos componentes son necesarios para convertirse en un profesional. Y ambos necesitan ser pulidos.
Literatura y referencias
Los enlaces provistos no son necesariamente leídos. Qué libro, artículo, material para leer, dónde necesita ponerse al día: esto es puramente individual. Todos deben decidir esto por sí mismos.
Los enlaces a continuación son más bien algunos puntos de partida desde los que puede comenzar.