C/Visual C - programador profesional?

 
Vista:

programador profesional?

Publicado por jose (1 intervención) el 12/03/2007 19:07:36
alguien de ustedes que haya trabajado en una empresa que desarrolle software me podria dar una idea de como es el trabajo alla?

estoy en 2 semestre de uni, en licenciatura en informatica, deseo dedicarme a programar pero quiero empezar a prepararme para desempeñar un buen trabajo.

sinceramente no creo que busque programadores para hacer programas que saquen el area de un cuadrado (ejemplos clasicos).

que es lo que debes saber como minimo para defenderte en el mundo laboral?

cuando se puede considerar que ya manejas un lenguaje de programacion?

cuales son los problemas que se enfrentan los programadores?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:programador profesional?

Publicado por fernando.gomez (1603 intervenciones) el 12/03/2007 22:35:21
Hola. Efectívamente difícilmente te pedirán sacar áreas de trabajo. Depende, por supuesto, de para qué sector se diseña un programa. Usualmente, aquellos sistemas que van directamente a IT, manejan datos y datos y más datos. Por ende, la lógica de negocio usualmente es mover datos de un lado a otro, actualizarlos, eliminarlos y -por supuesto- crear nuevos registros. Por ello, necesitas trabajar mucho con bases de datos. Por supuesto, necesitas conocer SQL y las diversas tecnologías que tiene tu plataforma para comunicarte con las BDs.

Ahora, también ocurre que en raras ocasiones harás programas de consola. En mis 5 años que llevo en esto, jamás me han pedido (o dejado) que el programa sea solamente por consola. Ello implica que necesitas conocer bien a tu plataforma y ver la forma de programación gráfica. En el caso de C++ bajo Windows, esto implica irte familiarizando mucho con el API (Win32), aunque hay varias librerías que facilitan el trabajo. De las más empleadas es MFC, y usualmente es requisito que conozcas ésta librería. Antes importaba que conocieras también COM/ATL, pero ahora ya no es tan necesario, aunque no estaría de más que le dieras una ojeada.

Finalmente, también necesitas tener conceptos básicos de programación con sockets para poder realizar comunicación entre redes. O por lo menos, siempre ten a la mano información al respecto. El API de Windows para redes se llama WinInet.

Con respecto a tu segunda pregunta... es muy difícil. Tras cinco años de programar en C++, todavía hoy me encuentro con cosas nuevas del lenguaje. Hace poco descubrí que es posible hacer esto:

void foo()
{
class C { ... };

C* c = new C();
...
}

Es decir, declarar clases dentro de funciones. Y además no solo es conocer el lenguaje, sino la plataforma. En el caso de C++, la Librería Estándar de C++. Es cierto que no es necesario que conozcas todos los métodos de, por ejemplo, los contenedores (vector, list, map, etc), pero sí es necesario que conozcas el concepto que subyace a éstos, como el concepto de iterador. La experiencia es la que te va diciendo, y siempre es bueno tener un libro de Stroustrup a la mano. Por cierto, que la versión 2.0 del estándar de C++ ya está a la vuelta de la esquina, así que hay que irse preparando.

Tu tercera pregunta es -tristemente- muy amplia. No te puedo decir con qué problemas se topan los programadores, pero te puedo decir qué problemas he tenido yo. El más grave usualmente es la falta de planeación. El hacer un programa de forma rápida para calmar al cliente, con la consecuente falta de planeación, implica que el diseño será malo, si es que siquiera existe alguno. La falta de diseño y de una visión de la arquitectura del programa ocasionan muchos conflictos, ya que luego se requieren características que la arquitectura no soporta, y ahí es donde vienen los bugs. Y por supuesto, jefes incompetentes que no entienden esto. En esos casos, tu trabajo no sólo será codificar y probar hasta altas horas de la noche, sino también (y en aras de conservar tu salud) hacerle ver a los jefes cuando se requieren rediseños, armarse de paciencia y explicarles los porqués y proponer rediseños en áreas no escalables o potencialmente peligrosas. Otro problema es la falta de control sobre el código. Esto se soluciona con una política fuerte en el empleo de repositorios como SourceSafe, pero tienes que estar alerta. Lo único peor a que un cliente te pida regresar a una versión anterior... es que no tengas el código de esa versión anterior. La documentación también suele ser un problema grave. O mejor dicho, la falta de ésta. Sin ella, es muy difícil tener una visión completa del negocio (las reglas de negocio). Tienes también que pensar como el usuario en particular, aquél que usará tu apliación , porque a final de cuentas, tu trabajo es que ellos hagan su trabajo de forma más rápida y eficiente. Un programa que no haga esto, por muy bonito y caro que sea, no sirve de nada.

Bueno, eso es lo que puedo pensar al momento. Suerte... y bienvenida :P

Saludos.

