¡Esta pregunta parece muy popular! Muchas respuestas ya se pueden ver excelentes respuestas. Sin embargo, no hay demasiados consejos. Así que ahí voy…
Antes de comenzar, revisé la respuesta de Michael O. Church y fue lo que me llamó la atención. Excelente respuesta Michael. Ha prestado una atención muy detallada a la segregación de ingenieros de software (SE). Así que déjame comenzar desde este punto.
Conocimiento comprensivo:
Computer Science (CS) [El campo teórico sobre el desarrollo de software (SD) junto con SD] es un campo muy vasto . Cuando digo vasto, es una colección de conocimiento enorme, gigantesca, gigantesca, brobdingnagiana, con sus diversas ramas y ramas secundarias que se extienden hasta donde alcanza la vista. Y este estado ni siquiera es estable. Se expande constantemente y forma nuevas alianzas con otras ramas de la ciencia, lo que resulta en una interconexión de conocimiento similar a la tela de araña.

Cuando seas nuevo, estarás confundido, asustado y finalmente te dejarás llevar y serás humilde ante el tamaño del universo. Acéptelo y comience a moverse y a estudiarlo con asombro y asombro.
Tendrá que aceptar esta enormidad y rodearla en un intento muy débil de dominar su existencia. Esto se puede lograr clasificando los tipos de conocimiento como lo ha hecho Michael con los tipos de SD (¿Se puede hacer algo similar para varias ramas y tipos de dominio como codificación, teoría, IA, clasificación booleana y otras con diversas actividades y temas en CS?) . Comience a adjuntar etiquetas (similares a las etiquetas de blogpost o grupos de Quora) a las ramas CS y sub ramas. Esto lo ayudará a encontrar referencias en un momento posterior cuando sea necesario y hacer referencias cruzadas con otra información.
Aprendizaje:
Aprendizaje es un término muy vago para estudiar como lo describió Michael. A partir de la cantidad de conocimiento, necesitará una cantidad significativa de tiempo para estudiar una porción muy pequeña de la misma. Este será tu próximo paso. Limite el campo y el dominio de CS en el que siente que tiene interés y que probablemente desarrolle pasión por. Si está confundido, continúe, continúe de todos modos e intente ensuciarse las manos con la codificación. Esto debería solucionarlo de inmediato.
La capacidad de aprendizaje implica dos puntos:
Estudiar: Esto debería implicar su codificación, campo de estudio inmediatamente aplicable a usted y su trabajo. Esta etapa tiene tres requisitos que son:
- práctica
- práctica
- práctica
La importancia de la práctica de codificación no puede ser exagerada . Comienza a practicar en tus proyectos favoritos. Siempre habrá una mejora que un ojo detallado puede detectar en cualquier producto. Esto se debe a la increíble capacidad de los productos digitales para ser personalizables a nivel de bits. Revise todo con un ojo crítico para obtener mejoras positivas.
Leyendo:
Dado que SD se ocupa de problemas del mundo real, deberá conocer los requisitos comerciales. Esto implica desde el estudio de especificaciones hasta la obtención de un núcleo de conocimiento de nivel de dominio para su trabajo. Déjame aclarar esto. Si necesita desarrollar un algoritmo de secuenciación de genes, es su responsabilidad comprender completamente el tema, repasar los conceptos básicos, remitir los documentos de la conferencia y recibir el asesoramiento de expertos de las PYME respectivas que incluyen obtener información de contacto. Por lo general, esto debe hacerse dentro del plazo comercial especificado para enviar un plazo estimado para su finalización. Esto es extremadamente difícil, mientras que la actividad de estimación del tiempo del proyecto es un arte en sí mismo, digno de discusión en otra publicación. Hay muchas maneras de hacerlo, pero todas comienzan por leer y estudiar campos relacionados con su trabajo.
Code Reading
:
Esta actividad consiste en leer el código de los proyectos y las personas que encuentre interesantes para tener una mejor idea sobre ellos. Este hábito, aunque difícil e inicialmente torpe, le inculcará una mejor documentación del código y disciplina de formato mientras expande sus horizontes. También lo ayudará a encontrar amigos, compañeros, mentores que tendrá usos invaluables para beneficio mutuo. Esto requiere disciplina pero practíquelo.
Escritura:
Escribir implica escribir tus pensamientos. El atributo clave de un gran SD (o de hecho cualquier gran líder) es su capacidad para comunicarse efectivamente (sí, el mismo cliché de gestión). Esto es muy importante para colaborar con muchos codificadores que lo califican como más importante que sus habilidades de codificación para el éxito del proyecto, incluso en el trabajo del programador. Algunos programadores incluso han atribuido la escritura como una inspiración a partir de la cual comunican pensamientos a la máquina a través del código. La clave para entender SD es que, a diferencia de lo que se muestra en los medios convencionales, es de naturaleza muy social, donde las conversaciones tienen una opinión ligeramente diferente a las tradicionales.
Revisión de código:
Este es un subconjunto de lectura de código. Este paso implica que revise el código de su socio de proyecto de trabajo / afición y viceversa. Esto ayuda principalmente a sincronizar sus pensamientos mientras señala las diferencias de código en estilo y algoritmos, elevando así los estándares de código del equipo al mismo tiempo que orienta a los juniors y brinda una visión general de la estructura del proyecto.
Herramientas:
SD no es más que la creación de nuevas herramientas. SD ama sus herramientas. Esa es la razón por la que tenemos muchas versiones del mismo producto. En el curso de su carrera, tendrá que lidiar con innumerables herramientas para hacer el trabajo. Puede crear uno o más bien modificar uno existente. El problema surge cuando necesita optimizar el rendimiento. Luego cavas profundamente debajo de su capó y entiendes qué versión está más cerca de tu necesidad. ¿Suena cansado? ¡Será mejor que ames tus herramientas!
Por encima de la materia se trataron detalles específicos de la DE. Esta sección trata aspectos más amplios de SD como
punto de vista .
Perspectiva: así es … así es como se hace …
Su pregunta es muy amplia en su naturaleza. Mientras que el contenido anterior trata el tema de SD, ahora podemos tratar cómo encajan exactamente las diferentes respuestas.
Esta pregunta tiene muchas respuestas. Todos son muy diferentes, pero responden la misma pregunta. Todos ellos son buenos. ¿Cuál elegir y por qué son tan diferentes?
Es una cuestión de perspectiva. Como todos los demás temas, el hecho único rara vez corrobora con la verdad. La verdad tiene múltiples lados, algo así como el cubo de Rubik:

