9 Consejos para ser un excelente Programador

9 Consejos para ser un excelente Programador

9 Consejos para ser un excelente Programador

La comunidad de programación es a menudo elogiada por la forma en que todos se ayudan mutuamente. Hoy con estos 9 Consejos para ser un excelente Programador, En Codementor , una plataforma en línea con más de 3000 desarrolladores expertos que pueden proporcionar a los usuarios mentores de programación 1: 1, podemos llegar a desarrolladores / ingenieros mayores que trabajan en compañías como Facebook y Amazon para ofrecer sesiones de Q & A en vivo gratuitas en nuestra Sitio, donde usted puede pedirles cualquier cosa de consejo de la carrera, opiniones, y más.

Tal vez usted es un aspirante a desarrollador de software / ingeniero no está seguro de si usted está en el camino correcto, o tal vez usted es un novato ansioso por la orientación de alguien experimentado. Este artículo es un resumen de varios consejos y consejos experimentados que los desarrolladores tienen que compartir con los principiantes con la programación.

9 Consejos para ser un excelente Programador

Consejo # 1: ¡Práctica!

(Fuente: giphy )

No llegarás a ningún lado si te sientas en el culo y lamentas que te chupe la codificación. Aparte de los siguientes tutoriales, debe trabajar en sus propios proyectos.

“Lo más fundamental es que realmente vayas y codifiques”, dice Andrei Thorp de Evernote. “He oído que se recomienda que cuando termines la universidad, deberías haber escrito 100,000 líneas como mínimo”.

Pero cómo empezar, puede preguntar.

“Siempre les digo a la gente que encuentren algo que estén haciendo más de una vez a la semana e intenten automatizarlo. Ignora si alguien más ha resuelto el problema antes y acaba de hacer una herramienta / utilidad para usted que corrige un problema común en su vida “, dice Kasra Rahjerdi , que es el líder móvil en la pila de desbordamiento.

“Como cualquier otra habilidad, se necesita práctica – la práctica deliberada, salir de su zona de confort y aprender el matiz y las sutilezas – que aparte grande de bueno “, dice Derick Bailey , el creador de WatchMeCode.net . Derick es un usuario de StackOverflow de 0.42% y también ha contribuido a marcos de código abierto como MarionetteJS y BackboneJS.

Está bien fallar. La codificación se trata de fallar y arreglar las cosas, y de aprender a hacer las cosas mejor. Si no construyes cosas y trabajas en áreas en las que sabes que estás débil, nunca mejoras.

Si alguna vez necesita recibir consejos sobre cómo mejorar y lo que no está haciendo tan bien, no dude en pedir a un desarrollador con experiencia para ayudar a su enderezado por revisar su código o caminar a través de conceptos que está teniendo problemas para entender .

Consejo # 2: Sea paciente

No-brainer aquí, pero los principiantes suelen terminar frustrado por su falta de progreso y olvidar que no están solos.

“Convertirse en un buen programador tarda mucho, mucho tiempo y muchas noches tediosas”, dice Mike Arpaia , un ex de Etsy que ahora construye software de seguridad de información para Facebook. Mike destaca que los principiantes deben renunciar a la suposición de que uno puede convertirse en un excelente desarrollador rápidamente. “Antes de que puedas escribir un buen código, tienes que escribir cientos de miles de líneas.”

Pero … ¿Y si ni siquiera has pasado las etapas del tutorial todavía? ¿Qué pasa si usted todavía está golpeando su cabeza contra la pared y preguntándose quizás usted apenas no está cortado para la programación? Antes de saltar a conclusiones, sepa que todo el mundo tiene un estilo de aprendizaje diferente . El autor del Tutorial Ruby on Rails , Michael Hartl, señala que los principiantes deben probar muchos recursos diferentes (libros, videos, etc.) para ver qué ‘chasquidos’.

De hecho, Craig Coffman , el CTO de la Reserva , ha aprendido personalmente a través de muchos ensayos y errores y escogiendo proyectos que eran personales e interesantes. Sin embargo, puesto que todos los desafíos interesantes son grandes, él sugiere que los principiantes comiencen con morder pedazos razonablemente-clasificados. “De esa manera, cuando pierdes interés o te quedas atascado, todavía tienes una sensación de progreso y logro”.

Consejo # 3: Permanezca interesado

(Fuente: giphy )

