repair - sistemas - Convertirse en un programador profesional/ingeniero de software
para que sirve la ingenieria de software (13)
Esto no se trata estrictamente de programación, más acerca de ser un programador, así que lo siento si no es el tipo correcto de pregunta para hacer en este foro (mod, por favor elimine si no es así)
Soy técnico en informática en el ejército de EE. UU., Y una vez que esté fuera tendré ocho años en el trabajo. Estoy a punto de comenzar un grado a través de una escuela en línea (la única forma en que puedo lograr que el ejército pague por ella mientras todavía estoy), y estoy buscando seriamente obtener un título en ciencias de la computación.
Estoy genial con las computadoras. Puedo desarmarlo y ponerlo de nuevo junto con los ojos cerrados. Tengo certificación A + y Network + y estoy obteniendo un par de certificaciones de CompTIA antes de salir. Puedo trabajar con Windows tan bien como cualquiera en este planeta y no soy terrible con Linux. Un trabajo en las computadoras es algo que siempre he querido.
Pero, aparte de ser un técnico en computación, parece que cada trabajo en el campo requiere capacidad de programación. Me gusta programar como hobby. Programé TI BASIC en la escuela secundaria y me enseño a mí mismo Python, pero eso es lo que mi experiencia dice. Ese tipo de preguntas me llevan a mis preguntas:
Siempre escuché que el primer idioma es el más difícil, y una vez que lo aprendes bien, todos los demás se ponen en tu lugar. ¿Es eso cierto? Por ejemplo, si me paso los siguientes ocho meses dominando Python, ¿podré retomar al menos la competencia justa en cualquier otro idioma de OO dentro de un mes de estudiarlo o lo que sea?
¿Qué tan fácil es quemarse? Lo más importante a lo que le tengo miedo es simplemente agotarme en la programación. Puedo ir todo el día si estoy programando estrictamente para mi propio deseo personal, pero me imagino que es muy fácil quemar después de unos años de programación a plazos y ciertas especificaciones. Especialmente si es un gran proyecto que involucra a una docena de diseñadores diferentes.
Por lo que te dije sobre mí, ¿ya estaría calificado para trabajar como técnico regular (tipo escuadrón geek o tal vez manejando un taller de reparación de computadoras)?
¿Es Python una buena base para aprender? He oído que te hace odiar otros idiomas porque se sienten más intrincados al aprender, pero también que es un gran lenguaje para principiantes.
Si eres un programador profesional, ¿tenías los mismos miedos?
¿Me recomendaría que me atenga a la reparación de computadoras y a Python en lugar de tratar de ingresar a la programación corporativa? (solo de lo que has leído en este hilo, de todos modos)
Gracias por tomarse el tiempo para leer todo esto y responder (si lo hizo)
el primer idioma es el más difícil,
Lo primero es lo más difícil. Intenta cambiar de esquís a una tabla de snowboard.
si me paso los próximos ocho meses dominando Python, ¿podré retomar al menos la competencia justa en cualquier otro idioma OO dentro de un mes de estudiarlo o lo que sea?
¿Un mes? No. ¿Finalmente? Sí.
¿Qué tan fácil es quemarse?
Es un trabajo. ¿Qué tan fácil es quemarse en cualquier trabajo?
¿Es Python una buena base para aprender?
Te hace odiar otros idiomas porque se sienten más intrincados al aprender.
¿Asi que? Es un trabajo. Cada pocos años hay una nueva tecnología que (a) debes aprender y (b) no se compara bien con ninguna tecnología anterior.
Bummer en eso. Después de 35 años de programación, solo puedo decir que tienes razón. Todo lo nuevo es malo y todo lo que ya sabes es mejor.
Si eres un programador profesional, ¿tenías los mismos miedos?
No. Ninguna de las cosas que mencionas importa mucho.
Tenga miedo de que las empresas mal gestionadas criminalmente quiebren. Eso es algo de lo que temer.
¿Miedo a una nueva tecnología? Por favor. Sumérgete. Consigue un trabajo. Si no te gusta, desarrolla nuevas habilidades, consigue otros trabajos.
¿Me recomendaría que me atenga a la reparación de computadoras y a Python en lugar de tratar de ingresar a la programación corporativa?
Nuevamente, no importa. En 30 años a partir de ahora, nada de esto existirá y todos programaremos con lenguajes que aún no se han inventado en interfaces de usuario que ni siquiera existen en las películas.
Cuando comencé, marcamos nuestros programas en tarjetas de papel. De Verdad.
Si temes al futuro, temes a la vida misma. No te preocupes Desarrolla nuevas habilidades tan rápido como puedas.
- Aprender cualquier idioma ayuda a aprender idiomas posteriores, pero cada uno tiene sus propias ventajas y desventajas que tomará tiempo para asimilar. Lo mejor que puedes hacer es tratar de obtener tanta experiencia en tantos idiomas como puedas. Ciertamente te quemarás a menos que tengas un propósito para aprender cada uno, así que no tomes veinte a la vez y con cada uno que aprendas asegúrate de que haya una razón para ello (por ejemplo, aprender JavaScript para poder desarrollar un AJAX basado en página web.)
- Su tolerancia al agotamiento está directamente relacionada con la motivación que tiene para el proyecto en el que está trabajando y su fortaleza intestinal al pasar las partes del proyecto que no le resultan interesantes. Durante estas últimas fases, voy a adoptar instintivamente proyectos de mascotas para no aburrirme hasta la muerte, lo que definitivamente me ayuda.
- Me imagino que estás calificado, pero esas carreras no están relacionadas con el desarrollo de aplicaciones de software. Mi recomendación sería tratar de encontrar un trabajo de nivel de entrada que realmente implique programación; si disfrutas de la ciencia de la computación, creo que la encontrarás mucho más satisfactoria en general.
- Comencé en BASIC, luego migré rápidamente a C y C ++, luego me ramifiqué en lo que sea que necesitaba aprender para hacer el trabajo. Mi sugerencia (algo relacionada con la respuesta n. ° 1) es que, donde sea que comiences, sigues adelante . No "juzgue un idioma por su cubierta", por así decirlo; en lugar de aprenderlo por ti mismo y sacar tus propias conclusiones sobre cuánto lo disfrutas / desprecias.
- Sin miedos reales; la verdad es que a las empresas les encanta encontrar, contratar y retener a los mejores desarrolladores. Siempre y cuando ames el desarrollo de software, eso se reflejará en lo que produces y se notará cuando alguien busque contratar.
- Intentaría un enfoque gradual. Comience su propio proyecto de mascota, aprenda Python, póngase cómodo con la programación y vea cuánto le gusta. Creo que la mejor persona que puede responder a la pregunta que ha planteado aquí es usted mismo; comienza pequeño, y si te gusta, hazte un poco más grande. Desde allí, retrocede o avanza hasta que confíes en que una pista u otra es donde yace tu verdadera pasión por la computadora.
- Como alguien dijo, lo primero es difícil. La programación no es diferente, y puede llevarle un tiempo comprenderlo. Sin embargo, las cosas lentamente hacen clic en su lugar.
- No puedo responder esto
- Más probable. Trabajar para el ejército seguro que se ve bien en un currículum.
- Lo odio porque una vez que miras otro código, te hace vomitar. Aprende algo como C #.
- N / A
- Me parece que prefieres arreglar las computadoras. Supongo que podrías programar como un hobby y luego convertirte en desarrollador, pero eso lleva tiempo.
El primer idioma es ciertamente el más difícil ya que también necesita aprender los conceptos junto con él, como matrices, colecciones de objetos y flujo de programa. El segundo idioma que aprende tiene muchas "Oh, es como este del idioma uno, excepto con una pequeña diferencia"
No me podía imaginar quemando programación, pero eso es probablemente porque realmente lo disfruto y he desarrollado un método. Estoy bebiendo agua o té constantemente y, si no hago ningún progreso (es decir, estoy estancado), me tomo un descanso e intento olvidarme de lo que estoy codificando. El problema será más claro cuando regrese.
Después de haber estudiado A + y Network +, seguramente diría que tiene las habilidades para dirigir un taller de reparación o ser un técnico general de PC.
Todavía no aprendí Python (estoy planeando hacerlo pronto), pero por lo que he leído al respecto, es un poderoso lenguaje orientado a objetos que tiene muchas características modernas. Entonces, espero que sea un comienzo decente. Personalmente comencé con Java en los años 90 y luego aprendí C / C ++. Creo que aprender uno de Java, C # o C ++ (sin un orden específico) es importante como programador, solo porque actualmente son los idiomas más populares.
Tuve suerte y sabía que quería codificar desde que estaba en la escuela primaria. Entonces no puedo decir que he tenido las mismas ansiedades que tú.
Antes de tomar esa decisión, debes aprender a codificar. Una vez que empiezas a verlo, verás si te queda bien. Buscaría un trabajo de tecnología y pasaría un tiempo inactivo o una programación personal de aprendizaje de tiempo. Si te gusta más que reparar, entonces toma la inmersión.
Mi formación: soy un estudiante de informática con una concentración en ingeniería de software en la Universidad de Waterloo en mi último trimestre. Actualmente estoy en las últimas etapas de la entrevista con Google y Amazon. He tenido el equivalente de 2 años en prácticas en RIM, Sybase y algunas otras compañías de desarrollo.
Sí. Aprenderá nuevos idiomas fácilmente después de eso. Puedes aprender tu segundo idioma en un mes más o menos, si tienes alguna tarea interesante que hacer en ese lenguaje de programación, de lo contrario podrías pasar años y no conseguirlo (esa es mi experiencia personal).
Varía de cada individuo y con la edad. :)
Yeap, pero yo (subjetivamente hablando) intentaría entrar en el mundo de la programación
Bueno, podrías comenzar a aprender BF y amar cualquier cosa que venga después de eso. Creo que Python es genial para empezar, pero es probable que cualquier cosa después de eso se sienta demasiado detallado.
Y muchos otros
goto
mi respuesta en 3
De nada
1) Los idiomas adicionales vendrán más fácilmente porque en muchos sentidos son sintaxis en términos de conceptos de programación. Una vez que comprende los conceptos, el resto se trata de comprender los matices y la sintaxis de un idioma que resulta más fácil, ya que cada lenguaje, como los conceptos, realmente no cambian mucho entre los idiomas, por lo que hay menos obstáculos para que aprenda la sintaxis.
2) Burn out dependerá de muchos factores, pero rara vez me quedo sin programación. Como programador, siempre hay tantas cosas por hacer que puede ser un trabajo muy variado. También considere que, a menos que esté programando solo, es un trabajo muy interactivo con comunicación continua entre usted, otros programadores y la gente de negocios que requieren sus habilidades. Lo que me impide quemarme es la increíble cantidad de cosas que hay que aprender y jugar en el mundo de la programación :)
3) Ciertamente parece que está bien calificado para hacer ese trabajo. Sin embargo, la pregunta más pertinente es, ¿es lo que quieres hacer?
4) No soy un experto en python, pero sí sé un poco. Cada idioma tiene sus matices, y Python no es diferente. Creo que es una opción razonable para aprender a programar y ser un experto lo ayudará a aprender otros lenguajes orientados a objetos. Si una carrera en programación es algo que está considerando seriamente, entonces Java o C # pueden ser mejores opciones ya que estos son los dos idiomas más comunes utilizados en el mundo corporativo. También están muy cerca sintácticamente también.
5) Como programador junior, me preocupé por el agotamiento y "esta es la elección profesional correcta", pero esto no duró mucho ya que me di cuenta de que me encanta programar y que la gran cantidad de cosas para aprender y aplicar yo feliz y ocupado Claro, tengo días muy malos en el trabajo en los que estoy totalmente harto de lo que estoy trabajando en este momento, pero estos son raros y realmente valoro todas las oportunidades y desafíos variados que conlleva ser un programador.
6) Bueno, ¿es la programación adecuada para ti? Eso solo es para que respondas, pero algunas preguntas en las que quizás quieras pensar: ¿te gusta programar más que el hardware? ¿Hay otras maneras de emplear sus talentos de hardware además de la reparación? Por ejemplo, ¿podría disfrutar de la ingeniería eléctrica (donde podría emplear tanto sus talentos de hardware como sus habilidades básicas de programación simultáneamente)?
De todos modos, en mi lugar de trabajo (gran corporación financiera) me parece que hay más oportunidades, variados e interesantes trabajos disponibles para los programadores que los técnicos en computación, pero esta es probablemente mi propia opinión sesgada :) Vaya con su corazón, el resto lo hará. seguir.
Grandes preguntas y la mejor de las suertes en su búsqueda.
1) Sí, aprender tu primer idioma será el más difícil. Definitivamente será más fácil aprender idiomas futuros, aunque aún tomará algún trabajo.
2) Fui a la universidad y obtuve un título en Ciencias de la Computación y he sido desarrollador de software por más de 8 años. No estoy de ninguna manera agotado. Todo lo contrario ... parece que estoy entrando en mi mejor momento :-)
3) Absolutamente, estás listo.
4) Sí, es bueno que estés aprendiendo un lenguaje orientado a objetos. La mayoría de las vacantes de trabajo que veo son para desarrolladores .NET o Java ... ambos lenguajes orientados a objetos.
5) Mi mayor temor era no ser "bueno" como programador cuando aprendía por primera vez. Seamos realistas, la programación puede ser un mundo complejo, pero divertido. Todos tenemos miedos. Si te gusta la programación y estás motivado por ti mismo, tendrás éxito.
6) Deberías hacer lo que más disfrutas. Por lo que vale, lo más probable es obtener un poco más de un software de desarrollo de verificación en comparación con la reparación de computadoras.
Antes que nada. Creo que sería útil si tuvieras algún contexto en términos de experiencia. Soy un Gerente Técnico con más de 20 años de experiencia en diversas tecnologías, pero mi pasión está en la Interfaz de Usuario y actualmente estoy trabajando en un proyecto para desarrollar una Aplicación Flex.
Ahora a mi entrada.
1) Desea comenzar con un lenguaje estructurado que proporcione herramientas gratuitas. Java es bueno, en mi opinión. Si desea hacer una carrera de esto y parece que lo hace, un título es una gran ventaja. No tengo ninguna experiencia en Python, pero desde mi experiencia, por lo general, no se considera un buen lenguaje de aprendizaje.
2) Depende ... Lo he estado haciendo por más de 20 años. Como ya le dije a muchas personas, encuentre su pasión y sígala. Por supuesto, ser inteligente acerca de sus elecciones juega un papel importante, pero si quiere una oportunidad y longevidad, entonces tener pasión por lo que hace es una gran parte de eso. Si ya está cuestionando la posibilidad, investigue más y encuentre un área de software que realmente le guste y trabaje para aprender todo lo que pueda sobre esa área. (Para mí fueron UI).
3) Geek Squad no es de lo que trata el desarrollo de software.
4) En mi opinión ... Comenzaría con Java.
5) No. Pasé de Pascal a C / C ++, de Java a Flex. Para las personas con una mente abierta y flexibilidad, hay oportunidades en el campo. El mayor temor que tienen la mayoría de los desarrolladores es en alta mar. Definitivamente un hecho de la vida y la mayoría de las frustraciones en mi carrera están totalmente fuera de la codificación real. Es el proceso y la forma en que funciona con un negocio que generalmente causa más dolor.
6) Encuentra tu pasión y síguela. Te da la mayor posibilidad de éxito en mi opinión. Oh ... y sé realista. Yo quería jugar al béisbol, pero para mí no era realista.
La programación es una elección fantástica, para mucha gente parecerá geek y lúgubre, pero es un trabajo donde nunca dejas de aprender.
Habiendo dicho eso (y no querer repetir lo que otros ya han dicho), si estás buscando ingresar en una empresa, entonces debes estar preparado para hacer tu tiempo, es probable que tengas que comenzar desde abajo con una mierda salario y hacerlo unos años antes de que el dinero se vuelva bueno.
Sin embargo, su formación en redes y construcción va a ser muy buena, lo convertirá en un desarrollador muy completo porque tiene conocimientos de conceptos fuera del mundo de la programación normal.
La ruta clásica para el ingeniero de software profesional es a través de una Licenciatura en Ciencias de la Computación (o Ingeniero de Software, pero esa especialización es rara), con pasantías en los veranos sophmore y junior. Está calificado para comenzar el BSCS y hacerlo bien.
El primer idioma es mentalmente duro y frustrante, el segundo idioma está volviendo a aprender a pensar, el tercer idioma es bastante trivial.
Con respecto a Python, es un primer idioma aceptable y no debe ser estornudado. Para completar, querrás saber Assembly / C / C # / (uno de F #, Haskell, Lisp) cuando vayas a buscar trabajo.
No soy un experto en Python, por lo que me niego a comentar si sus instalaciones OO están listas para fumar.
Las computadoras siempre necesitarán reparación. Puede encontrar un nicho en el mundo IT / IS de soporte de sistema altamente calificado más a sus habilidades actuales. (www.serverfault.com es un buen lugar para echar un vistazo a esa parte del mundo).
editar:
El calificador básico es el deseo y su capacidad para repasar las cosas difíciles y llegar a las capas blandas y masticables. Es un trabajo, es un trabajo, puede ser divertido, pero al final del día, el trabajo siempre es efectivo. ¿Quieres hacer este trabajo o algún otro trabajo? Solo tú puedes responder eso.
Parece que ya puedes conseguir un trabajo en un taller de reparación o en el departamento de TI de una gran empresa. A partir de ahí, siempre hay posibilidades de mover otras posiciones.
¡Soy un desarrollador de software y puedo entender la fascinación! Python es un buen lenguaje para aprender, es relativamente fácil de aprender y puede ser útil rápidamente. Si desea convertirse rápidamente en un desarrollador experimentado, le sugiero que aprenda algo mucho más difícil para su próximo idioma: C, luego C ++. Son mucho más bajos que Python, hacen menos trabajo para ti. Esto te hace menos productivo inicialmente, pero significa que se ejecutan mucho más rápido. Desde una perspectiva de aprendizaje, te obligarán a aprender más sobre cómo las computadoras realmente ejecutan programas, lo que te convertirá en un mejor programador.
Lo más importante es que ya tienes algo que no puedes comprar o aprender. Eres lo suficientemente apasionado sobre el campo para aprender a programar en tu propio tiempo, y te importa hacer un buen trabajo. Eso te da algo que (lamentablemente) muchos desarrolladores profesionales ya no tienen.
¡Buena suerte!
Peter Norvig, jefe de investigación en Google, tiene una excelente publicación al convertirse en profesional:
http://norvig.com/21-days.html
Aquí hay algunos de los puntos principales de él de su artículo (cita directa, palabras de Pedro):
Interesarse en la programación y hacer algo porque es divertido. Asegúrese de que siga siendo lo suficientemente divertido como para estar dispuesto a poner en diez años.
Habla con otros programadores; lee otros programas Esto es más importante que cualquier libro o curso de capacitación.
Programa. El mejor tipo de aprendizaje es aprender haciendo. Para decirlo más técnicamente, "el nivel máximo de rendimiento para individuos en un dominio dado no se alcanza automáticamente en función de la experiencia extendida, pero el nivel de rendimiento puede aumentar incluso por individuos con mucha experiencia como resultado de esfuerzos deliberados para mejorar " (p.366) y "el aprendizaje más efectivo requiere una tarea bien definida con un nivel de dificultad apropiado para el individuo en particular, retroalimentación informativa y oportunidades para la repetición y correcciones de errores". (p.20-21) El libro Cognición en la práctica: Mente, Matemáticas y Cultura en la vida cotidiana es una referencia interesante para este punto de vista.
Si lo desea, ingrese cuatro años en una universidad (o más en una escuela de postgrado). Esto le dará acceso a algunos trabajos que requieren credenciales, y le dará una comprensión más profunda del campo, pero si no disfruta de la escuela, puede (con algo de dedicación) obtener una experiencia similar en el trabajo. En cualquier caso, el aprendizaje de libros solo no será suficiente. "La enseñanza de las ciencias de la computación no puede hacer que nadie sea un programador experto, como tampoco estudiar los pinceles y el pigmento puede hacer que alguien sea un pintor experto", dice Eric Raymond, autor de The New Hacker''s Dictionary. Uno de los mejores programadores que jamás contraté tenía solo un diploma de secundaria; ha producido un gran software, tiene su propio grupo de noticias e hizo lo suficiente en opciones sobre acciones para comprar su propio club nocturno.
Trabajar en proyectos con otros programadores. Sé el mejor programador en algunos proyectos; ser el peor en algunos otros. Cuando eres el mejor, puedes probar tus habilidades para dirigir un proyecto e inspirar a otros con tu visión. Cuando eres el peor, aprendes lo que hacen los maestros y aprendes lo que no les gusta hacer (porque te obligan a hacerlo por ellos).
Trabajar en proyectos después de otros programadores. Participar en la comprensión de un programa escrito por otra persona. Vea lo que se necesita para comprenderlo y solucionarlo cuando los programadores originales no están cerca. Piense en cómo diseñar sus programas para que sea más fácil para quienes lo mantendrán después de usted.
Aprende al menos media docena de lenguajes de programación. Incluya un lenguaje que admita abstracciones de clase (como Java o C ++), uno que admita abstracción funcional (como Lisp o ML), uno que admita la abstracción sintáctica (como Lisp) y otro que admita especificaciones declarativas (como Prolog o C ++). que admite corutinas (como Icon o Scheme) y una que admite paralelismo (como Sisal).
Recuerde que hay una "computadora" en "ciencias de la computación". Sepa cuánto tiempo le toma a su computadora ejecutar una instrucción, buscar una palabra de la memoria (con y sin falta de caché), leer palabras consecutivas del disco y buscar una nueva ubicación en el disco. (Respuestas aquí.)
Ya hay algunas respuestas sensatas. En lugar de repetirlos, solo quiero señalar que un buen programa de ciencias de la computación lo expondrá a muchos temas diferentes. Sería genial si puede encontrar un programa en línea que tenga acreditación de CSAB, ya que los estándares que establecen para lo que se debe incluir son muy razonables. Aprender Python por su cuenta es un gran comienzo, pero hay muchos temas que quizás no piense aprender por su cuenta y que son clave para convertirse en un desarrollador realmente completo, como por ejemplo:
Organización de computadoras
Sistemas operativos
Análisis numérico
Análisis de Algoritmos
etc