¿Es la práctica suficiente para convertirse en un buen programador?

Creo que esta es una gran pregunta y para ser 100% honesto, estoy bastante seguro de que usted (el OP) sabe que hay un mayor involucramiento en ser un “buen programador ™”.

Comenzaré y resumiré mis pensamientos: no, una gran cantidad de práctica puede no hacerte un buen programador . Puede convertirlo en un programador eficiente en un dominio específico (potencialmente), pero no lo convertirá en un gran programador capaz de encontrar su camino en diferentes dominios.

Pensando en un ejemplo, hablemos de un personaje ficticio llamado Bob. Bob es un carpintero aficionado que acaba de construir su primer cobertizo de madera. Cometió numerosos errores, viajes en busca de suministros (debido a los errores o la falta de conocimientos / herramientas) y al final del día finalmente completó el cobertizo que estaba muy por encima de sus estimaciones originales de tiempo.

El amigo de Bob vio el cobertizo y le pidió que le construyera uno. Bob dijo que sí, y de lo que aprendió en el primer cobertizo, lo completó en la mitad del tiempo y cometió menos errores.

Otro de los amigos de Bob le pide que construya otro cobertizo … y así continúa hasta un punto de rendimientos decrecientes …

¿Cuál era el punto sobre la práctica y Bob, verdad? Bob solo estaba mejorando sus habilidades en un dominio. No sabe nada de diseño, no sabe trabajar con aluminio u otros materiales y no pudo construir una casa (fontanería, electricidad, etc.).

Por lo tanto, la práctica en un área en particular es inútil si no puede comunicarse con la gerencia, extiende sus habilidades a diferentes proyectos, no puede aprender de sus errores, difunde el conocimiento de los demás, etc.

¡Espero que el ejemplo haya ayudado!

Quiero agregar a lo que Ravi Sharma ha explicado bellamente.

La programación es una habilidad y un arte.

Como una habilidad, tiene
(a) sintaxis estándar a dominar,
(b) modismos de codificación estándar para dominar,
(c) estilo (s) estándar a dominar,
(d) técnicas de desarrollo de software estándar para dominar,
(e) patrones de diseño estándar a dominar,
y muchos otros aspectos a dominar.

Como arte, existe una profunda comprensión de la arquitectura a dominar, que va más allá de las habilidades y este es un viaje personal muy largo y lento. ¡Las habilidades te convierten en un maestro albañil, pero para construir un Taj Mahal necesitas un artista!
Pero al mismo tiempo, ¡permíteme advertirte que no puedes convertirte en artista sin aprender las habilidades!
¡La práctica te da las habilidades, pero solo una profunda pasión por la programación te convertirá en un artista!

No.

Debe aprender de personas buenas y con más experiencia para comenzar a pararse sobre los hombros de los gigantes en lugar de tropezar lentamente descubriendo lo que otras personas saben.

También necesita una comprensión sólida de los fundamentos (estructuras de datos, complejidad computacional, arquitectura de la computadora, lenguajes de programación, modelos de programación concurrente) del estudio con suficiente aplicación práctica para retenerlos indefinidamente.

Yo espero que sí.

Fui un programador patético hace 2 años. Escribí código sin sangría, sin ninguna documentación y que tenía un 50% de posibilidades de hacer lo que esperaba. Pero seguí haciendo eso. Empecé a buscar en Google “Mejores prácticas”.

Hoy, escribo código que tiene un 60% de posibilidades de hacer lo que espero que haga. Y es mucho más legible. Y ahora sé que tengo que escribir pruebas unitarias para mi código a pesar de que nunca lo hago. Y después de un año, sabía que siempre debería hacer esto y a menudo lo hago:

ARCHIVO * f = fopen (“myfile.txt”, “r”);
si (f == nulo)
printf (“Estúpida computadora jodida de nuevo”)

Y ahora, después de 2 años, sé que en realidad debería estar haciendo esto y siempre lo hago cuando estoy de buen humor:

ARCHIVO * nice_file = fopen (“myfile.txt,” r “);
// comprobando si el archivo realmente se abrió
if (! nice_file)
perror (“mensaje de error muy útil”);

