Lenguajes de programación para iniciarse?

Iniciado por hckcrck, 16 Junio 2016, 17:58 PM

0 Miembros y 2 Visitantes están viendo este tema.

Eleкtro

Cita de: hckcrck en 17 Junio 2016, 13:11 PM
¿nada de utilidad? Entonces para que se utiliza? yo e visto cantidad de utilidades desarrolladas con un bat

El Batch que conocemos ahora fue diseñado con la finalidad de (y esto son palabras de Microsoft) automatizar tareas cotidianas del sistema, punto y final, esa es su razón de existir, no sirve para desarrollar scripts/aplicaciones con un mínimo nivel de profesionalidad y/o eficiencia, por que Batch es extremadamente limitado, y además, es muy tedioso, por que lo que cuesta implementar un algoritmo de 30 minutos en Batch, se hace en 5 minutos en C#/VB.NET, por poner un ejemplo.

Debes imaginarte a Batch como el paso previo a los lenguajes de programación de verdad, o tal vez como una versión super reducida e infinitamente limitada de AutoIt. Lo cierto es que Batch es inservible a excepción de eso, la automatización de tareas cotidianas y herramientas de quita y pon que estrictamente se basan en la utilización de "comandos externos", por que no hay más a lo que recurrir. Lo que puedes hacer en Batch también puedes hacerlo con cualquier otro lenguaje, eso y mucho más, y mucho mejor.




Cita de: hckcrck en 17 Junio 2016, 13:11 PMseguro que hay lenguajes mas útiles pero vi este el mas sencillo para empezar, he intentado aprender bash pero en los tutoriales dan unos saltos muy grandes y no consigo seguirlos   :huh: puede que me puedas recomendar alguno, así se puede añadir un tutorial de bash al post

Yo no se utilizar Bash excepto para lo más básico, de hecho hace siglos que no manejo Linux.

En Windows tienes otros lenguajes soportados por defecto, como son JS (desktop), VisualBasicScript, y Powershell, todos ellos con sus limitaciones también, pero cualquiera te será mucho más util que Batch, aunque JS no te lo recomiendo para este tipo de tareas. Si tu meta es desarrollar aplicaciones de escritorio para Windows, entonces yo te recomiendo que te olvides de Batch e incluso de los lenguajes de Scripting estrictos e incómodos como Python, y que vayas directo a C# o VB.NET (menciono ambos por que solo cambia la sintaxis y otras características que no vale la pena mencionar en este momento), pero eso solo es mi opinión personal, la decisión siempre será tuya. Pienso que debes sentirte agusto con el lenguaje que escojas.

Por cierto, recuerdo haber leido (en otro artículo de Microsoft) que PowerShell fue diseñado para automatizar tareas de administración del sistema (más o menos como Batch), pero lo cierto es que puedes hacer mucho, mucho más que eso, y sin duda es infinitamente mejor y más completo que Batch, pero tampoco es un lenguaje con el que puedas llevar a cabo un proyecto serio.

Citar¿que lenguajes de programación me recomiendas para empezar?

Mi recomendación es clara:
- VisualBasic.NET, C-Sharp, o Visual C++ administrado (en ese orden de preferencia), pero ten en cuenta que es una recomendación basada en mis propias experiencias, gustos personales, y mis propias metas.

En lo que respecta a lenguajes de scripting, recomiendo Ruby antes que Python.




Cita de: hckcrck en 17 Junio 2016, 13:11 PMeste el mas sencillo para empezar

No te voy a negar que Batch es lo más sencillo para empezar, ni que dejes de aprenderlo, ni que dejes de hacer herramientas en Batch si eso es lo que te gusta hacer (yo las sigo haciendo para ciertas tareas personales), lo que te digo es que lo que aprendas con Batch no te servirá de nada, ni lo podrás aplicar en otros lenguajes de programación reales, ya que todo será distinto y se hará de una forma muy diferente. Con Batch puedes aprender nociones básicas de lo que son las variables, los operadores, los búcles, las condicionales, los bloques de código, y poco más, con solo eso ya he descrito a Batch en su totalidad, y todo lo que aprendas lo harás de una forma poco ortodoxa que podrían resultar en malos hábitos de programación para el futuro.

Yo también empecé con Batch hace bastantes años ya, se que cuando se empieza en la programación hay detalles que no podemos asimilar correctamente, pensamos que algo es bueno por ser sencillo, y viene un capullo como yo a decirte que no lo es, que la sencillez de Batch en realidad es la viva imagen de sus limitaciones, y que es una herramienta que solo sirve para crear engorrosos menues con los que seleccionar opciones para realizar tareas muy simplonas, y muy poco eficientes debido a sus limitaciones y una administración de control de errores muy primitivo que está basado en códigos de salida, dicho sea de paso.

Cuando adquieras experiencia usando otros lenguajes verás que tengo toda la razón. Tampoco te creas que soy el único que hace este tipo de críticas negativas sobre Batch, cualquier programador "respetable" o de renombre te diría lo mismo (que no se me mal interprete, no estoy diciendo que yo me considere así), me refiero a cualquier programador profesional y/o con un mínimo de experiencia y entendimiento más allá de Batch y la programación en general. Batch no existe en el ámbito profesional por que no es una herramienta apta para la programación de proyectos serios, y en lo personal deja mucho que desear.




