Quiero comenzar a programar. ¿Qué idioma es adecuado para mí y debo comenzar con algoritmos y estructura de datos?

Esta es una pregunta que ha dejado perplejos a muchos programadores nuevos.

Primero diré que no hay una respuesta correcta. Todos los idiomas hacen exactamente lo mismo, es decir, le permiten comunicarse con su computadora. Dicho esto, ciertamente hay algunos consejos que podría darte para que comiences.

Diría que la elección del idioma depende en gran medida del tipo de programación que desee hacer. Voy a delinear algunos caminos para ti.

Para el desarrollo web, puede comenzar con Ruby como lenguaje base. Es muy elegante y el lenguaje refleja de cerca el lenguaje común. Se siente mucho menos robótico que otros idiomas.

También necesitará aprender HTML, JavaScript y CSS. Una cosa buena del desarrollo web moderno es que puedes codificar tanto el servidor como el cliente con solo JavaScript. Incluso puede crear aplicaciones nativas completas. Mi punto con esto es que, como un enfoque alternativo para aprender Ruby, realmente podrías concentrarte en JavaScript.

Para el desarrollo general, Java es un primer idioma realmente bueno para aprender. Es el primer idioma que aprendí. Java es un derivado de C y comparte muchas de las mismas sintaxis y principios, pero fue creado para ser orientado a objetos. Es un lenguaje muy maduro y se usa hoy en muchas aplicaciones. Puede desarrollar aplicaciones web del lado del servidor en Java, y también puede desarrollar aplicaciones multiplataforma e incluso aplicaciones móviles (Android) en Java.

Una cosa para pensar es que los lenguajes de programación han evolucionado bastante. Hay mucho conocimiento que puedes aprender al aprender un lenguaje sólido y maduro como Java y Ruby. Dicho esto, los idiomas modernos tienen mucho poder incorporado. Un ejemplo de esto es el lenguaje Swift de Apple. La sintaxis es increíblemente simple y el lenguaje está construido teniendo en cuenta la programación moderna, por lo que el lenguaje tiene mucho poder. Además, recientemente fue de código abierto, por lo que creo que veremos muchos frameworks realmente geniales creados con Swift para todo tipo de programación (Linux, web, etc.). Con eso en mente, Swift también sería una muy buena opción para tu primer idioma.

Sé que esta probablemente NO sea la respuesta que estaba buscando, pero no es una pregunta corta y seca. En última instancia, una vez que realmente aprende a programar, cambiar de idioma no es nada difícil. Trabajo en todo tipo de proyectos y mi pila cambia de proyecto a proyecto. Normalmente tomo alrededor de 2 semanas para aprender un nuevo idioma. Encontrarás que los idiomas tienen propiedades únicas, pero a menudo tienen mucho en común.

En cuanto a en qué centrarse, debe dominar absolutamente los patrones de diseño orientados a objetos. Debería aprender absolutamente sobre las estructuras de datos, ya que son una base de la programación. Algunas áreas particulares de OOP a las que debe prestar atención:

Polimorfismo: la capacidad de aplicar el mismo cálculo a cualquier estructura de datos, sin importar de qué tipo de datos se trate. Un ejemplo de esto se muestra en Swift Generics, por ejemplo, puede aplicar las funciones .sort o .map a una matriz de diccionario, sin importar el tipo de datos que se esté almacenando. Esta idea es realmente poderosa.

Encapsulación:

En pocas palabras, cuando diseña los componentes de su software, cada componente debe unir los datos y la manipulación de datos en una entidad que es modular, lo que significa que funciona de manera independiente de los otros componentes de su software. Este también es un concepto muy poderoso y le permite programar sin repetirse. Lo convierte en un mejor desarrollador al alentarlo a crear componentes reutilizables.

Fábricas y Singletons:

Las fábricas son esencialmente componentes que crean nuevos componentes dentro de su aplicación. Bastante autoexplicativo, pero poderoso. Los singletons son importantes, pero probablemente sea demasiado pronto para presentarlos.

Depuración y prueba:

La depuración y las pruebas son habilidades extremadamente importantes para dominar. Puede ser muy doloroso aprenderlos, pero una vez que lo hagas, finalmente escribirás un mejor software. A veces, la parte difícil para un nuevo desarrollador es el hecho de que realmente no ves los resultados de tu trabajo muy rápido. Eso está bien. Solo una pequeña parte del software es visual. Gran parte de esto sucede detrás de escena. Las pruebas son una forma de asegurarse de que su lógica sea correcta, incluso si no se puede ver en el producto final. Asegúrese de escribir conjuntos de pruebas cuando entre en el desarrollo de software más avanzado.

Las mejores prácticas están ahí por una razón. No puedo enfatizar esto lo suficiente. Aprenda las mejores prácticas mientras aprende y tendrá éxito. Puede llevar más tiempo por adelantado, pero a la larga le ahorrará mucho tiempo.

La mejor de las suertes.

Oye…
Primero aprenda los conceptos básicos de la informática y luego podrá dominar cualquier lenguaje informático en muy poco tiempo.
Puedes comenzar con
Lenguaje básico como C / C ++
Estructuras de datos
Algoritmos
Arquitectura de Computadores
Sistema de gestión de bases de datos (también SQL)
Red de computadoras
Puede comenzar con los tutoriales en el
http: //www.IITs y IISc Cursos elearning en Ingeniería y Ciencia bajo NPTEL

Al principio, aprenda los conceptos básicos y básicos de la programación informática. Le recomiendo encarecidamente Tutoriales y capacitación en video en línea en Lynda.com Fundemental of Programming Course y también comience con

Java Script o HTML, estos no son realmente un lenguaje cumplido, son un lenguaje intrepretur

una vez que aprenda estas cosas, comience con un lenguaje potente y cumplido como: C ++ o Java Intente comenzar con C ++ una vez que haya aprendido c ++, entonces los otros idiomas serán muy fáciles para usted y luego aprenderá algunas cosas técnicas en programación como Bibliotecas u otras cosas para construir su Programa con GUI (interfaz gráfica de usuario)

C ++ es definitivamente una buena manera de comenzar a programar.

HTML también es aparentemente básico, y también puede combinarse con otros idiomas

Yo personalmente recomiendo uno de los dos, ya que es un comienzo fácil.