¿Podría pasar tiempo en Programmers.SE o Stack Overflow ser un sustituto de buenos libros de programación para un no principiante? [cerrado]

44

Podría pasar tiempo (y participar activamente) en Programmers.SE y Stack Overflow me ayudan a mejorar mis habilidades de programación de manera similar a lo que me ayudará dedicar tiempo a leer un libro como Code Complete 2 (que de lo contrario sería el siguiente en mi lista de lectura).

Ok, puede ser la respuesta a esta pregunta para alguien que está comenzando con la programación podría ser un no rotundo, pero me gustaría agregar que esta pregunta la hago en contexto cuando la persona está familiarizada con los lenguajes de programación pero quiere mejorar Sus habilidades de programación. Estaba leyendo esta pregunta en SO y también este libro ha sido recomendado por muchos otros (incluidos Jeff y Joel ).

Para ser más específico, también agregaría que aunque programo en C, Java, Python, etc., pero aún no estoy contento con mis habilidades de codificación y al leer la revisión de CC2, me di cuenta de que todavía necesito mejorar mucho .

Entonces, básicamente, quiero saber cuál es la mejor manera para mejorar las habilidades de programación: pasar más tiempo aquí / SO o continuar con CC2 y puede venir aquí cuando el tiempo lo permita.

Atul Goyal
fuente
1
Definitivamente es abrumador para un programador principiante.
surfasb

Respuestas:

102

No, no es un sustituto, sino un complemento perfecto . Siento que una combinación de los dos tiene mucho poder.

¿Por qué es que una buena conferencia te enseña más que solo leer un libro? Interacción y la capacidad de hacer preguntas.

Simplemente leyendo un libro, pueden aparecer algunas preguntas para las que no puede encontrar ninguna respuesta. Busque esas preguntas aquí, o pregúnteles si no se han discutido antes.

Steven Jeuris
fuente
+1 para un complemento perfecto. Solo puedo imaginar lo que habrían sido los ochenta para mí si SE o SO hubieran existido. Son grandes recursos.
Michael Riley - AKA Gunny
1
+1 como complemento perfecto para un complemento perfecto. Simplemente leer preguntas del "mundo real" e intentar responder (o duplicar las soluciones de respuestas existentes) son excelentes mini-katas para aumentar la habilidad, el conocimiento y la intuición
Dave Newton
En todo caso, la capacidad de expresar problemas y soluciones en un canal fácilmente comprensible y accesible mejora su capacidad como desarrollador, además de mejorar sus habilidades de comunicación.
surfasb
+1 (nuevamente) para un cumplido perfecto. Leo P.SE todos los días. No siempre leo todas las respuestas, pero leo la mayoría de las preguntas y las respuestas principales. Es una excelente manera de hacerte pensar en cosas en el campo que de otro modo no podrías encontrar. A veces veo algo en un Q&A que no está directamente relacionado con lo que estoy haciendo y que en realidad también es útil, lo cual es bueno.
Andy Hunt
12

He sido (actualmente) miembro de StackOverflow durante 1 año y 10 meses. Durante este tiempo me he convertido en un estudiante disciplinado del arte: conocedor de la arquitectura, los patrones, el desacoplamiento, las pruebas unitarias y la lista podría continuar ... pero, ¿qué papel jugó SO ?

Primero, respondió mis preguntas inmediatas. Pero cuando comencé a explorar SO, descubrí que era un programador muy malo. Deseando ser un artesano en mi oficio, compré libros ... pero no era C # Unleashed, Learn C # Programming u otro texto para principiantes por debajo del estándar que necesitaba. Compré el tipo correcto de libros que apuntaban a áreas de habilidades que descubrí que eran deficientes. Por supuesto, me tomé el tiempo para ver qué recomendaban los expertos en SO.

En segundo lugar, SO me dio un lugar para continuar aprendiendo de aquellos que (representados por la reputación) realmente saben lo que están haciendo, sintáctica y filosóficamente. Hay una cierta cantidad de información que se puede obtener sobre SO, CodeReview y Programmers que simplemente no puede obtener de un libro.

Obviamente, SO no puede reemplazar libros o todos los demás recursos web (aunque, si pudiera combinar MSDN y SO en un solo recurso de contenido ...); en cambio, SO complementa estos otros recursos. El mejor maestro, sin embargo, sigue siendo la experiencia .

IAbstracto
fuente
11

¿Cuál es la mejor manera para mí de mejorar las habilidades de programación?

Programando más. Leer libros y páginas web es secundario.

Aprendes mejor haciendo.

Humphrey Bogart
fuente
17
Si y no. Hacer más se puede hacer sin aprender más. Podría programar en un idioma determinado año tras año y no aprender nada nuevo. La lectura y la escuela te enseñan cosas fuera de tu "zona de confort". No es suficiente para un voto negativo, pero todavía no es un buen comentario.
WernerCD
1
La verdad es que estaba programando mucho sin aprender. Así que hice sitios web en PHP sin conocer objetos o usar un marco. Tienes que alejarte del código e ir y aprender
Bojan Kogoj
@ Werner, muy cierto. Quise "programar más" en el sentido de "encontrar algo que quieras construir, y construirlo, idealmente de una manera nueva para aprender algo nuevo"
Humphrey Bogart
Recuerdo que cuando era pasante, el "maestro" en el trabajo a veces nos asignaba tareas de programación, esperando que aprendiéramos mejor haciendo. El problema era que cualquiera que fuese el problema, a menudo todavía no estábamos en ese nivel. Y cuando alguien le hacía una pregunta al respecto, ella seguía diciendo: "¡Oh, esto es tan fácil! Necesitas resolverlo. Aprendes mejor de esa manera". Pasarían varias horas, con nosotros revisando la documentación, probando cosas, etc. Cuando finalmente nos diera la respuesta ...
Panzercrisis
... sería algo que simplemente no se nos dio la información necesaria para descubrir . Nos habría llevado toda la semana o más encontrar la información necesaria, cuando no teníamos el tiempo, y cuando a veces la información no estaba disponible ni para nosotros ni para el público en general. Por lo tanto, es suficiente decir que la instrucción es muy importante, y simplemente decirle a alguien que resuelva las cosas por sí solo es bueno cuando y solo cuando están listos y hasta ese nivel.
Panzercrisis
5

