¿Cómo comienzas a construir software desde cero? ¿Qué idioma uso? Si quiero que el programa pueda integrarse con otros, ¿qué debo considerar? ¿Dónde puedo aprender todo lo básico?

¿Puedes ver tu producto terminado cuando cierras los ojos? Estoy seguro que sí. Bien, que ves? ¿Alguien está usando tu aplicación en su teléfono? ¿Niños que usan su sitio web en las computadoras de su escuela? ¿Oficinas que utilizan su producto basado en la nube para realizar el trabajo?

Su visión del producto terminado debe guiarlo con respecto a muchas decisiones técnicas. ¿Cómo es eso?

  1. ¿Ves una aplicación? Es posible que deba aprender sobre programación para Android / iOS / Windows. Java para Android, Swift para iOS, C # / C ++ / Javascript para Windows.
  2. ¿Ves un sitio web (y un backend de soporte)? Es posible que desee ver Javascript, HTML / CSS, Node.js, AWS, bases de datos no relacionales, entre otras cosas.
  3. ¿Ve el sistema procesando una gran cantidad de datos? Es posible que desee ver Hadoop, entre otras cosas.
  4. ¿Su aplicación / sitio web / servicio funciona con otras aplicaciones o servicios? Echa un vistazo a sus API de desarrollador. Ejemplo: Bienvenido a la API de Uber

Puede aprender el idioma / tecnología requerida de varias fuentes, como Coursera, Udemy o Codeacademy, por nombrar algunas.

Hay dos cosas en las que debe centrarse aquí:

  1. Aprendiendo sobre Desarrollo de Software / Programación
  2. Diseñando y construyendo tu idea

Afortunadamente, el proceso de aprendizaje para ambos tiene cierta superposición.

Echa un vistazo ¿Cómo puede un principiante aprender a desarrollar software? también.

En algunos casos, la plataforma o el entorno en el que se desarrolle le enseñará el diseño para esa plataforma. Ejemplo: si crea una aplicación para iOS / Mac, se verá obligado (principalmente) a usar el patrón de diseño Modelo-Vista-Controlador (MVC). Por supuesto, también puede aprender sobre los procesos de desarrollo de software formalmente, como han mencionado otros.

A medida que aprenda la tecnología, estará en una mejor posición para comprender y decidir cómo proceder con la implementación de su idea. No tengas miedo de intentar y fallar; hacer tutoriales de codificación, crear una aplicación (¿Cuáles son algunos ejemplos de buenos proyectos iniciales para un programador universitario?) o un sitio web en la plataforma de su elección; leer libros sobre patrones de diseño; y seguir aprendiendo

Depende de cuán grande es tu idea. Si desea desarrollar un buen software con un riesgo mínimo de falla y un software que pueda aceptar cambios en el futuro, primero debe considerar usar el modelo de software adecuado. Para usar algún modelo de software, primero debe conocer las diferentes fases del ciclo de vida del desarrollo de software
Aquí está el enlace que puede ayudarlo a comenzar con SDLC
https://en.m.wikipedia.org/wiki/

Aquí hay un enlace para modelos de proceso de software
https://en.m.wikipedia.org/wiki/

Agile es el modelo de proceso de software más utilizado en la industria, pero para pequeños proyectos individuales debe optar por el modelo en cascada.
La única ventaja de usar SDLC es que también puede dividir el trabajo entre individuos si su proyecto es grande.
La primera fase de SDLC es la fase de recopilación de requisitos, debe escribir requisitos muy detallados de su idea desde la perspectiva del usuario. Esta fase es la más importante de todas porque si no obtiene los requisitos correctos, no importa qué tan bueno haya creado el software, no importará. Para los requisitos de modelado, puede escribir y dibujar casos de uso de sus requisitos. Aquí hay un enlace para comenzar con los casos de uso, pero siempre puede encontrar más información en línea sobre casos de uso y recopilación de requisitos.
https://en.m.wikipedia.org/wiki/

Después de reunir los requisitos, llega la fase de diseño en la que modela su software desde la perspectiva del codificador de cómo codificará su sistema. UML realmente ayuda en el diseño de software aquí hay enlaces para eso
http://www.uml.org

