it-swarm-es.com

¿Cómo puedo compensar el haber ido a una JavaSchool?

En na pregunta anterior , pedí asesoramiento profesional para los nuevos ingenieros de software que lo hicieron bien antes y durante la universidad. Pero, ¿qué pasa con las personas que no tuvieron la suerte de ir a MIT o Yale, por la razón que sea? ¿Y si fueras a lo que Joel Spolsky llama na JavaSchool ?

¿Qué pueden/deben hacer los alumnos de JavaSchool para desarrollar sus habilidades y compensar las cosas que se perdieron en la universidad? (¿O estaba Joel equivocado acerca de que esas escuelas eran desventajosas?)

18
Pops

A pesar de las afirmaciones hechas por Joel en ese artículo, y él mismo reconoce el punto, muchas de las áreas temáticas que una "JavaSchool" puede pasar por alto no son necesarias para muchos trabajos.

Asistí a algo que supongo se parece a una JavaSchool en que pasamos la mayor parte de nuestro tiempo enfocándonos en lenguajes de alto nivel como C # y Java, pero eso no cambia el hecho de que "Algoritmos y estructuras de datos" es sigue siendo parte de la lista de clases obligatorias, sin mencionar todas las demás clases orientadas a la teoría. Es cierto que no todas las "JavaSchools" son iguales, pero ese no es el punto.

En mi opinión, más importante que la comprensión de algunos de los temas de desarrollo más valientes es poder resolver problemas de manera efectiva cuando surgen desafíos únicos. Como ingenieros de software, realizamos la gran mayoría de nuestro aprendizaje en el trabajo y, como tal, dos de los aspectos más importantes de la descripción de nuestro trabajo son poder resolver problemas y poder captar conceptos desconocidos. Si, durante una entrevista, uno no puede hacer un intento discernible y lógico de resolver un problema que es nuevo para ellos, entonces su incompatibilidad para un determinado La posición probablemente se revelará sola.

Obviamente, cuando se contrata a alguien para un puesto que requiere la exposición constante y el uso de algún tema intrincado que una escuela JavaSchool puede pasar por alto, a menudo es la elección lógica ir con alguien que tenga conocimientos previos, pero la falta de experiencia no debería ¡siempre excluir la elegibilidad laboral .

Lo más probable es que el chico de 50 años Java en su empresa que ha estado allí desde que todos pueden recordar no entendía Java hasta su trabajo (actual o anterior) le pedía que lo aprendiera y así lo hizo. Estrictamente hablando, es una mala práctica despedir al "viejo" para que un candidato más joven y más "actualizado" pueda ocupar su lugar; Dicho esto, si la descripción del trabajo de cualquier empleado joven o mayor cambia, es responsabilidad de ese empleado ponerse al día o encontrar un nuevo trabajo. Solo porque una persona (especialmente un programador con experiencia previa) no comprende algunos concepto, no significa que no estén dispuestos o sean incapaces de aprenderlo, de hecho, si no están dispuestos a aprender, probablemente no pertenezcan a ¡ningún trabajo - mucho menos al tuyo.

Es justo decir que algunas "JavaSchools" son mejores que otras, y ese hecho ciertamente debe tenerse en cuenta al seleccionar un candidato para un puesto, pero hay rasgos personales mucho más importantes que solo el lugar donde alguien asistió a la escuela.

Es nuestra capacidad abordar un problema y encontrar una solución que nos defina como ingenieros, casi todo lo demás es secundario.

12
Nathan Taylor

Siento tu dolor, ya que fui a una JavaSchool también. En realidad, el mío está clasificado bastante alto en el Reino Unido por lo que es, a pesar de que los estudiantes de mi año no obtuvieron una sola clase de Estructuras de datos. Tuve la suerte de poder elegir DSA como un curso opcional debido a errores administrativos con mi curso, pero esa es otra historia desgarradora ...

En mi experiencia, experimentarás algo en una JavaSchool que no experimentarás en las mejores universidades y ese es el estudiante que quiere demostrar su valía. Al igual que con cualquier otra universidad antigua o de ladrillo rojo de mi país, teníamos los típicos holgazanes y los artistas decentes, pero había un pequeño grupo de estudiantes que estaban conscientes de su entorno y de lo que les faltaba en su educación. Inevitablemente, estas personas no necesariamente tuvieron un desempeño brillante en su curso, pero dejaron la universidad sabiendo más que todos los demás. Hicimos prácticas en las empresas de software que nos llevarían durante los descansos que teníamos, aprendimos los idiomas que nunca nos iban a enseñar y estudiamos las materias que otros evitaban porque eran difíciles.

De mis amigos, dos de nosotros estamos llevando nuestros estudios al nivel de maestría, retomando todos los cursos avanzados en los que sentimos que extrañamos por completo la base, y un chico espera que su reciente entrevista en Microsoft resulte en una completa- Hora de trabajo. Estoy a punto de comenzar mi maestría pronto, principalmente para llenar los vacíos en mi educación y pasar un año más desarrollando las habilidades que necesitaré para maximizar mi potencial en esta industria.

En el mundo real, las personas siempre mantendrán estos prejuicios, y la mayoría de las veces se basan completamente en la verdad. Si cree que su escuela es inadecuada, dígaselo y use sitios como este para mejorar su nivel de educación.

1
Mike B

¿Por qué no trabajar con un libro de texto que presenta la programación de manera diferente a como la aprendió? Por ejemplo, hay varios libros buenos y gratuitos que utilizan el paradigma funcional. Cómo diseñar programas es muy accesible. La estructura clásica e interpretación de los programas de computadora (http://mitpress.mit.edu/sicp/) lo es menos, pero proporciona una profunda sensación de iluminación.

Recomiendo encarecidamente ver el primer par de conferencias de SICP de Abelson para tener una perspectiva diferente sobre qué es la informática. Son mayores pero han envejecido muy bien (http://video.google.com/videoplay?docid=5546836985338782440#).

1
Hélène Martin

Lo mejor que se me ocurre es ir y (re) aprender a programar en un paradigma completamente diferente, para liberarme de la forma de pensar orientada a objetos.

Sugeriría como mínimo:

  • lenguaje ensamblador, para obtener una apreciación real de cómo funciona la máquina
  • Haskell, para una visión muy pura de la programación funcional
  • LISP , para programación funcional impura y metaprogramación (Clojure sería mi primera opción, pero Scheme o Common LISP también son excelentes)
0
mikera

Bueno, puedes conseguir un trabajo escribiendo software en Java. Siempre que seas bueno en lo que haces, la escuela a la que fuiste y/o tu especialidad no es terriblemente relevante más allá del primer trabajo, si es que incluso entonces.

0
GrandmasterB