Desahogo de un intento de programador

Buenos días, camaradas

Vengo a contaros la historia de cómo acabé rompiéndome la cabeza contra la pared esta mañana.

Cuando era niño, incluso de chaval, nunca supe lo que era la programación, sabía que había gente que hacía cosas como los hackers de las pelis, pero jamás super absolutamente nada sobre cómo funcionaba hasta que entré en la universidad (a estudiar física), donde me introdujeron a matlab.

Al principio yo seguía lo que me decían en las clases sin entender absolutamente nada de lo que hacía, ni siquiera sabía que el lenguaje que estaba usando se llamaba matlab, de hecho, por saber, no sabía que eso era lo que se llamaba programación, así fue que saqué un 0 en la asignatura el primer año, aunque las notas no son lo que me preocupa, realmente.

Poco a poco fui descubriendo lo que era el mundo de la programación y empecé a tener interés en todo lo relacionado con esto y sus posibilidades, así que decidí ponerme a aprender python por mi cuenta en sitios como codeacademy y viendo tutoriales de internet, pero ya solo el mero hecho de preparar un entorno de trabajo no generaba más que problemas y problemas, y solo para poder correr un 'Hello world' en pycharm creo que tardé unos tres días, así que el progreso venía siendo nulo y siempre que intentaba hacer algún tipo de proyecto (únicamente pequeños scripts) no sacaba más que errores y errores que, al arreglarlos, derivaban en más errores, aunque tengo entendido que esto le pasa a bastante gente, pero no quiere decir que me frustre menos.

Ha pasado año y algo ya, y aunque no he podido darle tanto como me hubiese gustado, me aprendí las bases, uso de ciertas librerías, la parte de las clases (que me costó sudor y muchos golpes al escritorio) pero tampoco es que haya hecho ningún proyecto guay en plan automatización de persianas o luces y eso. Para ser sinceros, no he hecho ningún tipo de programa diferente a copiar los tutoriales, que haya funcionado bien, y creo que esto se debe a que, aunque conozca la sintaxis, no tengo una mente acostumbrada a estructurar los problemas y traducirlos al lenguaje del ordenador. Pero pese a ello, entendí que eso es algo que se va desarrollando con el tiempo y cada uno aprende a su ritmo, así que metiéndole horas, acabaré mejorando en la materia y solo hace falta consistencia.

Aunque me jodía bastante la situación, y como el año que viene en la universidad estudiaré c++, decidí ponerme en verano a avanzar y darle algo de caña porque tampoco es que tenga nada más interesante que hacer, y de nuevo, volvieron los problemas:
Simplemente a la hora de intentar correr un Hello World en el editor (copiado del tutorial) ya me daba error porque no podía hacerlo de la misma forma que en python pese a ser el mismo editor, supuse que tendría algún sentido, así que busqué la forma de hacerlo en c++, descargué el paquete para hacerlo, lo instalé y me saltaba otro problema que requería de la instalación de algún archivo en el ordenador, lo solucioné y me salía otro problema distinto que no encontré forma de arreglar en mi distribución de linux, y además, solucionando el primero, la había liado de forma que ahora no puedo hacer ni un sudo apt-get update. Estando ya reventado, simplemente intenté actualizar a fedora 28 desde el fedora 26 que tengo instalado ahora (desde la propia aplicación de software de linux) y me volvía a dar error.

Llegados a este punto me empecé a descojonar ya por pura pena.

En fin, que estoy frustrado de cojones y no es que busque ayuda informática, porque todas las cosas de ese estilo las pregunto en stackoverflow. Tampoco espero que me digáis "Ánimo, tú puedes!" porque tampoco es que sirva de nada y, como dije arriba, esto se va a basar en echarle horas y horas y al final coger fluidez, simplemente me acabó rompiendo tantísimo las pelotas la situación de esta mañana que necesitaba soltarlo todo antes de volver a ponerme :) :)

De todas formas si os habéis visto en situaciones similares (o no) y queréis compartirlas, estaré más que encantado de leerlas!

Saludos, capatazes!
Llevo en la industria desde 2014, no es mucho pero algo se. Yo tambien estudie física y aprendi a programar por mi cuenta (empece a los 12 con una pagina web de final fantasy).
Lo de que te salgan errores por todos lados... nunca va a dejar de pasar, pero al adquirir mas experiencia sera mas y mas rapido. Con el tiempo desarrollaras un instinto que te dira donde mas o menos esta el error y tendras mas tiempo para concentrarte en los algoritmos y lo que estas implementando.

