Quires ser programador; lo que no te dice - Educa Sistemas

Breaking

Post Top Ad

Post Top Ad

miércoles, 10 de octubre de 2018

Quires ser programador; lo que no te dice


Hola gente, hace rato quería hacer un post de estos compartiendo mis conocimientos y vivencias en el rubro (en Argentina) para desmentir una serie de ideas que se encuentran en foros y acá que te pueden beneficiar o perjudicar; y hacerte perder tiempo.

Hay un común denominador en lo que respecta a la gente que se dedica a esto, y es que son gente sin calle (nerd de 18 anitos que se mete en la U.T.N. o gordo de los 70 que se metió a laburar con tarjetas perforadas). Esta gente te va a dar los peores concejos de tu vida. Después estamos los que caímos en esto de grandes y lo encaramos desde otro lado; y tuvimos que esquivar unos cuantos mitos.



Primero aclaro unos temas y después te tiro consejos:

programacion

Los lenguajes de programación:

  • Aparecen, se modifican y caen en desuso.
  • Son libres o son propiedad de empresas.
  • Están atados a cierto uso o tienen muchos usos.
  • Están si o si atados a otras tecnologías, o se usan solos.
  • Son rápidos o lentos,
  • Interactuan facil o dificil con base de datos.
  • Tienen distintas estructuras y capacidades.

Un lenguaje de programación se escribe en lenguaje entendible al humano, es fácil de aprender y memorizar. El programador escribe en un lenguaje "de alto nivel" las instrucciones que quiere que haga la U.C.P.. Esto se compila y pasa a lenguajes intermedios hasta llegar a código maquina (binario).
El lenguaje no es mas que eso. Entonces la selección de que lenguaje usar, cae en el uso que se le va a dar.



Obviamente lo mas rápido seria programar con unos y ceros, pero eso no es factible. La otra opción es utilizar Assembly, pero también seria trabajoso; por lo que solo se usa en ciertos algoritmos que deben ejecutarse rápido. Lo que hace que la tarea de programar caiga en los lenguajes de alto nivel de uso común. Para el caso de programación de aplicaciones de escritorio offline (stand alone), se
usa : C, C++, C#, Java, Pascal, Cobol, Pyton, Basic. Para aplicaciones online se usan algunos de los mencionados como C# y tambien PHP, Ruby, entre otros.

Ahí aparece la primera distinción: Web y Offline. Siendo web lo mas popular en Argentina. Una vez elegido un rubro de entre estos dos, se debe elegir un lenguaje acorde a su demanda en el mercado laboral. En caso de aplicaciones de escritorio se pide C# y Java, y muy poco de Visual Basic; y en el caso de aplicaciones web se utiliza PHP, y Javascript.
En el caso de programar videojuegos (rubro nulo) se requiere saber C# o C++.
Todos los demás lenguajes no tienen demanda en el mercado a un volumen que amerite aprenderlos 100%.



Si el lenguaje elegido es orientado a objetos, o se utiliza mas orientado a objetos; hay que aprender a programar en ese paradigma. No es mas que entender 4 conceptos, que explicare en otro momento si es que alguien le da bola a este post.

Los lenguajes como C, son estructurados; por lo que no se usan para lo mismo que C++ o C# y están en desuso. Sirven para aprender a programar, pero la verdad que para eso se usa C++ que es casi igual.

SQL no es un lenguaje de programación, por lo que no lo menciono como opción; ya que es una obligación. Se aprende lo básico en 2 o 3 horas.

informatica

No hay "lenguajes difíciles". Incluso Assembly es fácil. De hecho incluso si memorizas el código maquina de mov AX, SI (mover al registro acumulador el contenido de Si y pisar lo que hay) podrías escribir en ceros y unos.

Todos los lenguajes de alto nivel llevan el mismo tiempo de aprender, comparten las mismas estructuras (casi) y tienen sintaxis parecida (menos basic y pascal). Por lo que aprender uno porque usa x = 2 en vez de int x = 2; es una pavada. El motivo para no aprender un lenguaje es que no se use o que no sirva para programar con ventanas o gráficos; que es lo que se vende masivamente. C no sirve para eso; y muchos otros lenguajes estructurados tampoco.

computacion

Una vez seleccionado un lenguaje, se lo debe dominar hasta un punto avanzado: ABM (alta, baja y modificación) en base de datos; entrada y salida de archivos; llamadas al sistema.