Hace 2 años, hice un programa de pintura en proceso con un código tan desordenado que incluso la idea de reorganizarlo destruye mi estado de ánimo. Y estoy bastante seguro de que si lo vuelvo a hacer hoy desde cero, usaría muchas más bibliotecas y dejaría de programar botones desde cero y usaría más clases y terminaría teniendo la mitad del número de líneas en la versión inicial. (Si alguien está interesado en él, aquí hay un enlace a la fuente [1])

Hoy, alojo mis proyectos en github en lugar de google docs.

Pero sigo siendo la misma persona. Todavía me apestan los rompecabezas. Pero puedo escribir mejor código. No porque me volví más analítico y bueno en matemáticas o obtuve todas esas habilidades nerd que la gente dice que necesitas ser un programador, sino porque soy un poco más experimentado y sé cómo no hacer un lío con el código que escribo. Y sé algunas cosas que aprende con el tiempo y algunas cosas que las personas inteligentes en el desbordamiento de pila escriben en sus respuestas, como usar hashes en lugar de una simple matriz para almacenar cosas si la lista se hace demasiado larga (aunque nunca he hecho esto) .

Entonces, ¿soy mejor programador? Si. ¿Soy un buen programador? ¡No lo creo, porque tal vez pueda escribir un código bonito pero no necesariamente el código más eficiente o tal vez incluso el código correcto!

¿Puedo ser un buen programador? Sí. Eventualmente, terminaría copiando todas las cosas buenas que los buenos programadores han hecho y terminaría siendo uno de ellos. Ojalá.

EDITAR: obtengo mi código para hacer lo que debe hacer. Intentaba ser gracioso y no funcionó. Disculpas

Buena suerte.

[1] http://www.kevinkoder.hostei.com
[2] http://www.kevinkoder.hostei.com

Más que eso, debe centrarse en la programación de aprendizaje. Buenas prácticas.
me gusta

1) Legibilidad de código bcz
“Cualquier tonto puede escribir código que una computadora puede entender. Los buenos programadores escriben código que los humanos pueden entender”. ~ Martin Fowler

2) Complejidad de código
Principio de KISS
¿Principio de KISS aplicado al diseño del lenguaje de programación?

3) Principio SECO Y YAGNI
No te repitas
3 principios clave del software que debes entender – Tuts + Code Tutorial

4) Evite la anidación profunda

y muchos otros.

una vez que se sienta cómodo con las prácticas anteriores, concéntrese en
TDD (Test Driven Development).

Depende de

  1. lo que practicas
  2. la mentalidad con la que te acercas a tu práctica

En cuanto a (1), practique proyectos desafiantes que sean emocionantes para usted o para el mundo, o ambos. Lo que estás construyendo importa más de lo que sabes. Si estás en la escuela o trabajando, algunos proyectos pueden no ser realmente desafiantes o emocionantes, pero puedes hacer que sean si …

(2) practicar con una mentalidad de crecimiento. Esto significa preguntar siempre (después de completar una tarea o proyecto) la siguiente pregunta: ¿qué puedo aprender de esto? ¿Cómo haré esto mejor en el futuro? Al hacer esto, comenzará a innovar de forma natural, buscar mejores prácticas y evolucionar como programador.

Conozco algunos programadores que se niegan a aprender nuevos paradigmas, porque tienen miedo de evolucionar. Por esta razón, no he visto a estos programadores progresar profesionalmente en el tiempo que los conozco. El cambio es constante en la vida y se está acelerando en la industria tecnológica; Esto hace que el número (2) sea realmente importante. Manténgase actualizado con las tendencias de la industria y busque formas de hacer las cosas mejor, y usted mejorará.

Depende
Sí, es 100% seguro de que necesitas práctica.
Pero, mientras practicas, es mejor pensar más ;-). Es importante aprender de sus errores / de todos, leer sobre diferentes soluciones, patrones. Hay muchas guías sobre mejores prácticas, organización, etc.

Practicar no es suficiente. Pero, la teoría solo es peor, así que ve a escribir un código 😉

Sí, practicar le ayuda a escribir código más rápido y a pensar en diferentes formas de implementar una solución. ¿Pero practicar te hace un buen programador? No necesariamente.
Porque cuando resuelve soluciones, necesita resolverlas utilizando las mejores prácticas disponibles.