Cita de: hckcrck en 17 Junio 2016, 13:11 PMno se si debería gastar mi tiempo en algo que no va a usar nadie, aunque la idea se puede aplicar a otros lenguajes claro

Intentar crear una especie de "tutorial interactivo" que se pueda usar desde la CMD me parece una idea algo innovadora, es algo "distinto" y teniendo en cuenta que es tu primer aporte está más que bien para empezar, enhorabuena. Pero si te soy sincero yo no lo veo productivo; quizás sea una simple cuestión de gustos, puesto que soy de los que piensan que para aprender a utilizar un lenguaje hay que empezar por leer la documentación oficial o lo que más se le parezca (y después de eso ya vendrán los libros, videos, tutoriales, o análisis de aplicaciones).




Cita de: hckcrck en 17 Junio 2016, 13:11 PMPD: borro mis dudas, ya que veo difícil que alguien se plantee las mismas, y para que estén hay ocupando espacio en el post para nada, quitaré lo que no sea de utilidad. Algún mod podría echarme una mano eliminando los cuerpos vacíos de los post

No me parece del todo correcto que hayas borrado el contenido del mensaje. Es cierto que hemos empezado a desviar el hilo, pero considero que tus preguntas eran útiles y la información que yo di y que acabo de dar le puede servir a alguien más.

Te propongo lo siguiente: Publica un nuevo post y copias el mensaje principal para "mover" allí los tutoriales, y entonces modificas el comentario principal en este post para que sea diferente, quiero decir, que no hable de tutoriales, que siga el hilo del tema al que nos hemos desviado. ¿te parece bien?.

PD: He escrito un tocho enorme, lo se, lo siento, me cuesta abreviar las cosas.

Saludos








[Arg] $triker;

Y después está gente como yo que no tiene ganas de aprender otro lenguaje y se dedica a hacer cosas complicadísimas con un lenguaje básico  :xD

Con respecto a lo de antes, aclaro que en realidad sabía que era por el charset que usaba la CMD, pero no lo señalé porque no pensé que sería posible cambiarle el charset.
8Noobs - Comunidad para todos y todas, sin importar sus conocimientos en informática.

--> Unirse a 8Noobs <--

hckcrck

Si un tocho enorme  ;D pero cada párrafo me abre el apetito a aprender nuevos lenguajes de programación (reales  ;)), puede que siga aprendiendo algo de batch, mas que nada por curiosidad, pero me as dejado claro que no es la opción que quiero, creí que batch se podía exprimir más sinceramente...
CitarDebes imaginarte a Batch como el paso previo a los lenguajes de programación de verdad,
Bueno entonces el tiempo y esfuerzo han servido de algo, si me dices que me puede valer de guía para aprender cosas nuevas merece mas que la pena
CitarMi recomendación es clara:
- VisualBasic.NET, C-Sharp, o Visual C++ administrado (en ese orden de preferencia)
Puede que sean tus gustos como comentas, pero los tendré muy en cuenta, no es la primera vez que leo cosas similares

CitarSi tu meta es desarrollar aplicaciones de escritorio para Windows, entonces yo te recomiendo que te olvides de Batch e incluso de los lenguajes de Scripting estrictos e incómodos como Python, y que vayas directo a C# o VB.NET
En realidad mi meta es algo bastante ambicioso para mi nivel actual (no lo diré, yo mismo me reiría de mi  :laugh:), podéis estar seguros de que no es nada malo, mi primer aporte es un tutorial no un bat tocapelotas como los que e visto por hay.. (no pondré ejemplo, demasiado fácil y podría replicarse) así que por hay van los tiros, ayudar en lo que pueda.

Citarpensamos que algo es bueno por ser sencillo, y viene un capullo como yo a decirte que no lo es, que la sencillez de Batch en realidad es la viva imagen de sus limitaciones, y que es una herramienta que solo sirve para crear engorrosos menues con los que seleccionar opciones para realizar tareas muy simplonas
Para nada eres un capullo :laugh: prefiero que me abras tu los ojos a que lo haga el tiempo perdido

Citarntentar crear una especie de "tutorial interactivo" que se pueda usar desde la CMD me parece una idea algo innovadora, es algo "distinto" y teniendo en cuenta que es tu primer aporte está más que bien para empezar, enhorabuena. Pero si te soy sincero yo no lo veo productivo; quizás sea una simple cuestión de gustos, puesto que soy de los que piensan que para aprender a utilizar un lenguaje hay que empezar por leer la documentación oficial o lo que más se le parezca (y después de eso ya vendrán los libros, videos, tutoriales, o análisis de aplicaciones).
Pues tenía planes (o tengo, veremos que tal con windows) de hacer un sript bastante completo, nada que ver con la birria que he publicado, solo lo puse para plantear esa idea de ayuda interactiva, pero la versión que tengo pensada tiene las siguientes características, algunas ya implementadas en el batchelp experimental: (a lo mejor esto esta de mas pero lo pongo para quien le pueda interesar)
Un menú con opciones, en el se vería:

