15 meneos
713 clics
17 desarrolladores nos cuentan qué lenguaje de programación elegirían para empezar desde cero y por qué
"No tienes que ser un cerebrito para programar". No lo digo yo: lo dice un desarrollador que lo tiene muy claro. Es en realidad una idea que transmiten la mayoría de nuestros protagonistas: la de que aprender a programar está al alcance de cualquiera. Quizás esta sea una buena oportunidad: el confinamiento por coronavirus ha hecho que por diversas circunstancias tengamos quizás más tiempo disponible para afrontar algún reto pendiente. Eso es precisamente lo que os proponemos con este tema en el que 17 desarrolladores y desarrolladoras nos cuen
|
comentarios cerrados
Y lo digo como programador senior JS
Lo lógico para empezar es c# o algo como c++, uno por facilidades y el otro justo por lo contrario. Pero JS es un puto Cristo sin reglas, no hay mayor pedazo de mierda que eso.
Golang funciona sobre PowerPC/ARM/Intel/Risc-V con las envvars GOOS y GOARCH. En C necesitas un compilador y enlazador por cada arquitectura. Y compilar cruzadamente es una locura.
En Plan9/9Front no tanto, pero es que Plan9 viene de la misma gente que C y Go, asi que saben de sobra como rediseñar sistemas. Cosa que la mierda de C++ no hizo, haciendo que pareciese C para la gente (lease idiotas y críos de Reddit y HN) no versada supuestamente dificil y complejo, cuando es mas simple que una patata.
Eso con GO no pasa.
Cometarios sobre ensamblador aqui abajo
Por eso lo más probable en alguien que recomiende js es que no tenga ni idea.
pd: debería de estar prohibido usar js en backend.
De hecho AWK viene de PM para no complicar las cosas en C/Go mas de las necesarias.
Aprendes a escribir menos código y más compacto, a lo suckless/Bitreich y pasas de funciones irrelevantes extra.
true == []; // -> false
true == ![]; // -> false
false == []; // -> true
false == ![]; // -> true
www.amazon.com/Lisp-Small-Pieces-Christian-Queinnec/dp/0521545668
El peor de los acoplamientos y más nocivo en informática, peor que el código al sistema, es la del técnico al lenguaje. La mítica de llevarse cada proyecto a la zona de confort.
Es ridículo. Para hacer que!! Cuanta carga va a tener, cuanta integridad y concurrencia, que sistema dispongo, cuanto tiempo y presupuesto dispongo, hay algo en el mercado o desarrollado que se pueda aprovechar para partes del proyecto?
es simplemente una gilipollez cuñada. Un la mía es más grande de gente con gafas, gordetes y que usa pantalón corto.
Tienes frameworks multiplataforma como QT5 con ide incluido y madurez más que sobrada como para tener necesidad de meterte en lenguajes minoritarios de moda.
#12 afortunadamente el tema de templates se ha puesto en su lugar en las últimas versiones de C++. Hubo un tiempo en que se perseguia hacer absolutamente todo con ellos lo cual es un error.
A partir de C++11 las cosas han mejorado mucho.
No es tan malo y somos algunos.
Xataka. No podían ser otros.
datakinds.github.io/2020/03/15/modeling-the-coronavirus-outbreak-with-
Obviamente, deberás aprender técnicas de programación como MVC (Modelo Vista Controlador), que aunque no acabes usando te pueden valer para entender qué estás haciendo. Alguna o varias bases de datos (DB400, Mysql, Mariadb, Oracle, etc), un poco bastante de SQL para utilizarlas, algún IDE avanzado tipo Anaconda, un editor Pycharm, NetBeans, Spyder, etc. y por supuesto saber y conocer la existencia de algunas librerías que serán muy útiles ya que hoy en día están de moda las redes neuronales, los random forest etc. así que TensorFlow(Google) y sobre todo Keras te serán de ayuda.
Y si te metes en web, Djando para Python y ves tirando del hilo que esto es un sin parar.
Yo hice todo eso y mucho más, pasando por Cobol/400, RPGII, etc. para acabar en el paro con 50 años, así que de entrada no os recomiendo trabajar como programadores y menos en España. Sin embargo si queréis un consejo desarrollad por y para vosotros mismos no trabajeis para nadie y en todo caso como Ingeniero Informático.
Eso sí, como decía un profesor mio, "solo ha una cosa más difícil que Grado en Ingeniería Informática, y es la muerte".
Qué cabrón...cuánta razón tenía.
Quizás, quizás, quizás te podría sugerir que primero echases un vistazo a, como alguno ha dicho por ahí arriba que parece coña pero no lo es, Pascal (o Turbopascal) pero muy por encima para que sepas un poco cómo va lo de la programación estructurada, pero no hace falta que eches más de media tarde, simplemente que te quedes con los conceptos: bucle, función, procedimiento if-then-else, esas cosas, simplemente para que te suenen.
Y luego ya empiezas con Python desde cero, que te permite pasar a programación orientada a objetos sin darte cuenta, y quizás ese punto es a la vez un pro y un contra, en tanto que es bueno que aprendas pronto a saber POO, casi sin enterarte, pero por otro lado igual precisamente por eso te puede parecer luego que todo lenguaje es igual y no es así. Pero bueno, en absoluto grave.
Además, con Python por narices estás obligado a tener un código ordenado, lo cual es aprender buenas prácticas.
<modo llorón>
Una mala practica que he visto mucho últimamente son las validaciones solo en la parte cliente con js, no sea que se hernie el servidor. ¿Que puede salir mal?
Otro ejemplo del "tortugismo javascript" lo podemos encontrar en paginas como la de aliexpress, la fluidez me recuerda a los menús del spectrum con basic.
Mi experiencia con node igualmente fue frustrante por la gestión de dependencias recordándome a épocas anteriores con perl.
Pero el nivel de cutradas con js no ha llegado nunca a los tamagochis de los 90 (y algo después) con visual basic. Eso si que eran compendios de malas artes.
</modo llorón>
Todo lo anteriormente expuesto solo es producto de mi incompetencia.
www.youtube.com/watch?v=iw17c70uJes
Solo algunos "bloques" se programaron en pascal.
Edit: Lo he encontrado. github.com/mtuomi/SecondReality/tree/master/TUNNELI
Depende como solucione el asunto el conector al mapear a las variables del lenguaje que se este empleando.
JavaScript es uno de los mejores para aprender.
Porque para llegar a aprender a programar tienes que ver que progresas, tienes que cogerle el gustillo, y perseverar, y sentir que lo estás haciendo.
JavaScript te pone fácil el acceso al browser. Es abrir la consola y ya puedes hacer cosas que a alguien que no sepa programar le parecerán dignas de Matrix. Sitios como codepen.com, o codesandbox.io te permiten mostrar tus progresos a tus amigos en un instante.
El hecho de ser flexible y no tipado lo hace un candidato perfecto para aprender. Y que ni siquiera tengas que escribir clases, todo son funciones.
Por eso, HTML, CSS y JavaScript es el trío perfecto para empezar a programar, ya que en una semana aprendes lo suficiente como para crearte tu propio sitio web y poder fardar un poco con tus colegas.
De ahí a aprender a programar en serio, pues la práctica te hace mejor, como en todo. Aprenderás a estructurar el programa, a extraer funcionalidades, a no repetirte, a hacer un buen uso de la memoria...
JavaScript ha mejorado enormemente su sintaxis durante los últimos años, ahora es una delicia en comparación con cuando empezó.
JavaScript está en todas partes, en el escritorio, en el browser y en el servidor.
Por cierto, mi lenguaje favorito es C#, que es la antítesis de JS.
Sólo le pongo como pega, eso, que si lo primero que quieres aprender son los rudimentos básicos de programación, en Python lo vas a tener pero es también bastante fácil en que, si te complicas la vida, entres en otro paradigma como es la POO y te puedas hacer un poco la lía un picho. Sí, puede sonar incoherente que sea "bastante fácil complicarse la vida" pero es verdad. No obstante si sigues algún libro o tutorial que no quiera empezar la casa por el tejado, te servira.
Si el inglés no te supone problema (no sé si hay versión traducida y a veces en temas de informática es mejor ir a la versión original), búscate "How to think like a computer scientist: learning with Python". Creo que ahora también hay la versión con Python 3 (cuando yo empecé a oler Python la versión 3 como que quedaba lejos) y no sé cómo estará, pero a poco que no hayan cambiado demasiado la metodología, es el libro de referencia para empezar. Me había descargado también un libro gratuito de una universidad española, por tanto en español, bastante completo, pero no recuerdo ahora de dónde. Pero ese que te digo es realmente bueno.
A mí ese libro no me iba a enseñar a programar, eso es algo que no está tanto en los libros como practicando, y ya había practicado bastante, pero dado el cambio de planteamiento que tenía Python con respecto a los demás lenguajes que había probado (incluyendo cositas un poco menos comunes como OCaml, el cual me encantaba), opté por empezar de cero y ese libro me encantó.
P.D. además es gratis.
Python es un lenguaje de moda porque hace uso de librerías de inteligencia artificial pero python no hace inteligencia artificial a lo sumo prepara los datos para enviarlos a esas librerías y luego recoge los resultados para mostrarlos. Esas librerías están realmente hechas en lenguajes como C++.
Grande Niklaus Wirth
Lisp es mucho mas sencillo que cualquier otro lenguaje, al carecer de una sintaxis compleja (Scheme es basicamente es lo mas cercano posible al un "abstract syntax tree"), ser muy homogeneo y mucho mas flexible que cualquier otro si usas macros (Dios salve al pobre estudiante de universidad que se aventure en los callejones oscuros de hygienic macros)
Luego, si nos ponemos exquisitos, C# y Rust a mayores, pero ya por rizar el rizo.
Despues de C, Python, con esa base deberias poder abordar cualquier cosa.
Aparte si tu gato se pasa por el teclado o te da un tembleque en el dedo cualquier editor que se precie (prácticamente todos) te va resaltar la linea y todo el resto del fichero o bloque por ese fallo y a no ser que técnicamente estés ciego lo vas a ver, ademas existen las lineas verticales para verlo. Hoy python se pica casi al vuelo usando vscode vanilla (y casi cualquier editor mínimamente moderno).
Si has picado en c y c++ te aseguro que a nos ser que seas un guarro o un salvaje sin reglas, python se pica de manera natural.
pd: no hay nada mas feo que leer codigo c de un tio que usa tabs sin conversión a espacios.
Tú dedícate a los sistemas y deja C++ para los programadores de verdad.
Fixed
Estoy programando parte de firmware de OpenBIOS en Forth para Qemu con la grafica Ati Rage 3D para PPC.
Ya sabes, para que tire una aceleracion 3D decente y no una Cirrus 5446 pelada.
Es lo que tiene tener OpenBSD y una CPU sin soporte VT, que no puedes tirar de vmd(4). Ni de VIrtualBox.
Lecciones las justas, principiante.
Deja de darme lecciones con tu mierda lenguaje inmanejable donde hizo que el legado de K&R se fuese a tomar por culo. C++ es C lo que cancer de pulmón a pulmón.
Y un kleenex de regalo.
Llegué a conseguir cinco FPS con la VooDoo bajo Bochs emulando un Pentium 2 Katmai en el Deus Ex con NT4. Algo bueno tuvo que tener MS al meter los drivers en el kernel en NT4.
Y por supuesto no va tan lento como w9x, Direct Draw es como 5 veces mas rapido.
Eso en un equipo de mierda repito, sin virtualizacion ni aceleracion mediante modulos de Kernel, que OpenBSD no usa. Pero si, mejor le dejo las cosas "a los que saben". .
www.openfirmware.info/OpenBIOS
Los uberprogramadores aquí no durais ni un asalto.
Sobre "hacer historias", pues qué quieres que te diga. Todo lo que mejore en optimizar codigo en Bochs va a redundarte a ti en un futuro.
Trabajar con instrucciones poco inteligibles pero que sabes lo que hacen para intentar rascar ciclos y optimizar es algo que está bien para entretenerse y darse el gusto y poco más.
Además, confío en Microsoft ahora mismo para democratizar la informática a nivel general. Ese es el objetivo mío ahora mismo, no enfrikizarla.
www.emulators.com/docs/nx25_nostradamus.htm
Pero parcialmente, porque en OpenBIOS la implementacion la cogieron de maquinas SPARC y he de decir que Forth es de todo menos obtuso. Si es hasta mas facil entender que hace tu codigo.
Con C++ siempre me ha parecido imposible, demasiados subestandares y 20000 maneras de hacer las cosas, con una complejidad inmanejable. Go es lo que C++ tenia que haber sido desde el principio. Y se nota, es de los creadores de C y UNIX. Que Golang no es tan rapido como C++ en cosas como motores de videojuegos? Se puede tunear la GC a mano y el dia que pongan una API oficial contra Vulkan lo haran viable para muchos juegos.
Si total, no es raro ver algun juego indie escrito en C# con graficos bastante pasables.
De hecho los de Apple estan tirando de los pelos con Metal. Y MoltenVK no soluciona nada.
Haiku OS es el nuevo BeOS y es algo que la gente adoraria frente a interfaces horribles como Windows8, la del 10 con el lagazo gordo que tiene a abrir menus/pinchar en botones o la bazofia hiperlenta de Gnome3. Es una pena, los lobbies de MS lo mataron. Donde estariamos ahora.
Como digo si la gente apoyase a Haiku tanto como a Linux en su dia hoy podrias abrir cosas en un Core Duo con la misma suavidad y rendimiento que un i7. Solo le faltan 2 cosas esenciales:
- OpenGL por hardware. Los drivers tiran, pero bajo Gallium LLVM por software.
- Drivers de webcam UVC. Puede tomar prestados los de FreeBSD.
Con eso seria un sistema totalmente viable para el uso diario. Tienen hasta un port de LibreOffice que va mas suelto que en Linux. No exagero. Incluso con solo aceleracion 2D.
Democratizar también consiste en hacer las cosas bien, no sólo fáciles, porque si no no son útiles. El user no necesita chorrocientosmil sistemas que ni conoce, pero si hasta el más conocido de los desconocidos es una patata para el uso de muchos usuarios, no esperes que prueben alternativas aún más recónditas.
Y vivimos en un mundo capitalista de mierda, así que el marketing de mierda es importante, eso Apple lo sabía bien. MS cada vez es menos cerrado y mi esperanza es que en algún momento deje de serlo.
El ubuntu para el visualcode y tilix y vim, muy bonito.
Por mi parte, que porten el DRM a Haiku, ahí se follaria a Windows y Linux/BSD de largo. MESA como digo ya lo tienen, los gráficos se dibujan igual pero en lento. Con soporte hardware, Windows 10 sería un atraso. Más que nada por el lastre que lleva de base.
La instalacion de Haiku es toda grafica. No hay X ni hostias. Escritorio de BeOS. O lo tomas, o lo dejas. Todo escala de PM para HDPI, no hay que tocar nada. Y minimalista a tope. Tira en un Pentium3/4 tan rapido como XP si no mas. Pelado, siemple, un solo boton para cerrar ventanas, complicaciones cero para el usuario y con una terminal cuasi POSIX para cacharrerar. Eso tendria que haber sido el futuro, y no las mierdas como Gnome o el escritorio ultrapesado de Windows con telemetria que lo hace lento hasta en SSD's.
Microsoft para mi esta muerta hasta que no saquen algo tan ligero como Windows 2000. Eso era decente y medioseguro para ser un NT. No les cuesta nada, pero los vendedores de hardware se quejarian de que no necesitarian vender tanto. Total, si un i3 puede mover todo igual de bien que un i7, para qué cambiar? Para emuladores y juegos que usen AVX y tiren todo a tope? Puede. Pero para uso domestico tienes de sobra desde Haswell.