Index » Conocimiento

¿Puedo aprender a codificar y convertirme en ingeniero sin experiencia correcta?

January 24290AdminInternet
Advertisement

Tengo 25 años y trabajo como analista de negocios. Quisiera cambiar la trayectoria de carrera y conseguir en la ingeniería de datos y también hacer un cierto desarrollo del tablero de instrumentos de Javascript. Voy a ser capaz de entrar en la puesta en marcha como ingeniero. Si es así, cómo retirarlo y cómo prepararse para la carrera mientras trabaja a tiempo completo


Eres joven, tienes mucho tiempo. Así que, sí, se puede aprender a código y convertirse en un ingeniero.

Sin embargo, usted no trabajará para una puesta en marcha en cualquier momento pronto. Un arranque debe ser rápido y ágil. No puede permitirse ningún estropeo. "Tiempo de comercialización" es fundamental para todo tipo de razones competitivas. Así que necesitan personas experimentadas, no principiantes ni personal de nivel de entrada.

Pasarán años antes de sacudir tu estatus de principiante. Se necesita tiempo y práctica para convertirse en un programador competente. Debe practicar la escritura de software, y mucho de ello. Esto no sucederá en 6 meses ni un año. Ni siquiera dos años.

Así que tómalo con calma. Se paciente. Aprenda y adquiera experiencia. No hay atajos. No se puede comprimir años de experiencia en meses (no importa lo que bootcamps decirle).

La primera cosa que usted debe centrarse en es aprender a programar. Y la mejor manera de aprender, en mi opinión, es comenzar con Smalltalk: vea la respuesta de Richard Eng a ¿Por qué debo aprender a programar, y qué idioma debo aprender?


Sí.

"La riqueza se recoge poco a poco"

Hay un viejo proverbio que dice: "La riqueza se recoge poco a poco." El conocimiento no es diferente, especialmente el conocimiento de cómo programar. Es más un viaje que un sprint.

Aquí está mi viaje:

Comencé hace cuatro años (tal vez cuatro ahora) con un papel de nivel de entrada en una agencia de seguros. Era lo más lejos de hacer algo cercano a la programación, pero siempre tenía un don para entender y averiguar cómo funcionaban los diferentes sistemas tecnológicos y cómo usarlos para hacer mi trabajo más eficiente (para trabajar más inteligente, no más difícil).

Entonces, una noche estaba sentado en casa y decidí de repente que quería aprender a construir un sitio web. Me enganché. Unas cuantas horas de lectura y jugueteado se convirtieron en unas pocas horas más y lo siguiente que supe era que eran las 4:00 de la mañana y tenía que estar despierto para trabajar en tres horas, pero había encontrado mi nicho.

A partir de ese día, empecé a aprender todo lo que podía sobre la programación, cada lenguaje, cada marco, bases de datos, proyectos de código abierto para poder ver el código base, todo ello cada vez que podía encontrar un momento libre, que solía llegar tarde a la Noche desde que estaba casada con un niño pequeño y un recién nacido, aunque también significaba que tenía que sacar el máximo provecho de mi tiempo en el trabajo ya que tenía las interrupciones menos para que pudiera aprender esta información, así como justificar por qué me iba Así que no conseguí despedido (la manera más fácil era encontrar algo que deseé aprender alrededor y buscar un problema que podría resolver si lo sabía es decir. Si quisiera aprender más sobre la construcción de formas, entonces necesitaba encontrar un dolor Punto en mi papel que la solución de un formulario web valdría la pena y justificable a la alta dirección).

Finalmente encontré un papel en otra compañía de seguros que tenía más de un nicho tecnológico. Allí utilicé mi conocimiento de diferentes tecnologías para implementar en nuestra división y agilizar los procesos. Esto me movió en un papel de encargado de proceso. No fue un trabajo de ingeniería a tiempo completo, pero me puso en el camino correcto para pasar más tiempo abordando procesos ineficientes y el uso de esos problemas para justificar juguetear y practicar mis habilidades de programación tratando de conectarse a una API o hacer un contacto o construir Un sitio web estático por diversas razones.

El mayor desafío fue que esta función fue de 1,5 horas de mi casa, pero hice el viaje cinco días a la semana, 3 horas de ida y vuelta y utilizó ese tiempo para aprender a escuchar podcasts sobre la programación o pensar en cómo podría superar un obstáculo técnico O cómo pude ajustar el código para hacer lo que necesitaba.

Justo después de un año en la compañía me conmutó 3 horas ida y vuelta a que fue despedido junto con el resto de mi departamento después de que perdió a un cliente importante.

