Parte1
Aprendiendo las cuerdas
- Determina qué tipo básico de desarrollo de software te interesa. Hay dos campos básicos de desarrollo de software: Desarrollo de Aplicaciones y Desarrollo de Sistemas. El desarrollo de aplicaciones se centra en crear programas que satisfagan las necesidades de los usuarios. Pueden ser desde aplicaciones para teléfonos móviles, pasando por videojuegos de alta producción, hasta software de contabilidad a nivel empresarial. El desarrollo de sistemas se centra en la creación y el mantenimiento de sistemas operativos mediante el desarrollo del ciclo de vida. El desarrollo de sistemas a menudo implica la operatividad de la red y la seguridad de los datos.
2. Enseñar un lenguaje de programación. Cualquiera puede tener ideas, pero un desarrollador será capaz de convertir esas ideas en algo tangible. Incluso si sólo quieres trabajar en los aspectos de diseño del software, debes tener cierta familiaridad con la codificación y ser capaz de crear prototipos básicos. Hay una gran variedad de lenguajes de programación que puedes aprender por ti mismo. Algunos de los más útiles e importantes son:
- C – C es uno de los lenguajes más antiguos que todavía se utilizan, y es la base de la mayoría de los otros lenguajes de esta lista. C se utiliza para desarrollar programas de bajo nivel, y trabaja muy estrechamente con el hardware del ordenador.
- C++ – Es la versión orientada a objetos de C, y es el lenguaje de programación más popular del mundo. Programas como Chrome, Firefox, Photoshop y muchos otros están construidos con C++. También es un lenguaje muy popular para crear videojuegos. Los desarrolladores de C++ están casi siempre muy solicitados.
- Java – Es una evolución del lenguaje C++, y se utiliza por su facilidad de portabilidad. Casi cualquier sistema puede ejecutar una máquina virtual Java, lo que le permite ejecutar software Java. Es muy utilizado en videojuegos y software empresarial, y muchos lo recomiendan como un lenguaje esencial.
- C# – C# es un lenguaje basado en Windows que forma parte del marco .NET de Microsoft. Está estrechamente relacionado con Java y C++, y si aprendes Java puedes pasar rápidamente a C#. Este lenguaje es especialmente útil para los desarrolladores que trabajan con software de Windows o Windows Phone.
- Objective-C – Este es otro primo del lenguaje C que está diseñado específicamente para los sistemas de Apple. Goza de una inmensa popularidad en las aplicaciones para el iPhone y el iPad. Es un gran lenguaje para aprender como autónomo.
- Python – Este es un lenguaje increíblemente fácil de aprender, uno de los más fáciles. Python se especializa en el desarrollo web.
- PHP – Esto no es exactamente el desarrollo de software, pero PHP es esencial si usted está interesado en entrar en el desarrollo web. Siempre hay mucho trabajo para los desarrolladores de PHP, aunque no es tan lucrativo como el desarrollo de software.
3. Encuentre recursos para ayudarle a aprender. La mayoría de las librerías tienen secciones enteras dedicadas a los libros de programación, y hay toneladas disponibles en Amazon y otros minoristas electrónicos. Un libro de programación bien escrito será probablemente el mejor recurso que puedas tener, y te permitirá consultarlo rápidamente mientras trabajas en los proyectos.
- Más allá de los libros, Internet es un tesoro infinito de guías y tutoriales. Busca guías sobre el lenguaje de tu elección en sitios como CodeAcademy, Code.org: ¿Qué vas a crear?, Bento, Udacity, Udemy, Khan Academy, W3Schools, y muchos más.
4. Toma algunas clases. Mientras que usted don’t necesita un grado completo con el fin de entrar en el desarrollo de software, puede’t daño a tomar algunas clases en su colegio comunitario local o centro de aprendizaje. Esto le dará el beneficio de la instrucción de uno-a-uno, y usted será desafiado a resolver los problemas que probablemente no si usted estaba aprendiendo por su cuenta.
- Las clases cuestan dinero, así que asegúrese de que usted está firmando para las clases que le ayudarán a aprender lo que quieres saber.
- Aunque muchos desarrolladores son capaces de entrar en la industria basándose puramente en los méritos de sus habilidades, usted’ le ayudará a sobresalir de la manada si tiene una licenciatura’ en ciencias de la computación de una universidad de cuatro años. Una licenciatura te dará un bagaje de conocimientos más amplio y te permitirá acceder a clases adicionales muy útiles, como las de matemáticas y lógica.
5. Trabaja en proyectos favoritos. Antes de empezar a intentar aplicar tus nuevas habilidades de programación a trabajos del mundo real, trabaja en algunos proyectos para ti mismo. Desafíate a ti mismo a resolver problemas utilizando tu lenguaje de programación. Por ejemplo, en lugar de utilizar el programa de calendario de su ordenador para organizarse, intente diseñar el suyo propio. En su lugar, céntrate en hacerlos divertidos y únicos. Una colección de pequeños juegos creados por ti mismo quedará muy bien en tu portafolio.
6. Haz preguntas. Internet es una forma fantástica de conectar con otros desarrolladores. Si te encuentras perplejo en uno de tus proyectos, pide ayuda en sitios como Stack Overflow. asegúrate de preguntar de forma inteligente y de poder demostrar que ya has probado varias soluciones posibles.
7. Practica todos los días. Trabaja en tus proyectos favoritos todos los días, aunque sea una hora. Esto te ayudará a mantenerte fresco y a aprender constantemente nuevas técnicas. Muchos desarrolladores han tenido éxito en el aprendizaje de un lenguaje asegurándose de estar expuestos a él a diario.
- Fija un tiempo cada día que puedas dedicar a la codificación, o establece una fecha límite en la que tengas que estar terminado. Intenta trabajar en tus proyectos todos los días durante la semana para poder relajarte el fin de semana.
Parte2: Desarrollar un programa
- Tormenta de ideas. Un buen programa realizará una tarea que facilite la vida al usuario. Observa el software que está disponible actualmente para la tarea que quieres realizar, y mira si hay maneras de que el proceso pueda ser más fácil o más suave. Un programa exitoso es aquel al que los usuarios le encuentran mucha utilidad.Examine sus tareas diarias en su ordenador. ¿Hay alguna forma de automatizar una parte de esas tareas con un programa? Aunque parezca una tontería o una extravagancia en ese momento, podría convertirse en algo útil o incluso brillante.Examina otros programas. ¿Qué hacen? ¿Cómo podrían hacerlo mejor? ¿Qué les falta? Responder a estas preguntas puede ayudarte a encontrar ideas para tu propia versión.
2, Escribe un documento de diseño. Este documento describirá las características y lo que pretende conseguir con el proyecto. Consultar el documento de diseño durante el proceso de desarrollo le ayudará a mantener su proyecto en el camino y centrado. Consulte esta guía para obtener detalles sobre la redacción del documento.
3. Cree un prototipo. Se trata de un programa básico que muestra la funcionalidad que se pretende conseguir. Un prototipo es un programa rápido, y debe ser iterado hasta que encuentre un diseño que funcione. Por ejemplo, si está creando un programa de calendario, su prototipo sería un calendario básico (¡con fechas correctas!) y una forma de añadirle eventos.
- Su prototipo cambiará a menudo durante el ciclo de desarrollo a medida que se le ocurran nuevas formas de abordar los problemas o piense en una idea posterior que quiera incorporar.
- El prototipo no tiene que ser bonito. De hecho, el arte y el diseño deberían ser una de las últimas cosas en las que te centres. Utilizando de nuevo el ejemplo del calendario, lo más probable es que tu prototipo sea sólo texto.
4. Pruébalo una y otra vez. Los errores son la perdición de todo desarrollador. Los errores en el código y el uso inesperado pueden causar todo tipo de problemas en un producto terminado. Mientras sigues trabajando en tu proyecto, pruébalo todo lo que puedas. Haz todo lo que puedas para romperlo, y luego trata de evitar que se rompa en el futuro. Pide a tus amigos y familiares que prueben tu programa y te informen de los resultados. Cualquier forma en que pueda obtener retroalimentación ayudará a su proceso de desarrollo.
- Intente introducir fechas impares si su programa trata con fechas. Las fechas realmente antiguas o las fechas futuras lejanas pueden causar reacciones extrañas con el programa.
- Ingrese el tipo incorrecto de variables. Por ejemplo, si tiene un formulario que pide la edad del usuario, introduzca una palabra en su lugar y vea qué ocurre con el programa.
- Si su programa tiene una interfaz gráfica, haga clic en todo. ¿Qué ocurre cuando vuelves a una pantalla anterior o haces clic en los botones en el orden equivocado?
5. Pule tus proyectos. Aunque está bien hacer un proyecto en bruto para la fase de prototipado y desarrollo, si quieres que otros lo usen vas a tener que dedicar algo de tiempo a pulirlo. Esto significa asegurarse de que los menús fluyan de forma lógica, que la interfaz de usuario (UI) sea limpia y fácil de usar, que no haya errores evidentes o que no se note, y que tenga un buen acabado. La gente hace carreras enteras de diseño de interfaces de usuario. Sólo asegúrese de que su proyecto personal es fácil de usar y fácil en los ojos. Una interfaz de usuario profesional puede no ser posible sin un presupuesto y un equipo.
Si usted tiene el presupuesto, hay un montón de diseñadores gráficos independientes que potencialmente podría diseñar una interfaz de usuario en el contrato para usted. Si tienes un proyecto sólido que esperas que se convierta en la próxima gran cosa, encuentra un buen diseñador de interfaz de usuario y hazlo parte de tu equipo.
6. Pon tus proyectos en GitHub. GitHub es una comunidad de código abierto que te permite compartir tu código con otros. Esto le permitirá obtener una visión de su propio código, así como beneficiar a otros que están buscando soluciones que usted puede haber llegado. GitHub es un gran recurso de aprendizaje, así como una buena manera de construir su cartera.
7. Distribuir su software. Una vez que tengas un producto terminado, puedes elegir si quieres distribuirlo o no. Hay una variedad de formas en las que puedes hacer esto hoy en día, dependiendo del tipo de software que hayas creado.
- Una de las formas más comunes para que los equipos pequeños o los desarrolladores independientes distribuyan su software es a través de un sitio web personal. Asegúrate de que todas tus características están bien documentadas, e incluye algunas capturas de pantalla y tutoriales. Si estás vendiendo tu software, asegúrate de tener un buen sistema de pago digital y un servidor desde el que distribuir el software.
- Si estás desarrollando un software para un dispositivo o sistema operativo específico, hay múltiples tiendas digitales que puedes utilizar. Por ejemplo, si está creando software para dispositivos Android, puede vender su aplicación a través de la Google Play Store, la Amazon App Store o su propio sitio web personal.
Parte 3: Conseguir trabajo
- Acepte trabajos por contrato. Aunque estos trabajos no están tan bien pagados y son menos fiables que los empleos a tiempo completo, puedes aumentar significativamente tu cartera si aceptas una serie de trabajos por contrato. Consulta sitios como Elance y ODesk (ahora también conocido como «Upwork») para encontrar trabajo. Aunque puede ser difícil que te consideren para un contrato, una vez que consigas el primero será mucho más fácil.
- Hacker News es un gran recurso para trabajos de contrato y freelance. Revisa la sección «Ask».
- Aunque puede ser tentador ofertar poco para asegurar un trabajo por contrato, no vendas tus servicios a la baja. No sólo acabará trabajando más por menos de lo que merece, sino que también enfadará a otros en su campo, lo que le llevará a tener menos contactos.
- Un buen trabajo en un contrato puede llevar a veces a un puesto a tiempo completo. Siempre hay que dar lo mejor de uno mismo.
2. Establece una red de contactos en la medida de lo posible. Asiste a todas las convenciones y maratones que puedas. Esto no sólo te expondrá a más código y problemas que resolver, sino que también te ayudará a conocer a otras personas del sector. A pesar de lo que puedas pensar sobre los programadores que trabajan solos en su sótano, la mayoría de los desarrolladores a tiempo completo forman parte de un equipo y la creación de redes es tan importante como en cualquier otro campo.
3. Solicita puestos a tiempo completo. Una vez que tengas unos cuantos trabajos contratados en tu haber, puedes empezar a enviar tu currículum y tu cartera a organizaciones más grandes para conseguir un empleo a tiempo completo. Además de Monster y Indeed, hay una variedad de sitios de trabajo específicos para desarrolladores que deberías consultar, como GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite y Hacker News.
4. Diversifica tu conjunto de habilidades. Un buen desarrollador de software suele dominar más de un lenguaje. Aunque gran parte de lo que aprendas será en el trabajo, utiliza parte de tu tiempo libre para ampliar tus conocimientos y aprender los fundamentos de otro lenguaje o dos. Esto hará que la transición a nuevos proyectos sea mucho más fácil y te convertirá en un candidato laboral mucho más deseable.
5. No te preocupes por el salario. No todos los trabajos de desarrollo de software de nivel inicial van a pagar seis cifras. De hecho, ninguno lo hará. Lo bueno del desarrollo de software, sin embargo, es que el mercado de trabajo es increíblemente fuerte. Si sientes que no estás ganando lo suficiente donde estás, es relativamente fácil cambiar de puesto en una nueva empresa (si tienes las habilidades). Trate sus primeros trabajos como una experiencia necesaria en lugar de centrarse en su plan de jubilación.
Fuente: Cómo desarrollar software