La práctica es un requisito seguro. Pero ser un buen programador también depende de cosas como la inteligencia. Expresar cosas bien y con elegancia (que ciertamente es lo que caracteriza a un buen programa) necesita ser inteligente, curioso, culto, cualquiera de todas estas cosas que la gente solía caracterizar a grandes artistas, científicos importantes, maestros en cualquier actividad humana. Para ser bueno en algo, debes ser consciente de muchas otras cosas y practicar, practicar, practicar …

Convertirse en un buen programador es como aprender sin supervisión en IA. Estás aprendiendo de los errores. Usted prospera para construir regresivamente sobre su propio error. El paso principal es escribir primero y luego analizar. Pero el análisis también es importante.

ESCRIBIR> ANALIZAR> ESCRIBIR

Puede practicar estilos y técnicas de codificación erróneos, las cosas pueden compilarse y ejecutarse, pero puede volverse insostenible, tener que arreglarlo y ser ineficiente, entonces usted (como yo) tendrá que desaprender todos estos malos hábitos y hacer las cosas bien. Entre algunas cosas, primero puede hacer un curso de algoritmos para que sepa que lo que está escribiendo se ejecutará de manera efectiva, no se requiere ensamblaje. Luego mire ClangFormat para ayudarlo a diseñar su diseño de código. Aprenda algunas cosas sobre subprocesos múltiples y luego paralelismo, para que pueda actualizarse con las técnicas modernas de programación de CPU multinúcleo.

Sí, si uno también está aprendiendo continuamente de una gran cantidad de material bueno, como libros, charlas y tutoriales.

Sí, un gran sí!

Primero lea, y el código, luego repita …

Pruebe, pruebe, verifique otras formas … Si tiene pasión por la programación, será una gran programación practicando por su cuenta.

Buena suerte

Usted necesita saber qué practicar, por lo que también deberá estudiar. Y sí, practicar y estudiar es todo lo que necesitas para aprender cualquier habilidad.

Cualquier bailarina puede practicar posiciones, saltos y ejercicios de barra, pero para bailar su parte, necesita un compañero para atraparla.

Encuentre a alguien a quien pueda mostrarle su código y obtenga comentarios.

La práctica y el razonamiento de las lógicas pueden hacerte un buen programador.

No es solo la cantidad de práctica, no necesitas practicar 1 + 1 = 2 una y otra vez para dominarla, debes seguir adelante y aprender 1 + 2.

No solo practica sino toneladas de práctica, especialmente si eres un novato. De lo contrario, con mucha práctica y motivación, definitivamente puedes convertirte en uno 🙂

practicar con pasión y locura es esencial

Sí, la práctica es suficiente, pero hazlo con total determinación y no solo por hacerlo.

More Interesting

El CGPA de mis dos semestres es 6.0 y las habilidades de programación son promedio. ¿Puedo obtener una colocación en nitt?

¿Qué empresas de personal contratan contratistas para Google, Facebook, Apple y otras grandes empresas tecnológicas?

Soy un B.Tech 2015 desmayado. ¿Cuáles son mis posibilidades de encontrar un trabajo si escribo un ELitmus ahora?

Tengo problemas de audición, he sido abusado sexualmente, no confío en las personas y me faltan habilidades sociales. ¿Cómo puedo tener éxito en la vida?

¿Cómo es el departamento civil en JU?

¿Qué tan honesto debería ser alguien si una startup le pide a un desarrollador web / solicitante de ingeniero de software un presupuesto estimado?

¿Cuáles pueden ser mis perspectivas de unirme a IIM Ahmedabad para un MBA y luego ir a Harvard para algunos cursos después de convertirme en un oficial de IAS?

¿Se puede convertir la agricultura en una carrera exitosa? ¿Cómo se puede ganar dinero con la agricultura en la India?

Tengo 25 años y tengo un buen salario. Sin embargo, mis adicciones me han dificultado el progreso en mi carrera y en mi vida en general. ¿Puede usted ayudar?

¿Puede un ingeniero convertirse en dietista?

De Capgemini, Accenture, Cognizant, TCS, Infosys, Wipro, ¿qué compañía es la mejor compañía para unirse?

¿Qué curso tiene un mejor alcance, un BBA en emprendimiento o un BBA en general?

Soy un estudiante de ingeniería mecánica y me gustaría aumentar las perspectivas de empleo para después de la graduación. ¿Ayudaría pasar el examen FE?

Soy una chica considerando un trabajo en desarrollo web. ¿Debo esperar mucho sexismo?

Inicio de trabajo de Android para más fresco