Me gradué de la universidad con un título en ciencias de la computación (BSc), habiendo hecho algunos C, C ++, Java, Python y Oracle en el camino. Hice algunos trabajos independientes mientras estaba en la universidad y llevé esto a un trabajo de tiempo completo cuando me gradué, y he estado trabajando a tiempo completo durante un año.
PHP no es realmente lo que quiero hacer, y creo que está limitando mis oportunidades cuanto más tiempo permanezca en este camino. No es un lenguaje que me gusta usar a diario, y me gustaría trabajar en una organización más grande, donde no parece que PHP tenga mucho uso.
Quiero permanecer en el desarrollo web, y parece que hay muchos trabajos para la pila de Microsoft: C #, SQL Server y ASP.NET MVC. Pero más allá de medio semestre escribiendo C ++ de línea común en Visual Studio, no tengo experiencia con la tecnología de Microsoft.
¿Dónde empiezo a hacer la transición para conseguir un trabajo en una tienda de Microsoft? ¿Hay certificaciones específicas en las que debería centrarme o cursos universitarios que debería tomar? ¿Qué buscan los empleadores o reclutadores?
¿Qué puedo hacer además de crear un proyecto para mascotas en mi tiempo libre?
Respuestas:
Es improbable que la certificación le avise. En realidad, su mejor apuesta puede ser simplemente construir algo genial usando la pila de MS y lanzarlo en la web, algo así como un proyecto de cartera. Otra cosa sería comenzar a responder las preguntas de Stack Overflow en C # y ASP y luego aplicar a través de SO Careers (me doy cuenta de que en su mayoría ha respondido preguntas PHP y JS).
fuente
Keyo, creo que no deberías concentrarte en lo que quieren los cazatalentos. Francamente, si quieren PHP o algún lenguaje que, en su opinión, esté aún peor diseñado, ¿podrá quedarse con él de por vida?
Mi sugerencia es no caer en la trampa de la tecnología simplemente aprendiendo lenguajes y técnicas de programación sin ningún conocimiento de un dominio. Mire a su alrededor un poco, vea lo que le interesa. Podría ser programación de juegos, informática de alto rendimiento, controladores de dispositivos, desarrollo de kernel, compiladores ... la lista continúa.
Una vez que haya elegido un campo o 2, mire qué hay en el dominio de código abierto en estas áreas. Contribuya fuertemente, se notará créame.
fuente
Mi consejo: encuentre un trabajo como desarrollador de C #. No tiene que tener el conjunto de habilidades exacto en un anuncio de trabajo para obtener un trabajo: si demuestra que es un desarrollador capaz, debería poder conseguir un trabajo asumiendo que aprenderá el idioma.
Estoy hablando por experiencia aquí. Mi experiencia es principalmente Lotus Notes y Oracle PL / SQL, con bits de .NET, Java y Adobe Flex. Decidí que quería centrarme en .NET, así que fui y me entrevisté para trabajos de .NET. No había hecho ningún .NET en más de 3 años, pero ahora estoy hasta el cuello en MVC, WCF y lambdas :-)
Básicamente: no subestime sus habilidades existentes y no tenga miedo de aprender en el trabajo. Realmente, no hay sustituto para la experiencia de desarrollo del mundo real.
Editar: también estoy en Aus. Hay oportunidades si vas tras ellos.
fuente
Dado que en realidad recién está comenzando en su carrera, puede que no sea tan difícil como cree conseguir un trabajo utilizando la pila de tecnología MS con muy poca experiencia. Solo tienes que estar dispuesto a disparar para los trabajos junior.
Contraté a mucha gente y tengo diferentes expectativas de su experiencia en función del puesto que estoy tratando de ocupar. Si estoy buscando un puesto de nivel superior o de arquitecto, esperaría ver una buena cantidad de experiencia. Pero no todo tiene que estar en el conjunto exacto de tecnología o habilidades que estoy buscando. Si quiero a alguien con experiencia en C # pero que tenga 5 de Java y 3 de C ++, sé que no tendrán muchas dificultades para aprender un nuevo lenguaje. Por cierto, a medida que avanza en su carrera, se dará cuenta rápidamente de que aprender un nuevo idioma a menudo no es un gran problema. Aprender todas las bibliotecas y modismos del idioma es lo que lleva tiempo.
Cuando estoy mirando una posición junior, doy mucho menos peso a su experiencia. Realmente quiero darme cuenta de que tienen la capacidad de aprender. Obtener tu título de CS (o lo que sea) es un buen paso en esa dirección, porque muestra que pudiste aprender algo. Si tienes experiencia laboral en el campo de CS, genial. Alguien pensó que eras lo suficientemente inteligente como para contratar. Voy a hacerle algunas preguntas de programación (tal vez en papel, tal vez en una pizarra) y pedirle que las resuelva en su idioma favorito. Sí, en el idioma de su elección. Lo que estoy tratando de ver es si puedes resolver un problema, y podré seguir lo suficiente el idioma que elijas para ver si tienes la respuesta correcta o no.
Obviamente, si sabe algo sobre la tecnología que requerirá el trabajo, mucho mejor. Dedique sus horas libres a los temas para que al menos pueda reconocer las palabras clave importantes que podrían arrojarle.
Para darle más esperanza, contraté a un tipo que tenía algo de experiencia en C pero no mucha. Fue para un trabajo junior C. El tipo era obviamente inteligente, bien hablado y podía razonar sobre el problema. Desafortunadamente, todavía estaba un poco débil en el lado C. Le dijimos "diga qué, trabaje en su C, regrese en un par de semanas y lo intentaremos nuevamente". Lo hizo, le hicimos diferentes preguntas (obviamente), y definitivamente fue mejor. No es mejor sacarlo del parque, sino una mejora definitiva. Decidimos contratarlo y no nos arrepentimos. Trabajó duro y, cuando no estaba seguro, hizo preguntas.
Entonces, el resultado de este divagado largo aliento es, si quieres cambiar en lo que estás trabajando, hazlo. Especialmente tan temprano en tu carrera. Dispara a los trabajos y mira qué pasa. Si puede, obtenga comentarios sobre dónde le fue bien y no tan bien. Al final, valdrá la pena.
fuente
Si desea avanzar en esa dirección, desea centrarse en desarrollar su experiencia con las tecnologías. Puedes hacer esto de varias maneras. Primero es trabajar en sus propios proyectos utilizando los productos de Microsoft. Afortunadamente, al menos han proporcionado una serie de herramientas gratuitas como Visual Studio express, por lo que al menos puede mojarse los pies. Si no tiene nada en mente en lo que quiera trabajar, solo busque algunos libros y lea y revise los ejercicios o ejemplos que brindan. También puede ver si hay algún grupo de usuarios de .NET en su área y comenzar a asistir a ellos y a las redes. Si no hay grupos de usuarios, quizás busque conferencias cerca de usted. En tercer lugar, vea si puede encontrar una empresa que utilice múltiples tecnologías en las que pueda usar sus habilidades existentes, pero tenga la oportunidad de exponerse a otras tecnologías y adquirir experiencia adicional en el trabajo. Muchas de las habilidades que ha aprendido aún se aplicarán independientemente de la tecnología y el idioma que esté utilizando. Así que también continúen enfocándose en continuar desarrollando esas habilidades.
fuente
Como dijeron otros, con 1 año de experiencia, debería poder encontrar un nuevo trabajo que le permita codificar en .Net. También me mudé de PHP a ASP.Net/C#, pero mi camino era diferente. Después de trabajar en PHP durante aproximadamente un año, hice mi maestría, hice una pasantía en una empresa, programando principalmente en .Net y ahora estoy trabajando en .Net a tiempo completo.
De lo contrario, en caso de que su empresa sea una startup (o no una corporación como usted dice), ¿por qué no convencerlos de que también inicien / busquen proyectos ASP.Net? Por supuesto, esto depende del hecho de que hay personas que son competentes en la gestión / trabajo en proyectos .net o su empresa debería estar lista para contratar personas con experiencia en .net para los nuevos proyectos. Esta respuesta también puede sonar poco realista ...
fuente
Creo que la respuesta está en múltiples partes: habilidades, certificaciones y autopromoción / branding.
Habilidades: No parece que sepas en qué parte de la 'web' estás interesado. Por lo tanto, elige algo con lo que mucha gente todavía no trabaje (porque acaba de salir) y comienza a jugar con C # stack. Por ejemplo, la máquina de afeitar acaba de salir en MVC3 beta. O algo relacionado con la tecnología Deep Zoom, aunque eso está relacionado principalmente con Silverlight :-( Esto le dará todas las habilidades básicas, pero también las últimas ideas y oportunidades.
Auto-promoción / branding: aprender la tecnología más nueva (beta) no siempre es fácil. Errores, características incomprendidas y otras diversiones sucederán en el camino. Cree un blog (en su propio dominio) para documentar esas aventuras y especialmente sus soluciones. Escriba un pequeño tutorial o recorra, tal vez pequeños proyectos de muestra para descargar para otros novatos. Esto muestra a los demás que está trabajando con las últimas tecnologías, que está aprendiendo y que, con suerte, incluso puede enseñar algo a otros. Si puede, cree pequeñas carteras de demostración para mostrar su trabajo
Certificaciones: Investigue cosas de acm.org u O'Reilly. Las membresías allí ofrecen acceso a múltiples cursos de aprendizaje y, en algunos casos, certificaciones. No sé mucho sobre esto, pero esa sería mi dirección para investigar.
El proyecto específico de alguna manera no importa, pero trata de no reinventar la rueda (otro clon de CMS o Tetris). Elija una cosa nueva y simple en torno a sus otros pasatiempos o intente ayudar a un proyecto de código abierto existente. O simplemente rehaga un proyecto de demostración .Net existente de Microsoft (o de un libro .Net popular ) utilizando la tecnología más reciente y los enfoques HTML5 / jQuery. Tenga en cuenta que rehacer un proyecto de demostración específico existente es diferente de 'otro XYZ más' ya que está limitado por los requisitos de las características de la demostración original y, por lo tanto, en realidad se puede comparar con la implementación original como manzanas con manzanas. También le da la oportunidad de señalar dónde algo es ahora más / menos eficiente / claro / legible.
Con proyectos de código abierto, no tiene que ganar derechos de compromiso para ser útil, simplemente puede elegir un escenario y crear un proyecto de muestra que demuestre una configuración / configuración / etc en particular. Solo tratar de explicárselo a los demás también te enseñará mucho. Y probablemente descubra mucha información faltante en la documentación de ese proyecto de código abierto que le enseñará mucho sobre cómo leer el código de otros para obtener respuestas.
Básicamente, comience a pensar más allá del simple código y más sobre cómo puede ser un miembro útil de la comunidad incluso en su nivel de conocimiento y cómo hacer que su contribución continua a la comunidad sea más visible. Los empleadores buscan personas que ya sean útiles y si comienzas estas habilidades temprano, pagarán y seguirán pagando a lo largo de tu carrera.
Salud.
fuente
Siempre es difícil hacer ese cambio después de trabajar en una tecnología específica durante unos años. Su trabajo diario no le permitiría concentrarse en aprender la nueva tecnología y no conseguiría un trabajo en ella, al menos con la misma escala salarial, ya que no tiene mucha experiencia en ella.
Con mucho gusto, cambiar a las tecnologías de MS no debería ser demasiado difícil, ya que hay muchos buenos recursos disponibles para aprender y muchos trabajos disponibles para ello. Pero, tendrías que trabajar en proyectos pequeños para obtener un conocimiento real, esa es la mejor manera de aprender. No es que sepa demasiado, pero lo que he aprendido se debe a los desafíos que enfrenté al trabajar en los proyectos.
Además de trabajar en un proyecto de mascota usted mismo, probablemente puede intentar conectarse con un amigo desarrollador, que ya está trabajando en dotnet. Pídale que le asigne tareas pequeñas para ayudarlo con su trabajo. También puede ayudarlo a encontrar soluciones a los problemas con los que se atasca. De esa manera, aprendería sobre las características del lenguaje y cómo y cuándo usarlas.
Leer libros es otra actividad que debes hacer, pero que siempre debe completarse con algunas manos, de lo contrario no debes usar.
También me gustaría agregar, las certificaciones pueden parecer un buen complemento para su currículum, pero eso realmente no lo ayuda a mejorar sus habilidades, y los reclutadores lo saben.
fuente
Dado que ya tiene experiencia en PHP, muchas de las habilidades de desarrollo web que adquirió serán de gran utilidad si mueve el desarrollo web asp.net. Personalmente prefiero asp.net mvc porque está más estructurado y Microsoft casi lo recomienda sobre los formularios web. Por lo tanto, sus habilidades de CSS, JavaScript y HTML, etc. no se perderán en esta transición.
Recomendaría la certificación, con una advertencia de que una certificación no le da derecho a nada. Pero, sería una prueba de que tiene conocimiento de asp.net/microsoft stack. Puede justificar fácilmente su búsqueda de empleo en las tecnologías de Microsoft. En la parte superior, una preparación de Certificación le expondrá muchos conceptos. Obtener una certificación es mejor que sentarse y morderse las uñas, a menos que tenga un proyecto de mascota interesante en asp.net o cualquier otra herramienta en Microsoft stack.
Si usted es empleado de una empresa, ellos esperan que sea productivo, el nivel varía, pero la idea es ahora qué tan competente es en Microsoft stack. Personalmente, me gusta www.tekpub.com por muchos buenos lanzamientos de pantalla y el buen trabajo de Rob Conrey, por diseccionar cosas en unidades simples y comprensibles de tutoriales. Esto aceleraría su proceso de aprendizaje. Lo recomendaría encarecidamente a pesar de que tiene una membresía mensual que es nominal si vives en países de la OCDE.
Tengo que amazonar y perseguir los libros en asp.net/microsoft.net, generalmente elijo un libro con calificación de 5 estrellas y se compromete. Por último, pero no menos importante, aprenda a instalar todo el software requerido Visual Studio, SQL Server y otras cosas necesarias en su computadora personal (la edición express debería estar bien). Hágalo usted mismo, ya sea buscando en Internet o en un libro. Esta es una habilidad muy importante, que sería útil y simple en la mayoría de los casos, pero hay algunas lecciones que se pueden aprender allí.
Al menos, asegúrese de haber implementado ese pequeño carrito de compras o un mini-proyecto de motor de blog para ver cómo todo encaja.
fuente
No le gusta PHP, por lo que evitar trabajos en esa área es bastante fácil. Hay muchos trabajos en el área web / Microsoft, pero ¿son estos los tipos de empresas para las que desea trabajar?
Hay tres tipos de trabajos:
No estoy seguro de que el # 1 tenga mucha C #, pero tendrás que descubrirlo por ti mismo. ¿Has considerado Python o Ruby?
Tienes un trabajo, así que no deberías estar demasiado desesperado. Elija una empresa para la que desee trabajar y vea qué requieren. Con su educación y experiencia, el autoaprendizaje es la mejor opción. No debería ser demasiado difícil convencer a los empleadores de que sabes lo que estás haciendo y eres capaz de aprender nuevos idiomas. No hay caminos definitivos; prepárate para vender tus habilidades.
fuente
He realizado saltos tecnológicos con éxito más de una vez en mi carrera. El primer proyecto en el que trabajé fue una aplicación ColdFusion (solo piense en todo lo que está mal con PHP, amplíelo y ahora tiene ColdFusion). Odiaba esa aplicación, que se convirtió en odio cuando tuve que implementarla en una caja de Solaris reforzada.
Tuvimos que encontrar una herramienta para hacer un procesamiento en segundo plano, algo en lo que ColdFusion definitivamente no estaba a la altura. Como era una empresa pequeña y quería aprender Java, escribí la utilidad en Java. Aprendí mucho sobre programación en el proceso. También construí mi reputación por hacer bien el trabajo.
Como Java estaba orientado a objetos y tenía exposición a C ++, me pidieron que mantuviera algunas de las aplicaciones de C ++ de esa compañía. De nuevo un cambio tecnológico.
Por un tiempo volví a Java tanto en el escritorio como en el servidor. Eso pagó mis facturas durante mucho tiempo. Recientemente, tuve otro cambio de tecnología a la pila .Net. El conocimiento que acumulé sobre el diseño de aplicaciones y la resolución de problemas es lo que me permitió obtener el trabajo a pesar de que no había escrito una línea de código C #. C # era lo suficientemente similar a Java. Lo recogí a un nivel en el que podría ser útil mientras esperaba que se procesara el papeleo de recursos humanos.
Al final del día, tienes que demostrar que tienes habilidades tecnológicas fuera del hoyo donde sientes que estás ahora. Esa demostración es más efectiva con una aplicación o utilidad que funcione. Cuantas más personas puedan ver esa aplicación, mejor. Sin embargo, como lo demuestra mi última transición, no es necesario tener esa solicitud para conseguir un trabajo. Debe saber cómo resolver los problemas de manera compatible con la tecnología de la empresa.
Cuando estoy sentado en la posición de entrevistador, los certificados realmente no me impresionan. La razón es que he tenido 50/50 de suerte con desarrolladores certificados. Algunos eran realmente buenos, y otros eran realmente malos. No hubo una tendencia apreciable en ambos sentidos, por lo que no es un problema. Lo que es más importante es qué tan bien puede comprender los problemas y articular soluciones.
fuente