Al igual que el cubo anterior, la verdad y, por lo tanto, la información se compone de varios hechos (que se muestran por los lados de los cubos). Todos los hechos juntos producen una verdad comprensible. Igual es el caso con cualquier información. En CS / SD, todas las respuestas a esta pregunta son algunas facetas que son parte del conocimiento completo que se desea. Por lo tanto, todas estas respuestas son valiosas y deben leerse y reflexionarse. Algunas respuestas responden SD con sus modelos mentales de clasificación, otras con experiencias personales respaldadas con sus ejemplos (por ejemplo, la respuesta de Anónimo). Todos ellos nos ayudarán a comprender todas las facetas de SD. Después de leer estas respuestas, es muy importante reflexionar sobre ellas. Esto lleva a que nuestro cerebro procese previamente la información requerida en segundo plano, que puede recuperarse rápidamente cuando sea necesario. (consulte otras preguntas de Quora sobre los patrones de estudio y cómo las personas inteligentes recuerdan cosas)
Finalmente algunos consejos generales sobre este viaje:
- Este será un viaje largo y arduo . Prepárate para trabajar muy duro y salir de la zona de confort de tus sujetos para estudiar el mundo. El único propósito de los programas de software es habilitar y aumentar las capacidades humanas. SD en sí mismo no es un propósito. Uno debería disfrutar haciéndolo por diversión, pero necesita una relevancia en el mundo real. Se trata de cambiar el mundo y ayudarte a mantener la concentración.
- SD rara vez se pone a trabajar en el proyecto de sus sueños mientras le pagan. Pero realice proyectos que nos interesen y participe en foros de código abierto. Trabaja en las habilidades en uso en el trabajo y cuáles te parecen interesantes. Concéntrese en aprender más que apuntar y pagar. La promoción mientras está mal preparado puede ser mortal para sus ambiciones SD.
- Aprenda sobre la evolución de CS a partir de su historia. Le ayudará a comprender las raíces de la filosofía de CS que tiene una presencia significativa incluso hasta el día de hoy, como será evidente a través de muchas peculiaridades. CS es un campo único con una cultura hacker muy fuerte. Obtendrá una mejor idea de la publicación a continuación.
- La Catedral y el Bazar: Eric Raymond hizo un trabajo fantástico al señalar todos los aspectos de la historia y la evolución de la cultura de los piratas informáticos CS tempranos en el estado actual. También echa un vistazo a Cómo convertirse en un hacker.
- No participe en disputas innecesarias sobre pequeñas sintaxis de códigos sin sentido y batallas de idiomas. SD tiene el molesto hábito de ser un apasionado de sus herramientas, es muy obstinado y, por lo tanto, está listo para sacar provecho de asuntos aparentemente pequeños. Esto solo agotará su tiempo y energía y hay una buena posibilidad de que otra persona no retroceda.
- Finalmente, la paciencia es una virtud. Úsalo. Roma no se construyó en un día. Aprende a programar en diez años ( http://www.norvig.com/21-days.html )
Trabaje más duro, manténgase enfocado, trabaje en red para ideas (gracias Michael) y esté listo para cuando la oportunidad toque la puerta.
PD
Consulte el libro Codificadores en el trabajo : Reflexiones sobre el arte de la programación ( http://www.codersatwork .com /). En él, el autor entrevistó a muy buenos SD (tipo de programadores Top 2%) con sus hábitos de SD, filosofía, herramientas favoritas, idiomas, sus ideas sobre qué factores contribuyen al éxito y el fracaso del proyecto y sus arrepentimientos. Entrevistas muy interesantes y honestas sin ningún comentario por parte del autor que pocas notas y observaciones vinculadas. Un libro de SD para SD 😛