El aprendizaje necesita algunos ingredientes:

  1. Estudiante (que por supuesto eres tú)
  2. Tiempo (que debes administrar y dedicar)
  3. Recursos (de los cuales, los sitios de SE son solo una pequeña porción)

¿Eres un buen alumno? ¿Pasas suficiente tiempo aprendiendo? Si la respuesta de estas 2 preguntas es , entonces ya tiene suficiente potencial para aprender casi de cualquier recurso.

Pero para responder a su pregunta, sí, personalmente aprendí mucho de los sitios de SE. En mi humilde opinión, no deberían convertirse en su única fuente de aprendizaje, pero son beneficiosos.

Saeed Neamati
fuente
5

Dos cosas que SO y P.SE ofrecen que ni la lectura de otros libros ni la escritura de código usted mismo ofrecen: pruebas y enseñanza. Si solo haces preguntas a ciegas como

¿Por qué no compila esto?

wall
of
code
100
lines
long

Y alguien dice "en la línea 33 que la coma debe ser un punto y coma" y usted acepta la respuesta y continúa, y continúa haciendo las mismas preguntas para siempre, entonces es posible que no mejore.

PERO, si estás leyendo las preguntas de otras personas, pensando en la respuesta, observando qué respuestas llegan y cómo se comparan con lo que sabes, eso realmente te mejorará. Si escribe algún código en su editor favorito e intenta algunas cosas para ver cuál es la respuesta, eso realmente lo mejorará. Y cuando comienzas a tratar de explicar conceptos (y las personas esperan allí para "aclarar" lo que dices) eso también te mejorará.

Durante unos 30 años descubrí que nunca aprendo un tema tan bien como cuando, creyendo que lo sé, me propuse enseñarlo. Para mí, esa es la mayor contribución de los sitios * .se a mis habilidades como desarrollador. Además, cuando solo quiero saber un hecho simple, es mi lugar número uno para buscar (u ocasionalmente preguntar).

Kate Gregory
fuente
3

Sus habilidades de programación se mejoran mejor no leyendo sitios web o libros, sino repitiendo

  1. escribir código basado en el conocimiento actual
  2. evaluar resultado
  3. aprender de la evaluación sobre qué hacer y qué no hacer.
  4. ir a 1

La práctica hace la perfección. Lo que se ve bien en un blog o en un libro puede resultar engorroso de usar por alguna razón que el escritor del blog no entiende, o que el autor del libro no cubrió.


fuente
2
Los libros (y blogs, y SO) pueden exponerlo a conceptos que tal vez no haya desarrollado por su cuenta, pero se convierte en un mejor programador al escribir código.
Annika Backstrom
2
Por otro lado, si nunca presto mucha atención a los consejos externos, no llegaré demasiado lejos. Otras personas han aprendido de la manera difícil, y sería una tontería no aprender de sus experiencias. Claro, no confíes únicamente en la lectura y la audición, pero tampoco cometas el error de tratar de aprender sin la ayuda de otros.
Phil
lectura externa va en # 2
La lectura externa es necesaria para descubrir las características no obvias, únicas o avanzadas para una técnica particular o lenguaje de programación o bibliotecas. Son cosas que no son estrictamente necesarias para realizar ninguna tarea, pero que pueden mejorar la forma en que lo hace (por ejemplo, metaprogramación). Como nunca son estrictamente necesarios, las personas rara vez vienen a buscarlos solo por experimentación.
Lie Ryan
2

Como te respondiste a ti mismo, no, pero pasar tiempo aquí es un complemento útil para un aprendizaje más estructurado. No dependería de él de forma independiente, ya que puede haber lagunas en algunos conceptos que pueden no cubrirse. Una de sus mejores apuestas para mejorar su codificación para chicos en el nivel intermedio es leer el código de otro buen desarrollador pasando tiempo en GitHub u otro repositorio de código abierto.

Llavero
fuente
1

Pensamiento crítico y análisis aún se requiere

En sí mismo no. La única forma de crear una fuente de aprendizaje (libro, blog, sitio web, SO, etc.) es mediante la comprensión, el análisis y la incorporación repetida. Lo que la gente escribe en foros como este no es evangelio y no debe ser tratado como tal, sin importar cuántos votos tenga. Debe hacer su propio análisis sobre la opinión emitida para determinar si es:

  1. Una buena idea
  2. Una idea aplicable a su situación.

La mejor manera de mejorar

A menudo es específico de la persona. Algunas personas mejoran a través de la lectura y la investigación. Algunas personas mejoran a través del juego y la experimentación. Otros incluso pueden mejorar a través de la auto reflexión y el análisis. Pruebe lo que le atraiga y vea si le funciona mejor.

dietbuddha
fuente
0

Aprender Java se volvió mucho, mucho más fácil cuando me enteré de stackoverflow. No hice preguntas, pero comencé a leer las preguntas de Java a diario. Gran parte de las preguntas estaban fuera de mi entendimiento, pero de vez en cuando alguien hacía la pregunta para principiantes. Muchas personas preguntan acerca de los conceptos que leen de un libro pero no entienden, y obtienen una respuesta mucho más comprensible aquí, a menudo con una pequeña muestra de código para explicar el problema.

Comportamiento
fuente