https://en.m.wikipedia.org/wiki/
Puede buscar en qué orden usa cada diagrama. Será claro a medida que avance en este proceso y podrá obtener más información sobre UML, ya que hay mucho material en línea.

Después del diseño, comienza a codificar utilizando su diseño. Verá que la codificación será fácil en cierta medida si realiza este proceso.

Después de escribir el código para su sistema, probará su código contra los casos de prueba para detectar errores, esta fase será su fase de prueba.

Y por último, pero no menos importante, mantendrá su software.

Si desea saber más sobre el proceso de ingeniería de software, puede consultar algunos libros. Un libro que me gusta como referencia es la ingeniería de software de sommerville y el desarrollo de software ágil con scrum de ken schwaber.

Estos fueron los breves pasos para hacer un buen software rastreable, mantenible y fácil de depurar.

Para seleccionar lenguajes de programación, todo depende de qué tipo de proyecto esté haciendo. Por ejemplo, si desea crear una aplicación en línea segura con todo el control en sus manos y no le importa la complejidad, entonces debería usar JSP con HTML. Si quieres hacer un sistema relativamente rápido, entonces php o ruby ​​deberían ser tu elección. Del mismo modo, todo depende del tipo de proyecto de software que esté realizando.
Si eres nuevo en programación, te recomendaría que primero tomes un curso en línea sobre introducción a la programación en tu idioma preferido. Python es fácil de aprender, pero todos los idiomas son más o menos iguales si aprendes uno con éxito, entonces aprender otro sería fácil.

Oye, recientemente encontré un software que podrías usar para crear software incluso sin ningún conocimiento de programación. Es BotChief , todo lo que haga en línea puede automatizarse con él, como el registro de cuenta, el raspador de contenido y el envío de artículos, etc. Le ayudará a recopilar y analizar información, sincronizar cuentas en línea, cargar y descargar datos, finalizar cualquier otro trabajo que usted haga podría hacerlo en un navegador web y más allá.

  • Fácil de usar

El simple clic del mouse y los comandos de arrastrar y soltar crearán el software que desea, no necesita conocer ningún conocimiento profesional de programación .

  • Extremadamente inteligente y potente

BotChief no solo puede crear herramientas web automáticas rápidamente, sino que también puede operar automáticamente programas de escritorio. Incluso puede simular personas reales para registrar actividad en su página web.

  • Compilar y vender

Con un simple clic del mouse, su idea puede convertirse en una pieza de software independiente que puede vender directamente a clientes y empresas. Cree un programa real que se ejecute sin tener que comprar nada extra y véndalo sin pagar regalías. El poder está en tus manos para convencer a todos de que contrataste a un costoso equipo de programadores. También puede utilizar nuestra licencia integrada y el sistema de actualización automática para su software, todo está listo para usted.

Use este código de promoción para obtener un precio más bajo para este software: whitehatbox20off

# Comienza y prueba cosas diferentes

Como novato, no tienes idea de lo que serás mejor o lo que te gustaría hacer: ¿desarrollador de aplicaciones iOS? ¿Tal vez, desarrollador de aplicaciones web? Tal vez el aprendizaje automático.

¿Quién sabe?

Solo inténtalo. Pruebe diferentes tutoriales, lea mucho sobre desarrollo, lea blogs, encuentre algunos mentores. En 2 años de intenso aprendizaje, descubrirás tu camino.

Selección de Toptal de los mejores blogs de desarrolladores

# JavaScript

Creo que, si quisiera comenzar, elegiría el lenguaje más popular / moderno del mundo.

En este caso, JavaScript.

Como mínimo, necesita un editor de texto, un compilador y un motor de tiempo de ejecución. En la mayoría de los casos, los compiladores pueden compilar en ejecutables nativos de su entorno y no requieren un tiempo de ejecución separado.

Sin embargo, le aconsejo que comience tomando un curso de introducción a la programación. Esta es una excelente manera de iniciarse y el instructor es bastante conveniente. Hay muchas clases regulares o en línea para elegir.

