Cómo practicar una buena programación y convertirme en un buen programador si las cosas están mal en mi empresa actual

1.Decida por qué quiere convertirse en un buen programador: ¿es porque quiere un trabajo, preferiblemente en una empresa de software bien remunerada? Excelente. Entonces estás listo para llegar a NINGUNA PARTE. Todos los buenos programadores que conozco son buenos porque les encantó lo que hicieron. Desarrollar interés en la programación. Vea, la programación es la única rama en ingeniería donde puede aplicar de inmediato lo que aprende. Es posible que tu papá tenga un auto, pero ciertamente no te permitirá modificar el V2 ni cambiarlo por un v6 solo para ver qué sucede. Pero con las computadoras puedes hacer lo que quieras. ¿Quieres simular un virus? Guay. Instale un SO virtual y ejecútelo. Luego, cuando haya terminado, retire el disco duro virtual. Si eres bueno en lo que haces, te pagarán y seguramente obtendrás el trabajo soñado. Sí, incluso quiero trabajar en una gran empresa de software. Pero eso no es por el gran sueldo. Es por el trabajo que hacen. Debido a la exposición que tendré. ¿Alguna vez se ha molestado en averiguar qué hacen todas estas empresas y las tecnologías habilitadoras detrás de sus productos o el tipo de I + D que realizan? Los trabajos vendrán. No te hagas un imbécil para uno. Sachin no es un gran jugador de cricket hoy porque decidió jugar al cricket para ganar dinero y obtener docenas de endoresements.

2. Lenguajes de programación: muy a menudo las personas equiparan las buenas habilidades de codificación con el número de idiomas de programación conocidos. Eso es malditamente falso. Si bien conocer mucho lenguaje de programación es bueno y, a veces, incluso, esencial; Es más importante que conozca muy bien uno o dos idiomas. ‘Lo sé’ y he usado más de una docena de lenguajes de programación y, sin embargo, C y Java son con los que me siento realmente cómodo. Eso es triste, por supuesto. Realmente quería ser bueno en la Asamblea y Lisp también. Nunca tuve el tiempo o la oportunidad de desarrollar esas habilidades. Ser bueno en un idioma lleva años (al menos 2 años). Ser bueno en un idioma significa que entiendes dónde se usa mejor y dónde usar ese idioma no tiene ningún sentido. Por otro lado, conocer un idioma lleva de 3 días a una semana. Si eres un principiante, aprende C primero. No compre Yashawant Kanetkar. Compre el libro “El lenguaje de programación C” de Brian W Kernighan y Dennis M Ritchie (si no sabe quiénes son, haga esto 1. Bofetada 2. Busque en Google sus nombres). Este libro no es el más fácil pero es el mejor. Es un libro pequeño pero es el más poderoso. Se han criado generaciones de programadores. Y si crees que este libro es difícil para ti, por favor, no guardes ningún deseo fuera de lugar de ser un buen programador y no pierdas tu tiempo leyendo más esta publicación. La programación es un arte (no una ciencia. Sí, lo has leído correctamente) y, como cualquier arte, requiere un esfuerzo minucioso.

Algunas personas sugieren Python como el primer idioma que se aprende. Python es ciertamente un buen lenguaje y también es fácil. Pero tendrá que depender principalmente de Internet para obtener ayuda, ya que no muchos conocerán Python. También C tiene el uso más amplio entre todos los lenguajes de programación. Además, por favor NO use Turbo C. Está tan anticuado. Utiliza GCC. Si está en Windows, descargue Dev C ++. Tiene CCG