Si está aburrido por el proyecto en el que está trabajando, probablemente debería reconsiderar cualquier objetivo elevado de aprender a codificar. O, tal vez usted sólo está trabajando en el proyecto equivocado o el aprendizaje a través del recurso equivocado.

Siempre mantenerse motivado a través de trabajar en proyectos personales que te excita.

Coraline Ada Ehmke , fundadora de LGBTech y colaboradora de proyectos de código abierto de alto perfil como Rails y RSpec , comenzó a codificar a una edad temprana por su interés. Sin embargo, su primera clase en la universidad como especialista en Ciencias de la Computación la hizo dudar de su pasión. “Recuerdo que nuestro proyecto de un semestre de duración fue escribir software para un cajero automático. Yo estaba tan aburrido y no desafiado, decidí que si eso era lo que la vida como ingeniero era, no quería ninguna parte de ella, por lo que abandoné poco después. “Sin embargo, ella siguió trabajando en proyectos que ella encontró interesante . En 1993 estaba en línea y la construcción de sitios web, y ha sido el desarrollo de aplicaciones web desde entonces.

Para obtener más consejos sobre cómo mantenerse motivado, no dude en consultar los 7 secretos para permanecer motivado al aprender a codificar !

Consejo # 4: Me encanta el error

(Fuente: giphy )

Como un principiante que probablemente se atascó en los errores. Si te sientes intimidado por todo el rojo, no estás solo. Ross Chapman , un ingeniero UX que codificó para Zendesk y ahora trabaja en ScienceExchange , admite ser un desarrollador asustado cuando comenzó por primera vez. “No tenía paciencia porque no estaba dispuesto a amar el reto de arreglar las cosas. Pero eso es más o menos de donde vienen mis malos hábitos “. Con esto dicho, Ross insta a los principiantes a aceptar los errores como momentos cruciales de aprendizaje.

Como estarás depurando para toda la vida, deberías acostumbrarte a los errores y aprender a reconocer los mensajes de error. “Ser capaz de analizar y entender rápidamente los mensajes de error le ahorrará mucho tiempo y le llevará un largo camino”, dice Jack Franklin , autor de ” Beginning jQuery “. Jack también recomienda que los principiantes intenten solucionar los problemas por primera vez. “El hecho de que hayas intentado será muy apreciado por la persona que estás pidiendo ayuda”.

Al golpear una pared al depurar, Lee Byron , co-colaborador de Facebook React, personalmente intenta entender lo que está pasando haciendo un amplio uso de las herramientas de depuración. “Una vez que entiendo exactamente lo que está sucediendo – paso a paso, entonces puedo comparar eso a lo que esperaba que ocurriera y aislar las partes sorprendentes y ver donde mis suposiciones estaban equivocadas o cómo algún código llevó a la sorprendente situación” T limitado a errores, sin embargo. A veces, tomas malas decisiones como usar la estructura de datos equivocada. De acuerdo con Mike, quemarse por esas malas decisiones finalmente le ayudará a aprender cuando es razonable usar ciertos patrones de diseño.

Consejo # 5: Entender cómo funcionan las cosas

“No importa en qué nivel estás, diré esto: nunca escribas una línea de código sin saber por qué funciona, al metal. Como, sea obsesivamente curioso. Sea el Indiana Jones de la fuente.La curiosidad es una constante entre los ingenieros. No creo que pueda hacerlo en este negocio sin mirar al monitor con asombro. Tanto infantil como despiadadamente académica “.
Ross Chapman .

Basta con decir que el interés no es suficiente. Usted tiene que esforzarse para entender cómo funcionan las cosas si usted está apuntando a convertirse en un desarrollador profesional de algo de decencia.

Puede empezar a comprender las herramientas que utiliza al cernir las preguntas de StackOverflow. “He aprendido una o dos cosas de ellos”, dice Todd Motto , quien es conferencista de AngularJS y experto en desarrollo de Google. “[Las principales preguntas de AngularJS] son ​​realmente interesantes de leer, ya que Angular es un marco tan grande”.

Rohan Singh , ingeniero senior de infraestructura de Spotify, subraya la importancia de trabajar para entender la capa de un nivel de la pila bajo lo que está trabajando en este momento. “Todo lo que hacemos como ingenieros de software implica trabajar en algún nivel de abstracción”, dice Rohan. En otras palabras, si utiliza algún tipo de base de datos, puede quitar los elementos internos de la base de datos y esperar que “funcione”.