Sigue haciendo lo que haces. Cambia de tutoriales si alguno no te sirve. Lo que tambien puede ayudar es hacer un wipeout de tu sistema e instalar todo de cero. Si te frustras y quieres hacer algo mas interesante que tambien te ayude a formarte te sugiero que le eches un vistazo a leetcode.com. Ejecutan los scripts/programas/soluciones internamente asi que tu no tienes que hacer nada. Tambien tienen tutoriales donde te ponen problemas basicos y tienen tests que te diran si has implementado correctamente un problema o no.


PD: Perdon por no poner tildes, no tengo teclado español.
Un antiguo proverbio decía algo así como que a veces es necesario perderse para encontrar el camino.

Te comento una breve anécdota de un colega que es actualmente ingeniero industrial. Este compañero primero hizo una Formación Profesional de electrónica. Trabajaba de técnico de mantenimiento. Durante varios meses, en su primer empleo, le tocaron unas averías raras, cada cual más rara que la anterior. Unas averías que no podía sistematizar porque cada una era diferente.

Así que tenía que ponerse a investigar las averías, perder tiempo, hasta que daba con la solución. Así durante un par de años.

Esto era frustrante para él porque otros compañeros le decían cómo reparaban rápidamente las cosas, pero en cambio a él le caían siempre averías gordas y raras. Pero él no se quejaba. Cuando encontraba una avería rara, que no sabía por dónde enfocar, se cogía los esquemas de la máquina en cuestión, se los estudiaba, comprobaba todo, y finalmente, la avería se detectaba y se solucionaba.

Pues bien, un día le llamaron para reparar una avería tan gorda y tan extraña que varios ingenieros no habían sido capaces de solucionar, y entonces, por desesperación, como habían oído hablar de él, le llamaron, a ver si podía sacarles del apuro.

Nada más llegar allí, se dio cuenta de que era una avería típica que él ya había reparado muchas veces, y la reparó en pocos minutos. La gente se quedó de piedra. Eso le dio fama de persona competente y profesional al que no se le resistía nada.

Moraleja: siguiendo el camino difícil y pedregoso (tener que resolverte tú todas las incidencias, fallos, errores, que reinstalarte tú todo) al final adquirirás una competencia profesional superior a la de otros colegas que no se tropezaron con esos problemas.

Adolfo Suárez dijo una vez (según Wikiquote): "La vida siempre te da dos opciones: la cómoda y la difícil. Cuando dudes elige siempre la difícil, porque así siempre estarás seguro de que no ha sido la comodidad la que ha elegido por ti."

Salu2
@verdi07

A ver, hace rato no toco C, suelo programar en asm, pero si escribes esto en un archivo de texto hello.c

#include <stdio.h>
int main()
{
printf ("Hola mundo.\n");
return 0;
}


Y luego desde la consola esto

gcc hello.c


No se que error puede dar, a menos q tengas gcc mal instaladas, xq la libreria stdio no creo falte
Quieres hacer cosas chulas como controlar una persiana? Tan solo estas tratando con la entrada/salida, una de las mayores piedras de la informatica. Tu puedes conocer todo el interior de tu pc, son 1s y 0s, pero el mundo real es analogico, complejo de cojones.

El problema de seguir tutoriales es que no piensas. No sigas un tutorial de una nave espacial porque despues no vas a tener ni idea de que cojones has hecho. Ve a hacer programas de bajo calibre, pero pensados por ti mismo. Te voy a dar un ejemplo: haz un programa que te calcule los numeros primos del 1 al 100. Es un programa simple, no llegara ni a 40 lineas, pero hay que pensar como hay que hacerlo. La programacion se aprende a base de hacer chorradas inutiles, hasta que se te ocurra una utilidad para ello juntando cosas. No es que seas un negado en esto, es que dios odia a los informaticos
ElSrStinson escribió:El problema de seguir tutoriales es que no piensas. No sigas un tutorial de una nave espacial porque despues no vas a tener ni idea de que cojones has hecho. Ve a hacer programas de bajo calibre, pero pensados por ti mismo. Te voy a dar un ejemplo: haz un programa que te calcule los numeros primos del 1 al 100. Es un programa simple, no llegara ni a 40 lineas, pero hay que pensar como hay que hacerlo. La programacion se aprende a base de hacer chorradas inutiles, hasta que se te ocurra una utilidad para ello juntando cosas. No es que seas un negado en esto, es que dios odia a los informaticos