un diccionario batch, esa función se implementó (mal) en el primer prototipo, en el se encuetra:
- ayuda para los comandos mas usados en el lenguaje batch, esta vez dentro de la sell redimensionada, (por eso mi problema) con la opción de pasarlo a un archivo de texto escribiendo "texto" en la variable del menú (cada pagina o menú tiene variables, ir atrás o adelante, volver a menú principal etc.)

Cursillo básico de lenguaje batch:
es un cursillo de batch básico con información detallada de cada comando sus usos y ejemplos, ademas (y esta es la idea que me pone) puede ejecutar los ejemplos en un bat real para poder ver como queda el bat una vez creado, posteriormente lo borrará (lo que hace con el texto ahora mismo)
cualquier pagina del tutorial se puede pasar a un archivo de texto para estudiarla mas tarde (no se borrará), también puedes copiarlas y pegarlas todas en un tutorial completo en un archivo .txt, pero ya no abría ejemplos interactivos  :xD
Todo esto es posible con el lenguaje conocimiento del lenguaje batch que tengo ahora (esta todo ordenado en mi cabecita) lograrlo me llevaría una semana de curro a no parar y mas de una ayuda lo más seguro, por eso no me decido, se que podría quedar una buena herramienta de aprendizaje, pero también la tiene que usar alguien, (aparte de mi  :xD) que opinas? (sin piedad, dilo  :o)

PD: se me paso esto
CitarNo me parece del todo correcto que hayas borrado el contenido del mensaje. Es cierto que hemos empezado a desviar el hilo, pero considero que tus preguntas eran útiles y la información que yo di y que acabo de dar le puede servir a alguien más.

Te propongo lo siguiente: Publica un nuevo post y copias el mensaje principal para "mover" allí los tutoriales, y entonces modificas el comentario principal en este post para que sea diferente, quiero decir, que no hable de tutoriales, que siga el hilo del tema al que nos hemos desviado. ¿te parece bien?.
Me parece genial, la verdad me da cosa abrir temas a la ligera, no aporta nada bueno, pero lo que comentas es mejor que reutilizar el post como vengo haciendo, lo haré.

También quiero darte las gracias por la ayuda, no todo el mundo escribe ese tocho por un novato que se está iniciando, y agradezco mucho la atención, espero que pronto pueda ser merecedor de ella  :) un saludo

PD:
Citarpero no lo señalé porque no pensé que sería posible cambiarle el charset.
negativa+negativa+afirmativa=?? Lo siento tengo la cabeza infestada de echo"s", if"s" y set"s" no lo he entendido
aún me acuerdo de la pelota que lo sepas  ;D ni p**a idea aún, pero lo sacaré

Me paso por el hilo por que ya tengo mi primera duda con VB.NET  :-[  he descargado el visual basic studio pero wine no lo abre, supongo que siendo de microsoft no estará disponible en otras plataformas, he descargado el visual basic estudio code, pero aunque me de reparo decirlo no se ponerlo en marcha, que debo instalar o ejecutar para poder usarlo? es igual que visual studio? se que sera todo código, me lo imagino por el nombre, pero puede cumplir la misma función? me puede venir asta bien que no tenga interfaz  :) y por lo pesado que es parece una herramienta muy completa, me informaré un poco por mi cuenta a ver que encuentro, esto es totalmente nuevo para mi, cualquier ayuda por muy evidente que sea me vendrá bien
Para seguir la senda:

*observa al maestro,
sigue al maestro,
camina con el maestro,
ve a través del maestro,
conviértete en el maestro.

https://www.youtube.com/watch?v=08dphYPKLyE

Eleкtro

Cita de: hckcrck en 17 Junio 2016, 17:20 PMes igual que visual studio?
Visua Studio es una IDE o entorno de programación, pero Visual Studio Code es más bien un editor de texto liviano orientado a lenguajes de markups. Son productos completamente distintos.




Cita de: hckcrck en 17 Junio 2016, 17:20 PMpuede cumplir la misma función?
No, no puede, por la razón que he explicado arriba.

VS Code te sirve para editar archivos de C#, VB.NET, Batch, Xml y Html entre otros, pero no te sirve para desarrollar aplicaciones .NET, ya que no es una IDE, por ende no tiene un compilador, ni depurador, ni tampoco un constructor de interfáz gráfica, ni un profiller, ni nada de nada.

Sin embargo, VS Code lo podrías utilizar como un complemento adicional a Visual Studio, puesto que es una opción perfecta para reemplazar otros editores profesionales como Sublime Text o Notepad++, ya que VS Code utiliza el IntelliSense de Microsoft (el mismo que Visual Studio) y el mecanismo Roslyn (como en Visual Studio), y eso son cosas que aportan mucha versatilidad y facilitan la edición del código.




Cita de: hckcrck en 17 Junio 2016, 17:20 PMpor lo pesado que es parece una herramienta muy completa
Como ya he mencionado, VS Code es un editor liviano. Apenas ocupa 150 mb. Si eso te parece "pesado" entonces prepárate para ver lo que pesa la instalación de Visual Studio xD. No quiero asustarte, y sobre lo completo que es Visual Studio tampoco, pero necesitarás dos vidas enteras para poder descubrir todas sus funcionalidades :).