(Fuente: giphy )

Además, para entender realmente cómo funcionan las cosas, debería ser capaz de explicar por qué ciertas opciones técnicas son mejores que otras, y ser capaz de solucionar problemas cuando las cosas no funcionan de la manera que lo hacen. Rohan logra esto en la práctica intentando, un poco a la vez, aprender y entender los fundamentos de cualquier plataforma o sistema que él use – ya sea Python o Go o el sistema operativo Linux. Según él, esto finalmente te ayuda a generar un modelo mental de cómo funcionan las cosas bajo las tapas, y amplía tu base de entendimiento.

En última instancia, crecerá como ingeniero, y como un bono que sería capaz de depurar más eficientemente por aprender a hacer más “lean back” depuración en lugar de “lean in” depuración. En otras palabras, te inclinas hacia atrás y piensas duro sobre cómo funcionan las cosas bajo las tapas para averiguar cuál podría ser el problema. “Esto puede ser mucho más rápido e implica mucho menos flailing que ‘lean in’ depuración con un depurador interactivo u otras herramientas”, dice Rohan.

De hecho, Andrei Thorp de Evernote piensa que todo el mundo debe aprender C básico a principios de. “Debido a que es mínimo y no hace mucho por ti, te obliga a entender cómo las computadoras realmente funcionan en un nivel inferior. Por ejemplo, C te permite administrar la memoria que usas tú mismo, lo que significa que más tarde, cuando usas algo como Python, realmente entiendes lo que Python está haciendo por ti. Entonces, cuando veas algún extraño error, tienes este juego de herramientas en tu mente para entender cuál podría ser el problema “.

Consejo # 6: Seguir aprendiendo cosas nuevas

(Fuente: giphy )

“Nada va a matar tu trayectoria de carrera / artesanía más que trabajar en algún trabajo de programa de mierda mundano”, dice Jonathan Henson , que actualmente trabaja en Amazon Web Services. “Vaya a un lugar donde se le anima / obliga a aprender constantemente nuevos trucos”. Jonathan también intenta aprender un nuevo lenguaje de programación, paradigma o pila cada año. Luego se pone en proyectos donde tendría la oportunidad de aplicar esas habilidades.

“Creo que la habilidad más importante para aprender es meta-aprendizaje”, dice Kasra. “Eso es lo que separa a los ingenieros y programadores de mí. Hay algo que decir acerca de pasar 12 semanas en un curso de aprendizaje de un marco muy bien, pero realmente respeto (y como para contratar) desarrolladores que son capaces de aprender lo que necesitan, sobre el terreno, para hacer una tarea.

Entonces, ¿cuál es la mejor manera de aprender nuevas habilidades?

Leer sobre lo que quieres hacer es un comienzo. Steve Klabnik , que es un miembro del equipo núcleo de Rust y # 37 en la lista de todos los tiempos de los contribuyentes Rails, busca cualquier investigación establecida sobre el tema y también trata de averiguar cómo las personas que son buenos en la cosa que quiere lograr alcanzar su Resultados. “Lo más importante es hacerlo”, dice. ¿Su enfoque personal? “1. Trate de hacer la cosa, probablemente hacerlo mal. 2. Determina hacia dónde me equivoco, y lo que necesito mejorar 3. Trabaja en lo que he identificado. 4. Repita. ”

CTO de Bellhops , Adam Haney, dice que su truco favorito para aprender nuevos idiomas es reimplementar un proyecto anterior utilizando los paradigmas de ese nuevo idioma. Por ejemplo, tomaría algo que escribió como código orientado a objetos en C ++ y luego lo reimplementaría en un lenguaje funcional. “Siento que este tipo de práctica me ha preparado para evaluar las nuevas tecnologías porque entiendo los principios subyacentes de Ciencias de la Computación, incluso si no conozco los intrincados detalles del lenguaje o el marco”.

Si usted lucha con la memorización, Andrei recomienda construir un palacio de la memoria . La idea general es que usted utiliza la memoria visual de gran alcance de su cerebro, y el mapa que a más datos técnicos, como números. Él también cree firmemente en técnicas como el calendario de Seinfeld, que se basa en la idea de Jerry Seinfeld de que usted no necesita trabajar difícilmente cada día – usted necesita solamente progresar un poco diario. “Así que con su calendario, acaba de comprobar si trabajó en el proyecto hoy o no”, dice Andrei. “Hay algunas aplicaciones agradables que te ayudarán con esto. En Android, uso HabitBull . A medida que su racha se alarga, usted se siente más motivado para mantenerlo funcionando! ”