Completamente deacuerdo.
Zustaub escribió:Si me dieran un euro por cada vez que he pensado "dejo la informática y me voy a plantar champiñones" sería el primer productor nacional.


ElSrStinson escribió:No es que seas un negado en esto, es que dios odia a los informaticos


Me he reído pero bien con esos dos comentarios

@theelf

Me saltan mil errores, pero seguiré trabajando en ello [360º] [360º]

Gracias por los consejos en general, tal vez me haya explicado mal, no hago únicamente los tutoriales, pero a la hora de aprender las sintaxis de los lenguajes, me parecen la forma más adecuada. Probar he intentado hacer programas por mi cuenta (simulador de partida de póker o análisis de datos importados de la api de morningstar, por ejemplo). Como ya os dije, me voy a poner a ello, y hasta que salga, confío que en algún momento tendré un 'ding' en el cerebro y empezaré a pillarle fluidez.
@verdi07 Riete, pero la cosa va así. Aprender a programar es asquerosamente frustrante, entre otras cosas por detectar donde la has cagado. A cada bug que arregles, apareceran 24 nuevos en diferentes lugares. La informatica es muy entretenida, pero has de aprender que el programa te odia y no te dejara hacerlo funcionar a la primera
@verdi07
No te pueden saltar mil errores, es un codigo basico.

Si tienes windows a mano, descarga mingw y fijate. De linux con que tengas gcc y dependencias, la consola no falla

Saca una foto del error q te da en consola
Yo te recomendaría empezar no por C/C++, ya que el control de memoria lo tienes que hacer a mano sin ayudas externas.

Iría a por algo más en plan C# o Java, donde es prácticamente instalar y funcionar, y si hay errores te avisa y te da pistas de como solucionarlos.

Y nunca nunca hagas un copy paste, renta más el copiarlo a mano y analizar cada línea antes que eso.
theelf escribió:@verdi07
No te pueden saltar mil errores, es un codigo basico.

Si tienes windows a mano, descarga mingw y fijate. De linux con que tengas gcc y dependencias, la consola no falla

Saca una foto del error q te da en consola


Ya he conseguido que funcionase, estaba usando gcc en vez de g++, y después con g++ no imprimía nada, así que usé
g++ main.cpp -o hello
y luego tiré de
./hello
y ya funcionó.

Muchas gracias a todos por el apoyo estos días jaja, seguiré rompiéndome la cabeza con esto y creo que lo siguiente que haré será darle caña al matlab hasta manejarlo 10/10.

Mr.Gray Fox escribió:Yo te recomendaría empezar no por C/C++, ya que el control de memoria lo tienes que hacer a mano sin ayudas externas.

Iría a por algo más en plan C# o Java, donde es prácticamente instalar y funcionar, y si hay errores te avisa y te da pistas de como solucionarlos.

Y nunca nunca hagas un copy paste, renta más el copiarlo a mano y analizar cada línea antes que eso.


Me apunto los consejos, principalmente le estaba dando al c++, como comentaba, porque lo estudiaré en la uni el año que viene.
Yo siento el offtopic, pero me gustaría reivindicar que las personas que no sabemos programar en C++ , ni entendemos lo que es un "servidor web LAMP para que funcione detras de un proxy inverso y un balanceador de carga", también somos hijos del Señor y nos quiere igual /offtopic.
Desde luego hay veces que dan ganas de dejar la informática. Los cambios tan profundos que ocurren en las tecnologías de un año para otro, hacen que te desesperes. El pensar que con 50 o 60 años, si la tecnología lo requiere (que es lo habitual), vas a tener que estar formándote una y otra vez con manuales de 1000 o 2000 páginas, desmoraliza a cualquiera. Sinceramente, pienso que a esas edades ya uno empieza a perder capacidad para memorizar y para tener las ideas claras, y es algo que me atormenta.