Estuve sin trabajo durante dos meses pero tuve suficientes ahorros durante ese tiempo para considerar mis opciones para mi siguiente rol. Pero de nuevo vi una oportunidad de seguir aprendiendo a programar y solucionar un problema y usar ese tiempo para forjar un proyecto de Ruby-on-Rails y convertirlo en un sitio de venta de garajes / venta de garajes donde la gente podía listar su venta que estaban teniendo y La gente podría utilizar el Web site para ver donde la venta de yarda fue situada en un mapa en comparación con seguir una dirección que pueda conseguir complicada en ciudades pequeñas.

A pesar de que el sitio web no despegó (a la gente le gustaba usarlo para encontrar ventas, simplemente no quería tomar el tiempo para agregar sus ventas a ella), me dio mucha confianza - especialmente con la depuración Página web fue originalmente en portugués que fue un desafío, el siguiente fue cuando todo el asunto dejó de funcionar y finalmente lo rastreó hasta la nueva versión de jQuery que se está liberando.

"Una piedra que rueda no acumula musgo"

"Una piedra rodante no reúne musgo" como dicen, y lo consideré mientras planeaba mi siguiente movimiento profesional.

Yo no tenía suficiente confianza en mis habilidades para tomar el salto como programador de tiempo completo, potencialmente tomar un pago de corte y dejar mi conocimiento de la industria de seguros detrás (mi mayor activo comercializable). Decidí en lugar de construir de lo que sabía (seguro) y encontrar una empresa de tecnología para las compañías de seguros para utilizar mi conocimiento de seguros para entrar en la puerta.

Mi idea era que si pudiera entrar en la puerta de una empresa de tecnología, entonces podría trabajar mi camino hacia ese departamento de Dev.

Y eso es exactamente lo que hice.

Encontré una compañía, uno de los vendedores que utilizamos en mi anterior empleador, y tomé un rol de nivel de entrada como Gerente de Cuenta. A partir de ahí hice lo que hice en cada papel antes: he encontrado ineficiencias en nuestros procesos y tecnología utilizada y lo que yo sabía de la programación y la escritura de código para automatizar y mejorar.

Mi descubrimiento finalmente vino cuando encontré una manera de automatizar nuestras pruebas manuales de las construcciones del sistema que construimos para los clientes. Rápidamente me cansé de probar 30 escenarios diferentes por construir que en sí mismo había 50 elementos diferentes para comprobar por cada escenario, por lo que utilizó una biblioteca llamada Selenium Webdriver para Python para automatizar todo este proceso de principio a fin, así como tomar capturas de pantalla En los puntos clave de la compilación para que todo lo que tenía que hacer era revisar las capturas de pantalla de precisión. Me salvó casi 10 horas de tiempo a la semana.

Pero no me detuve allí. Utilicé 10 horas extras que ahorré cada semana para seguir practicando, para seguir aprendiendo, para seguir resolviendo problemas.

Esa combinación condujo al Director de Desarrollo de Producto tomando nota y me dio una invitación abierta para unirse al Departamento de Desarrollo cuando me sentí preparado.

Incluso en ese momento todavía no estaba muy listo o confiado suficiente con mis habilidades para saltar a un papel de desarrollador junior (especialmente porque trabajo a distancia y sólo estaba en la oficina una semana al mes), pero un papel de Business Analyst abrió En el departamento de desarrollo que era exactamente la oportunidad y el papel de transición perfecta que había estado buscando. Fue un puente perfecto de lo que sabía (seguro) y utilizando ese conocimiento para ayudar a los procesos y flujos de nuestro software - yo era un traductor entre los aspectos técnicos y no técnicos de nuestra empresa y el papel justifica constantemente la necesidad de Aprender más sobre la programación técnica al integrar sistemas por ejemplo.

Y una vez más usé ese conocimiento y mi nuevo rol para hacer crecer mis habilidades de programación un poco más y usar los retos de la vida real en nuestra compañía para traer soluciones a la vida, pero esta vez he hablado con el Arquitecto de Soluciones (Ie Jefe de Desarrolladores) Estoy actualmente en el proceso de transición a Desarrollo a tiempo completo.

Verás, fue un viaje con todos los posibles obstáculos que podría haber, pero si buscas la oportunidad con esos obstáculos y si es lo que realmente quieres hacer, no hay razón para que no puedas hacer esa transición también ( Gracioso - ahora que pienso en eso yo tenía 25 años, también, cuando comencé mi viaje).