Consejo # 7: Aprenda a trabajar con otros

Otra manera de aprender cosas nuevas es trabajar en proyectos con otras personas.

“La leyenda del codificador solitario es un mito”, dice Adam. “Casi todos los proyectos sustanciales requieren trabajo en equipo”. Esto significa que necesitará aprender las habilidades de romper un problema en múltiples partes, construir buenas interfaces entre partes de la base de código y colaborar en la arquitectura.

“Trabajar con un grupo de ingenieros de ideas afines que te desafían definitivamente te pondrá en la vía rápida”, dice Craig. “Trabajar en aislamiento hace que sea difícil de atrapar a ti mismo tomando decisiones tontas y aprender cosas nuevas.”

Todo el mundo comete errores – así es la programación. Los principiantes deben esforzarse por colgar alrededor de grandes ingenieros y recibir retroalimentación. “No seas sensible a tus errores”, enfatiza Jonathan. “Así es como mejoras. Admite tus errores y aprende de ellos. ”

Obtener su código revisado también le obligará a pensar en por qué hizo algo y entender mejor el código. “Mis ingenieros favoritos para trabajar con son los que no te dejan el gancho sobre el código que escribe”, dice Ross. “Recuerdo cuando me desafiaron por primera vez, y me asustó la mierda. Pero esa noche fui a casa y estudié hasta que supe que al menos podría intentar una explicación confiada de cómo pasar thiscerca de cierres. ”

Entonces, ¿dónde encontrar mentores o compañeros que pueden emparejarse con usted y ayudarle?

Según Jack, los encuentros locales a menudo tienen sesiones donde se ofrece entrenamiento gratuito a cualquiera que quiera. Otros recursos gratuitos incluyen grupos de Twitter, grupos de Slack y canales de iRC.

Si estás bien con gastar algo de dinero para obtener su código revisado por un experto, puede obtener ayuda de un Codementor .

Consejo # 8: No sólo código – Construir soluciones

(Fuente: giphy )

“Mucha de la programación no se trata de código, sino de entender otras disciplinas o estándares”, dice Adam. ” No puedes resolver el problema de alguien con código si no entiendes su problema. El trabajo en proyectos me expuso a la manera que las pequeñas empresas, los vendedores, los corredores y otros profesionales acercan el mundo. Cuando comprenda cómo resuelven problemas en la actualidad, puede trabajar con ellos para encontrar soluciones nuevas y mejores “.

Una cosa que Ross desearía haber hecho antes en su carrera era apreciar mejor la disciplina y la historia de la Ingeniería de Software en sí.

Especialmente como codificadores de navegador o codificadores de aplicaciones web en un mercado en auge que trabaja con enormes lenguajes de programación dinámicos (Ruby, JavaScript) y lenguajes “informáticos” sumamente peculiares. (HTML, CSS), podríamos estar tentados a pasar todo nuestro tiempo compitiendo para dominar la miríada de herramientas, marcos y API para poder aplastar las entrevistas o subir de nivel en el trabajo. Pero la construcción de un producto en un equipo es siempre un ejercicio social, y un particular en que con un conjunto único de retos que son en su mayoría no técnicos. Como, resulta que lo más difícil en la ingeniería de software es decidir qué construir, no cómo; Aunque tal vez esto es menos cierto en como los rizomas de micelio de JavaScript dramáticamente. ”

Ross dijo que le tomó un tiempo entender que la mayoría de la ingeniería de software ocurre primero en su cabeza. “Codificación probablemente se convierta en la parte fácil pronto. Pero un ingeniero de droga puede dibujar una solución con cajas, círculos y líneas, y sé que es una habilidad aprendida porque lo he estado haciendo más y estoy mejorando “. La comprensión de que la codificación era mucho más” Barbilla en la mano y el embarque en blanco “fue en realidad tan resonante para él, escribió una entrada en el blog acerca de ello .

“Recuerda que esto es sobre seres humanos y nuestras vidas, no sólo sobre la tecnología con la que estás codificando”, dice Derick. “Aprenda cómo los humanos piensan, interactúan y tratan unos con otros. Luego representa lo que has aprendido en tu arquitectura y diseño de software. ”

Consejo # 9: No reinventar la rueda