EDITO: Cuando vayas a instalar Visual Studio, intenta evitar instalar componentes adicionales (como toda la morralla de SQL Server, Silverlight, Bliss, el profiller de Microsoft, o los compiladores de C++ si no necesitas soportar ese lenguaje en Visual Studio) ya que realmente dependiendo de los componentes que elijas pueden ocuparte varios GB de espacio en el disco y total para no llegar a usar nunca esos componentes no merece la pena instalarlos.




Cita de: hckcrck en 17 Junio 2016, 17:20 PMel visual basic studio pero wine no lo abre
Visual Studio no es compatible con Linux. Existen muchos artículos que puedes encontrar googleando sobre gente experta con wine/Linux que ha probado todo tipo de artimañas para intentar hacerlo funcionar ...sin éxito. Si vas a iniciarte en la plataforma .NET, entonces debes empezar por asumir que debes usar Windows.

En Linux puedes recurrir al compilador Mono con la IDE MonoDevelop, pero esto no llega a ser exactamente lo mismo, y en mi opinión si empiezas usando MonoDevelop  te otorgará una experiencia de uso muy distinta (mucho más cutre en comparación con lo que te puede ofrecer Visual Studio) así que yo no lo considero recomendable para alguien que está aprendiendo, además, Mono tiene muchas limitaciones.

EDITO:
Para poder instalar y utilizar Visual Studio 2015 necesitas Windows 10, o en su defecto Windows 8.1 con las últimas actualizaciones de Windows Update.
Visual Studio 2015 no soporta otros sistemas operativos. Y no, no te recomiendo empezar utilizando una versión anterior de Visual Studio, por que lo mejor es que empieces aprovechando las funcionalidades más actuales de la versión más reciente de Visual Studio, ya que cada versión de Visual Studio aporta funcionalidades mejoradas y nuevas características no solo en el entorno, sino también en los lenguajes soportados.




Cita de: hckcrck en 17 Junio 2016, 17:20 PMesto es totalmente nuevo para mi, cualquier ayuda por muy evidente que sea me vendrá bien
1. En el foro hay una sección para los lenguajes de .NET, debes plantear tus dudas allí: http://foro.elhacker.net/net-b62.0/

2. Evidentemente lo que debes descargar es Visual Studio (no VS Code).
Puedes descargar la edición Community, que es gratuita y, aunque tiene ciertas limitaciones y bugs, no creo que tengas tiempo ni necesidad de descubrir sus fallos por ahora. Es todo lo que necesitas: https://www.visualstudio.com/post-download-vs?sku=community&clcid=0x409
Más adelante puedes tratar de descargar la versión Profesional o Ultimate, que bviamente no son gratuitas, pero... todo el mundo usa un serial de oro por Internet que es muy fácil de encontrar, cof cof.

3. Deberás elegir entre uno de los lenguajes: C# o VB.NET, aunque son practicamente lo mismo, pero la sintaxis es muy diferente y eso hace que otorguen una experiencia de uso muy distinta... simplemente elige el lenguaje que más te guste su sintaxis y que más sencillo te parezca, más adelante con un poco de práctica podrás empezar a desarrollar códigos en ambos lenguajes con lo que aprendiste en el otro lenguaje (yo elegí VB.NET como mi lenguaje main).
No he mencionado el resto de lenguajes soportados por que no es lo habitual, excepto Visual C++, ese si que es muy usado y es otra buena opción, pero creo que lo mejor es que te apoyes en la capa de seguridad que proporciona el código administrado, con VB.NET o C#.