De todas formas, encontrarse con errores y problemas es lo más habitual de nuestro trabajo. Si huimos de ellos, entonces es mejor dedicarse a otra cosa.
Yo si fuese el buscaría tutoriales y primero aprenderse las variable los if else los bucles pubteros (si el lenguaje los tiene) etc... Y ya una vez que sepa para que sirven y sepa manejarlos buscar ejercicios y practicar a hacerlos, y una vez echo y tal buscar otros de otros lenguajes y ver si es capaz de hacerlos tambien en el lenguaje que este usando y ya si eso despues ponerse a mirar de hacer algún proyecto sencillo y ya hay ir poco a poco metiendose en berenjenales más gordos

@Flanders pdfs de fondo con el buscador echando humo mientras curras XD o si no te buscas alguna empresa que mantenga algún programa que se hiciese con algún lenguaje chungo y de lo que les costaría cambisr el programa entero tienen que buscar yayos que sepan como usar ese lenguaje de programación.
Fuera de coña leí in artículo que hay algunas empresas que han tenido que desjubilar a programadores por que no encontraban gente para mantenee los programas
Bueno, pero a ver, tú haciendo física (que estarás en primero o en segundo, por lo que cuentas), puedes sacarle mucho más partido a la programación, porque precisamente una de las primeras aplicaciones de los ordenadores fue la de calcular tablas de tiro para artillería.

No sé, a ver... Coge un problema de mecánica o de ecuaciones diferenciales e intenta resolverlo usando un ordenador.

Ejemplo: sabes que la suma de todos los términos de 1 a infinito tiene que dar (1/6)*PI^2

Pues haz un programa que lo calcule!. Pseudocódigo en spoiler:

#deifne INFINITO 100000

main() {

suma = 0

for i=1;i<INFINITO;i++ {
   suma = suma + 1.0/i //COMENTARIO: ojo con el casting.
}

printf suma
@Moki_X Bueno, ahora mismo estaría entrando en cuarto de carrera si no lo hubiese dejado [+risas] [+risas]
Durante la carrera sí que tuve un profesor de ecuaciones diferenciales que intentó que aplicásemos matlab o python pero no entendía absolutamente nada de lo que estaba pasando y copiaba los trabajos de mis compañeros [ayay]

El año que viene empiezo estadística, que es donde nos van a enseñar c++, y espero que se me dé un poco mejor lo de aplicar la programación a los problemas de la carrera.
Flanders escribió:Desde luego hay veces que dan ganas de dejar la informática. Los cambios tan profundos que ocurren en las tecnologías de un año para otro, hacen que te desesperes. El pensar que con 50 o 60 años, si la tecnología lo requiere (que es lo habitual), vas a tener que estar formándote una y otra vez con manuales de 1000 o 2000 páginas, desmoraliza a cualquiera. Sinceramente, pienso que a esas edades ya uno empieza a perder capacidad para memorizar y para tener las ideas claras, y es algo que me atormenta.

De todas formas, encontrarse con errores y problemas es lo más habitual de nuestro trabajo. Si huimos de ellos, entonces es mejor dedicarse a otra cosa.


Soy programador de COBOL, piensa es un lenguaje de 1959! trabaje varios años en empresas gracias a este lenguaje

Ahora estoy "retirado" ya q tengo mi pequeño negocio, etc, pero si quisiera volver trabajar solo echo un par de curriculums y estoy contratado seguro...

Justamente porque todo el mundo esta formandose una y otra vez ;)
theelf escribió:
Flanders escribió:Desde luego hay veces que dan ganas de dejar la informática. Los cambios tan profundos que ocurren en las tecnologías de un año para otro, hacen que te desesperes. El pensar que con 50 o 60 años, si la tecnología lo requiere (que es lo habitual), vas a tener que estar formándote una y otra vez con manuales de 1000 o 2000 páginas, desmoraliza a cualquiera. Sinceramente, pienso que a esas edades ya uno empieza a perder capacidad para memorizar y para tener las ideas claras, y es algo que me atormenta.

De todas formas, encontrarse con errores y problemas es lo más habitual de nuestro trabajo. Si huimos de ellos, entonces es mejor dedicarse a otra cosa.


Soy programador de COBOL, piensa es un lenguaje de 1959! trabaje varios años en empresas gracias a este lenguaje

Ahora estoy "retirado" ya q tengo mi pequeño negocio, etc, pero si quisiera volver trabajar solo echo un par de curriculums y estoy contratado seguro...

Justamente porque todo el mundo esta formandose una y otra vez ;)

Sí, se que Cobol es demandado y que no hay suficientes programadores con experiencia en el mercado laboral, pero estamos hablando de casos muy puntuales.