Te deseo lo mejor.


A2A

La programación es probablemente el campo más fácil de entrar sin experiencia previa. Realmente puede aprender todos los conceptos básicos de los libros; Al menos, suficiente para obtener un trabajo de nivel de entrada.

Después de eso, tendrá que obtener OJT para ganar experiencia, porque hay un montón de facetas de la programación en el mundo real que los libros e incluso proyectos personales no te preparan.

Lo más importante que buscan los empleadores es la experiencia práctica. Si puedes crear algunos programas que demuestren tu conocimiento y habilidad para aprender cosas nuevas, eso debería ser suficiente para ponerte en la puerta.

Su mejor apuesta es dejar que su empresa actual sabe de sus intenciones y ver si le permiten trabajar con cualquier programador en el lugar. De esa manera, usted ganará experiencia en un campo que ya sabe algo acerca de, por lo que la transición será más fácil.


No. Aprender a codificar y convertirse en un ingeniero requiere experiencia. Pero eso no es realmente lo que estás pidiendo - al menos creo que lo que estás preguntando es si puedes conseguir la experiencia necesaria, y si es así, cómo. A esa pregunta, la respuesta es tal vez, y hasta cierto punto.

Como un analista de negocios, presumiblemente ya tienen algunas habilidades y experiencia en la recopilación, organización y análisis de datos - en papel, y se podría esperar, con herramientas informáticas. Al menos, los analistas de negocios que conozco (o contrataría) entienden estadísticas, pueden construir hojas de cálculo complejas y escribir consultas de base de datos para rellenar esas hojas de cálculo con datos sin procesar. Tal vez puedan trabajar con cubos OLAP.

Ese es un buen comienzo para la ciencia de los datos. Esas son las habilidades que uno necesita para ser un científico de datos, tal vez con un poco de programación especializada añadida (por ejemplo, escribir rutinas analíticas en MATLAB o R).

Data ENGINEERING puede requerir un poco más - especialmente una comprensión de las estructuras de datos y bases de datos. Es decir, las capacidades y limitaciones de diferentes tecnologías y plataformas, y cómo organizar los datos para un almacenamiento y procesamiento eficientes. Ese es un conjunto bastante estrecho de conocimientos y habilidades - que no necesariamente necesitan una gran cantidad de ciencias de la computación o de ingeniería de software de fondo (desarrollo de Hadoop y la HFS eran puestos de trabajo para los científicos serios, sabiendo cuándo y cómo usarlos, no tanto) .

En cuanto al desarrollo de cuadros de mando - hay muchas herramientas y marcos para la construcción de salpicaderos - la mayoría de los cuales requieren poco o ningún conocimiento de programación / ingeniería. Generalmente, es más sencillo crear un panel de control que construir una hoja de cálculo. (Podría decirse que la construcción de hojas de cálculo, en particular las macros y extensiones, es una forma de programación -. Que es de esperar ya sabe cómo hacerlo)

Con un poco más de estudio y experiencia, podría ser capaz de desarrollar herramientas analíticas de negocios - de las cuales son un ejemplo, pero tal vez mejores ejemplos podría ser un conjunto de cuadros de mando específicos (para un tipo específico de análisis), o una colección de pre O una colección de bibliotecas R para analizar negocios en una industria específica, o un sitio web para la selección de valores. Más allá de eso, herramientas como un "kit de construcción de tablero" empiezan a requerir más en la forma de habilidades y experiencia en ingeniería de software.

Ahora, cuando se trata de "entrar en un arranque como un ingeniero" - que es una bola de cera totalmente diferente. Como un ingeniero de software - probablemente no - que es un campo totalmente nuevo para usted, y se necesita mucho estudio y experiencia antes de que pueda ser útil a nadie. Como un "experto en la materia", en la analítica de negocios, con tal vez algunas habilidades de ingeniería de datos - seguro, ese es un paso natural desde donde estás ahora. Por supuesto, eso deja la cuestión de encontrar un arranque que necesita su conjunto de habilidades, y tiene cierto potencial para el éxito (por ejemplo, la financiación, un buen equipo en general y plan).

Advertencia: Todo esto se basa en la suposición de que tiene algunas habilidades de análisis de negocio serio para construir, como se ha explicado anteriormente. En ese caso, probablemente puede recoger las habilidades relacionadas con el software de unos cuantos cursos en línea. Por otro lado, si lo que realmente estás haciendo es el trabajo clerical básico, sin un fondo de negocios / analítica - estás en la primera plaza, y tienes mucho más por recorrer.