4. También deberás elegir una tecnología en la que empezar a programar. Puedes verlo como si fuesen un tipo de aplicación diferente, es decir, una tecnología para crear aplicaciones de consola, otra para crear aplicaciones de escritorio, otra para aplicaciones web, etc.
Lo más básico por donde puedes empezar es WindowsForms para crear aplicaciones con interfáz gráfica o de consola. No necesitas más.
Si quieres empezar fuerte entonces podrías elegir la tecnología WPF, donde se requiere la utilización de dos lenguajes al mismo tiempo (VB.NET+XAML o C#+XAML), es un mundo bastante distinto a WindowsForms, y es más complejo ...requiere un mayor nivel de comprensión y de dedicación en general.
Si quieres crear aplicaciones web, entonces tu tecnología es ASP.NET.

De todas formas tampoco le des mucha importancia a eso. En Visual Studio encontrarás plantillas que te ayudarán a desarrollar varios tipo de proyectos, como aplicaciones de consola y de escritorio, drivers, servicios de Windows, librerías dll, etc.

5. Pásate por aquí:
Manuales de .NET

6. Vb.NET, C#, Python, y etc. son lenguajes que requieren un conocimiento previo sobre las bases de la programación orientada a objetos o dicho en Inglés: Object Oriented Programming (OOP); eso es algo que Batch no te puede enseñar, y como probablemente es un paradigma nuevo para tí eso te podría dificultar el aprendizaje con cualquiera de estos lenguajes, pero no te desanimes, mientras vayas practicando con el lenguaje que decidas irás aprendiendo las bases de OOP de forma parcial y suficiente para seguir aprendiendo de forma autodidacta, aunque lo mejor sería que al menos te informases sobre las definiciones de los términos más comunes relacionados con la OOP ...aunque fuese en la Wikipedia. Algunos de esos términos son: Objects, classes, structures, types, generic types, inheritance, interfaces, polymorphism, methods, functions, constructors, y un largo etcétera. (te los he nombrado en Inglés por que lo ideal es que te documentes en Inglés, y utilices Visual Studio en Inglés, pero eso ya es cosa tuya.)

7. Cualquier duda que tengas sobre VB.NET/C# estaré encantado de ayudarte, como puedes ver me apasiona .NET ...y poder resolver problemas relacionados (siempre que pueda resolverlos xD).

8. Tengo una librería gratuita para .NET que abarca todo tipo de materias de forma bastante completa, eso te podría servir para resolver muchos problemas cotidianos y/o implementar muchos algoritmos (desde un keylogger en unos sencillos pasos, hasta un editor de metadatos para archivos de música o un cliente para automatizar tareas en tu cuenta de GMail u Outlook mediante OAuth2. Sencillamente hay de todo). Quizás quieras hecharle un vistazo:
Y si todavía no has llegado a ver ningún código escrito en VB.NET, siempre puedes analizar el código fuente de mi librería para hacerte una idea de como es:

Saludos








peter_lyon

Hola chicos, soy nuevo en el foro aunque hace años lo leía mucho.
En cuanto al mundo de la informática y la seguridad sí que tengo bastantes años de experiencia y me dedico profesionalmente a ello.

Os veo un poco despistados en estos temas pero veo mucho interés y ganas de aprender, así que el primer consejo que os voy a dar es que eliminéis windows de vuestras mentes. No hace falta que lo eliminéis al 100% de vuestra vida, ya que si alguno jugáis a algún juego, probablemente solo funcione en windows. Para cualquier otra cosa, incluido seguridad informática, windows es un SO muy pobre, con muchos problemas y que va camino a desaparecer a medio plazo.

En el mundo hacker real, prácticamente nadie usa Windows, salvo algún payasete televisivo como Chema Alonso, que de hacker no tiene nada, simplemente es un informático que le gusta hablar de seguridad y que patrocina y trabaja con grandes compañías.

Si de verdad estáis interesados en esto, empezad a trabajar con Linux, yo os recomiendo Debian pero cualquier otra distribución os puede servir. Huid a toda costa de tecnologías privativas (VB, Batch, .net, Visual C++...) hoy en día todo se puede hacer con 3 lenguajes fundamentales que todo buen informático debe saber: C++, JS y Python.

Para empezar, desde luego Python es vuestra mejor carta, es un lenguaje que sirve prácticamente para todo, incluido scripting; pero además podrás usarlo para hacer interfaces gráficas de escritorio, o aplicaciones con interfaz web, puedes programar Raspberries o implementar algoritmos de Big Data con Spark. Python cuenta con un enorme ecosistema de componentes para cualquier actividad que vayas a realizar.


Eleкtro estoy en desacuerdo con la mayoría de cosas que comentas, por ejemplo, el punto 6:
En el comentas que python requiero conocimientos de OOP, lo cual no es cierto. Python es multiparadigma, soporta programación OO y programación funcional. Puedes construir programas enormes sin implementar ni una sola clase. En cambio otros lenguajes como Java o C# sí que son 100% OOP y tienes que trabajar con eso.

Estáis muy ligados a las tecnologías de Microsoft y no veis más allá de ello, pero esas tecnologías son antiguas, privativas y más difíciles que otras tecnologías libres, como python.


hckcrck

RE: Elektro
Hola de nuevo, perdón por la tardanza en responder, quería hacerlo con windows 10 ya instalado y el Visual Studio funcionando, pero he tenido un problemilla (ya he abierto un post con dicho problema)y me a sido imposible instalar win 10, así que de momento tendré que esperar un poco mas.
CitarEvidentemente lo que debes descargar es Visual Studio
Echo, esta preparado para cuando instale win 10  ;-)
CitarDeberás elegir entre uno de los lenguajes: C# o VB.NET
Me decanto por VB.NET, he visto un par de ejemplos y me a gustado mas, creo que puedo aprenderlo y entenderlo mejor.
CitarTambién deberás elegir una tecnología en la que empezar a programar
Pues me gustaría programar para dispositivos móviles, creo que se acerca un gran avance en ese tema y además todo el mundo tiene uno, así que sería la opción que mas me gusta.
Citarlo ideal es que te documentes en Inglés, y utilices Visual Studio en Inglés, pero eso ya es cosa tuya
Pues eso es mas difícil, de ingles entiendo lo justo, voy aprendiendo sobre la marcha, pero creo que tendré que usar Visual Studio en español, si no, no entenderé la mayor parte de los textos  :P
CitarCualquier duda que tengas sobre VB.NET/C# estaré encantado de ayudarte, como puedes ver me apasiona .NET ...y poder resolver problemas relacionados (siempre que pueda resolverlos xD).
Te agradezco mucho la ayuda  :), es bueno saber que cuento con alguien que sepa del tema, intentaré que los problemas que te consulte tengan solución   :laugh:
CitarTengo una librería gratuita para .NET que abarca todo tipo de materias de forma bastante completa, eso te podría servir para resolver muchos problemas cotidianos y/o implementar muchos algoritmos
Gracias, debo decir que todavía no se muy bien para que es cada cosa, pero por lo que dices me será de mucha utilidad, te simplifica mucho las tarea  :)