Por último, no importa lo bien que obtenga, su código nunca será 100% original, ya que muchos problemas se han resuelto en su idioma de elección ya. “Absolutamente no es ninguna vergüenza en mantener la rueda como es”, asegura Ross. “Sin embargo, cuando llegue el momento de comprometerse, es mejor que se asegure de que puede defender ese código a su equipo con Dwayne Johnson -como encanto y confianza”.

“No vuelvas a inventar la rueda solo porque no entiendes una abstracción”, nos recuerda Mike.

Sin embargo, esto no quiere decir que no hay absolutamente ningún valor para reinventar la rueda. Matthew Zeiler, CEO de Clarifai , anima a la gente a construir cosas que ya tienen soluciones existentes si eso es lo que les interesa. Construir una herramienta desde cero le ayudará a aprender más sobre ingeniería de software, diseño de sistemas, escalabilidad y más.

Software Engineer vs Developer: ¿Cuál es la diferencia?

Después de leer este artículo, usted puede ser curioso o confundido acerca de cuál es la diferencia entre los ingenieros de software y los desarrolladores, ya que muchos de los expertos citados anteriormente tienen el título de “ingeniero de software”.

Ignorando los títulos de trabajo desorganizados y aparentemente aleatorios que prácticamente agrupan estos títulos en sentido de la misma cosa / función, si realmente desea diferenciar los términos, aquí están las definiciones comúnmente asociadas:

Los programadores simplemente transforman las soluciones claramente definidas en código, y todos los principiantes comienzan con el objetivo de convertirse en un programador. Como dice el refrán: todo el mundo puede convertirse en un programador.

Los desarrolladores toman esto más lejos: pueden codificar y diseñar soluciones y principalmente concentrarse en resolver problemas del mundo real. Todos los desarrolladores son programadores, pero no todos los programadores son desarrolladores.

Los ingenieros de software , por otro lado, ven el panorama general y tienen una comprensión profunda de cómo funcionan los lenguajes de código y de programación, por lo que se especializan en el diseño de buenas soluciones escalables. En general, el título de “ingeniero de software” es a menudo visto como más prestigioso que “desarrollador de software”.

Tal vez uno debe trazar la razón de esta diferencia a cómo las cosas eran tradicionalmente. De vuelta en los días en que la web todavía estaba en su infancia, la “ingeniería” de software se asociaba comúnmente con las aplicaciones de escritorio que resolvían problemas complejos, mientras que el “desarrollo” web era gente que construía sitios web relativamente simplistas.

Sin embargo, gracias a los avances recientes de la tecnología, donde casi todo se está moviendo a la web de una manera u otra, la línea entre el desarrollador web y el ingeniero de software ya no es tan clara. Los problemas más complejos se resuelven ahora a través de las tecnologías web. Si echas un vistazo a los títulos de trabajo de grandes empresas de tecnología como Google , Amazon o Facebook , los desarrolladores web a menudo ni siquiera son llamados desarrolladores web. Se llaman ingenieros de desarrollo (desarrollo), incluso si trabajan esencialmente en tecnologías web.

Basta con decir que todos los ingenieros de software son desarrolladores, pero no todos los desarrolladores son ingenieros de software.

Por lo tanto, con eso en mente, en lugar de obsesionarse con los salarios de ingeniero de software vs desarrolladores web o si debe convertirse en un ingeniero de software o desarrollador, tal vez sería más práctico pensar acerca de sus metas o lo que considera más importante o interesante.

Es decir, si usted está apuntando a tomar puestos de más alto nivel o trabajar en grandes empresas de tecnología, definitivamente debe tener la mentalidad que comúnmente se asocia con la de un ingeniero de software.

Conclusión

Las frustraciones abundan cuando aprenden a desarrollar aplicaciones o proyectos, pero esperamos que los consejos anteriores le hagan sentirse más confiado en su búsqueda para convertirse en un desarrollador. Tal vez llegar hasta el metal desnudo de la programación no es lo tuyo, y tal vez está bien. Sin embargo, como se menciona en este artículo comparando un buen desarrollador vs mal desarrollador, uno siempre debe esforzarse por convertirse en un mejor desarrollador, así que asegúrese de que no se conviertan en el mal temido desarrollador de todos los demás en su equipo querrá estrangular!


Registrese en Channeldir.com Para estar más actualizado de noticias de tecnología

Regístrese a nuestra gran comunidad tecnológica con: