¿Por qué no debería especializarme en informática?

¿Por qué no deberías especializarte en CS?

  1. Debido a que muchos de sus trabajos habían sido asumidos por los Wizards of the East, Trump o ningún Trump. Período.
  2. La especialización en informática no es un paseo feliz. Aprender todos los protocolos aburridos, cómo funcionan los compiladores, probar todos los teoremas, memorizar todos los conceptos de ingeniería de software basura no es una tarea fácil. Y la mayoría de las cosas pueden pasar fácilmente por alto. Depende
  3. Puede conseguir un trabajo de CS con un título de CS. ¡También puedes conseguir un trabajo de CS sin un título de CS! Entonces, ¿por qué perder años buscando un título de CS?
  4. Nunca puedes dejar de aprender. ¿Crees que puedes aprender un lenguaje de programación, y eso es todo? Lamento decirlo, pero no llegarás muy lejos con eso. A menos que sea COBOL! Lo único constante en este campo es el cambio.
  5. No todos están hechos para este trabajo. No está codificando 24/7. Pasas el menor tiempo codificando. E incluso con eso, puede ser un trabajo de mantenimiento aburrido. No todo lo que brilla es oro.
  6. CS es un gran campo. Un campo muy muy grande. Y es fácil perder el foco. Puede que no siempre sea divertido.

Pero si me preguntas si deberías especializarte en CS o no, ¡diría que sí! ¡Ve a por ello!

No estoy seguro de dónde ha escuchado que la mayoría de los trabajos se externalizarán. La industria del software está bastante saturada de profesionales extranjeros, pero eso es simplemente oferta y demanda. Dicho esto, las razones por las que no debes obtener un título de CS en orden de importancia:

  1. No bajes mi salario. El software paga bien porque hay muchos más trabajos que talentos. Personalmente, no creo que el trabajo sea difícil en sí mismo, es principalmente que no hay suficientes personas que quieran el desafío de aprender todo lo que necesitan. No quiero volver a entrenar a mitad de carrera porque mucha gente se dio cuenta de que la Ingeniería de Software es un trabajo bastante sólido.
  2. La programación profesional no requiere necesariamente un título de CS . Si solo quieres codificar, entonces realmente no necesitas un título de CS. Personalmente, he trabajado con un desarrollador talentoso que tenía experiencia en artes marciales húngaras y traducción profesional de mandarín antes de hacer la transición a Web Dev. Sin embargo, agregaré un par de advertencias. Para ser contratado en casi cualquier lugar, necesitará un grado de algún tipo y alguna prueba de que es competente. Para ser contratado en una empresa importante como Google, Facebook, … necesitarás un título de CS. Pasar un jr. posición de software de nivel en un período de tiempo razonable, necesitará de manera realista un título de CS.
  3. Los programas de CS son en realidad bastante desafiantes y estresantes. Si tienes cero experiencia en programación, entonces prepárate para un estresante primer año. Yo personalmente asistí a jr. universidad antes de partir a una universidad más notable que descartó mis créditos de CS y presionó “reiniciar” en 2 años de cursos dentro de mi especialidad. Entonces, después de haber experimentado CS de primer año en 2 entornos diferentes, diría que mi observación constante en ambas ocasiones fue que el 50-70% de los estudiantes de primer año sin experiencia cambiaron las especialidades después de 1 o 2 cursos de CS, y que al menos la mayoría estaban estresadas, consideró cambiar de especialización o dejó caer un curso para evitar fallar. El mayor obstáculo es que muchos estudiantes entran sin saber nada sobre programación, y la realidad es que las habilidades básicas de programación son el primer paso.
  4. Freshman CS tiene que ver con las pruebas de pánico. Después del primer año, los cursos se vuelven más fáciles. Siguen siendo un gran desafío, pero va de 2 cursos de CS a la vez que son un infierno para muchos, a 3 a la vez manejables, aunque un poco estresantes. La realidad es que muchos profesores no aprenderán tu nombre, no aprenderán tu cara y no te dejarán flojo en el nivel de primer año porque hay mejores probabilidades de que después de ese semestre cambies de especialización o termines algunos generales básicos optativa y no volver a preocuparme por el tema. Esto sucede aún en el segundo año, pero no tanto, pero en general todo está cargado para eliminar a las personas que realmente no quieren estar en CS lo más rápido posible.
  5. Si no está expuesto al desarrollo de software, es difícil saber si le gustará. Yo personalmente fui a un programa de CS porque el jr. la universidad en la que comencé no tenía un programa de física y pensé que en su mayoría estaba sacando asignaturas optativas y aprendiendo algunas habilidades matemáticas de nivel superior. CS lograría esos objetivos hasta llegar a un instituto de 4 años de todos modos. Una vez que aprendí algo de C ++, ensamblaje y algoritmos, decidí que no quería cambiar las rutas, me gustaba demasiado el CS. Sugiero encarecidamente que tome un curso de programación de introducción y tal vez algunas matemáticas discretas. Si está en su primer año, entonces está tomando la mayoría de las asignaturas optativas y se siente fuera de la carrera de todos modos, no es demasiado tarde para cambiar de curso. Si tiene un nivel de segundo año, es probable que deba decidir qué quiere hacer y decidirlo rápidamente.
  6. No bajes mi salario. Ver punto 1.

No puedo decirte que tu trabajo no se subcontratará. Ciertamente, algunas empresas han subcontratado empleos. La mayoría de los trabajos subcontratados son para la gestión de una infraestructura de TI. En algunos casos, los proyectos se subcontratan a organizaciones de desarrollo sobre mares. Sucede. Lo que puedo decir es que no hará una diferencia si tienes un título de CS, o un título de ingeniería de software o eres autodidacta. En cada caso, puede esperar que alguna compañía decida en algún momento que es más barato contratar desarrolladores offshore o reemplazarlo con un desarrollador H1-B.

Dicho esto, esas compañías probablemente no son lugares donde quieres trabajar. Ciertamente, hay situaciones en las que la costa tiene sentido, pero muchas más empresas se han encontrado con problemas y luego los han resuelto moviendo todo su esfuerzo de desarrollo fuera de la costa. Escribir software significa comprender los problemas de sus usuarios, comprender el negocio y comprender la naturaleza de los clientes. Es difícil, muy difícil, hacer esto con un personal que está principalmente fuera de la costa.

Encuentre una empresa que valore las contribuciones que puede hacer como miembro de un equipo, que participe en el proceso de resolución de problemas comerciales. Serás más feliz, pagarás mejor y mostrarás más aprecio.

Ya no existe el trabajo desde la graduación hasta la jubilación en la misma empresa. Así que prepárate para moverte cuando sea adecuado para ti y acepta que tienes que volver a aprender constantemente la tecnología que usas para hacer tu trabajo. Todavía hay muchos buenos trabajos para desarrolladores de software en los Estados Unidos.

Sinceramente, no estoy de acuerdo con que CS Jobs se subcontrate en el futuro. La codificación y el mantenimiento de bajo nivel definitivamente serán [Una vez que todo esté en la nube de Google / AWS / Microsoft, no creo que haya más de esos trabajos de todos modos].

También repetiría siempre que la educación en CS será valiosa en el futuro, estoy de acuerdo con la premisa “El software está comiendo el mundo” de Silicon Valley [Es una cita de Marc Anderson de a16z], pero aquí está mi punto contrario que encontré por primera vez con James Blog Altucher.

El número de personas que se gradúan con el título de CS está en su punto más alto. Ha estado aumentando durante los últimos 25 años para un campo tan joven, en comparación con la Ingeniería Eléctrica o Mecánica. El mercado laboral es efectivamente oferta y demanda. Actualmente, todos están cursando un doctorado en Aprendizaje automático o Realidad aumentada u otras cosas relacionadas con CS. Esto conducirá a un exceso de oferta, tendremos aplicación de CS a otros campos de ingeniería como Química o Biología [como la forma en que el Software está comiendo campos de negocios como Transporte [uber], Hospitalidad [AirBnB], Servicios Financieros.

Nadie puede predecir qué campo será el boom en el futuro. James Altucher cree que la ingeniería química es el futuro, ya que el futuro de los autos sin conductor, las células solares dependen de los avances en las baterías de litio. También afirma que el número de estudiantes que se gradúan en ingeniería química es bajo en todo momento. Mi punto es, podría ser ingeniería química o podría ser otra cosa. Los trabajos de estadístico se volvieron realmente atractivos después de que tuvimos una sobredosis de datos en los últimos 5 años. Estaban aprendiendo herramientas de programación para convertirse en científicos de datos, etc. Así que podría ser cualquier campo aburrido que pueda cambiar.

Una cosa de la que podemos estar seguros es que los graduados universitarios, independientemente del campo, ya sea que el marketing o la ingeniería química se conviertan en expertos en programación y conceptos básicos de CS. Tampoco puede equivocarse mucho al elegir CS, ya que incluso en otros campos, el resurgimiento se debe a la aplicación de CS.

Si elige o no especializarse en un campo en particular es una elección personal y no debe basarse solo en la probabilidad de adquirir trabajos. ¡Debes elegir un campo que disfrutes y algo con lo que estés contento! ¡No elija un campo solo porque podría tener la oportunidad de ganar mucho dinero! ¡No cuelgue sus sueños sobre eso! Comencé en el campo de la informática en 1968. Pocos colegios en ese momento ofrecían programas de licenciatura en CS y los que lo hicieron estaban principalmente en el “departamento de matemáticas”. Si JC ofreció algo, fueron solo un par de clases de Fortran o Cobol. No hay escuelas secundarias, que yo sepa en ese momento, ofrecieron nada o incluso mencionaron las computadoras como un campo profesional. Después de la escuela secundaria, me inscribí en un par de cursos en “Key Punching” y “EAM Operations”. También tomé un curso de Fortran en el JC local y luego me alisté en la Marina. Me enviaron a la Escuela de Procesamiento de Datos y tuve mucha suerte de recibir pedidos en una instalación donde aprendí un poco sobre el funcionamiento interno de las computadoras grandes (no había PC en esos días) y un poco sobre el “lenguaje de máquina http: // programación”. Mi gran oportunidad fue pura suerte. En el otoño de 1971 me asignaron al Centro Naval de Laboratorios de Electrónica y me dieron un trabajo, junto con otros dos marineros, como programadores en una nueva mini computadora que se estaba construyendo en el laboratorio. El científico / ingeniero principal que diseñó la computadora nos sentó a los tres y nos enseñó “Programación de lenguaje de máquina”. Esto no era ensamblador ni compilador. Esta era una programación “binaria” directa a nivel de bit. Tuvimos que aprender a registrarnos, a funcionar y al camino en esa computadora y cómo hacer lo que quisiéramos. ¡Así es como aprendes sobre computadoras! ¡No puede decirle a una computadora qué hacer si no conoce el hardware! Después de aprender esta máquina y su idioma nativo, nuestro primer gran proyecto fue escribir un “ensamblador” para la computadora. Esto facilitaría a los otros ingenieros escribir programas para él. En 2002, recibíamos algunos de los primeros chips de microprocesador de “Intel” como muestras de ingeniería. Los ingenieros diseñaron y construyeron varias computadoras de placa única y escribimos software de prueba para poner a prueba los chips. Fueron evaluados para la Marina y más tarde ese año, varios miembros del Estado Mayor Conjunto visitaron para una manifestación. ¡Esta fue la vanguardia de la tecnología! ¡Esto fue mucho antes de que Apple, Bill Gates y Microsoft ni siquiera fueran un sueño! En 2004, me pidieron que diera charlas a personas mayores en varias escuelas secundarias de San Diego para el “Día de la carrera”. En ese momento todavía no se mencionaban las computadoras como carrera en las escuelas secundarias. Trabajé para la NASA en una serie de proyectos espaciales, incluidos Viking y Voyager. Trabajé en el tercer observatorio óptico más grande del mundo, como ingeniero de software en Control de tráfico aéreo en Arabia Saudita, para muchas compañías contratadas por el gobierno, diseñé el software para “Planificación de tratamiento de radiación 3D” para Oncología de radiación, y trabajé para varias compañías Fortune 500. Finalmente me retiré en 2006 después de 38 años trabajando en el campo. Finalmente completé mi licenciatura en Ciencias de la Computación después de haber estado trabajando en el campo de CS durante más de 32 años. Esto demuestra que si amas lo que estás haciendo, ¡casi todo es posible!

Si no lo disfrutas, entonces lo odiarás.

Se necesita un tipo especial de persona para poder disfrutar de CS (¡NO solo la programación, sino todas las partes que vienen con él!). Estas son las personas autónomas para aprender, analizar, separar problemas y resolverlos de manera eficiente e inteligente, y no temen al fracaso. Estas son también las personas que son pensadores más lógicos (no están tratando de estereotipar aquí) y pueden ser pacientes cuando están tratando de encontrar el punto y coma fuera de lugar.

Si lo hace solo por dinero y seguridad laboral, CS no es el campo adecuado para usted. Hay muchos campos más fáciles que aún pueden brindarle la misma seguridad laboral y un gran cheque de pago.

Si desea pasar por las mociones para sobrevivir, lo siento, pero no irá muy lejos en CS, independientemente de si hay una gran demanda en los trabajos de CS.

CS no es solo matemática. El hecho de que te gusten las matemáticas no significa que disfrutarás de CS. CS es una combinación de matemáticas y arte / creatividad hábil. Una gran cantidad de CS tiene que ver con la creación de excelentes productos, aplicaciones y tecnologías que son útiles en la sociedad cotidiana. Debe tener un cierto grado de pensamiento innovador y de “empujar los límites” para poder prosperar en CS.

No hay una ruta clara en CS. CS es como un patio de recreo, donde juegas con cosas, las rompes y las vuelves a armar. Es un libro abierto de problemas y soluciones. Si le gustan las soluciones claras, entonces CS no es adecuado para usted.

También deberás colaborar con otros. Rara vez encontrará aplicaciones en la tienda de aplicaciones, sitios web o tecnologías que fueron creadas y desarrolladas por una sola persona. A menudo es el trabajo de un equipo, que consta de cientos, incluso miles, de miembros. Si no le gusta la colaboración y es más un trabajador independiente, es posible que no pueda conseguir un trabajo convencional en CS (aunque ciertamente puede trabajar por cuenta propia. Pero es probable que reciba un salario mucho más bajo que el CS convencional salario que sin duda has visto en línea.

Pero si está preparado para el desafío y está dispuesto a dedicar su tiempo, energía y muchas veces su cordura por el bien de la CS, entonces hágalo.

Un título en Informática todavía está en demanda, relativamente.

Realmente depende de lo que quieras hacer con tu título de CS.

Parece que ya has respondido tu propia pregunta. No es necesario un título en CS para convertirse en un ingeniero de software, ya que no necesitará comprender el material de CS de nivel superior (AI y Machine Learning, por ejemplo). Los ingenieros de software utilizan cursos de CS más generales, como algoritmos y lenguajes de programación. Sería mejor especializarse en algo que disfrute y trabajar en proyectos de programación por su cuenta. Publícalo en Github o algo así.

La programación es más una habilidad y práctica que requiere mucha capacitación. Los caminos alternativos que conducen a la Ingeniería del Software serían los de Matemática, Ingeniería Eléctrica y Física (etc.).

Mejor.

¿Quién te está diciendo esta información? Probablemente ignorantes que piensan que todos los trabajos de “TI” son iguales.

Mira, si no quieres ser subcontratado, conviértete en indispensable. Complemente sus habilidades de CS con EE, matemáticas, física, estadística, economía, etc.

Ponga algunos de nuestros proyectos de desarrollo más orgullosos en Github, junto con sus documentos de diseño (con suerte bien escritos).

Tal vez obtener un MBA después de un par de años de trabajo como ingeniero de software.

Pero aprenda los conceptos básicos esenciales de la informática. La teoría, la práctica, los fundamentos y las diversas aplicaciones.

Sin una conexión a tierra sólida, usted será solo un mono código y será reemplazado por programadores en el extranjero.

Construye tus habilidades como un edificio, los cimientos primero. Muy pocos programas de boot camp pueden lograr esto, especialmente en poco tiempo o a un costo eficiente.

¿Por qué quieres especializarte en CS? Si tienes una buena motivación para perseguir el sueño de CS, entonces puedes tener éxito dependiendo de muchas condiciones. ¿Estás dispuesto a seguir CS por diversión o por trabajo? Estas son algunas de las preguntas que debería hacerse. Según mi poca experiencia, puede esperar a continuación al tomar una decisión para la carrera de CS.

  1. Estar de guardia para una rutina 24/7 si termina en operaciones / mantenimiento / administración: incluso con la automatización y los paneles modernos, no podrá escapar de esto.
  2. Debe poder al menos codificar en un lenguaje de programación o tener un alto nivel de comprensión de cómo programar para resolver un problema.
  3. Algoritmo, las estructuras de datos deben ser una de sus principales herramientas que siempre necesitará para tomar algunas decisiones con respecto a proporcionar una solución a un problema mediante la codificación.
  4. Hay muchos campos que se entrelazan o tienen un poco de CS, por lo tanto, las personas en esos campos siempre persiguen trabajos que deberían ser para un chico de CS, por lo que siempre debe mantenerse en la cima para tener un empleo decente y mantener el dinamismo del campo. .
  5. Debes entender como alguien dijo, los teoremas detrás de CS, algunas matemáticas te ayudarán, autómatas, redes, bases de datos, sistema operativo y programación de programación.
  6. Con CS, siempre puede ramificarse o especializarse en uno de los dominios debido a su naturaleza amplia, por lo que siempre tendrá demanda de trabajo, pero eso depende de qué parte del mundo viva.
  7. Finalmente, no deberías abandonarme una vez que comiences este campo. Viene con altibajos, pero solo las personas fuertes y a veces inteligentes sobreviven

Aquí hay razones por las que no debes especializarte en informática:

  1. Solo estás en él con el propósito de conseguir un trabajo y ganar dinero
  2. No te parece interesante

De lo contrario, si encuentra CS interesante y disfruta de los tipos de desafíos presentados, no hay razón para no especializarse en informática.

Y una última nota: seguro que puedes aprender los conceptos básicos de cómo codificar por tu cuenta, pero pasar por un programa formal te dará una comprensión mucho más profunda de los conceptos.

Tienes la respuesta allí mismo en tu pregunta. El trabajo de ingeniero de software que no requiere profundidad eventualmente será asumido por AI o mano de obra barata, ¡es cierto!

Pero CS es más que eso, puedes profundizar tanto como quieras. Con el aumento de las tecnologías de computación en la nube, aprendizaje profundo, IA e IoT, la escala de desafíos técnicos que enfrentamos requiere un profundo conocimiento de CS y matemáticas. Por lo tanto, para responderle, hacer una especialización en CS y aprenderlo en profundidad le brindará muchas oportunidades.

No deberías estar haciendo CS a menos que no lo disfrutes y no solo por las perspectivas de empleo.

El alcance y el espacio problemático del desarrollo de software es prácticamente infinito. Y el dominio de las tecnologías de software hoy eclipsa lo que existía hace solo unos años, por lo que hay oportunidades ilimitadas.

La pregunta que debe responder es si CS es algo que realmente quiere hacer por el resto de su vida laboral.

A diferencia de la mayoría de las otras disciplinas, esto resultará obvio con solo tomar un semestre de un curso de programación serio “de cabeza abajo” aprendiendo un lenguaje principal (por ejemplo, Java) para resolver esto. Pocas personas salen de un curso de introducción con un sentimiento neutral. Por lo general, saben de inmediato que es algo que odian, o algo con lo que se obsesionan por completo (donde el mayor problema es cómo satisfacer mínimamente y aprobar cursos que no sean CS, liberando tiempo para experimentar y aprender más sobre el desarrollo de software).

Solo si no te gusta la codificación, hacer programas y aprender cómo una máquina pequeña puede hacer maravillas.

Y también porque es exigente. Personalmente, no creo que haya que preocuparse por las oportunidades de trabajo en CS porque hay muchas. A menos que desee profundizar, no vale la pena estudiar materias y campos.

Supongo que porque incluso haces la pregunta. CS no es para todos y es un trabajo realmente duro para aquellos que no les apasiona (y, por lo tanto, que sienten que es un trabajo duro).

Como muchos han dicho antes, es complicado, difícil, lento y, sobre todo, bastante solitario la mayor parte del tiempo.

Pero … aquí y allá, están los momentos mágicos en los que descubres qué estuvo mal durante tanto tiempo últimamente, y finalmente entiendes cómo hacer las cosas: la estructura del problema y su solución de repente es clara para ti, y solo susurras “Santo cielo ** … ¡en realidad puedo hacerlo!

En lo que a mí respecta, esos momentos mágicos son mucho más que dignos del enorme esfuerzo realizado en CS. Pero, como dije, no es para todos …

La cuestión es que ya no hay empleos externos. No vas a perder tu trabajo por algún trabajador en la India. Eso es una tontería que dice Trump. Estás perdiendo tu trabajo por las máquinas. La IA es lo que tomará tu trabajo, pero lo más seguro es que no tomará ese tipo de trabajo por un tiempo.

More Interesting

Los ingenieros de software no son inteligentes e innovadores; solo conocen patrones. ¿Es esto cierto?

¿Debe un buen ingeniero de software pasar a la vía de gestión para el crecimiento, suponiendo que sea igualmente bueno en gestión y programación?

¿Quién es un ingeniero de plataforma? ¿En qué se diferencia del ingeniero de software y devops?

¿Qué bibliotecas de Javascript usan los ingenieros de software?

¿Cuántas horas a la semana trabaja un ingeniero promedio en Uber?

¿Hay un buen ingeniero de software que no conozca Java?

Soy ingeniero de software en India. ¿Cómo puedo ganar hasta 2-3 lakhs por mes?

¿Cómo es el día típico de un ingeniero de software?

¿Es malo que un ingeniero de software se distraiga durante el trabajo y, por ejemplo, escriba una pregunta o respuesta en Quora y vuelva a trabajar después?

¿Cómo deben cuidar los ingenieros de software con niños pequeños para mantener sus trabajos, si se espera que codifiquen las 24 horas del día con poca antelación cuando sea necesario?

¿Cómo son los escritorios de ingenieros de software en el trabajo?

¿Los programadores y los ingenieros de software usan la recursividad? ¿Es más rápido en otros lenguajes de programación?

¿Cuál es el aumento salarial típico de SDE 1 a SDE 2 a SDE 3 en diferentes compañías como Amazon, Google, Facebook y Microsoft?

¿Por qué un ingeniero de software elegiría ser un consultor independiente para la empresa en lugar de un FTE?

Cómo pasar de ser un ingeniero de software a un rol de ingeniero de ciencia de datos / aprendizaje automático