Se además que Cobol ha tenido actualizaciones por el camino, pero supongo que lo que más se busca en el mercado es gente que de soporte a código antiguo y actualizar cosas puntuales.

El problema es que hay tecnologías que pasan un par de años y ya te das cuentas que han evolucionado de tal manera que es imposible seguirles el ritmo: móvil y web por ejemplo. Y en esos casos cuando eres mayor, seguro que va a costar mucho más aprender los tochazos de documentación técnica necesarios para mantenerse al día.
Sí, se tendrá más experiencia que otros trabajadores, pero si no se ha ascendido a otro puesto jerarquico superior y eres un simple programador, se tiene que hacer muy complicado.

No se, es mi opinión sin tampoco tener ninguna base, pero desde luego veo gente a mi alrededor con 60-65 años cuya capacidad mental y no es la misma que antes. Lógicamente también hay gente que la conserva bien, pero el tiempo pasa para todos y todo envejece.
Aprovecho el hilo para preguntar.

Voy a tener que ponerme a programar en Python 3.5 y tengo la programación bastante oxidada desde que deje Java hará un lustro. Alguna web que recomendéis para refrescar la memoria? Mi nivel es escueto.
Flanders escribió:El problema es que hay tecnologías que pasan un par de años y ya te das cuentas que han evolucionado de tal manera que es imposible seguirles el ritmo: móvil y web por ejemplo. Y en esos casos cuando eres mayor, seguro que va a costar mucho más aprender los tochazos de documentación técnica necesarios para mantenerse al día.
Sí, se tendrá más experiencia que otros trabajadores, pero si no se ha ascendido a otro puesto jerarquico superior y eres un simple programador, se tiene que hacer muy complicado.

No se, es mi opinión sin tampoco tener ninguna base, pero desde luego veo gente a mi alrededor con 60-65 años cuya capacidad mental y no es la misma que antes. Lógicamente también hay gente que la conserva bien, pero el tiempo pasa para todos y todo envejece.



Hombre hay cosas que son muy distintas, pero una vez que sabes bien algún paradigma de programación adaptarte a un lenguaje de programación basado en ese paradigma va a ser relativamente sencillo. Tendrás mas técnicas, recursos y patrones para abordar nuevos retos.
Voy a intentar ayudarte, empezando por el sistema operativo. Lo mejor que puedes hacer (aunque no lo creas) es empezar usando Windows para todo lo que quieras hacer (abro paraguas), si luego te quieres complicar más la vida pues adelante, pero si lo tienes fácil y no tienes idea de cómo hacerlo, hazme caso y vete a Windows, al menos por un tiempo (ya tendras tiempo de extenderte en Linux).
Lo segundo, usa este programa, fue el que yo use en su momento y me fue de perlas. Te dejo el enlace: https://sourceforge.net/projects/orwelldevcpp/
Y por último decirte, sé que es muy frustrante el tema informática por los errores, pero te diré una cosa, cuantos más te salgan y más seas capaz de resolverlos, te lleve el tiempo que te lleve, mejor, cuando todo vaya bien, si has sido capaz de resolver todo (que se que ahora no lo eres) te dará una gran satisfacción. Pero de momento tú céntrate en que todo sea estable, y una vez lo sea ya empiezas poco a poco. Mira, yo cuando empecé haciendo los xsd para diferentes tipos de cosas, andaba perdidisimo, y los errores no los veías porque lo que fallaba muchas veces era algo ajeno a lo que te decía. Un buen día, me di cuenta con una página de ello y ya no me volvió a salir otro error de esos. Con el tiempo salieron otros que no se podían solventar con una cosa, había que poner más "parches" y al final aprendí varios métodos que son bastante buenos para evitar esos errores. No te preocupes que con el tiempo lo dominarás, si te estresas descansa 10 minutos, bebete una Cocacola que ayuda mucho a reponer azúcar y te vuelves a poner.

Espero que te haya servido, al menos algo.

Un saludo.
reborn.uk78 está baneado por "Troll"
Todos buenos consejos excepto por el.pequeño detalle que habéis pasado por alto, la informática y aún más la parte de desarrollo es una de las profesiones más vacacionales que existen y si no y gusta no tendrás ni la paciencia ni mucho menos la actitud necesaria para dominarla.
23 respuestas