No soy bueno en la codificación, entonces, ¿cómo puedo mejorar?

Nosotros, en Holberton School, seleccionamos a los estudiantes según 3 criterios:

· Motivación

· (Nuestra definición de) Talento

· Habilidad para colaborar.

Para convertirse en un mejor programador de computadoras, debe enfocarse en 3 elementos principales:

· Tener conocimiento de la pila completa.

· Poder aprender por ti mismo.

· Habilidades blandas

Tener un conocimiento de la pila completa

Las aplicaciones de software son un sistema complicado compuesto de muchas tecnologías y partes: frontend, backend, base de datos, servidor web, red … Por ejemplo: cambiar una consulta en el frontend afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos. podría traer el sitio hacia abajo.

Esta situación exacta sucedió cuando trabajaba para LinkedIn, un desarrollador junior que era un “especialista de frontend” creó una solicitud que consultaba un campo en la tabla de usuarios que contenía millones de entradas, este campo no tenía un índice y la base de datos se fue Abajo junto con el sitio web.

Este desarrollador no tenía idea de cómo funciona una base de datos, pero saber qué es un índice es algo que debe conocer cualquier buen ingeniero de software. Tengo toneladas de ejemplos como este.

Es por eso que primero debe aprender un mínimo acerca de lo que llamamos la pila, mientras que cada uno tiene su propia definición de pila, un buen comienzo es saber sobre:

· Algoritmo y estructura de datos

· Programación de alto nivel (lenguajes de programación de objetos orientados).

· Administración del sistema y un poco de networking.

Con esto, un ingeniero de software podrá navegar por casi cualquier sistema / aplicación y podrá tomar decisiones de ingeniería bien pensadas.

Poder aprender por si mismo

Los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las que cambian más rápidamente, por eso necesita actualizar constantemente la aplicación de su teléfono inteligente y que sus sitios web favoritos traigan constantemente una mejor experiencia y características.

En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que les ayudarán a hacer su aplicación más rápida, mejor y más confiable. Los nuevos lenguajes de programación y las bibliotecas vienen constantemente y uno no puede regresar a la universidad cada vez que surja una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que puedas aprender por ti mismo.

Habilidades blandas

A menos que esté dispuesto a trabajar solo, podría ser la habilidad más importante.

Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas”, porque este libro es muy importante para aprender a ser un ser humano exitoso.

· Comunicación

o verbal: hablar en público, presentación

o escrito: documentación, correos electrónicos, post mortem, técnico escrito

· Colaboración

o Ayudar a un compañero de trabajo en un proyecto

o Embarcar nuevos comers

o saber cuándo preguntar

· Espíritu de equipo

o Entendiendo a otros compañeros de trabajo

o Fomento de la colaboración con otros equipos (si es en una gran empresa)

No se puede imaginar cómo el ser amable con las personas y ayudarlas a hacer su trabajo les traerá mucho más. Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero digamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas.

Si puede obtener estas 3 cosas, será un programador increíble y todos querrán contratarlo.

¡Buena suerte en tu camino para convertirte en un gran programador!

Tome cualquier idioma al principio. Un lenguaje básico como el c. Conozca todos los fundamentos de la misma. Haz tu base fuerte. Sin una base fuerte no puedes construir un edificio fuerte.

Después de dominar tus conceptos básicos, practica mucho. En primer lugar, abordar diferentes problemas ya existentes y resolverlos. Cada problema puede tener diferentes maneras de resolverlos. Así que no te preocupes si no tienes el mismo método mencionado. Practica tantos problemas como puedas. Al final de esta etapa, obtendrá una sólida mentalidad de resolver todos los problemas de la mejor manera posible. Cuidarás la complejidad de espacio y tiempo al final de esta etapa.

Después de esta etapa, aborde sus propios problemas que puedan existir o que nadie los haya resuelto hasta la fecha. Con todo el conocimiento de la gestión de sus complejidades en su programa, resuélvalos de una manera eficiente. Tomar muchos y muchos problemas para resolver.

Práctica práctica práctica !!!!

Después de completar los idiomas básicos, continúe con lenguajes como C ++, python, java y más.

Feliz codificación …

  1. Practica estructuras de datos, algoritmos y problemas relacionados con el diseño.
  2. Lea los blogs sobre las nuevas tecnologías y las nuevas características de los idiomas existentes.
  3. Contribuye a un código de código abierto para mejorar tus habilidades de codificación.
  4. Trate de analizar sus errores en el diseño y manejo de errores.
  5. Intente trabajar en diferentes tipos de proyectos y utilícelos como oportunidades de aprendizaje.
  6. Lee el código de los proyectos de código abierto y entiende cómo funcionan.
  7. Participar en foros, responder a otras consultas y comentar en blogs técnicos es una buena manera de revisar sus conocimientos.
  8. Estudie los códigos escritos por algunos de los mejores ingenieros y trate de entender por qué se hicieron ciertas elecciones y cómo se implementaron.

Para convertirse en un mejor programador, debe ser realmente bueno en la estructura de datos, algoritmos, diseño utilizando OOPS, multiproceso y varios conceptos de programación, por ejemplo, recursión, división y conquista, creación de prototipos y pruebas de unidad. La programación es una combinación de muchas habilidades, lo que significa que no es posible aprenderla rápidamente, sino que vendrá con tiempo y experiencia, pero eso no sucederá automáticamente.

Puedes pasar 5 años haciendo un trabajo de programación en Java, sin ser un buen programador. Como la mayoría de Java, las entrevistas se centran en la teoría más que en las habilidades de programación y codificación. No muchos programadores practican estas habilidades de programación esenciales. Si hubiera una prueba de programación de resolución de problemas obligatoria, apostaría, el programador promedio habría sido mucho mejor. De todos modos, aquí está mi lista de cosas, que pueden ayudarlo a convertirse en un buen programador.