¿Cuáles son algunos consejos útiles que le darías a alguien que busca especializarse en Informática?

Aquí están las confesiones y consejos útiles para un estudiante de informática:

  1. Necesitas ser fuerte en matemáticas. Anna Sharudenko clavó este punto: la informática es la hija del amor de la ingeniería eléctrica y las matemáticas puras. Todo aquí se basa en algún tipo de prueba matemática, algoritmo o proceso estadístico. Muchos subdominios de la informática, especialmente los más demandados, como la inteligencia artificial, el aprendizaje automático y la ciberseguridad (criptografía) utilizan una gran cantidad de matemáticas.
    1. Dicho esto: te aconsejaría encarecidamente que aprendas todas las matemáticas que puedas de antemano. Utilicé la serie de libros El arte de la resolución de problemas y MIT Opencourseware y mi tiempo estudiando matemáticas antes de ingresar a la universidad ha hecho que mi vida en la universidad sea muy fácil. Estúdialo siempre que puedas encontrar algo de tiempo libre.
  2. Sepa en lo que se está metiendo.
    1. A diferencia de varios campos de ingeniería que requieren una gran cantidad de conocimiento antes de poder construir algo que funcione, es fácil para un principiante armar un programa o un sitio web en dos horas. Lo que estoy tratando de decir es que hay una barrera de entrada baja para que alguien se convierta en programador, que es en lo que se convierten la mayoría de los estudiantes de informática. Si bien cualquiera puede aprender a programar y pocos pueden hacerlo bien , tendrá una competencia masiva.
    2. Agregue a eso la posibilidad de subcontratar: los muchachos en India, Filipinas, Polonia, Ucrania y otros países más baratos pueden hacer un trabajo igual de bueno al hacer un sitio web genérico o una aplicación móvil y mucho más barato que nosotros (estadounidenses y / o occidentales) ) puede. Por lo tanto, debe asegurarse de minimizar el riesgo de perder su trabajo debido a la contratación externa . ¡Haz esto especializándote y expandiendo tu conjunto de habilidades sabiamente !
  3. Después de haber explicado que la programación tiene una barrera de entrada baja y un riesgo de tercerización, le recomendaría que elija una especialidad que tenga una barrera de entrada alta y que tenga menos riesgo de tercerización . Por ejemplo, pocas personas están dispuestas y son capaces de hacer una doble especialización de CS + Math para luego tomar un trabajo aplicando modelos matemáticos para describir sistemas biológicos. Por lo tanto, tiene menos personas compitiendo con usted a nivel mundial y el riesgo de tercerización se minimiza, ya que es más difícil encontrar programadores especializados en el extranjero.
    1. Algunas especialidades son: ciberseguridad, IA, aprendizaje automático, bioinformática (aunque eso ha sido un poco una burbuja recientemente)
  4. Aprenda hardware de computadora : su código no se ejecuta en una nube que vuela por el aire, ¡se ejecuta en METAL ! Especialmente cuando la Internet de las cosas está de moda, existe una gran necesidad de que los programadores tengan una idea de cómo se ve el hardware de la computadora y cómo funciona. Tome clases en sistemas embebidos, por ejemplo.
  5. Pasantías, proyectos paralelos, hackatones y proyectos de investigación práctica : ninguno de los gerentes de contratación se preocupa por su educación general cuando llega el momento de conseguir un trabajo. Quieren que responda la pregunta: “¿Qué valor puede proporcionar para mi organización?” Cuantos más tenga, mejor podrá responder esta pregunta.
  6. Aprende a programar de forma independiente. Programar clases en la universidad es extremadamente difícil para las personas que nunca jugaron con código un día antes en sus vidas y se encuentran pasando una cantidad ridícula de tiempo aprendiendo a programar sobre la marcha. ¡Agregue a eso sus otras clases y obtendrá una olla a presión masiva! Cuanta más experiencia previa tenga, más adelante estará en la curva.
  7. Clubs de ciencias de la computación: independientemente de los temas particulares que cubren, acuda a estos si encuentra el momento. Puedes conectarte en red, obtener algunos consejos de los superiores y encontrar a alguien con quien puedas hacer tu próxima gran aplicación.
  8. Aprenda seguridad informática: si no desea especializarse en ella, está bien. Sin embargo, hay un número ridículo de programadores que no saben qué buscar en términos de vulnerabilidades y no saben cómo crear software seguro. ¡Esto es ridículamente malo! ¡Toma una o dos clases al menos!
  9. Obtenga la certificación: si tiene tiempo y dinero, busque algunas certificaciones profesionales. Tal vez tu universidad incluso pagará por algunos de ellos. Cuantas más certificaciones tenga, más empleadores lo verán como un “emprendedor” y “emprendedor” y será más probable que le otorgue esa entrevista.
  10. Ir a la escuela de posgrado: si desea trabajar en la industria, necesita un título de maestría. Si quieres trabajar en Academia / Research Labs, necesitas un doctorado.
    1. Alguien: ” Pero si quiero trabajar en la industria, ¿no puedo conseguir un trabajo con solo una licenciatura?”
    2. Yo: “Por supuesto que puedes, pero llegarás a un techo de cristal cuando se trata de personas de Recursos Humanos de 7 a 8 años en el futuro que no te promoverán por no tener un título de maestría. Incluso hacer un máster de un año en su escuela estatal local lo ayudará a obtener las promociones laborales y los aumentos de sueldo más adelante. Personalmente tuve un amigo en Ingeniería Mecánica que después de hacer un máster de 1 año en una escuela estatal local obtuvo una diferencia de salario de 20K. ¡La maestría vale la pena!

Eso es todo por ahora. No dudes en enviarme un mensaje si tienes más preguntas.

~ Cheerio

  1. La informática no es tan glamorosa como parece. No todos los que se gradúan con un título de CS hacen todas las cosas inteligentes y de élite que se muestran en la televisión / películas (dudo que haya alguien que pueda piratear un servidor moderno en cuestión de minutos). El escenario más probable es que termines en un trabajo sin salida con poca o ninguna innovación, como todas las demás carreras, y eventualmente contemplarás cambiar a un rol más centrado en la gestión.
  2. Los idiomas evolucionan todo el tiempo. Puede dedicar todo su tiempo y esfuerzo a dominar una tecnología en particular, solo para darse cuenta de que se ha vuelto obsoleta, sus habilidades ya no son relevantes y se ha convertido en un dinosaurio, con niños de la mitad de su edad compitiendo con usted por ella. Esté preparado para adaptarse y aprender a lo largo de su carrera.
  3. No hace falta decir que hay especialidades y microespecialidades en CS. También hay mucho trabajo interdisciplinario. Si decide especializarse, puede sentirse abrumado. El tiempo requerido para graduarse puede depender de su especialización.
  4. Tengo que ir en contra de los expertos y decir que la programación es más importante que las matemáticas, especialmente si planea obtener una licenciatura y obtener un trabajo de software normal. Por supuesto, si elige ignorar las matemáticas y luego decide ir a una maestría o un doctorado, o tratar de ingresar a campos de especialidad como IA o criptografía, volverá a perseguirlo. Haga mucha programación, participe en hackathons y concursos de programación, implemente estructuras de datos y algoritmos por su cuenta, y aprenda tantos lenguajes como sea posible (C / C ++ para sistemas, Java para OOPS, Python para secuencias de comandos y Javascript para programación web). ) es un buen comienzo.
  5. CS tiene mucha teoría que puede variar desde lo abrumador hasta lo completamente aburrido. Puede parecer irrelevante en ese momento, pero puede haber un momento en que deba recordar algunos de estos principios o al menos saber por dónde empezar. Por lo tanto, construya una base sólida y haga lo correcto.

Mi experiencia personal es que comencé a apreciar todo lo que había aprendido hasta ahora durante mi tiempo en la escuela y la industria. Ha sido desafiante a veces, mundano a veces, y abrumador y frustrante también. Pero mirando hacia atrás, no me arrepiento, y espero con ansias toda una vida de aprendizaje.

  1. Durante los próximos 4 años, las matemáticas serán tu mejor amigo. Tu amante, tu aire, tu interacción social.
  2. Si no eres bueno en matemáticas, no seas ese rey que sacrificó a su propia hija, Psique, para salvar su despreciablemente cobarde trasero. Es una mierda, pero puedes mejorar. Tendrás que estudiar mucho y estar decidido.
  3. Elija un área de especialización. Ya sea ciberseguridad o IA, creo que tienes que sobresalir en algo en particular. No seas promedio.
  4. La programación no es CS. CS es realmente sobre teoría. Pero la programación permite la traducción de la teoría a cosas de la vida real. El que potencialmente puede atraer clientes y venderse en el mercado.
  5. Hacer pasantías
  6. Este último punto puede ser un poco controvertido, pero quizás para tu menor, puedes elegir un polo opuesto de CS para expandir tus horizontes. Solo para pensar mejor en general y tener una actitud más abierta.
  1. No necesitas ser fuerte en matemáticas. Es necesario completar los cursos de matemáticas requeridos, pero es probable que tengan poco impacto en su éxito. Algunos programas tienen mucha más inclinación matemática que otros, pero un número cada vez mayor en los Estados Unidos está eliminando requisitos matemáticos innecesarios.
  2. No es necesario ser un gran programador, pero si no puede usar las funciones básicas del lenguaje y escribir un código OO decente, tendrá dificultades durante todo el proceso.
  3. Puede aprender a escribir código a mano (por ejemplo, en un cuaderno) y debería hacerlo. Probablemente tendrá que hacer esto en un examen.
  4. Probablemente pasará mucho tiempo en la computadora.
  5. Sin embargo, no se trata realmente de la computadora; Es un campo conceptual.
  6. Necesitas desarrollar fortalezas en áreas como la comunicación interpersonal, la escritura analítica y la oratoria, si quieres obtener un buen trabajo y desempeñarte bien en ese trabajo (o ir a la escuela de posgrado). Nosotros (facultad de CS) no podremos prepararlo adecuadamente en estas áreas; No es lo que enseñamos.
  7. En mi experiencia, la mayoría de los estudiantes saben con bastante rapidez si les gusta o no el campo. Al igual que el cálculo, muchos estudiantes no aprobarán el primer semestre de CS la primera vez, y eso está bien; puedes volver a tomarlo (en todas las escuelas que conozco), pero si no es algo agradable, probablemente no sea la especialidad correcta.
  8. En los EE. UU., Las carreras de CS han aumentado continuamente desde aproximadamente 2010. Las cifras en las universidades de investigación se han triplicado en ese momento. Las clases en algunas escuelas pueden ser enormes.
  9. Eso está bien porque habrá tutores, instrucción complementaria y / u otras formas de aprender más. Si desea tener éxito, debe esperar aprovecharlos. Ciertamente, vaya a las horas de oficina de su profesor y TA regularmente hasta que entienda las cosas. Por eso existen.

Buena suerte y diviertete.

De hecho, estoy un poco horrorizado por algunos de los consejos dados en las respuestas hasta ahora, principalmente debido al hecho de que creo que sobreestiman y exageran el valor de habilidades particulares. Aquí están algunos de mis pensamientos sobre esto:

Permítanme comenzar diciendo que las respuestas que afirman que deben ser fuertes en matemáticas no son del todo precisas. Creo que estas respuestas suponen que la informática se trata de IA, aprendizaje automático, teoría y criptografía. No me malinterpreten, estas son grandes partes de CS que realmente requieren muchas matemáticas, pero hay mucho más en CS que solo eso.

Solo por mi propia curiosidad, revisé un mapa de curso común [1] que Berkeley tiene para su programa universitario de informática. Curiosamente, de las 20 clases en este mapa del curso, 11 de las 20 (etiquetadas en verde) no requieren ningún conocimiento matemático adicional fuera de un fondo matemático estándar de la escuela secundaria.

De hecho, realmente creo que solo hubo 7–9 de las 20 clases que se vuelven difíciles en las matemáticas y requieren un fondo matemático más fuerte (etiquetados como azules, naranjas están en el medio).

Ahora, ¿tener una formación matemática más sólida en general ayudará a su experiencia como estudiante de informática? ¡Absolutamente! El conocimiento es poder. Tener una base matemática definitivamente puede ayudar a comprender algunos conceptos introducidos temprano en las clases de CS, incluso aquellos que no están destinados a ser matemáticos (por ejemplo, la recursividad que se enseña en las clases de introducción está íntimamente relacionada con la inducción matemática).

¿Pero es absolutamente necesario incluso probar el mayor, y mucho menos tener éxito en el mayor? Afirmar que es extremo. Puede descubrir que está interesado en el diseño de sistemas, compiladores, redes, ingeniería de software o seguridad. Todos estos campos requieren habilidades que no están necesariamente vinculadas a la habilidad matemática. O mejor aún, puede pensar que no es una persona matemática, pero luego ver cómo se aplican las matemáticas en campos como IA, aprendizaje automático, teoría, etc., y darse cuenta de que una vez que tiene el interés, puede aprender las matemáticas.

Ahora, todo este mini discurso me lleva a mi mayor consejo cuando se trata de especializarse en informática. La informática es un campo de estudio extraordinariamente amplio con una gran variedad de experiencias estudiantiles .

Su experiencia a través de la especialización será muy diferente de la de cualquier otro estudiante. Habrá mucho “ruido” de otros estudiantes. Es fácil comparar sus habilidades y talentos con los de otro estudiante. Pensamientos como

“¿Por qué no puedo resolver este problema tan rápido como pueden?”

“¿Por qué encuentran esto aburrido mientras yo lo encuentro realmente interesante?

son sentimientos increíblemente comunes a medida que avanzas en tu experiencia de pregrado. Lucha contra estos pensamientos lo mejor que puedas.

Es aún más difícil cuando a veces otras personas te dirán directamente en qué debes estar interesado y cómo debes esforzarte por ser un modelo particular de estudiante. Incluso en las respuestas a este hilo, ve una noción de “cómo se deben hacer las cosas y qué se necesita para tener éxito”.

Como alguien que ahora está en mi sexto semestre estudiando este increíble campo, puedo decirles de primera mano que hay muchas vías para el éxito en este campo . También hay muchas definiciones de éxito dependiendo del individuo. No siempre sabrá el mejor camino a seguir, especialmente con todo el ruido, pero lo mejor que puede hacer como experto en CS es esforzarse por aprender todos los días, ser persistente, mantenerse fiel a sus propios intereses y crear su propio estilo. viaje. Todo lo demás encontrará una manera de encajar en su lugar.

No puedes conectar los puntos mirando hacia adelante; solo puedes conectarlos mirando hacia atrás. Por lo tanto, debe confiar en que los puntos se conectarán de alguna manera en su futuro. Tienes que confiar en algo: tu instinto, destino, vida, karma, lo que sea. Este enfoque nunca me ha decepcionado, y ha marcado la diferencia en mi vida – Steve Jobs

Notas al pie

[1] Eta Kappa Nu (HKN), Capítulo Mu

Permítanme comenzar con una nota positiva: no es necesario tener experiencia previa en programación para ser un experto en CS. Comencé con la programación y CS directamente en la universidad, y todavía prosperaba. Solo necesita trabajar un poco más duro que sus compañeros de clase que han tenido experiencia previa, así como pedir ayuda cuando la necesite. En cierto punto de tu carrera universitaria (dependiendo de la universidad), casi todos estarán en igualdad de condiciones.

Muy bien, ahora para el meollo de la cuestión.

  1. Debe estar abierto a resolver constantemente nuevos problemas y pensar en ellos de diferentes maneras. Tener éxito en CS implica ser capaz de encontrar soluciones eficientes (¡no solo las que funcionan!) Y descubrir lo que quieres lograr cuando una solución no está disponible para ti. La mera capacidad de codificar no lo cortará. Hay una especie de pensamiento algorítmico que desarrolla en CS que simplemente viene con práctica y dedicación. Además, generalmente no hay una forma singular de resolver un problema. La mayoría de los problemas no están resueltos. El mundo de CS está en constante evolución, e incluso si la universidad proporciona los fundamentos para ti, depende de ti adaptarte. Puede haber algunas personas que están naturalmente dotadas para resolver problemas y desarrollar algoritmos. Pero, el pensamiento algorítmico es difícil. El pensamiento abstracto es difícil. Debes dedicar grandes cantidades de tiempo y esfuerzo a perfeccionar estas habilidades, de lo contrario te encontrarás jodido en las entrevistas.
  2. El trabajo es difícil, y conseguir un trabajo lucrativo es difícil. La programación no es para todos. El hecho de que te estés especializando en CS no significa que obtendrás un trabajo bien remunerado desde el principio (nota al margen: si quieres hacer un desarrollo de juegos, ¡solo debes saber que el pago por el desarrollo del juego generalmente es una mierda!) . Te enfrentarás a una competencia muy dura. Pero, ¿qué pasa con todas las posiciones de software de alto pago que veo en Forbes y otros sitios de medios? Sí, esos son para personas con amplia habilidad y experiencia en CS. Lo más probable es que termines en una pequeña startup y te paguen una fracción de lo que pagan las “grandes” empresas. Es muy fácil quemar, especialmente en una pequeña startup donde puede asumir un papel importante en el desarrollo / envío de un nuevo producto. Tienes que estar fuertemente comprometido y apasionado con este campo para prosperar en él.
  3. Lo que aprendes en los cursos universitarios NO es suficiente para la industria. Entrar en CS significa meterse constantemente en nuevos problemas. Obviamente, las clases universitarias no pueden dar cuenta de todos los posibles desafíos y nuevos problemas que enfrentará en el futuro. Todos tienen un área diferente que desean especializarse en CS, y una universidad no puede satisfacer los intereses de todos. Solo pueden enseñarte los fundamentos. Como dije anteriormente, CS siempre está evolucionando. La tecnología siempre está cambiando. Necesita adaptarse a estos cambios y aprender en su propio tiempo. Si no se mantiene al día con el nuevo conocimiento, se quedará muy atrás. Si no te gusta aprender cosas nuevas por tu cuenta, no disfrutarás de CS.
  4. Tienes que hacer cosas fuera de tus clases para ser un candidato competitivo para trabajos / pasantías. Hack-a-thons o comprometerse a proyectos de código abierto en Github. Cree su propio proyecto a gran escala y consúltelo hasta su finalización. Asista a eventos de redes para que pueda obtener referencias de los empleados de la empresa (nota al margen: tiene diez veces más probabilidades de conseguir una entrevista a través de una referencia en lugar de una solicitud en línea). Las calificaciones ya no importan tanto como solían en la escuela secundaria (no me malinterpreten, ¡aún necesitarán los fundamentos que aprenden en las clases para acertar en sus entrevistas!). Sus habilidades, experiencias previas y su red son las que definen su éxito en este campo.
  5. Una especialidad CS lleva mucho tiempo. Prepárese para pasar más de 15 horas (depende de su velocidad de codificación) a la semana en tareas de programación. No son como las tareas de la escuela secundaria donde simplemente puedes posponerlas hasta el último minuto. Probablemente pasará la gran mayoría de su tiempo de tarea depurando su código e intentando descubrir qué le pasa. Las tareas generalmente requieren un nivel profundo de pensamiento, lo que te obliga a utilizar todos los componentes aprendidos en clase para resolver un nuevo problema. Prepárate para sacrificar muchos de tus fines de semana por la tarea.
  6. Hazte un hueco en CS. Puede elegir entre muchos tipos diferentes de campos dentro de CS. De hecho, la gran versatilidad de CS fue la razón por la que lo elegí como un importante. Recomiendo elegir una especialización y dominarla lo mejor que pueda porque la gran mayoría de los trabajos de CS se centran en habilidades y destrezas especializadas. En cuanto a mí, me especializo en programación de juegos y tecnologías inmersivas (lo cual recomiendo encarecidamente, ¡ya que todavía no hay mucha gente haciendo cosas de VR / AR / MR!). Hay otras especializaciones como Machine Learning, Seguridad cibernética, Web / Mobile, AI, etc. Puede explorar otras especializaciones, ¡y ciertamente no está de más tener una buena variedad de habilidades en su currículum! Sin embargo, es preferible ser el maestro de un oficio en lugar de un gato de todos, al menos en mi opinión.
  7. Aprenda a trabajar de manera más inteligente, no más difícil. Aprenda a abordar sus tareas de codificación de manera inteligente y eficiente. Sepa cómo estudiar de manera efectiva y administrar su tiempo. Busque ayuda en lugar de tratar de llevar el mundo sobre sus hombros. Sí, tendrás que trabajar duro como CS major. Sin embargo, será menos tiempo y esfuerzo una vez que aprenda a abordar eficazmente los problemas y se involucre activamente con el material.

Tuve la suerte de haber conseguido oportunidades muy únicas y emocionantes en este campo, especialmente cuando recién comencé CS a ingresar a la universidad. Pero, tuve que trabajar duro. Recomendaría ingresar a CS solo si puede dedicarse a ello y si le encanta resolver nuevos desafíos y aprender. Es un campo muy desafiante, pero puedo asegurarle que vale la pena.

¡Permítanme estar un poco en desacuerdo con algunas de las otras respuestas!

Debe tener una mente lógica y ser un buen solucionador de problemas , pero generalmente coinciden con las habilidades matemáticas. Yo era un estudiante de matemáticas terrible en la escuela secundaria (en comparación con ciencias / historia / inglés), pero tenía una mente lógica. ¡OTOH, necesitaba entender las matemáticas mucho más para mi otra licenciatura (Ciencias de la Gestión) que para mi licenciatura en informática!

Necesitas aprender tanta TEORÍA como sea posible. Cómo hacer las cosas es divertido. Comprender la teoría es lo que le impide “convertirse en un vendedor de seguros” (no capaz de adaptarse a la próxima generación de tecnología) a medida que avanza su carrera. Cómo la tecnología implementada continuará cambiando. Por ejemplo, en mi carrera, la interacción con la computadora progresó desde:

  • Entrada de tarjeta perforada
  • Entrada de terminal (sistemas centralizados basados ​​en caracteres)
  • Sistemas personales (sistemas descentralizados basados ​​en caracteres)
  • Sistemas gráficos controlados por eventos (descentralizados)
  • Sistemas cliente / servidor (sistemas descentralizados)
  • Sistemas basados ​​en la web (realmente un sistema centralizado gráfico basado en terminales)
  • Sistemas remotos “basados ​​en aplicaciones” (sistemas descentralizados)

Si tan solo entendiera el “cómo hacerlo”, ¡no habría sobrevivido en un rol técnico por mucho tiempo! Fue CONOCER LA TEORÍA SUBYACENTE que me permitió progresar a través de cada paso en la evolución de la tecnología.

Elija una aplicación de tecnología informática que le interese. Una computadora es una herramienta. Sin la necesidad de usar una herramienta, se ubica en su caja de herramientas y agrega poco valor. En mi caso, elegí negocios. Encuentre un área donde pueda ser significativamente mejor que sus compañeros. Si puede hacerlo, ¡podrá escribir su boleto en la vida!

