Cómo pasar de un buen programador a uno excelente

Programa. Solo, programa.

Me enfrento al mismo problema que tú; No sé que codificar.

Pregunté a amigos y familiares sobre algunos problemas técnicos que tienen o les gustaría ver mejorados / creados. Mis propias ideas personales también están escritas y pensadas.

Una gran parte de la programación es la capacidad de ser abstracto y lógico. Esto ha afectado cómo estoy en la escuela; Tiendo a pensar demasiado o analizar en exceso algunos problemas con los que trabajo, lo que hace que las personas no puedan entender cómo funciona. Sin embargo, me ha ayudado de la mejor manera. Tiendo a ser mucho más organizado y junto con mis ideas y pensamientos.

El hecho es que realmente no hay forma de convertirse en un programador increíble en poco tiempo. La programación requiere práctica y aplicación, no es algo que puedas aprender después de leer un libro. Ejercicio constante hasta que los temas se cementan en su cerebro.

Estoy codificando en Java, y lo he estado haciendo durante un mes más o menos. He leído 500 páginas de un libro que enseña los conceptos básicos, las funciones y las teorías. En cuanto a su caso, necesita encontrar algo que pueda probar su conocimiento de JavaScript. Incluso si no puede hacer algo en su idea, los repositorios Stack Overflow y GitHub son útiles.

Hay muchos tipos diferentes de “grandes programadores” con diferentes conjuntos de habilidades y áreas de especialización. Entonces, su pregunta es un poco como preguntar, “¿qué tipo de procedimientos médicos debo realizar para convertirme en un gran médico?” Puede haber un conjunto de habilidades universales mínimas que todos los médicos tienen, pero eso solo determina un nivel mínimo de competencia, no qué Es un gran médico.

En general, los buenos programadores son impulsados ​​por sus intereses y respaldados por un plan de estudios sólido de SWE o CS. Están involucrados en las comunidades de desarrolladores que les interesan (por ejemplo, desarrollo de juegos o programación incrustada o realidad virtual o desarrollo web, así como las comunidades para los lenguajes y marcos que usan). Esto les presenta constantemente nuevas herramientas, bibliotecas, conceptos de flujo de trabajo, conceptos SWE y mejores prácticas, etc.

Para ser franco, la necesidad de que otras personas le digan qué codificar es una mala señal. Ya hay muchas ideas de proyectos fácilmente detectables en la web, y la mayoría de los desarrolladores ya tienen una acumulación de ideas de proyectos que desean implementar. Los buenos desarrolladores son proactivos y saben cómo investigar y realizar un aprendizaje autodirigido.

El mejor consejo que puedo darte ahora es esforzarte por ser un programador correcto. Eso significa aprender los conceptos básicos de SWE y CS para comprender la amplitud de estos campos. Luego, debe tener ideas de proyectos que sean apropiadas para sus habilidades actuales, es decir, proyectos que puede completar en un tiempo razonable mientras aprende nuevos conceptos y técnicas.

A medida que realiza su investigación y se sumerge en el aprendizaje, automáticamente debe tener ideas de proyectos futuros para continuar con este proceso.

Practica, mucha, mucha práctica.

Al igual que Michael Jordan creó un estilo a través de la práctica, al igual que muchos otros profesionales, por lo que creará un estilo propio solo después de haber dominado su habilidad. Planifica más de 10,000 horas.

Práctica.

Empieza a trabajar en algunos proyectos reales que te interesen. Creo que construir algo te permite aprender algo mucho mejor que solo tomar cursos.

Si se encuentra con un problema mientras trabaja en proyectos, intente resolverlo usted mismo buscando en Google o leyendo la documentación. Aprenderás mucho más al hacerlo.

Tome un curso sobre Arquitectura de Computadores, o estudio autodirigido en Internet.

Los grandes programadores pueden llevar la evaluación técnica del hardware, el sistema operativo y otros detalles a su proceso de diseño de programación.

Un gran programador sabe lo que su código le hace a la CPU del hardware, el montón, la pila, el diskIO, la memoria virtual e incluso el uso de la red.

Un gran programador comprende cosas como la memoria de proceso, cómo funciona malloc o cómo el núcleo del sistema operativo impide que dos programas accedan al espacio de memoria del otro.

Un gran programador comprende cómo se puede abusar de la arquitectura de la computadora para que no esté mal manipulada por amenazas de seguridad y cómo se pueden inyectar cuevas de código en DLL o SO.

Un gran programador también puede hacer evaluaciones técnicas sobre la viabilidad del algoritmo, la viabilidad funcional y conocer las limitaciones máximas de su enfoque dadas las restricciones de hardware.

Un gran programador conoce la arquitectura de computadoras como si fuera una biblia.

Sin rodeos, no suenas como alguien que va a ser un gran programador o incluso competente.

La competencia incluye la capacidad de

  • Juez competencia
  • Evaluar lo desconocido
  • Extraer principios generales de fenómenos específicos.
  • Planifique los pasos necesarios para lograr objetivos simples y complejos

No creo que las personas que tienen esas habilidades hagan el tipo de pregunta que ha hecho aquí. Con toda la información disponible gratuitamente en la red, no está ahí fuera absorbiéndola, analizándola, buscando una pequeña parte de ella donde pueda comenzar. Estás aquí, pidiendo ser alimentado con cuchara.