Luego se debe investigar la demanda en el mercado de profesionales en ciertas tecnologías que utilizan o amplían ese lenguaje:

  • En el caso de los lenguajes de Microsoft, todos usan .Net; por lo que hay que estar familiarizado con este (Windows Forms, interacción con los demás lenguajes, ASP, etc). Tambien se puede usar c++/CLi con .Net, pero es un lenguaje que solo se toca para aprovechar alguna liberia.
  • En el caso de PHP se utiliza mucho Symphony; que es un framework (lo explico al final).
  • En el desarrollo de videojuegos uno debe aprender de entre lo siguiente si no opta por un motor (lo explico al final): Opengl, Directx, SFML, SDL, y cualquier otra librería.
  • En Javascript se requiere saver: REACT, ANGULAR, NODE.
  • Común a todos los lenguajes hay que saber : XML, y JSON.

tecnologia

Ya con tu paquete de lenguajes + SQL + manejo de las tecnologías (IDE, FRAMEWORK, LIBRERIA, MOTOR) que se utiliza en el mercado del rubro en el que queres involucrarte (WEB, APLICACIONES, JUEGOS); estas listo para salir al mercado.




Lo que requerís es armarte un portfolio con aplicaciones desarrolladas por vos y ponerlas en un cd o pendrive y llevarla a la entrevista; sino llevar una notebook.

Queres ser programador - lo que no te dicen

Ya alejados de la selección de lenguaje y de el mercado. Les voy a contar mi experiencia sobre los cursos.

No hagan ningún curso. Métanse a una carrera. Los buenos cursos duran 2 años, y si le agregas un año mas ya serias analista de sistemas; así que ahí se ve la falencia.

Hay universidades a distancia: Hay una en entre ríos o corrientes, la UAI ofrece un curso, y la Siglo 21 también da algo así.

El tipo que te recomienda no estudiar y hacer un curso online o leer un libro; es el tipo que hizo eso en el 2000. Por eso les repito que tengan cuidado con esta gente que tiene menos calle que peatonal. Están todos locos y no saben lo que dicen; entra una mujer y se hacen pis encima.

programacion

Como biene la mano laboral. Biene mal. Te piden que seas un "Full Stack Developer" osea que hagas de todo; te piden 5 frameworks y que tengas 5 años de exp aunque apliques a un puesto JR. Ya el Jr. sin experiencia no se toma; por lo que hace necesario estudiar y darle peso a tu C.V. que a la vez te habilita a irte del pais y buscar en otro lado.
Si conseguis laburo de Jr. vas a sacar 14000 por mes y laburar 9 hs a la mañana. Eso es lo que hay dando vueltas. No hablo de los Sr. porque justamente esa es gente que arranco en otro momento y adquirio señority.

informatica

Por ultimo les queria aclarar unos conceptos que los que saben mencionan pero no explican (si asi de copados son).

  • IDE: Consiste en el editor de textos para programar, el compilador, algun explorador de archivos y talvez alguna herramienta drag and drop de armado de GUI.
  • Libreria: La libreria es un archivo que contiene funciones en X lenguaje. Se incluye en el codigo del programa y se puede llamar a esas funciones. Opengl y Directx son librerias.
  • Motores: Son muy mencionados en el desarrollo de videojuegos y consiste en un conjunto de algoritmos que hacen al gameplay de determinado juego. En si no son mas que el juego hecho de cero al que al sacarle las cosas propias del juego queda un molde para hacer otros. Los motores como UNREAL o UNITY tienen ademas programas con interfaz grafica y demas utilidades, que permiten hacer mas tareas sobre los motores; pero el motor es codigo.
  • Frameworks: Consisten en herramientas que permiten acelerar la produccion de codigo. Se especializan en determinadas tareas.

computacion

Por ultimo para el pobre individuo que quiera aprender programación orientada a objetos le tiro un machetin para saber que es, porque los que explican el tema tienden a volar queriendo filosofar y no dicen nada.



La programación orientada a objetos busca simular la realidad. Entes que interactuan con entes.
Los lenguajes orientados a objetos lo logran con un conjunto de estructuras que le permiten alcanzar los objetivos de la programación o.o. que serian: HERENCIA, POLIMORFISMO y ABSTRACCIÓN.

Para esto usan CLASES. HUMANO es una clase, ANIMAL es una clase que es mas general que HUMANO. Cada uno elige que tan general hace el programa. A la clase se la INSTANCIA y se crea un OBJETO, que es el que al final interactua y representa al ente. Clase HUMANO instancia 1 = Jorje, instancia 2 = Raul.

4 comentarios:

  1. leí U.C.P. y ya perdí todo el interés

    ResponderEliminar
  2. leí U.C.P. y BIENE y ya perdí todo el interés

    ResponderEliminar
  3. Muy buen post! Claro y directo

    ResponderEliminar
  4. Buen post, a pesar de los errores ortográficos, ausencia de conclusiones y demás ... Saludos !!

    ResponderEliminar

Post Top Ad

Responsive Ads Here