HTH … preguntas … contácteme en jmyers at alumni dot psu dot edu

  1. Antes de comenzar tu universidad, trata de hacerte una idea sobre los lenguajes de computadora como C, te ayuda a saber qué tan interesado estás en el campo.
  2. Ir a través de una introducción de las materias en su plan de estudios.
  3. Para sobresalir en el campo, es importante saber cómo la computadora interpreta un código y qué tarea se realiza en respuesta a cada comando que das si quieres ser bueno en la codificación.
  4. Realice cursos en video de las mejores universidades (puede encontrarlos en http://studytonight.com )
  5. Intente desarrollar un hábito de codificación y participe en competiciones de codificación (es preferible la competencia de programación, el concurso de programación, la programación de computadoras en línea). Practica en http://codechef.com .
  6. C, estructuras de datos, Java, DBMS, DWDM son algunos temas importantes. Además, intente actualizarse sobre las tecnologías de tendencias.

Anna y Nathan hicieron buenos puntos al enfatizar la importancia de las matemáticas en la informática. Sin embargo, también recomendaría a alguien que se especializará en informática que tenga una base sólida en la programación también.

La informática no es lo mismo que la programación, pero la programación es una herramienta que se usa ampliamente en todos los programas de licenciatura en informática. Por lo tanto, tener una base sólida en una herramienta que se utilizará ampliamente en todo su plan de estudios lo ayudará a prepararse para el éxito. Las personas en las clases introductorias de ciencias de la computación en mi escuela tuvieron más problemas con los aspectos de programación en comparación con los componentes de matemáticas y teoría.

Algunas cosas que recomendaría a alguien que busca aprender programación antes de comenzar una especialización en informática:

  1. No te quedes atrapado en un idioma . El idioma que aprende primero no es tan importante como los conceptos subyacentes. Elija un idioma que le enseñe esos conceptos. Recomendaría Java (aunque soy parcial) o C ++ como buenos lenguajes para principiantes.
  2. Aumenta la dificultad del material a medida que aprendes. Asegúrese de estar constantemente aprendiendo y construyendo sus cimientos. El punto principal detrás de esto es seguir aprendiendo material más difícil y expandir su conocimiento.
  3. Toma tiempo. Si te frustras en ciertos puntos o te confundes con ciertos temas, está bien. La programación lleva tiempo para aprender, así que no se preocupe demasiado si necesita seguir su propio ritmo con el aprendizaje.

De nuevo, tal como lo han dicho otros, la programación no es igual a la informática. Sin embargo, creo que tener buenas habilidades de programación ayudaría inmensamente si está considerando este importante.

Lamento no haber hecho demasiado cuando estaba en la universidad porque no era una universidad conocida, era la universidad de nivel 3 o 4, como resultado, los estudiantes no estaban expuestos a un gran conocimiento en línea o fuera de línea, ya que nadie sabía nada.

Así que sigue mi consejo, te ayudará en las prácticas y en la buena carrera.

No intentes apuntar a todo en estos cuatro años.

Planifique según su año. Suponiendo que sus ubicaciones estarán en la segunda mitad del año pasado, puede planificar de la siguiente manera (Esto es lo que hice si tuviera quora en mi momento):

1. Para el primer año de desarrollo de aplicaciones móviles objetivo. Es un campo en crecimiento y tendrá un gran impacto en el futuro cercano a medida que avance. Aprenda Java y apúntelo como su idioma principal. Aprenda los conceptos básicos de Java durante los primeros tres o cuatro meses y luego aprenda los conceptos básicos de Android para los próximos dos meses. Continúe aprendiendo Java + Android por un mes más el próximo. Después de eso, por el resto de su tiempo en el primer año, aparte de sus exámenes y estudios, intente publicar al menos dos aplicaciones, ya que no se verán afectadas, pero resolverán algún problema.

2. Si va bien o se queda corto en el tiempo, continúe en el segundo año y proporcione su lenguaje Java. Ahora, si crees que has hecho lo suficiente, pasa a algunos conceptos básicos del desarrollo de Webb y al funcionamiento del navegador, ya que todo está en Internet. Intenta publicar el blog haciéndolo interactivo y dinámico.

3. Para el tercer año, comience con algoritmos en Java si apunta a Java y resuelve problemas lado a lado en codechef, hackerank, etc.

4. Cuarto año, continúe aportando sus habilidades en algoritmo y manteniéndose en contacto con el desarrollo web y Android.

Espero que esto te ayude en tu carrera.

  • Además de los cursos universitarios regulares, haga esfuerzos adicionales para aprender tecnologías que realmente se están utilizando en la industria. Le ayudará mucho en el momento de las ubicaciones.
  • Utilice los Cursos abiertos masivos en línea (MOOC) además de los libros de texto de la universidad para comprender mejor las materias básicas como Análisis y diseño de algoritmos, Estructuras de datos, etc.

Lo primero es preocuparse por sus calificaciones, pero no demasiado.

Es mejor elegir una clase en la que realmente va a aprender algo que elegir todas las fáciles de obtener para poder tener un GPA perfecto.

Por ejemplo, cuando estaba entrevistando para una pasantía notaron que tenía una A en “Arquitectura de computadora I” y una D (la calificación más baja que todavía puede aprobar una clase en Brasil) en “Arquitectura de computadora II” y me preguntaron sobre eso. Simplemente dije que “había tomado el primero con el profesor X y el segundo con el profesor Y”. El profesor Y era famoso por hacer pasar un mal rato a los estudiantes y yo era uno de los pocos que no necesitaba dar puntos para no fallar. Cuando dije esto, el tipo comenzó a reír: el profesor Y también era un director anterior en esa oficina, por lo que sabían de lo que estaba hablando.

Cerraron la apertura en el medio del proceso de la entrevista, así que nunca conseguí el trabajo, que de todos modos funcionó de la mejor manera. Un par de meses después, el mismo profesor me preguntó si quería trabajar con él en una nueva oficina que estaba abriendo en mi ciudad, para el competidor directo de la empresa anterior.

En segundo lugar, tendré que estar medio en desacuerdo con el punto 3 de la respuesta de Anna Sharudenko. Sí, debe elegir un área de especialización, pero no se preocupe por eso al principio.

Cuando ingresé a la universidad, realmente pensé que me gustaba la seguridad informática. Cuando realmente comencé a aprender sobre esto, realmente no disfruté de toda el área de seguridad de la red; lo que realmente me interesaba eran cosas como desbordamientos del búfer, manipular punteros que intentaban romper cosas, tratar de inyectar una dirección de retorno en la pila … Luego me di cuenta de que mis intereses estaban más relacionados con la “programación de bajo nivel” que con la seguridad misma. Terminé haciendo mi tesis de licenciatura en asignación de memoria / registro en el compilador LLVM.

Hoy soy ingeniero en la misma compañía que mencioné antes, una compañía de EDA, trabajando en emulación de hardware. Si me hubieras preguntado cuando obtuve una D en “Computer Architecture II” si alguna vez trabajaría en algo remotamente relacionado con eso, habría dicho que estabas completamente loco. Nunca digas de esta agua que no beberé, te sorprenderías ;-).