RE: peter_lyon

CitarOs veo un poco despistados en estos temas pero veo mucho interés y ganas de aprender
Yo siempre voy despistado  :xD, si hay ganas de aprender, la informática es el futuro, yo creo que las profesiones con mas trabajo serán las que tengan que ver con ella, asta el DNI lleva un chip ya, y no solo por el trabajo, si no porque tener los conocimientos adecuados te hace capaz de crear cosas increíbles de la nada, y eso es algo que me apasiona  ;D

Citarel primer consejo que os voy a dar es que eliminéis windows de vuestras mentes
En caso de estudiar seguridad (cosa que también me gusta) tienes razón, pero si quiero estudiar programación y diseñar aplicaciones lo mejor es Visual Studio, no?
Citarwindows es un SO muy pobre, con muchos problemas y que va camino a desaparecer a medio plazo.
Te doy la razón en las dos primeras afirmaciones, pero no creo que windows esté por desaparecer, tiene muchos fallos, pero otras cosas hacen de windows un so necesario, programas que solo son compatibles con win (como Visual studio  :() y cosas que pueden ser mas sencillas de hacer para un usuario básico en win que en Linux, una vez que te adaptas a Linux no sueles hechar de menos a windows, pero a veces (cuando wine falla xD) se le hecha en falta.

CitarHuid a toda costa de tecnologías privativas (VB, Batch, .net, Visual C++...) hoy en día todo se puede hacer con 3 lenguajes fundamentales que todo buen informático debe saber: C++, JS y Python.
Ala, tenía unos cimientos montados y ahora esto :laugh:, estos lenguajes sirven para cualquier plataforma? para cualquier tipo de uso? Podría crear una aplicación con VB y dejarla exactamente igual con C++?
CitarPara empezar, desde luego Python es vuestra mejor carta
Pues también tendré que echarle un ojo, no he visto tantos códigos en mi vida, (por la noche sueño en batch, tengo pesadillas con errores de sintaxis que no veo  :xD)
CitarEstáis muy ligados a las tecnologías de Microsoft y no veis más allá de ello
Alaa, que va, la ultima vez que utilicé win solo me duró dos semanas instalado, ahora cada vez que lo tengo instalado me da la paranoia de que hay virus por todas partes  :rolleyes:

Pues me quedo con mas dudas que respuestas, echare un ojo a los lenguajes aquí mencionados a ver cual puede ser "el elegido"(o "elegidos") para iniciarme.
Una vez mas, gracias a todos por la ayuda, seguiré en ello  :D
Para seguir la senda:

*observa al maestro,
sigue al maestro,
camina con el maestro,
ve a través del maestro,
conviértete en el maestro.

https://www.youtube.com/watch?v=08dphYPKLyE

peter_lyon

VB es un lenguaje que no se usa desde hace muchos años, al menos en el mundo profesional.

Aquí en España muy pocas empresas trabajan con VisualEstudio, no porque sea caro y malo, sino porque se suele trabajar con otras tecnologías.

El futuro de los ordenadores no está en las arquitecturas x86 - amd64 (las que usan la mayoría de PCs), en un futuro muy próximo se va a extender el uso de arquitecturas RISC como ARM (la más utilizada) en ordenadores de muy bajo coste con potencia suficiente para uso cotidiano. Hace unos días le regalé a mi padre un media center hecho por mi con una Raspberri pi (40€) con el que puede ver vídeos en HD, youtube y demás. 100% hardware libre y 100% software libre y por 40€ tienes un ordenador con wifi integrado y salida HDMI para conectarlo a la tele.

Por desgracia Microsoft no tiene sistemas operativos para ARM, en el que se usa siempre Linux (Android, Raspbian, Ubuntu...).

En el panorama actual se ve una clara tendencia a 2 tipos de dispositivos, los personales con arquitecturas ARM y los servidores (hoy en día todos los servicios están on cloud) con arquitecturas Intel/AMD.

En ambos segmentos solo hay 1 SO por excelencia, Linux.

Con python puedes hacer aplicaciones para cualquier sistema operativo, para cualquier cosa y mucho más sencillo que con otras tecnologías.

Nosotros (mi empresa) solemos trabajar con un editor de textos potente y libre (Atom o SublimeText), navegador (hoy en día los navegadores tienen potentes herramientas para depuración de JS) y línea de comandos. Normalmente usamos Debian 8, yo lo tengo en mis 3 máquinas locales (1 portátil y 2 sobremesas) y en 2 servidores. La  ventaja de Debian es que todas las empresas de alojamiento ofrecen servidores con él, hay muchísima documentación y es un perfecto SO para uso doméstico y de trabajo.

De lenguajes, un poco de bash (shell estandar en Linux), python para casi todo, javascript para FrontEnd web y C++ para algunas pocas cosas críticas.

Con estos lenguajes puedes programar cualquier máquina, desde un simple arduinoZero de 4€ hasta un cluster de 5 millones de euros.

No penséis en vuestros casos particulares, pensar en la gente común, ¿que niño de hoy en día quiere un ordenador de sobremesa o un portátil? Antes que eso prefieren un iPad o un móvil.


Reitero mi consejo, si de verdad os gusta la informática, ya estáis tardando en poneros un Linux (Debian 8 por ejemplo) y empezar a aprender tecnologías del futuro.

Referencias:
SublimeText (editor de texto para programación): https://www.sublimetext.com/
Debian 8 (instalador): https://www.debian.org/CD/netinst/
Vídeos Python: http://www.genbeta.com/herramientas/ocho-canales-de-youtube-para-aprender-python-desde-0-hasta-nivel-experto

Eleкtro

#17
Cita de: peter_lyon en 25 Junio 2016, 14:36 PMEleкtro estoy en desacuerdo con la mayoría de cosas que comentas, por ejemplo, el punto 6:
En el comentas que python requiero conocimientos de OOP, lo cual no es cierto. Python es multiparadigma, soporta programación OO y programación funcional. Puedes construir programas enormes sin implementar ni una sola clase. En cambio otros lenguajes como Java o C# sí que son 100% OOP y tienes que trabajar con eso.

Hoy en día todos los lenguajes modernos son multiparadigma, incluyendo Java y C#, en los que puedes aplicar la programación funcional, concurrente, e imperativa (aparte de la programación orientada a objetos, claro está, y reflection).

Soy consciente de que Python es multi paradigma (y multi plataforma); de todas formas acepto la corrección que hiciste por que es verdad y no me expresé bien. Lo que quise decir es que para pasar de algo como Batch a un lenguaje como Python, se requiere un amplio conocimiento de los fundamentos de la programación ...en comparación.




Cita de: peter_lyon en 25 Junio 2016, 14:36 PMEstáis muy ligados a las tecnologías de Microsoft y no veis más allá de ello, pero esas tecnologías son antiguas, privativas y más difíciles que otras tecnologías libres, como python.

Los lenguajes y las tecnologías enfocadas al desarrollo de aplicaciones de escritorio de Microsoft, son la mejor opción para explotar al máximo las características que ofrece Windows de la forma más amistosa posible, y los beneficios que supone compilar y usar un ensamblado .NET bajo Windows (ej.: nGen). Esa es la razón principal por la que lo recomiendo, Windows. Además, que actualmente no existe ninguna IDE tan completa como la de Microsoft, Visual Studio, por mucho que no guste aceptarlo a algunos, y las IDEs de JetBrains en mi opinión están en el segundo puesto.

Decir que es más complejo que en otros lenguajes como Python... disculpa pero no es cierto, aunque no se exactamente a que te refieres, si a la sintaxis o a todo un poco en general, pero no. Puede que simplemente dependa de como de dificil le resulte a cada persona por individual, alguien que está acostumbrado a Python, y alquien que lo esté a C#.

Tampoco tienen nada de antiguo, ya que tanto los lenguajes VB.NET y C# como la tecnología WPF están en constante actualización y evolución a cada año, igual que Python ...claro está.

Que sea privativo puede ser una cosa mala o también buena dependiendo de como se mire. Yo por ejemplo soy de los que se benefician de una empresa privativa utilizando estos lenguajes por que cualquier posible existencia de un bug se va a solucionar tarde o temprano, eso es un hecho, es su responsabilidad hacerlo, mientras que en un lenguaje open-source es todo lo contrario, ya que al ser libre, no tienen responsabilidades ni tú tienes ningún derecho a recibir soporte, así que si en Python hubiese un bug (que por cierto, los hay a miles, solo hay que ver su bug-tracker) es un "tal vez" se arregle o tal vez no, pero no esperes nada seguro.
No creas que un lenguaje privativo son todo desventajas, la palabra open-source está sobre valorada; para mi la única desventaja es que obviamente si hay una parte del código fuente que no me gusta no la puedo cambiar, pero eso es una minucia, ¿realmente quien de nosotros se pondría a modificar el codigo fuente de Python por ejemplo?.

En mi opinión, y por las razones en las que te has basado y la forma en lo que lo has expresado, creo que el único que se ofusca en querer utilizar otros lenguajes y no ve más allá has sido tú ...quizás solo por lo de "es libre".

Dicho esto, si yo tuviese la idea de desarrollar software relacionado con el hacking a un nivel muy profundo, tampoco intentaría usar Windows ni los lenguajes de Microsoft debido a sus limitaciones, pero es que nadie ha mencionado lo del hacking y yo no he recomendado esos lenguajes por ningún motivo similar a ese, ya lo dije varias veces.

Saludos








Eleкtro

#18
Cita de: hckcrck en 25 Junio 2016, 19:00 PMme gustaría programar para dispositivos móviles

Hmmm... entonces VB.NET no creo que sea la mejor opción para introducirse a este tipo de programación. Puedes utilizar VB.NET pero... necesariamente vas a tener que utilizar C# para desarrollar lo que no puedes con VB.NET.

El único motivo por el cual no puedes con VB.NET es simplemente por que las IDES en cuestión que trabajan con Visual Studio no tienen planes para soportar este lenguaje de forma completa. No es que VB.NET sea un mal lenguaje (sino todo lo contrario), es que los tios estos de Xamarin son gilipollas, ellos tienen otras preferencias como es C#, aunque C# no signifique todos los programadores de .NET, y aunque pudieran conseguir miles de clientes que utilizan VB.NET, eso les parece dar igual, llevan años sin dar soporte completo a VB.NET, a pesar de las múltiples peticiones de posibles clientes en sus foros y los votos positivos que ganan... nada, no hay manera con estos tios.




En fin, esto es lo que respondí a otro usuario hace un tiempo, supongo que te servirá de algo:

Cita de: Elektro
Cita de: paradoxx-adum en  1 Octubre 2015, 00:38 AMsoft que permita hacer aplicaciones para android? pero de manera visual.

Estas son solo algunas...

C#, con soporte limitado para VB.Net:
Xamarin Studio
Microsoft Visual Studio + ➢ Xamarin for Visual Studio

Java:
JetBrains IntelliJ IDEA (a partir de la versión 12+)
Eclipse + ➢ Android Development Tool plugin for Eclipse

HTML5/CSS/javascript:
Telerik AppBuilder

C++:
Embarcadero C++ Builder (creo que a partir de la versión XE5+)

Delphi (Object-Pascal):
Embarcadero Delphi (creo que a partir de la versión XE5+)

REBOL:
Saphir R3 (REBOL 3)

Otros:
Estas aplicaciones parecen más bien una especie de asistentes o wizards para gente que no sabe programar, no las he probado así que no se si permiten la utilización de algún lenguaje cnocido.
appypie
DroidDraw
Easy-to-Use Android App Builder 2014

Nota(s):
  • Embarcadero RAD Studio XE incluye Delphi y C++ Bulder.
  • Si, todas las IDEs o software mencionado llevan un GUI builder para construir la interfáz gráfica de una app Android.
Añado:
Telerik AppBuilder (al igual que Xamarin), tiene una IDE standalone (para Windows y MacOSX) y una extensión para Visual Studio, pero además también tiene una IDE online!, y un plugin para Sublime Text.
Con AppBuilder puedes desarrollar aplicaciones para Android e iOS utilizando HTML5, javascript y CSS3 (en Visual Studio también, no esperes utilizar VB.NET xD).

Lo mejor en mi opinión es elegir Xamarin for Visual Studio en caso de querer utilizar la IDE de Visual Studio (obviamente), e instalarte el paquete de controles RAD de Telerik para Xamarin, con eso haces maravillas de interfaces gráficas. Luego el resto ya es cosa tuya, puedes utilizar C#+Xaml para desarrollar el 100% del código de la app en Xamarin, o puedes desarrollar el 80% del código en una librería escrita en VB.NET, el 20% del código sería en C# para diseñar la UI y para lo demás simplemente usarías la librería que escribiste en VB.NET (desde C#), no es complejo, sino tedioso.

PD: Si no recuerdo mal, el instalador de Visual Studio 2015 tiene una opción para instalar Xamarin for Visual Studio de forma guiada, junto a las sdk de Android, emuladores y etc.

Saludos








peter_lyon

Está más que demostrado que los bugs se arreglan antes en sistemas libres que en privativos, por mucho que pagues, nadie te garantiza que detectado un bus se arregle en 24h...

¿que el software libre está sobrevalorado?

Bueno Google trabaja prácticamente todo con tecnologías libres, conozco a 2 trabajadores de Google. La mayoría de servidores del mundo son Linux. Android es libre, y está construido sobre linux. Facebook, instagram, pinterest, ebay, paypal... todos usan tecnologías libres, salvo facebook (php-hhvm) los demás usan python.

En el mundo del big data, minería, análisis y visualización de datas; sector que mueve la mayoría de dinero del sector; desde hace ya unos años domina el software libre, con tecnologías como Knime, weka, spark o hadoop, y lenguajes como R o Python.

Nosotros la verdad, no vemos qué rentabilidad tiene hacer programas de escritorio para windows, llevo años en el sector y jamás he visto en mercado un proyecto de este tipo.
Hacer una aplicación de gestión para windows de escritorio hoy en día es un retraso, ya que solo funcionará ahí. Si la haces web, funcionará en cualquier dispositivo con navegador.

En la industria (sector que más trabajamos), todo el control se programa con lenguajes libres y sobre servidores linux. Con la entrada de las free-boards como raspberry, hay un amplio abanico de posibilidades, todas libres, no hay Windows para CPUs ARM.

Sí que vemos muchos proyectos con C#, es un sector que trabajan las grandes consultoras con salarios estándar y en las que las condiciones de trabajo no son muy agradables.

Que hayamos elegido trabajar con tecnologías libres es una decisión puramente económica, se consiguen mejores soluciones en menor tiempo y por lo tanto se puede ganar bastante más la hora con estas tecnologías que con Java/C#, que ha derivado en toda una industria clásica de software con métodos muy antiguos y que son poco competitivas.

Para tecnologías móviles, nosotros estamos usando IONIC, un framework muy completo, aunque con una curva de aprendizaje un poco durilla al principio. Últimamente están saliendo vídeos y documentación muy interesante que facilita más el aprendizaje, pero aún así, para gente nueva en el mundo de la programación es casi imposible usar esta tecnología sin aprender primero una base técnica de programación.