es complicado y hay muchas formas diferentes y efectivas de hacerlo. La forma estándar es:

  • escriba lo que desea construir en DETALLES. La excelencia está en los detalles.
  • haz que alguien dibuje los wireframes de la interfaz de usuario que hace lo que quieres
  • Una vez que le gustaron los flujos, haga que diseñen los componentes visuales como el encabezado, el esquema de color, los logotipos, cómo se ven los cuadros de texto y los botones, etc.
  • haga que un desarrollador de software senior estudie sus requisitos y diseños para crear un diseño arquitectónico; qué pasa en el backend, qué pasa en el front-end, cómo se abordan ciertos problemas como la seguridad, el almacenamiento y la recuperación de información, etc.
  • la misma persona puede sugerir qué tecnología se debe utilizar e incluso dividir el trabajo en fragmentos más pequeños que pueden hacer diferentes personas

sin embargo, si realmente es su primera vez, haga que un diseñador diseñe su interfaz de usuario y luego siéntese con un desarrollador para crear un prototipo del diseño hasta que crea que es lo que desea. luego obtenga un equipo para implementar la solución completa. Esta es la forma más barata y rápida. La sugerencia inicial necesita mucha madurez y experiencia.

Si desea seguir el enfoque rápido a la hora de construir una startup, concéntrese en sus fortalezas y lo que no sea su fuerte, solo traiga a alguien que pueda encargarse de esa parte por usted.

Si realmente crees en tu idea, financia el desarrollo de la tecnología tú mismo y navega. Aprender y obtener conocimientos técnicos siempre ayudará, pero no obstante será una distracción si no eres una persona técnica. Si usted es más una persona de finanzas, cree un plan financiero y comercial inteligente y simplemente descargue el desarrollo técnico del producto a alguien que esté capacitado y con experiencia para hacerlo.

Nosotros en Courage Digital: desarrollo de software personalizado Mumbai podemos ayudarlo a construir lo que esté buscando. Hemos trabajado con varias startups, incluida una en el campo del comercio electrónico. Si necesita referencias, puedo dárselas si las cosas avanzan.

Buena suerte.

Si todavía está preguntando qué idioma debe usar, comience a escribir hola mundo primero y evolucione lentamente hacia algo que desee.

Debe comprender que este es un proceso largo y que lo que se requiere no es solo conocimiento sino también la capacidad de resolver problemas.

Necesita construirlos en el camino, y todos aprendieron a construir software como este.

Aprenda javascript y pruebe los tutoriales en meteor.com

More Interesting

¿Debería una empresa de servicios de software de 500 empleados pasar a la metodología scrum?

¿Cuáles son algunos problemas que tienen los hackatones actuales? O más bien, ¿cuáles son algunas cosas que podrían mejorarse?

Como aspirante a ingeniero de software, ¿qué idiomas debo aprender?

¿Qué se entiende por contradicciones en srs?

Me estoy especializando en Ingeniería de Computadores, quiero ser un Arquitecto de Software o gerencia para desarrolladores de software, ¿cuál sería la mejor opción para seguir?

Cómo bloquear usuarios que cambian su dirección IP o usan un proxy

¿Cuáles son las herramientas para la colaboración de soporte técnico y desarrollo?

¿Dónde puedo dibujar un diagrama de flujo de datos en línea?

Necesito diferentes componentes de hardware para mi inicio de hardware. Componentes como GSM, GPS, sensores de movimiento cuestan mucho. ¿Es seguro comprarlos en Alibaba en cantidades de 1000 unidades?

¿Cuáles son sus principales desafíos como probador de control de calidad en software o desarrollo web?

¿Por qué es importante que un desarrollador / programador sepa cómo usar GNU / Linux? ¿Qué lo hace tan útil?

¿Cuál es la tarifa promedio por hora para un desarrollador independiente de aplicaciones móviles con experiencia en iOS en varias ciudades de los EE. UU., Como Austin, Atlanta, Boston, Nueva York y San Francisco?

Cómo desarrollar un sitio web de seguridad total que no pueda ser hackeado por nadie

¿Por qué es popular Golang en China?

¿Qué tipo de profesionales necesito contratar para crear una IA para un asistente doméstico?