P.D. Tener recursos a la mano siempre es importante. El recurso que más me ha servido a mí se llama The Code Project: www.codeproject.com. Y si solo quieres charlar un rato, pues: www.codeproject.com/lounge.asp, jejeje. A mí me sirve para desestresarme :P.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:programador profesional?

Publicado por Nelek (816 intervenciones) el 13/03/2007 09:07:46
En mi caso, no tengo tanta experiencia en programacion como Fernando, pero bueno. En verdad yo he estudiado Ingenieria Electronica en Automatizacion, he visto bastante programacion, pero no me puedo considerar un programador profesional. Despues de venirme a alemania para una erasmus, logre sacarme la doble titulacion y me quede en la empresa donde escribi mi proyecto final de carrera: Un simulador para logica fuzzy. Aunque el tema es de lo mio, el proyecto se ha tratado totalmente de programacion en VC++. Respecto a lo que te ha dicho Fernando de la planificacion... Totalmente de acuerdo. Despues de tener mi proyecto acabado y entregado (alrededor de unas 15000 lineas de codigo), me pidieron una ampliacion en las caracteristicas para adecuar el software a un proyecto real de la empresa. Conclusion: Mi tutor de proyecto lo queria todo muy bonito con variables privadas y demas, asi que mueve los objetos de un lado para otro y al final... caca... Me ha tocado tirarme un mes y medio reprogramando lo que ya tenia y reestructurar de nuevo el programa. Con la consecuente perdida de tiempo y mala uva relacionada.

En la empresa donde yo estoy, se trabaja mucho con VB y con MySql tambien, asi que corroboro lo que dice Fernando. Las bases de datos y sus relaciones son un punto importantisimo de la programacion. Logicamente, la comunicacion por red tambien, ya que pocas veces trabajaras con bases de datos locales unicamente.

Respecto a lo de considerar que ya se maneja algo... solo decir: El que cada dia no aprende algo nuevo, ha perdido el dia. Y mas en este area, donde nunca llegas a saberlo todo y, para colmo, siempre se esta innovando (lo que no quiere decir precisamente que se mejore).

Los problemas... Siempre que te enfrentes a algo nuevo o con lo que no estas suelto... uno de los mayores problemas, sera el tiempo. Luego el factor que mas "por saco" suele dar, es el factor humano. Ya sea por parte del cliente, el/los jefe/s, companieros con los que tienes que hacer algo conjuntamente y hay estilos distintos... A mi una de las cosas que mas me saca de mis casillas es tener que meterme en un proyecto ya empezado o hacer una ampliacion. Por que? Por la sencilla razon que, en el 90% de las ocasiones, hay multiples (por no decir mas) maneras de hacer algo y, meterte en la cabeza de otro programador no siempre es facil. Yo en estos casos suelo empezar un proyecto paralelo que haga lo mismo pero a mi manera (en mi tiempo libre, claro esta) para intentar hacerme con el concepto. Hay gente que lo considera una perdida de tiempo, pero en base a mi experiencia, digo que hacerlo asi retarda un poco al principio, pero en la fase final acelera muchisimo. Mas que nada porque tienes una version del programa que has "parido" tu mismo, y si sale algun fallo o bug, es muchisimo mas facil de localizar y corregir.

En fin, ya te iras dando cuenta por ti mismo. Suerte, valor y al toro, que los ordenadores se cuelgan, pero no muerden ;) :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:programador profesional?

Publicado por Tom (27 intervenciones) el 13/03/2007 15:39:31
Lo que debes hacer, en mi opinión -como todo el resto del comentario-, es programar, programar y programar. Calcula áreas de cuadrados, hazlo en todos los lenguajes que puedas, y de todas las maneras que se te ocurran.

Aprende todo lo que puedas, usa todo lo que aprendas -al menos una vez- y terminarás tu carrera con un nivel que tendrán pocos.

Hacerse un buen programador es más una cuestión de actitud (no confundir con aptitud, aunque también cuenta) que de estudios.

Te puedo asegurar que todo sirve para algo (aunque nada sirva para todo), incluso saber calcular áreas de cuadrados (tras más de 20 años programando he tenido que repasar ahora mis nociones de trigonometría, que me parecieron una tontería en su día).

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:programador profesional?

Publicado por matias (7 intervenciones) el 14/03/2007 00:36:23
HOLA LES DEJO ESTA PAGINA WEB DONDE VERAN LOS ULTIMO EN PROGRAMACION EN PHP HTML Y C/C++ ETC,
ESTA DEDICADA A PROGRAMADORES DE ALTA RAZA .............................

CHAU
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Bachiller

Publicado por Washington Olvera Yulán (4 intervenciones) el 17/12/2010 23:26:31
Quiero un programa que automatice la compra venta de lubricantes en una lubricadora, incluyendo la factura gracias..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar