Stack Overflow es, sin lugar a dudas, la más potente herramienta de difusión del conocimiento en el mundo del desarrollo, una comunidad online de referencia. Y, desde hace varios años, también es una referencia la megaencuesta que realiza anualmente a sus millones de usuarios, que nos permite sacar una serie de conclusiones sobre el sector —sus circunstancias actuales y su evolución— a nivel mundial. Y la edición de 2022, publicada hace tan sólo unas horas, arroja una serie de resultados interesantes.
|
etiquetas: javascript , clojure , lenguaje , programación
Es más, en mi opinión nombrar HTML como lenguaje de programación es una de las red flags más claras de que la persona con la que estás hablando no tiene ni puta idea de lo que dice.
es.m.wikipedia.org/wiki/HTML
Un lenguage de programacion tiene que ser turing completo, sino simplemente no puedes programar de forma general con el y queda limitado a ciertas tareas muy especificas.
"HTML no es un lenguaje de programación; es un lenguaje de marcado"
developer.mozilla.org/es/docs/Learn/Getting_started_with_the_web/HTML_
Por lo demás, te recomiendo encarecidamente que te alejes del mundo de la programación. Dicen que de chapero se cobra bien, te putean menos y es más digno.
Aprende git, cuesta muchísimo al principio, pero lo amortizar con creces, vale para todos los lenguajes de programación, incluso para cosas que no son código. Y es imprescindible para encontrar trabajo
Y busca en telegram grupos de la tecnología que te pongas. Alli ahi gente que también está aprendiendo y gente que sabe algo mas, asi puedes consultar dudas, y ver las dudas de los demás. Yo por ejemplo estoy en los grupos de telegram en español de angular, flutter, nestjs, spring-boot, git, y alguno más.
Si te mola mas el backend python es muy buena alternativa. Java tambien.
Yo te recomendaria que, si estas empezando, te centres en front o back. Si no te va a estallar la cabeza.
Si te decides por backend, para empezar esta muy buen la combinacion de python y sql. Por supuesto, usar algun framework web (django en cosas viejas, fastapi la chica nueva en la oficina y flask algo en medio), pero para esto ultimo es facil ir saliendo del paso mirando en stack overflow
www.youtube.com/watch?v=9iZm7tNxybU&t=3s
Primero tendrás que saber qué tipo de programador quieres ser, porque puedes irte hacia el mundo web, mundo móvil o hacia el mundo de aplicaciones profesionales.
En el mundo web verás HTML, CSS, Javascript, PHP... todo orientado a hacer webs claro.
En el mundo movil verás java (Android) y Swift (IOS), orientado a hacer aplicaciones para móviles.
En el mundo de aplicaciones profesionales verás sobre todo Java, .NET, C++... orientado a hacer aplicaciones para empresas.
Incluso podrías irte por la tangente, aprender sobre metodologias de testing y automatización y ser QA.
Es importante que busques donde quieres estar para que puedas enfocarte hacia lo que quieres ser dependiendo de cual sea tu objetivo (aprender constantemente cosas nuevas, pasta, retos, tranquilidad...)
Escojas lo que escojas, hay trabajo de sobra, aunque no cobra lo mismo un tio que trabaja en PHP con wordpress que uno que programa aplicaciones en banca en C++, todo dependerá de tu ambición, experiencia y habilidades.
Incluso si quisieras aprovechar parte de las habilidades que tienes en 3D, podrías plantearte ser programador de videojuegos en Unity (usa el lenguaje C#) o Unreal Engine (Usa el lenguaje C++). Para esto es más difícil colocarte porque es muy dificil introducirte en el mundillo, pero alguna oferta hay.
Independientemente de qué lenguaje o sector vayas a trabajar, hay alguna serie de cosas transversales que deberías conocer sí o sí:
- GIT
- GIT
- Alguna metodología agile como Kanban o Scrum, con que sea por encima es suficiente.
- GIT
- Docker
- GIT
- y posiblemente GIT
No es el mejor lenguaje que hay por ahí, pero sí es de los más versátiles.
En mi antigua empresa, cuando hacíamos entrevistas (esto da para libro) usamos al final una técnica absolutamente delirante: Mostrar dos capturas de pantalla de un código, ambas hacían lo mismo, ambas programadas con PHP y usando Symfony, pero con 3 años de diferencia entre ambas. Ambas creadas por el mismo programador (yo )
En una veías código elegante, orientado a objetos, sencillo de entender si simplemente mirabas el nombre de los métodos. La otra era como meter la cabeza el infierno directamente. Nos vino muy bien para hacer criba, cuando uno decía que "yo suelo hacer cosas como esta" y señalaba la segunda quedaba descartado automáticamente
Adjunto el codepen:
codepen.io/laras126/pen/OYvGZj
Alternativas en el back
Con python, Django y flask
Con javascript, express
Con typescript, nestjs
Con C#, .NET core
Con Java, spring-boot
Y no se que mania le teneis a Java.
Cada lenguaje tiene su encanto
Solo decirte que te prepares para machacarte, aunque luego va a ser tremandamente reconfortante.
Los programadores no suelen preocuparse ni lo más mínimo si su código es seguro, si están usando alguna dependencia con algún cve de alguna criticidad, es más, muchos ni saben que es un cve o el nist.
La primera no me preocupa, hay detrás mucho capital y se arregló muy rápido.
Log4j si es preocupante pq hay tres mantenedores, igual ahora hay alguno más.
La pregunta es, cuántos proyectos en producción hay por ahí que no han actualizado?
Respuesta, muchos más de los que te crees, y están en todos los ámbitos.
La diferencia entre java y php en el servidor es que puedo cambiar en caliente el codigo php para introducir una vulnerabilidad mientras que hacerlo con java es muuuucho más difícil.
Js tiene el mismo problema que php.
Con Php si te vas a encontrar los fuentes, y no tienes que decompilar nada.
Todo viene primero a través de una reverse shell y escalar privilegios.
Para ser justos, conseguir esa reverse shell es independiente del lenguaje que uses para producción, puede venir por una vulnerabilidad del so, del proxy, del servidor web, de aplicaciones, etcétera.
<br>Por otro lado en algunas comunidades de vez en cuando realizan exámenes para obtener certificaciones profesionales, que dependiendo del nivel equivalen a un grado medio (nivel 2) o superior (nivel 3) y están reconocidos a nivel europeo. Estas a veces se realizan acompañados de cursos de alrededor de medio año.
<br>Y otra opción con la que se suele poder poner un pie en empresas es realizar algún bootcamp, aunque estos suelen ser de pago y no son precisamente baratos en esos casos, pero normalmente llevan aparejados acuerdos con empresas.
<br>Sólo con cursos de udemy y sin experiencia, puede ser más difícil entrar en el mundo de la programación.
<br>Y como consejo final, una vez tengas un pie en el mundillo, selecciona con cabeza las ofertas de trabajo en función de los proyectos que esperen que realices. <br> <br> <br>
Mi recomendación: Busca un lenguaje fácil de usar para aprender inicialmente y luego busca uno del nicho en el que te quieras introducir. Si te tuviera que recomendar uno, te diría que aprendieras bien python.
Y luego además cuando daba un error te lo daba en una función interna de symfony y a saber qué habías hecho mal.
Venía a decir eso. Soy amateur no es que tenga una opinión de autoridad, pero existe una visión de desprecio sobre Java por los problemas de rendimiento y estabilidad que tenía/se le atribuían tiempo atrás.
Mi consejo desde la ignorancia sería Python y después Java o C#. Es una progresión bastante razonable para alguien que no empieza desde cero en un contexto informático y que está acostumbrado a estudiar.
PHP está bien si tienes claro el por qué quieres estudiarlo pero si no sobra el tiempo no me metería; y Javascript más de lo mismo.
De back nodejs (a mi me gusta nestjs, pero tampocose usa mucho), y spring-boot (De esto si que hay mucha demanda).
Otra opción directamente que consigas un certificado aws, de devops hay también mucho curro, pero ese mundo ya no lo conozco tanto
Luego, por ejemplo, pasar de django a nodejs es bastante natural.
Y creo que te has debido equivocar al escribir Visual (Studio) Code, ya que no es un framework, si no un IDE
Ella me dice que ahora mismo no importa tanto el título, lo que quieren ver es que la persona candidata tenga experiencia y sepa hacer lo que dice saber.
Saluds y suerte
En mi opinión, la solución siempre debería estar basada en lenguajes fuertemente tipados, compilados y que permitan despliegue en caliente. Idealmente sería algo como java pero teniendo la máquina virtual a nivel del hardware, y no del so como está ahora.
Imagina esa integración de la máquina virtual y un motor de contenedores. Cómo si rancher y la jvm se juntaran…
Ademas, existen cosas como burp suite.
Ponte a fondo con javascript y alguna de sus librerías tipo React hasta que manejes con soltura html/css javascript y React, en un framework tipo Visual Code, interactuando con Node y npm.
Cuando hayas hecho varios proyectos ya puedes saltar a algún otro lenguaje back tipo GO que es sencillo o especializarte en el front y ahí sí, meterte con angular.
Suerte y ¡ànimo!
Ahora mismo estoy con las nociones básicas (muy) de Python y mi idea es que le siga JavaScript y PHP ya que he visto que parece ser que es lo más usado.
Podríais comentarme los que veis con malos ojos estos lenguajes si me lo estoy planteando bien? >.<
Gracias!
#1 #18 #21
En mi trabajo y campo actual, por muy bueno que seas, si no tienes una titulación (de lo que sea) estás vendido; por eso mi idea de darme un cambio de aires.
Estoy ilusionado aún, espero no hundirme
Me estáis ayudando mucho todos <3
Las opciones son, basicamente, no usarlo. Desde hace mucho es mas conveniente tener un thin-client y una API REST compuesta de microservicios q tener un backend monolitico en PHP.
> eso de mezclar html con javascript en el mismo fichero, me da la sensación de que puede dar problemas
No he visto eso dando problemas todavía, y llevo 5 años haciendo react. Y, al final, en angular estás haciendo lo mismo al revés. O qué crees que es <li *ngFor="let user of users">{{ user.name }}</li> si no meter javascript en html?
Lo que sí da problemas es crear un enjambre de providers que se actualizan unos a otros y luego no tienes ni idea de en qué orden tienes que invocarlos para que el sistema alcance un estado aceptable, y de eso angular sabe mucho.
Y el quinto vuelve a ser casi javascript.
Cuando yo lo estuve usando fue para montar una monstruosidad que hacía miles de cosas y ahí si que fue muy útil las cosas de Symfony. Las conexiones a la BBDD eran maravillosas usando su engendro ese cuyo nombre no recuerdo, fue empezar a usarlo y se acabaron los errores de MySQL (excepto en las operaciones masivas, que iba como el culo, pero eso se acabó sacando del PHP y listo).
¿Los formularios? Un puto horror, lo que hicimos fue NO USARLOS, pusimos un cliente en Javascript bastante chulo (no recuerdo el nombre) y Symfony sólo era la API que contestaba en el backend, nada más. Ahí si que merecía mucho la pena usarlo y el código se quedaba muy limpio.
Pero si alguien se plantea montar un blog usando Symfony... que no lo haga, es una barbaridad. No se como estará ahora pero hace 3 años montar un panel de administración usando sólo las herramientas de Symfony sin "picar" nada era un dolor de huevos brutal.
Y nos dejas con la intriga.
Pero aún así me lo apunto todo! Otra cosa no tendré, pero ganas de aprender sí!
Edit: Después de una búsqueda rápida, me interesa más el backend la verdad, así que buscaré lo que me recomiendas, gracias!
Ahora mismo estoy haciendo cursos en Udemy, tanto en inglés como en castellano, pero claro, esto no te da ningún título oficial
Ponen pegas las empresas por esto?
HTML NO es un lenguaje de programación. Ni se le parece.
En eso no te falta razón pero si sabes eso me extraña que no conozcas el porqué.
Todos hemos pasado por ese momento de mediocridad, el problema viene con la autocomplacencia, te impide avanzar.
Solo hubiera funcionado en Windows.
No parece una gran idea.
Ahora mismo tengo 3 proyectos funcionando, uno de ellos en una institución europea, con php de backend, y ningún problema, y los de sistemas de allí no quieren ni siquiera oler java.
Una de las cosas que veo buenas de PHP es que cualquier modificación puedo hacerla al vuelo, mientras que con java tendria que parar servicios, compilar, empaquetar y volver a levantar (lo mismo estoy equivocado y hay una manera mejor de hacerlo).