Trabajo actual: trabajar como analista de negocios líder para una empresa Big 4, liderando un equipo de desarrolladores y probadores que trabajan en un proyecto de re-plataformas a gran escala (4 desarrolladores en tierra, 4 desarrolladores en alta mar, varios probadores en tierra / costa afuera). También trabaje en una capacidad similar en otros proyectos de menor escala.
Alcance de mi función: reunir / escribir requisitos, crear especificaciones funcionales, diseñar la interfaz de usuario (básicamente mapear todos los aspectos frontales del sistema), trabajar en estrecha colaboración con los desarrolladores para comunicar / aclarar requisitos y encontrar soluciones cuando lleguemos a obstáculos , redactando casos de prueba (y realizando gran parte de las pruebas), trabajando con la alta gerencia y las principales partes interesadas, administrando beta testers, creando guías de usuario y liderando sesiones de capacitación, brindando soporte técnico clave.
También escribo bastantes macros en Excel usando VBA (varias de mis macros ahora se usan en toda la empresa, por lo que tal vez haya alrededor de 1000 personas que las usan) y uso SQL a diario, tanto en los archivos compactos de SQL del programa confía en nuestros datos de SQL Server y cualquier base de datos de Access que creo. Los desarrolladores sienten que soy bastante bueno en este rol porque entiendo mucho sobre programación, limitaciones inherentes del sistema, estructura de las bases de datos, etc., así que es más fácil para mí comunicar ideas y proponer sugerencias cuando enfrentamos problemas.
Lo que realmente me interesa es desarrollar software. Realizo una buena cantidad de programación en VBA y he estado queriendo aprender C # por un tiempo (el equipo de desarrollo usa C #, reviso el código ocasionalmente por mi propio bien, pero no he tenido ninguna experiencia práctica al usarlo). Estoy interesado no solo en el proceso de negocio sino también en el aspecto técnico de las cosas, por lo que el rol tradicional de BA realmente no abre mi apetito por el tipo de cosas que quiero hacer. En este momento tengo algunos pequeños proyectos que los gerentes me han dado y estoy encontrando nuevas formas de hacerlo (como crear aplicaciones de acceso personalizadas), por lo que hay un poco aquí y allá para mantenerme interesado.
Mi pregunta es esta: lo que me gustaría hacer es crear aplicaciones de Excel o Access personalizadas para pequeñas empresas como un negocio independiente (trabajando como una tienda individual; tal vez tener un contratista ocasional dependiendo de la complejidad de un proyecto). Obviamente, esto comenzaría como una empresa a tiempo parcial mientras tengo un trabajo diario, pero eventualmente se convertirá en un trabajo a tiempo completo. ¿Me estoy engañando a mí mismo al pensar que puedo pasar de un programador de VBA a tiempo parcial / BA a ir a un negocio independiente a tiempo completo (donde comenzaría simplemente escribiendo aplicaciones personalizadas de Excel / Access en VBA)? ¿O no se intenta este tipo de cosas hasta que alguien gana años de experiencia en programación a tiempo completo? ¿Y hay incluso un mercado para este tipo de aplicaciones entre las pequeñas empresas (y tal vez las medianas)?
fuente
Respuestas:
No, no te estás engañando a ti mismo, ¡se puede hacer! Uno de los muchachos aquí hizo eso, aunque no conozco los detalles de cómo, pero creo que comenzó como un suscriptor, se convirtió en un BA para suscribir el desarrollo de software interal, luego de alguna manera pasó al desarrollo a tiempo completo. Supongo que ya tenía una formación técnica, como tú.
Podría funcionar mejor si intenta hacerlo primero con su empleador actual que hacerlo solo. Tendría mucho más apoyo y ayuda. Tal vez hable con su gerente y pregúntele cómo podría pasar a un rol de desarrollo dentro de la organización, probablemente en el mismo equipo para comenzar. De esa manera, ya conoce a todos y ellos lo conocen a usted y de lo que ya es capaz y pueden ayudarlo a capacitarlo más. Si tienes mucha, mucha suerte, tu empresa tendrá un presupuesto para enviarte a cursos para ponerte al día aún más rápido.
fuente
VBA y Access es la parte inferior de la escalera de programación. Si yo fuera tú, dispararía más alto ya que tienes habilidades SQL. Considere aprender SQL Server Reporting Services y crear informes o SSIS y realizar el procesamiento ETL. Esas son habilidades con una demanda bastante alta en este momento y está en una buena posición para hacerlas, ya que puede ser relativamente fácil ingresarlas en un entorno corporativo, especialmente si actualmente no hay nadie más que maneje esos roles para su empresa. Vería la experiencia del analista de negocios como una gran ventaja para un redactor de informes.
fuente
Se puede hacer. No será fácil, especialmente si quieres ser bueno en esto, ya que el desarrollo de software es una disciplina de ingeniería con problemas y dificultades no obvias que necesitarás aprender a reconocer y evitar. Eso tomará algunos años de estudio y práctica serios, pero si puede entender los conceptos, definitivamente puede convertirse en un programador, incluso si su experiencia es diferente.
fuente
Ya sea que tome años o años, depende en gran medida de usted, su horario, pero lo más importante, su nivel de interés, que tiende a estar vinculado a la aptitud. Si vives o trabajas en una ciudad y tienes la opción de viajar en masa, tómalo y usa ese tiempo de viaje incorporado para leer libros de tecnología. Cualquier cosa que te interese.
En cuanto a la audacia de pensar que puedes, no te preocupes. Decidir que probablemente podría manejar esa <insertar pila de complejidad desconocida aquí> es lo que hacen los desarrolladores. Eso no es arrogancia, es solo dar el primer paso.
Arrogante en tierra de desarrolladores se llama a sí mismo un desarrollador profesional cuando tiene una solución para todo y no ha aprendido nada nuevo desde la universidad. Ese es el problema con el desarrollo. Cuando dejas de aprender, tu carrera comienza a ir cuesta abajo, por lo que el interés es clave. Parece que tienes eso.
Así que adelante.
Tienes tu objetivo a la vista. El resto es dividir los grandes problemas de miedo en pequeños no tan temibles. Repita ad nauseum y será un desarrollador a tiempo completo que desearía que hubiera problemas más grandes / más aterradores de lo que solía haber antes.
fuente
Yo diría (si quieres empezar) ir con SICP - Estructura e interpretación de programas de computadora. Debería vincularlo, pero es más que solo un libro; hoy en día también puedes encontrar otras personas para estudiar el curso en línea. Es un libro realmente difícil: completar todos los ejercicios es algo que la mayoría de los desarrolladores no pueden hacer (desafortunadamente), pero es el mejor libro disponible. MIT OCW también es bueno, pero en mi humilde opinión, es una versión diluida de SICP para programación. Python está diseñado para ocultar la complejidad, en lugar de hacerte disfrutar de una manera enfermiza (como lo hace SICP).
Además, debe distinguir entre la programación como profesión y la programación como habilidad. Uno requiere dedicación a cosas como código hermoso, limpio y extensible, mientras que el otro no requiere más que habilidades algorítmicas (que en realidad es bastante). El "dictador benevolente" de Python, Guido van Rossum, argumenta que la programación será una habilidad esencial en los próximos años, pero las habilidades de desarrollo de software no lo serán, en ningún caso. La mayoría de los no desarrolladores escriben código para tirarlo (los desarrolladores también hacen esto a menudo). La cuestión es que la programación como carrera incluye muchas más cosas que la programación y es importante enderezar sus prioridades.
Lo más importante: asegúrese de amar la programación, no solo como me gusta. Es más que un trabajo de 9 a 5, es adoptar la filosofía de aprendizaje constante : la mayoría de los ingenieros se capacitan durante su BS o MSc y no ven cambios significativos en su campo de especialización. Una carrera de por vida en programación te hará ver al menos 10 cambios de paradigma (no solo lenguajes, sino herramientas, bases de datos, etc.), por lo que es mejor que estés listo (y dispuesto) a aceptar esto.
fuente
Creo que estás en una buena posición para hacer esto.
La mayor parte de mi carrera he estado profundamente inmerso en el aspecto técnico de las cosas, sin embargo, durante años de observar que muchos proyectos tienen éxito o fracasaron, he llegado a la conclusión:
Si no comprende a los usuarios de su empresa y sus requisitos, su proyecto fallará.
Nunca he visto una excepción a esta regla y ninguna cantidad de dinero, hardware o genio de la programación parece hacer ninguna diferencia. Los proyectos verdaderos con una buena comprensión de los requisitos pueden fallar debido a hardware, software mal elegidos, falta de presupuesto o falta de habilidades, pero en su mayor parte estos proyectos pueden o podrían haber sido rescatados.
Por lo tanto, su buena base en BA y los requisitos le darán una perspectiva que algunas de sus universidades tecnológicas más talentosas pueden carecer, el resto lo puede aprender.
fuente