¿Qué es el desarrollo de software y cómo puedo comenzar a aprenderlo?

Personalmente odio los productos de Microsoft, por lo que evitaría .Net framework y C # solo porque no quiero trabajar en Windows como un trabajo (o en casa tampoco, tbh).

Creo que comenzar con un lenguaje como Java es probablemente un error, porque te toma demasiado la mano. Comience con proyectos de ensamblaje o microcontroladores basados ​​en C (PIC o Arduino, por ejemplo). Lea “El lenguaje de programación C” de Kernighan & Ritchie si va a comenzar con C, pero en el mejor de los casos, usa tanto ensamblaje como C en diferentes proyectos.

Una vez que se sienta muy cómodo con los microcontroladores, instale Linux (directamente en su PC o dentro de un VirtualBox) y realice proyectos más grandes en C y / o Ruby. Este tipo tiene muchas cosas que puedes intentar implementar:

CodeKata

Si vas a aprender rubí / rieles, lee algunos de estos:

Vídeos de Screencast de Ruby on Rails

Aprenda a escribir código de prueba unitaria y siga la estrategia de “desarrollo orientado a prueba”. Las pruebas unitarias, las pruebas automatizadas y la capacidad de codificar grandes proyectos con mucho cuidado son algunas de las cosas principales que separan a los programadores aficionados de los programadores profesionales.

Tal vez invente su propio idioma e intente escribir un compilador para él usando lex y yacc. Haga un gran proyecto con múltiples procesos, descubra cómo funcionan los semáforos y la comunicación entre procesos.

Luego pase a C ++, Objective-C o Swift. Aprenda Java solo si desea programar para teléfonos Android.

Si está utilizando C ++, he tenido buenas experiencias con Google Test Framework para las pruebas del sistema.

Bueno, si ya te has enseñado Python y VBA … entonces ya no eres un novato. Con python, debería poder escribir programas de trabajo de pequeña a mediana escala y, de hecho, cualquier tipo (web, escritorio, línea de comando, etc.) de aplicaciones empresariales. Java EE y .NET son simplemente plataformas de desarrollo de software que proporcionan una pila de herramientas, lenguajes y utilidades para desarrollar aplicaciones a gran escala, ya sea web, de escritorio o móviles. Por lo tanto, son más que solo un idioma.
Java EE, además del lenguaje de programación Java Java, también viene con otras herramientas y bibliotecas para hacer cosas como interactuar con bases de datos, procesamiento de archivos, procesamiento de medios, informática de persistencia, etc. Java es potente, de código abierto y se utiliza en muchos dispositivos integrados, móviles, TV y sistemas de servidores grandes.
Por otro lado, .NET es un host de tecnologías creadas por Microsoft con soporte para más de 3 idiomas (C #, VB.NET, F #, etc.) con herramientas como Entity Framework, tecnología de base de datos (Microsoft SQL) WindowsPhone, comunicación y presentación plataformas Sin embargo, es propietario y está limitado en gran medida al sistema operativo Windows.
Por experiencia, es mejor comenzar con un lenguaje con solo un puñado de herramientas como Python, y una vez que entiendes completamente la programación, te sumerges en Java o .NET.
Finalmente, lo más importante es saber qué tipo de aplicaciones atrapa su fantasía, móvil, web, servidor, escritorio, juegos, incrustados. Responder esto guiará su elección de plataforma.
Tutoriales para Java y tecnologías asociadas.
Tutorial de Python

Hablaré con .NET, porque lo sé mucho mejor que Java. Un marco es realmente más grande que un lenguaje de programación. Es más un conjunto de herramientas y reglas que controlan la forma en que se implementan una gran cantidad de funciones. Lo sé … esa es una respuesta muy vaga.

El corazón de .NET es el entorno de desarrollo integrado (IDE) de Visual Studio. Desde .NET, puede desarrollar, compilar, depurar y compilar código escrito en varios idiomas. Puede escribir Visual Basic en Visual Studio, pero el lenguaje más importante en .NET-o-sphere es C #, que es como C ++, pero diferente.

Sin embargo, .NET no es solo un IDE. Lo que lo convierte en un “marco” son los módulos, en forma de DLL y referencias. Por ejemplo, escribí un programa que genera documentos de Excel, Word, Visio y MSproject en C #. El marco .NET me permite interactuar con los programas de Microsoft Office en C #, pero, dado que es un marco, también podría haber escrito mi código en Visual Basic. Las DLL y las referencias son similares a los módulos en Python; los incluye en el código para permitirle acceder a otras funciones. Una vez que se crea una DLL .NET, se puede incluir en cualquier programa integrado en .NET.

Las DLL disponibles son asombrosas. Creo que cada pieza de software de Microsoft se puede manipular a través de .NET. La mayoría de los equipos de punto de venta (lectores de códigos de barras, tarjetas de crédito) son compatibles. Puede crear sitios web interactivos utilizando ASP .net. Interactúa con cámaras web o Kinect. El Netduino, que es un arduino que puedes programar en C #.

El desarrollo de software es un término bastante amplio; Cubre la creación de casi cualquier programa que será utilizado por otra persona. Te recomiendo que elijas uno para ir primero. Hay aplicaciones de escritorio, aplicaciones móviles, páginas web, aplicaciones de red, administración de bases de datos y muchas otras, junto con especializaciones en cada una. Afortunadamente, casi todos los tipos de desarrollo de software tienen muchos tutoriales y libros en línea para ayudarte a aprender.

Mi consejo sería elegir un tipo de programa que desee desarrollar y seguirlo. Por ejemplo, si decide que desea hacer una página web, busque en Internet un buen libro. Hay toneladas por ahí, así que revisa las reseñas para encontrar la mejor. Cómprelo y siga las instrucciones de cada capítulo. Cuando termines, tendrás una buena comprensión de cómo hacer una página web básica. A partir de ahí, estás listo para construir tu propio proyecto. Use el libro como referencia y haga un uso liberal de Google. Stack Overflow en particular es un excelente recurso para este tipo de cosas. Una vez que haya terminado con su proyecto, decida si le gusta o no desarrollar páginas web. Si no, repita el proceso con un área diferente. Todo lo que se necesita es la voluntad de aprender.

El desarrollo de software es el proceso de programación de computadoras, documentación, pruebas y corrección de errores involucrados en la creación y mantenimiento de aplicaciones y marcos que dan como resultado un producto de software.

El desarrollo de software es un proceso de escritura y mantenimiento del código fuente, pero en un sentido más amplio, incluye todo lo que está involucrado entre la concepción del software deseado hasta la manifestación final del software, a veces en un proceso planificado y estructurado.

Gracias,

Jack,

MSProject Certified Professional