Cualesquiera que sean las aptitudes naturales con las que comiences, la habilidad es algo que adquieres a través del trabajo duro. No puedes simplemente sentarte allí y pensar hasta que de repente seas genial. Tampoco hay un plan para todos los gustos; Sus aptitudes, experiencia y forma de pensar son únicas. Cualquier plan debe adaptarse para adaptarse a usted. Y si no sabes por dónde empezar con eso, creo que quizás no tengas la aptitud para ser bueno en esto.

Si quieres demostrar que estoy equivocado acerca de tu potencial, comienza a practicar. Luego, piense en lo que ha logrado, vea lo que ha aprendido, busque algo nuevo que pueda intentar aprender más, o haga un mejor uso de lo que ha aprendido ahora. Repetir.

Si eres bueno, tu opinión sobre lo que necesitas y quieres cambiará a medida que aprendas. Tu plan cambiará.

Si quieres un lugar para comenzar, prueba HackerRank. Tienen una amplia gama de desafíos que cubren muchos temas en diferentes niveles de habilidad. JavaScript es uno de los idiomas que admiten (aunque podría tratarlo como una oportunidad para aprender otros idiomas). Tienen una secuencia de 30 días de código de tutorial y JavaScript es probablemente uno de los idiomas que puede usar para eso. Tal vez un sitio como ese pueda enseñarle cómo planificar su aprendizaje y evaluar su propia habilidad.

Pregunta original

¿Cómo puedo pasar de un buen programador a uno excelente?

Para construir sobre la analogía de Jackson Kent Rollins, te vuelves genial “jugando con Michael Jordan”. Es decir, cuando trabajas con personas que son excelentes en lo que hacen, te llevarán a sobresalir.

Lo mismo para la competencia. Puedes ser grandioso al competir contra los grandes. Sin embargo, le recomiendo encarecidamente que busque competidores directos fuera de su propia empresa.

Cuando las personas dicen ‘práctica’, se refieren a construir aplicaciones o bibliotecas. Nunca obtendrá nada bueno si se limita a problemas patológicos como el que hace en las clases de matemáticas de la escuela secundaria.

Piensa en algo que sea conveniente tener y luego hazlo. Que te diviertas.

Bueno, vi una pregunta / respuesta similar en quora, las publicaré aquí ya que la gente les dio excelentes respuestas.

Aquí están

¿Cuál es la mejor manera de convertirse en un gran programador?

¿Qué saben los grandes programadores que los programadores promedio no?

Detener. Por favor, deja de intentar ser genial en algo que nunca has hecho. Solo concéntrate en lograr algo que no sea un tutorial paso a paso.

Si no ha realizado ningún proyecto, aún no ha comenzado a aprender JS. Es posible que lo hayas intentado pero en realidad no has desarrollado nada y eso significa que aún no eres un programador.

Para las ideas? Si no ha pensado en ninguna forma de desafiarse a sí mismo, es posible que no le interese la programación, si no está inspirado, intente hacer una mejor versión de Quora o haga un clon de Instagram, un clon de Uber, etc.

Si desea producir lo que quiere de la manera más rápida utilizando javascript a partir de 2017, le sugiero que aprenda estas tecnologías / conceptos:

Programación funcional, ES6, react, firebase, oauth, linting, webpack,

Si quieres ser un gran programador de Javascript y tener tu tiempo, probablemente te sugiero que aprendas esto arriba + Prueba de Unidad 🙂

Aquí hay un buen consejo, aprenda convención si aún no lo ha hecho. Podría ver un código increíble, pero si no está configurado en un buen formato, no será tan bueno.

More Interesting

¿Qué debo hacer después de aprender Java Core?

¿Es mejor especializarse en informática o ingeniería informática? ¿Qué requiere más matemáticas? ¿Y es mejor especializarse en informática / ingeniería o en economía?

¿Cuánto ganan los diseñadores / desarrolladores web en India o EAU?

¿Cuál es el conocimiento básico de los ingenieros informáticos?

¿Qué programa de informática debería elegir entre VUB (Bélgica) o la Universidad de Tartu (Estonia) si estoy interesado en los lenguajes de programación?

¿Todavía puedo ingresar a una buena escuela de posgrado de CS en este momento?

35 y mujeres: ¿estoy loco por entrar en la programación para una carrera?

¿Qué puedo hacer como estudiante de tercer año de CSE para tener un currículum impresionante?

¿Cuál debería preferir: AMU (CS) o HBTI (químico)?

¿Qué tipo de investigación interesante está ocurriendo en la Universidad de Texas Austin en el campo de la informática?

¿Cómo puedo, viniendo de un entorno que no sea CS, asegurarme de que mi currículum esté preseleccionado por compañías de software como Oracle, NetApp, Amazon y otras?

Quiero estudiar ciencias de la computación y acabo de aprobar la clase 10. ¿Por qué debería estudiar física, química y matemáticas y prepararme para exámenes competitivos como el JEE?

Hace dos años estoy tratando de averiguar mi especialidad. ¿Cual es la solución?

¿Se pueden tomar análisis comerciales después de 4 años de experiencia en Java?

¿Por qué alguien debería elegir la computación en la nube como especialización durante un BTech en informática?