1. Haga un trabajo inteligente, no el trabajo duro.
2. Trata de encontrar lo que te gusta en Ciencias de la Computación y trabaja para lograrlo.
3. No siempre estudies, intenta implementarlos.
4. Siga varios sitios web como TechCrunch, Mashable, The Verge y manténgase actualizado con el Silicon Valley.
5. comience a codificar desde ahora.

Eso es todo por ahora. Si me he perdido algo por favor comente.

Aquí hay muchas respuestas geniales, así que me gustaría agregar algo diferente.

Algunos consejos prácticos que puede usar de inmediato serían

  • Complemente sus clases con cursos en línea gratuitos, como el CS50 de Harvard. Cuando estás aprendiendo por primera vez, es mejor obtener la mayor comprensión posible, ¡y hay muchas gemas gratis!
  • Termina tus clases de matemáticas lo antes posible. Es bueno haber completado Calc 2 antes de comenzar sus clases de programación.
  • Si se le da la opción, ¡tome la química sobre la biología! (Asumiendo que eres neutral en los dos)

La programación no es fácil como profesión o campo de estudio, no quiero decir que sea difícil escribir programas o trabajar en programación, quiero decir que tiene efectos secundarios, a veces puede noquear algunas escenas de la vida, desafortunadamente no puedes entender eso hasta que lo sientas.

Asegúrate de disfrutar de la programación y tener interés en cómo funcionan las cosas en una computadora. Tendrá que dedicar mucho tiempo, así que asegúrese de que le guste lo que hace.