3. Algoritmos: cualquier buen programador tiene una buena comprensión de los algoritmos. No es necesario que conozca cada algo de memoria (de hecho, los buenos programadores nunca aprenden cosas de memoria), pero debe comprender cuándo usar qué. Algos ampliará su comprensión y le dará nuevas formas de abordar los problemas. Otra cosa importante son las estructuras de datos. Es más importante que algo. Una vez que haya elegido (o desarrollado) la estructura de datos correcta, el algoritmo se vuelve evidente. Para algo, lea el libro “Introducción al algoritmo” de Thomas H Cormen et al. También puede referirse a “Estructuras de datos en C y C ++” de Andy Tanenbaum. Además, si desea participar en concursos de codificación (los respetables), “The Art of Programming Vol I to V” de Donald E Knuth son obligatorios. También puede ser “Matemáticas concretas” de Donald Knuth. Una vez más, leer no significa recordarlo todo. Solo trata de entender lo que está escrito.

4. Concursos de codificación: los concursos de codificación son buenos para desarrollar tus habilidades algorítmicas y te hacen pensar rápido. Es una buena idea participar en ACM ICPC o Entregar más rápido a través de Crowdsourcing. Luego están los concursos de codificación (como Sun’s Code for Freedom, Google’s Summer of Code, Microsoft’s Imagine Cup) donde se desarrolla un software completo. Tales concursos se extienden por muchos meses. Ambos requieren diferentes tipos de habilidades. Puede ser bueno en uno y malo en otro y, sin embargo, podría ser un buen programador. Los concursos como ICPC requieren mucha práctica, pensamiento rápido y se espera que mantengas algos en el fondo de tu mente. CFF, GSoC, por otro lado, requiere creatividad y enfoque extendido durante un largo período de tiempo. No tiene que encontrar soluciones demasiado rápido y no tiene que atrapar algos. ICPC es como T10, mientras que CFF, GSoc e Imagine Cup son como Test Matches. Te sugiero que participes en ambos tipos y luego decidas si quieres concentrarte en uno o en ambos.

5. Participación en proyectos de software libre: DEBE participar en algunos proyectos de software libre. Hay demasiados Estoy trabajando en SCALASCA en este momento y luego pasaré a Sun Grid Engine y Sun xVM Hypervisor y contribuiré con el código allí. Aprendes mucho de esto. Puedes ver mucho código y aprender las mejores prácticas. Y lo mencioné, también se ve bien en tu CV. La mayoría de las personas se resfrían cuando pasan por algunas de las prerrequisitos de tales proyectos. Tome Thunderbird por ejemplo. Necesitaría saber mucho C / C ++ y Javascript (para desarrollar módulos). Ahora no espere hasta el día en que sea un experto en estos idiomas antes de contribuir. La programación es un arte, no pierdas el tiempo afilando tu lápiz cuando deberías dibujar. Puedes pedirme direcciones.

6. Patrones de diseño: cualquier arte se aprende emulando. Y por lo tanto, debes emular lo mejor. Los patrones de diseño son soluciones arquitectónicas probadas y comprobadas (del tipo de software) para algunos problemas de diseño de software comúnmente encontrados. Y, por lo tanto, se necesita un conocimiento básico de algunos patrones de diseño comunes si planea desarrollar algo que es incluso moderadamente complejo. Sugiero “Head First Design Patterns” de Oreilly como primer paso.

7. Aprendizaje por emulación: emula lo mejor. Y esto es posible leyendo libros escritos por los mejores y / o revisando el código de algunos de los mejores proyectos de software libre. Instaría a cualquier persona seria acerca de la programación a leer el libro “The Art of Unix Programming” de Eric S Raymond (no se olvide de abofetearse primero por no saber quién es Eric Raymond y luego buscar en Google su nombre). No eres un programador si no has leído ese libro. Período.

Soy mujer e ingeniera de TI, y trabajo desde hace más de 6 años en una empresa líder de TI. También ejecuta blog de los últimos 4+ años. Estoy compartiendo aquí mi experiencia para ti.

