Soy estudiante de BS CS. ¿Dónde puedo aprender a desarrollar software y productos?

Aprender a desarrollar productos completos requiere creatividad, no simplemente conocimiento técnico de un lenguaje de programación dado y cómo realizar operaciones lógicas. Un producto o software existe para resolver un problema y tiene que ser una herramienta útil para alguien e idealmente debería ser algo que ya no existe o que es mucho mejor de lo que existe. La enseñanza de la creatividad para desarrollar productos de software a menudo no se realiza en las escuelas de informática y, de todos modos, no es tan fácil de enseñar (¿cómo se enseña a alguien a inventar el automóvil, la rueda o la computadora? No …). Si desea desarrollar algo “nuevo” que sorprenderá al mercado, debe ser como un inventor. Si desea desarrollar productos en los que la empresa ya tiene un conjunto de “necesidades” definidas y sabe lo que quiere, este es un tipo diferente de creación de productos: aún requiere algo de creatividad, pero ya se le han dado muchos requisitos negocio que quiere construir el software. Entonces es más fácil. Pero nadie va a contratar a un programador principiante para construir su nuevo sistema de software; quieren a alguien con experiencia que pueda comprender qué otros problemas pueden surgir, probar errores y todo tipo de cosas que podrían no haber pensado sobre cuándo hicieron su lista de requisitos.

También debe comprender el mercado para el que desea crear un producto y comprender qué necesita y por qué. Dependiendo del mercado, es posible que también necesite comprender las regulaciones de cada país que utilizará su producto (o podría perder alguna posibilidad de configuración que ese país requiere para completar la tarea).

Esta es la razón por la cual los programadores junior no diseñan productos con mucha frecuencia, a menos que resulten naturalmente dotados de forma creativa y tengan un talento innato para comprender lo que podría “faltar” en alguna parte de lo que los humanos están haciendo (como una persona del tipo Steve Jobs, son más como inventores en ese caso y no hay precedentes ni una “necesidad comercial” definida).

A veces comienzan con una pequeña idea para resolver un deseo o necesidad personal donde están “en este momento” y resulta que se engancha con el “espíritu” cultural actual o algún cambio económico fundamental, por lo que simplemente se convierte en algo enorme, y son lo suficientemente inteligentes como para ver esto mientras sucede, y se aprovechan adecuadamente y hacen crecer el negocio sin destruir por completo el producto en el proceso (como Facebook o Airbnb, que cada uno comenzó como pequeñas ideas para un mercado muy local primero).

De lo contrario, la mayoría de las personas que diseñan productos de software para ganarse la vida aprenden esto trabajando en la industria para la que están interesados ​​en programar como programadores más jóvenes, y observando y aprendiendo y trabajando en proyectos con otros para construir el software que alguien más diseñó primero. Trabajar en un equipo con algunas buenas personas (asegúrese de que cuando lo contraten pueda encontrar programadores que respete o admire y de los que quiera aprender) y usarlos como mentores puede ayudar.

Entonces, o tienes algunos dones naturales para la creatividad y algunas buenas ideas y tienes la suerte de estar en el lugar correcto en el momento correcto con la “gran idea” correcta o simplemente trabajas duro en un área específica de interés o industria y observa cuidadosamente y aprende y crece a medida que avanzas. Si desea ser independiente y no crear software para alguna empresa ya existente, no olvide el lado comercial: habilidades de marketing, precios, aspectos legales de los derechos de autor, etc. Por lo tanto, no es solo técnico: son habilidades para la vida y habilidades comerciales y comprender a las personas y lo que podrían necesitar o desear, así como anticipar los errores que podrían cometer, etc. Hay una combinación de psicología humana, negocios, creatividad y técnica en cada producto de software bien diseñado

Si realmente desea aprender el desarrollo de software, debe unirse a un centro de desarrollo de software. Donde cobrarán honorarios pero le enseñarán cómo desarrollar software.

¿Por libros y sitio web nunca aprenderá el desarrollo de software? Solo aprenderás lo básico con nada más.

Necesitas un maestro para eso, no internet