2009-07-02 9 views
13

Trabajo en el grupo técnico en una gran firma de Arquitectura. Aunque hay varias personas que son muy competentes en varios lenguajes de programación y scripting, está lejos del entorno de desarrollo de una compañía de software. Rara vez hay más de una o dos personas trabajando en un proyecto de desarrollo, la mayoría de las cuales son scripts de automatización. No hay control de fuente, ni configuración de control de versiones ni nada de eso.Cómo obtener habilidades de programación en el mundo real cuando no trabaja para una compañía de software

Mi formación académica es ingeniería pero no CS o CE. Así que tomé una serie de clases de programación en la escuela, y de hecho jugué mucho con VB cuando era un niño pequeño. Sin embargo, no fue sino hasta el año pasado en mi trabajo actual que realmente tuve la oportunidad de hacer un desarrollo real fuera de los problemas de tareas en la escuela. El año pasado pasé de hacer simples scripts de automatización a aplicaciones completas de plug-in en C# .NET.

Tengo familiares y amigos que son CS o CE mayores, y trabajo para empresas cuyo principal producto es el software. Aunque no tengo ningún interés en trabajar para una compañía de software, parece que tienen una gran ventaja sobre mí. En su trabajo, tienen personas con más experiencia que pueden revisar su deber y darles sugerencias para mejorar su código o lógica. Los sitios como Stack Overflow son excelentes para resolver errores y obtener consejos, pero solo cuando sabes que necesitas el consejo. Estoy seguro de que hay muchas ocasiones en que tomo el enfoque completamente equivocado de algo.

¿Cuáles son algunas de las mejores maneras de mejorar estas habilidades de programación de la vida real? ¿Hay alguna manera de encontrar proyectos de código abierto (preferiblemente basados ​​en .Net) en los que pueda ayudar a trabajar, para poder ganar experiencia trabajando con otros programadores (más experimentados)? También he estado buscando patrones de diseño, pero me cuesta reconocer cuándo usar ciertos patrones.

+0

En sus comentarios sobre las respuestas, señala que el problema es que no tiene a nadie que revise su código. Debe actualizar su pregunta para reflejar este problema. –

Respuesta

6

encontrar un proyecto manía de codificación que intereses usted. Si lo encuentras interesante, pasarás mucho más tiempo trabajando en el código que si lo haces simplemente para aprender.

En lo que

¿Hay una manera de encontrar la fuente abierta proyectos (preferiblemente en base .Net)

ir a SourceForge y encontrar algo que parece interesante a usted y obtener involucrado. Nuevamente énfasis en interesante. No te preocupes demasiado por lo práctico que es.

+3

http://www.codeplex.com/ tiene muchos proyectos .Net para trabajar. – jle

+0

en realidad mis proyectos en el trabajo son bastante interesantes. Solo necesito más personas para trabajar. Gracias, comprobaré codeplex –

3

Voy a salir de una extremidad aquí y sugerir que escriba un código.

Lee Code Complete. Vea otras preguntas sobre este tema aquí en StackOverflow. Encuentre un proyecto de código abierto y contribuya a él. Iniciar su propio proyecto personal que se centra en las habilidades que le interesan.

When to use Design patterns
How to get into C# Open Source projects

+0

Bueno, obviamente tengo que escribir el código, pero creo que mi problema es más con no tener a nadie que me diga cómo y dónde podría mejorarse el código que de otro modo funcionaría. –

+0

No se preocupe demasiado por cómo se puede mejorar su código. En su lugar, debe aprender a hacer más cosas con el código. El código de nadie es perfecto. –

+0

Code Complete es un gran libro si desea mejorar la calidad de su código, uno de los clásicos. –

0

Puedes hacer muchas cosas. Estos vienen a la mente:

  • Particpate en un proyecto de código abierto.
  • Leer Stackoverflow mucho
  • hacer muchas preguntas en StackOverflow
  • Leer buenos libros
+1

. También, intenta responder preguntas aquí. Especialmente los que significan que tienes que probar cosas. – Richard

1

Lo que hago en mi tiempo libre es encontrar algo que me interesa, construirlo, y aprender en el proceso. Por ejemplo, en lugar de tomar un foro enlatado o CMS, construiría el mío y aprendería de mis propios errores. Por supuesto, esto no le dará conocimiento sobre el control de fuente, etc. ya que lo más probable es que sea el único desarrollador, pero los trucos de aprendizaje y el mejor estilo de codificación definitivamente valen la pena. ¡Quizás también puedas involucrarte en un proyecto de código abierto! :)

0

Añadiendo un poco a la respuesta de William: encuentre un proyecto de código abierto interesante y conviértase en un colaborador activo. Esto no solo te dará la oportunidad de hacer una codificación práctica, sino también una oportunidad de ver el código de otras personas. Hay mucho que aprender del código escrito por otros programadores.

3

Habilidades de programación del mundo real: algo que podría hacer para ganarse la vida, en un entorno profesional.

Haga una idea, no tiene que ser la idea más GRANDE de la historia ... y luego escríbala. Escribirlo de manera profesional. Utilice el control de versiones, incluso para un proyecto personal. Tener un sistema de tickets, incluso para un proyecto personal. Acostúmbrate a hacer las cosas de la manera en que un profesional las hace, incluso para un proyecto personal. De lo contrario, solo estás aprendiendo malos hábitos.

Incluso iría tan lejos como para pedirle a algunos de esos amigos o familiares que tienen trabajos en la industria que lo ayuden con una revisión improvisada del código. Cómpralos la cena, apuesto a que lo harán.

La única forma de aprender algo es comenzar a hacerlo. Espere que su primer código sea incómodo, y se volverá a escribir varias veces como parte de su proceso de crecimiento.

Entonces, si su proyecto personal puede tener algún interés para otros ... envíe. Ponlo ahí afuera. Recibe comentarios de los usuarios. Será brutal y una experiencia educativa que no podrías comprar a cualquier precio. Serás un mejor programador para eso.

1

Encuentra desarrolladores experimentados que estén dispuestos a hacer revisiones informales de diseño/código periódicamente sobre algunos de los proyectos que ya has realizado (ya que los conoces bien) para que puedan explicar los pros/contras y posibles enfoques diferentes para resolver esos mismos problemas

Cuantas más opiniones diferentes pueda obtener sobre cómo los desarrolladores experimentados resolverían los problemas con los que está familiarizado, más opciones tendrá para resolver el siguiente problema. Espere que cada enfoque de los desarrolladores sea radicalmente diferente, pero aún esclarecedor. :-)

2

Hay un proyecto de software de código abierto de perfil muy alto que siempre puede usar más ayuda.

Se llama Mono Project.

Recomendaría contribuir al Proyecto Mono sobre otros porque usan un modelo de desarrollo muy transparente y abierto, y son de alto perfil por lo que ser un "Contribuidor mono" tiene un prestigio extra en mi opinión, entonces muchos programas aleatorios C# abren proyectos. Además, Miguel de Icaza (director del Proyecto Mono) es un tipo increíble y divertido.

Cuestiones relacionadas