Durante mi carrera, descubrí que pasaba mucho tiempo haciendo correcciones de errores, especialmente mientras mantenía y modificaba el código de otros desarrolladores. Cuando escribe el suyo desde cero, es menos problemático, pero es posible que lleve mucho tiempo mientras administra el código de otros. Pero puede optimizar el código ya escrito para que luego obtenga menos errores y pase más tiempo escribiendo código. Aprenda paso a paso en el campo de la programación. La programación es parte del proceso de resolución de problemas y una vez que comprenda el problema subyacente y encuentre la solución eficiente dentro de la restricción dada, le dará confianza.

Bueno, acerca de convertirse en un buen programador:

  1. Puedes leer libros, otros blogs, ayudar a otros en stackoverflow
  2. Puede iniciar un blog y compartir soluciones técnicas con otros.
  3. Puede asistir a conferencias técnicas o seminarios los fines de semana para aumentar su conocimiento técnico
  4. Ayude a sus colegas a resolver sus problemas / errores.
  5. Organice su tiempo y desarrolle algunas cosas buenas en diferentes tecnologías.
  6. Comienza a obtener alguna certificación. Por ejemplo, certificado PMP

etc.

Estoy haciendo todas esas cosas para mejorar mi conocimiento. Soy un desarrollador de PHP pero estoy aprendiendo todas las tecnologías como python, java, angular, reactjs, ansilble, etc.

No piense que solo puede trabajar o crecer en la empresa. Eventualmente encontrarás un programador talentoso yourself

Las posibilidades de que te conviertas en un buen programador dependen más de lo que haces después del horario de oficina que de lo que haces durante tu tiempo de trabajo, a menos que seas absolutamente afortunado.

Por lo tanto, lea mucho código bueno, practique la codificación utilizando ese principio, comprenda cómo trabajar eficazmente con el equipo, lea codificación y diseñe blogs que hagan hincapié en mejores prácticas de codificación.

Haga un seguimiento de sus proyectos de código abierto favoritos y vea cómo estructuran su código, lanzan versiones, agrupan aplicaciones, etc.

Finalmente, al hacer esto, desarrolle su propio producto utilizando los principios que aprendió y automáticamente todos estos esfuerzos se reflejarán en su trabajo diario también. El producto no tiene que ser excelente, pero debe servir como referencia para usted. Hay algunos libros realmente geniales, como refactorización, código limpio, estimación, prácticas de front-end web, principios sólidos, reutilización, rendimiento, que debe intentar seguir con diligencia.

Además de las cosas anteriores que destaqué, practique y cultive esto como un hábito diario y será un mejor programador.

Codifique mucho y disfrute haciéndolo. Al final, se trata de resolver problemas y el arte consiste en tratar de resolverlo de manera más eficiente y resolver el problema primero.

Gracias..

Por lo general, las personas intentan asociar a un individuo con la empresa para la que está trabajando, pero eso no debería impedirle dar su mejor oportunidad. Eres una entidad en ti mismo, no importa qué problemas enfrentes, tu talento permanece contigo para siempre. Si está luchando por ser un buen programador y se encuentra en una situación no deseada, deténgase allí mismo y encuentre la raíz de la causa. Puede suceder porque es posible que le falten algunas u otras habilidades, pero ese no debería ser el final de la historia. En el escenario actual, las compañías están proporcionando un mentor / guía digital para sobresalir cualquier conjunto de habilidades de programación. El que encuentro más genuino y recomendaría es Livecoding.tv. Este sitio web tiene un grupo de programadores de primer nivel de todos los idiomas para guiarlo en todas las formas posibles. En el escenario actual, el mercado de la educación digital ha crecido enormemente y está expandiendo la razón por la facilidad de accesibilidad, los servicios gratuitos y de bajo costo y una forma elegante de aprendizaje en comparación con el mundo real.

Dale algo de tu tiempo personal. Después de ir a casa del trabajo, sacaba mi computadora portátil nuevamente y hacía lo que quería, principalmente programar o aprender nuevos conceptos, tecnologías. Cuando tienes un deseo ardiente, siempre encontrarás tus caminos.