¿Cómo puede un programador autodidacta, sin experiencia profesional, promocionarse a sí mismo como un candidato calificado en busca de su primera oportunidad de trabajo a tiempo completo?

Si no cree que tenga experiencia laboral, deje de esperar a que alguien más se la entregue. Ve a crear tu propia experiencia; Abre tus ojos y date cuenta que tienes más experiencia de la que crees.


Participe en [Github] (compile mejor el software, juntos) si aún no lo está y publique algunos de sus propios proyectos allí. No pierda su tiempo tratando de idear un buen proyecto, solo piense en él como una instalación de almacenamiento en línea gratuita para cualquier pequeño proyecto que haya escrito.

Es mucho más fácil ganar impulso moviendo que esperando

Trate de obtener algunas contribuciones a los proyectos de otras personas también. Nuevamente, intenta crear una nueva característica para contribuir. Si espera alrededor mientras piensa en la próxima gran idea, nunca hará nada, tardará una eternidad, o si es el proyecto de otra persona que está tratando de contribuir a su solicitud de fusión, será más que rechazado, independientemente de cómo Puede que sea espectacular, porque al igual que todos los empleadores que te rechazan por no tener experiencia, también lo harán los demás hasta que te demuestres tu valía.


Busque algunos proyectos populares con los que ya esté familiarizado (¿alguna vez ha oído hablar de alguno de estos proyectos: Bootstrap, jQuery, D3, Backbone? Todos están en Github esperando su ayuda) y comprueban los errores que otras personas han informado . Si no puede encontrar un proyecto para contribuir, hay sitios dedicados a ayudarlo a encontrar cosas para hacer, por ejemplo, www.codetriage.com

Resolver errores (problemas) es una gran responsabilidad de la vida de cualquier desarrollador. No puedo hablar por otras personas, pero todos los desarrolladores que conozco trabajan íntimamente dentro de un sistema de venta de boletos (Redmine es mi favorito personal, Jira mi menor, hay muchos otros) y una parte importante de cada día es el mantenimiento y la corrección de errores. Entonces, si estás corrigiendo errores en Github, no es tan difícil relacionar esa experiencia con la experiencia del mundo real. Reanudar entrada: “colaborador de código abierto: se resolvieron X problemas en los proyectos Y y Z”

Además, no subestimes el aspecto social; sigue a algunas personas interesantes y etiqueta tus proyectos favoritos con una estrella. Star mis proyectos, tal vez lo note y revise sus proyectos a cambio. No puedo contar cuántas veces he escuchado a empleadores o reclutadores interesados ​​en nada más que ver que sigues a algunas personas y proyectos interesantes. Validación por asociación … supongo: /

[Puedes seguirme, no me importa 😉 y tengo algunos proyectos en los que probablemente te resulten sencillos de contribuir. Por supuesto.] (Http://www.github.com/dcondrey)

Dedique algún tiempo a crear su cuenta de Github para que se vea activa (falsifique) ; En el proceso de hacerlo, lo siguiente que sabe es que se ha convertido en un miembro activamente involucrado de la comunidad de código abierto (hágalo) .

Tener esa experiencia lo hará más valioso como candidato a los ojos de los empleadores, y en realidad, que la mayoría de los candidatos junior con 3-5 años de experiencia laboral profesional pero sin un código real para mostrar a un empleador potencial. Además, le dirá a cualquier empleador por el que valga la pena trabajar, porque le apasiona su conjunto de habilidades y se esfuerza constantemente por ser un experto en su profesión.

Si desea construir un sitio web para usted mismo, también puede hacerlo en Github. Echa un vistazo a Jekyll y Github Pages.


En cuanto a tener un título … ¡solo alegra que no hayas perdido tu dinero o tu tiempo en la universidad! En mi experiencia, nadie lo ha pensado dos veces o se ha preocupado en lo más mínimo de si yo tenía o no un título (tampoco fui a la universidad .. Bueno, en realidad fui a la escuela de cine como un imbécil). La gente solo se preocupa por tu código. Lo considero como cualquier otra lengua extranjera. ¿Prefieres contratar un intérprete que tenga un título en francés o alguien que haya crecido en Francia?

Personalmente … Si estuviera en una posición para contratar a un desarrollador, estaría más inclinado a contratar a un buen programador sin educación universitaria por encima de otro candidato con un nivel de habilidad similar y un título porque el chico que nunca fue a la escuela pero puede demostrar la misma competencia que alguien que tuvo que pagar $ 50k + para aprenderlo ha demostrado, tan pronto como entran por la puerta, son muy trabajadores, dedicados a su oficio, y deben amar su profesión por haberse enseñado a sí mismos tanto y es probable que sean más capaces de pensar fuera de la caja y encontrar soluciones innovadoras para problemas complejos porque la universidad nos enseña las reglas, los límites y cómo pasar las pruebas. Las reglas deben romperse, los límites se extienden y las pruebas no se contestan.

En ninguna parte es esto más cierto que el desarrollo web porque para ser un desarrollador competente, debe continuar su educación todos los días durante el resto de su carrera profesional para mantenerse al día con las tecnologías cambiantes. El desarrollo web es una de las únicas profesiones que conozco donde puede encontrar Toda una cultura de personas que hacen lo que nos pagan por hacer solo para disfrutarla. El tipo que tuvo que ir a la universidad para convertirse en un experto … Tal vez sea un desarrollador porque pensó que obtendría un buen trabajo y ganaría mucho dinero o quizás simplemente sonaba mejor que ser un abogado. ¿Va a mantener su educación actualizada? ¿Va a ser el chico que se emocione con los proyectos realmente difíciles? ¿Tendrá la pasión de hacer no solo un trabajo mediocre sino el impulso de CREAR algo en lugar de simplemente regurgitar la misma mierda que cualquier otro shmuck? No estoy seguro … pero mi dinero está en el niño que se quedó hasta tarde para aprender un nuevo lenguaje de programación antes de poder conducir un automóvil.


Si no lo eres ya; involucrarse en [StackOverflow] (Stack Overflow) también. Los puntos son adictivos, la confianza … El término es gamificación y ha sido probado. Inicie sesión y responda al menos 1 pregunta por día al día durante al menos un mes y desarrollará alguna actividad. Para entonces, también acumularás una adicción y nunca la tendrás abierta en segundo plano. No seas un imbécil después de obtener unos pocos miles de puntos (recuerda, todas las preguntas son estúpidas para alguien) y NO hagas una pregunta hasta que tengas al menos 2000 puntos. Esa cantidad de puntos me llevó alrededor de 6 meses … Tal vez un año. No puedo recordar ¿Por qué no debería hacer una pregunta en un sitio web de preguntas y respuestas? Es probable que su pregunta ya haya sido contestada o porque necesita aprender primero a hacer una pregunta porque no estamos en la universidad donde no hay preguntas estúpidas. Aquí cada pregunta es estúpida para alguien. StackOverflow no existe para hacer su trabajo duro por usted. En definitiva existe como una colaboración y referencia. Si no puede hacer una pregunta de manera inteligente con los detalles de sus esfuerzos, entonces no se esforzó lo suficiente o simplemente está demasiado lejos durante el año y debería hacer algo más simple. Me imagino que si le preguntara a alguien cómo hacer una cirugía de corazón, podrían decirme cómo, pero no habría aprendido nada porque ni siquiera sé cómo empezar.

El secreto para ganar en StackOverflow … No le digas a nadie lo que te dije. La mayoría de las respuestas se pueden encontrar buscando preguntas antiguas; o Google. Shh …


En su currículum, escriba:

** Empresa: ** Contrato Oportunidades o Independiente
** Fecha de inicio: ** cada vez que comenzaste a aprender
** Fecha de finalización: ** En curso.

Guárdalo en tu currículum para siempre o al menos hasta que hayas completado un currículum de 2 páginas. Contempla todos los proyectos personales que has hecho, todos los proyectos a favor de amigos, la escuela, lo que sea … ¿Cuál es la diferencia entre eso y el trabajo? La única diferencia es que lo hiciste a cambio de un IOU o un ‘Gracias’ o de la educación que obtuviste para hacer el ejercicio … todo lo cual es más valioso que $. Así que ponlos en tu currículum! Pon esas cosas de Guthub en tu currículum. Pon esas cosas de StackOverflow en tu currículum. Claro que tenía Wikimedia en mi currículum por ser un colaborador de Wikipedia por un tiempo, solo recientemente lo he eliminado para dejar espacio para otra experiencia.

Y por último pero no menos importante. Recuerda esto…

“Fingir hasta que lo consigas”.

Ah, y la auto-promoción descarada no duele. 😉


Si después de todo eso, todavía no puedes conseguir un trabajo … bueno, supongo que deberías haber sido abogado.

Presumir.

Las cualidades clave de los desarrolladores front-end incluyen:

  • Hacer una aplicación compatible con diferentes navegadores y plataformas.
  • Saber qué tecnología usar para qué funcionalidad
  • Estar (algo) al día con los estándares actuales
  • Aplicar la tecnología de una manera creativa
  • Capaz de superar problemas.

Cuando me emociono con una nueva característica o biblioteca, solo pienso en un proyecto (generalmente) tonto y simplemente lo construyo. Al hacer eso, intento probar que tengo las cualidades clave.

Si desea trabajar para una empresa que es consciente de lo que hace a un buen desarrollador de aplicaciones para el usuario, puede volverse loco siempre que funcione bien, se vea bien y el código esté bien organizado. Esto puede parecer contrario a la intuición, ya que el desarrollo de front-end generalmente se trata del resultado, no de la tecnología, pero es más probable que un negocio orientado al desarrollo lo juzgue por el código. Hágalo difícil, supere los problemas y documente sus problemas, soluciones y elecciones en algún lugar. Eso es lo que importa.

Sin embargo, si desea trabajar en un entorno en el que la tecnología apenas importa, la mentalidad de “solo hágalo”, debe centrarse en el proyecto con un propósito y debe lucir y funcionar de manera excelente. Desordena el código todo lo que quieras, tiene que ser práctico. Piense en una herramienta o servicio.


Para inspirarte, aquí están algunos de mis proyectos:

  • La vida de una partícula: Me divierto con tres años hace aproximadamente un año. Los no desarrolladores no ven el uso, los desarrolladores creen que es bonito, los verdaderos programadores 3D se darán cuenta de que hice elecciones de mierda.
  • Representación de Cubic Bézier en Sass: Hugo y yo nos volvimos locos con Sass y escribimos sobre ello. Nuevamente, esto no tiene uso práctico, pero muestra nuestra habilidad y creatividad con Sass.
  • Gráficos vectoriales en Sass: otro artículo de un proyecto de Sass sin caso de uso, pero otra demostración de mi habilidad y creatividad.

Como puede ver, mis proyectos son completamente inútiles para un negocio regular. A los otros desarrolladores parece que les encanta, y he tratado de documentar problemas, soluciones y opciones a través de artículos. Cosas locas como esta me dieron un nuevo trabajo con un aumento del 25%. Estoy empezando la próxima semana 🙂

Creo que estás mirando esta pregunta de manera equivocada. Hay miles de tutoriales por ahí, desde codecademy.com, hasta OpenCourseWare de MIT. Todos te enseñarán los mismos conocimientos básicos. Antes de comenzar a programar, también estaba buscando una “bala mágica” para convertirme en el mejor programador posible.

Desafortunadamente (o afortunadamente), he descubierto que solo hay una forma posible de convertirse en el mejor programador: la práctica apasionada. La diferencia entre el mejor y el peor programador es que, cuando se les entrega la misma tarea, los “mejores” programadores lo tomarán, lo resolverán, lo resolverán de nuevo y luego agregarán más funciones. Un programador promedio resolverá el problema asignado y se hará con él. Pero el método que describí anteriormente es, literalmente, la única forma de convertirse en un gran programador.

En términos pragmáticos, ¿qué significa esto? Significa:
1) Aprender lo básico. No importa si los aprendes en una clase, de un libro gratuito, de un sitio web gratuito, etc. Casi no hace ninguna diferencia.
Nota: He aprendido tanto la programación de los cursos universitarios que cuestan miles de dólares como los tutoriales gratuitos en línea.
2) Iniciar la codificación. Crear un sitio web para la diversión.
3) Piense en formas divertidas de mejorar el sitio web.
a) Si no puede pensar en ninguna idea, pregúntele a un amigo, “¿qué le gustaría ver en este sitio?”
b) Si no sabe cómo codificarlo, busque en Google, vaya a stackoverflow, pregunte a otras personas.
c) implementar
4) Repita el paso 3 una y otra vez. En algún momento, dependiendo de lo dedicado que seas, de repente te darás cuenta de que eres un programador bastante sólido.
5) Muestre su cartera de trabajo a la empresa para la que desea trabajar.
6) Beneficio

Sí, podría haber publicado enlaces y listas para todos los tutoriales, pero esa respuesta hubiera sido deshonesta. Entiendo lo que estás buscando, ya que estuve allí hace poco. Pero puedo asegurarle que el método descrito anteriormente es el único camino hacia la meta que está tratando de lograr.

¡La mejor de las suertes!

Adán

Fui Flash Dev durante 6 años. He sido un desarrollador de aplicaciones para usuario durante 4 meses, trabajando principalmente con CSS y Javascript. Soy un aspirante a Rails Dev, y he pasado por una docena de entrevistas telefónicas, y una entrevista en la oficina, para un puesto en Rails. También he hecho muchas preguntas a mis amigos que son Rails Devs con experiencia, sobre qué aprender, qué construir y qué esperar en la búsqueda de empleo.

El primer conjunto de consejos que recibí fue hacer una aplicación de Rails, y otra y otra. Familiarízate con Rails, haciendo. Publica tu código en Github, para que otros puedan ver lo que has hecho. Y si es posible, haz que la gente use lo que has hecho.

La segunda ronda de consejos que me dieron, fue contribuir con la comunidad de código abierto. Encuentra un proyecto que te interese y úsalo. Busque errores o características potenciales, y corríjalos / añádalos. Github es un gran lugar para esto, ya que simplemente puede examinar los problemas ya conocidos y enviar una corrección directamente al administrador del proyecto.

Algunos de mis amigos, que en realidad entrevistan a los candidatos de Rails, dicen que buscan personas que puedan pensar de manera pragmática. A veces hacen preguntas como: “¿Cuántos autos hay actualmente en San Francisco?” O “¿Escribir un programa que me diga de qué se trata más en Twitter la gente actualmente?” Y si bien no puede saber cuántos autos hay en San Francisco, puede hacer suposiciones informadas sobre cómo existen los autos dentro de la cuadra promedio de la ciudad, y cuántas cuadras hay en San Francisco, etc., etc. En cuanto a la pregunta de Twitter, estamos mirando para ver si sabe cómo almacenar y recuperar datos y realizar una búsqueda simple. Si puede sobrepasar eso y se sorprenderá de cuánta gente no puede, se dedicarán un poco más a la eficiencia del espacio y el tiempo, y cuándo usarán qué tecnología. Probablemente no podrás responder todas las preguntas que te hagan, pero eso debería estar bien. SUGERENCIA: Investigue la complejidad algorítmica (también conocida como: Big O)

En cuanto a mis experiencias personales durante las entrevistas, las preguntas que me han formulado no han sido tan generalizadas como las que plantearon mis compañeros. Por lo general, me han formulado preguntas muy específicas sobre los términos y metodologías relacionados con Rails y los conceptos básicos de programación. La pregunta # 1 que sigue apareciendo, ¿cuál es la diferencia entre “==” y “===”. Algunas preguntas más comunes incluyen …

“¿Cuál es la diferencia entre privado, protegido y público?”
“¿Qué significa REGEX y qué es?”
“Definir los diversos términos, clase, objeto, método?”
“¿Qué significa MVC?”
“¿Qué significa DRY?”
“¿Qué es un iterador?”

“Describe algunas de las etiquetas HTML5?”
“¿Qué significa ORM?”
“¿Cuál es la diferencia entre attr_accessor y attr_accessible?”
“¿Cuáles son las diversas asignaciones de relaciones de modelo en ActiveRecord?”
“Describe cómo construir una relación modelo has_many, y correspondiente_muy_muchas”.
“¿Cuáles son las diversas validaciones de modelos en Rails?”
“¿Qué es un hash, y cómo se agregan / eliminan valores?”
“¿Cuál es la diferencia entre extender e incluir?”
“¿Qué es un módulo Ruby?”
“¿Qué es la prueba unitaria?”
“¿Qué es noSQL?”
“¿Qué es REDIS?”
“¿Cómo diagnosticarías y resolverías las consultas lentas de base de datos?”
“¿En qué se diferencia nginx de Apache?”
“¿Qué es un entorno Rails?”
“¿Cuáles son los diversos iteradores de Ruby?”
“¿Cuándo podrías usar el método de inyección?”
“¿Cuál es tu gema de rubí favorita, y por qué?”

No puedo hablar por el resto del país, pero si está buscando un empleo como Rails Dev en San Francisco, debería poder responder a todas las preguntas mencionadas anteriormente. Si está buscando algún tipo de trabajo de programación, independientemente de si se trata de Ruby / Rails o no, es esencial que pueda responder con confianza al primer conjunto de preguntas en negrita.

Personalmente, todavía tengo mucho que aprender sobre el desarrollo de Rails, así que me inscribí en Dev Bootcamp en San Francisco, un curso de 10 semanas, diseñado para convertir a los ingenieros de Rails en desarrolladores web junior.

Creo que eso lo resume todo. Buena suerte. 😉

También experimenté este problema cuando comencé a trabajar como programador hace aproximadamente un año y creo que tengo algunos consejos en la manga.

paso 1 , comience su propia compañía como propietario único, de esa manera no tendrá que preocuparse por el encargado de impuestos y el nombre de su compañía no tiene que ser elegante ni complicado, por ejemplo, si su nombre es John Doe y usted realmente desea tener experiencia de trabajo en JavaScript y sus bibliotecas, Reaccionar, angular, lo que sea … todo lo que tiene que hacer es nombrar a su empresa recién formada después de usted (al menos nombrarlo con algo que lo conecte directamente con usted), por ejemplo … ‘Johns Desarrollo web ‘o’ Desarrollo de software ‘o’ Servicios web de John Does ‘entiendes el punto y luego te empleas como freelance en JavaScript o desarrollo web.

paso. 2 , si el nombre de su empresa era ‘John Does Web Services’, su siguiente paso es abrir una página de LinkedIn para su empresa y listar su trabajo en su perfil de LinkedIn como ‘Me llamo John Doe y soy un desarrollador web senior en John Hace servicios web ‘. wolaahh

paso 3 , cree un sitio web oficial para su empresa y hospédelo, comprar un tema de bootstrap es lo suficientemente bueno para este trabajo y tener su nombre de dominio como http://johndoeswebservoces.com, al menos mencione claramente. Sugerencia: no asigne a su nombre de dominio un nombre genérico como ‘http://Awesomewebsites.com. Esto no dice nada sobre usted ni sobre lo que hace.

paso 4, no es necesario, pero vale la pena mencionar aquí que puede pensar en hacer tarjetas de visita para su empresa, puede que no sea bueno en Photoshop y está bien, pero puede buscar tarjetas de visita gratuitas en Google o contratar a alguien de fiverr.com para diseñar un tarjeta de presentación de su usted a partir de $ 5

paso 5, comience a crear aplicaciones, sitios web y cárguelos en los sitios web de su empresa para mostrar su cartera y enviar el código a Github. Si no sabe cómo insertar código en GitHub, puede aprender esto buscando en Google o tomando un tutorial en él.

conclusión, ahora puede decir que usted es un desarrollador web de John Does Web Services en su currículum y le da a las personas sus tarjetas de visita para demostrarlo. Eso es lo que hice y una empresa de desarrollo de software local me contrató para una pasantía. Todavía estoy aprendiendo JavaScript y todavía estoy codificando.

Entre David y Jeff, lo tienen. En este campo, las credenciales en papel (como títulos, certificaciones, etc.) no reciben mucho crédito. (De hecho, ¡algunas certificaciones incluso se ven negativamente! ) Crea una aplicación no trivial, con la fuente disponible públicamente en Github. (O tal vez algún otro repositorio, pero Github es el más popular, y muchos empleadores buscarán allí sin ser dirigidos). Esto hace varias cosas:

  • Demuestra que puedes escribir una aplicación que funcione.
  • Muestra tu creatividad al pensar en una idea original para la aplicación.
  • Muestre su estilo de codificación, todo, desde “se ve bien” a “está bien pensado”.
  • Demuestre que tiene al menos alguna pista confusa sobre cómo funcionan el código abierto, git y Github. (Es posible que su empleador no use git y / o Github, pero son herramientas muy populares).

Asegúrese de que pueda explicar en la entrevista exactamente cómo funciona y por qué tomó cada decisión al respecto. Esto les ayudará a creer que de hecho es su código, no algo que copió de otro lugar.

Para más ideas, echa un vistazo al blog de Joshua Kemp. Dile que te envié. Pasó de ser herrador (vinculado ya que el trabajo es tan anticuado que la mayoría de las personas modernas ni siquiera saben qué es ), al desarrollo de software y control de calidad. Ahora él ayuda a otros a hacer tales transiciones.

En primer lugar, permítame darle una noticia, según la investigación realizada por rockon.me realizada hace un par de semanas, el 50% de los estudiantes universitarios abandonan sus cursos para el segundo año y aproximadamente la mitad de estos candidatos tienen éxito en la búsqueda de una carrera. .

Además, el salario promedio de los candidatos con títulos es aproximadamente $ 20K más alto que los candidatos sin título en el mismo campo. Pero, la pregunta importante aquí es: ¿Vale la pena el alto costo de la educación en este momento en el país? La respuesta es de acuerdo a la carrera que elijas.

Las habilidades técnicas se aprenden por sí mismas ya que el sistema universitario (la mayoría de las universidades) apenas proporciona ningún conocimiento en tiempo real requerido para los empleos de la industria. La mayoría de los candidatos exitosos que he conocido son como tú 🙂 Autoaprendizaje y listos para RockOn

Aquí hay algunos consejos que te ayudarán a tener éxito.

1) Construye tu perfil-

Ahora esto es algo que todos te dirán ¿verdad? Pero, la forma en que lo construyes hace toda la diferencia. Para empezar, necesitas tener para ti un perfil personal impresionante. Para esto, existen múltiples fuentes: Linkedin, Rockon.me, Github, etc. La diferencia con Rockon en comparación con otros sitios de redes profesionales es que no solo le proporciona herramientas de creación de perfiles o páginas llamativas dirigidas por la interfaz de usuario. Te da la ventaja adicional de sobresalir en lo que estás por hacer. Por ejemplo, la ayuda de entrenadores / asesores certificados como yo, quienes lo ayudarían con las preguntas más difíciles relacionadas con el crecimiento de su carrera. La siguiente es la capacidad de hacer crecer su red en un embudo altamente definido por el usuario. Seguro que te gusta aumentar tus conexiones. Pero, ¿qué pasa si estas conexiones te ayudan a conseguir el próximo trabajo de tus sueños? Esto es lo que la plataforma hace por ti.

2) Construir un perfil independiente

De nuevo, algo que sugiero a los candidatos que no tienen educación formal o experiencia. No hay nada que demuestre compromiso en un candidato que la capacidad de ganarse la vida con lo que él / ella hace sin tener un título formal. Puede hacer crecer su carrera independiente en sitios como: fiverr, odesk, freelancer, etc. La clave aquí es apegarse a trabajos o tareas que pagarían menos al principio. Recuerde que debe crecer desde la parte inferior y se requiere un compromiso al iniciar.

3) Conviértete en un experto en materia

Los expertos en la materia son el “puesto de observación” para los profesionales en cada campo. Ahora, cuando comprenda Javascript, comience a hacer una investigación profunda de los diversos trucos que se pueden usar para ello. Una cosa muy común para la mayoría de las personas técnicas que conozco es la incapacidad de escribir algo que no sea código. Podría ser un diferenciador si aprende a escribir artículos sobre trabajo técnico.

Hay muchas otras cosas que se pueden hacer aquí, pero esto requeriría información mucho más detallada sobre cuál es su objetivo final. Puede ponerse en contacto conmigo en [correo electrónico protegido]

En primer lugar, hágase estas preguntas:

  • ¿Qué tipo de trabajo de desarrollador te interesa más hacer?
  • ¿Qué tipo de objetivos tienes para ti como programador?

Concéntrese en construir cosas que muestren sus habilidades en relación con lo que le gustaría hacer, y luego incluya esos proyectos clave en su currículum para que los empleadores tengan una mejor idea de lo que es capaz de hacer. Cree cosas que van más allá del simple CRUD, la aplicación móvil de administración de tareas, etc. Si todavía está perdido sobre qué tipo de proyectos debe construir, aquí hay algunos consejos:

  • Integra tu proyecto con otras bibliotecas / herramientas
  • Resuelve un problema más avanzado con tu código.
  • Construye algo que otras personas puedan usar también
  • Colabore con otros desarrolladores en un proyecto para demostrar que puede trabajar en equipo
  • La ambición es buena, pero no diseñe demasiado sus proyectos ni los complique innecesariamente.

Su cartera

Sitio web personal
Si desea ser un desarrollador web de aplicaciones para usuario, entonces debe tener un sitio personal para mostrar sus habilidades. Esto significa configurar un servidor para el sitio web, comprar su propio nombre de dominio y todo eso. Incluso si planea ser un desarrollador de iOS o Android o un desarrollador backend, no estaría mal tener un sitio web personal.

Los empleadores / reclutadores por lo general no se preocupan por el diseño del sitio (a menos que vayan a ser un desarrollador de front-end centrado en el diseño), por lo que no tiene que parecer un diseño profesional. Sin embargo, el sitio web debe estar bien organizado y debe ayudar a los empleadores / reclutadores a encontrar y comprender fácilmente qué tipo de trabajo ha realizado en el pasado.

Además, ayudaría a agregar un poco de contexto a los proyectos que haya creado, lo que significa etiquetar la fecha en que lo completó, el idioma en el que se escribió, la tecnología que ha utilizado y el enlace al repositorio en GitHub o algo así si está ahí.

Blog
Puede que no sea el mejor programador que existe, pero aún puede empaquetarse. Escribe sobre las cosas nuevas que has aprendido, ya que esta es una gran oportunidad para demostrar que te gusta aprender cosas nuevas y también puede darles algo de qué hablar a los reclutadores. En general, escribir lo que has aprendido también es una excelente manera de crecer como desarrollador.

GitHub

En el día y la edad de hoy, debe tener una cuenta de GitHub. Si no tienes un título de CS, tienes que hacer un esfuerzo adicional para demostrar que puedes hacer el trabajo, y GitHub es un buen lugar para demostrarlo.

Tus proyectos

Es poco probable que su posible empleador lea los detalles del código fuente de su proyecto, lo que significa que, en el mejor de los casos, obtendrá algunas miradas, y esa breve mirada lo convertirá o lo dejará sin palabras.

Esto significa que es aún más importante para usted proporcionar un medio para que los reclutadores tengan rápidamente una buena idea de si usted es un desarrollador que puede trabajar bien con otros. Varios aspectos a considerar para su proyecto personal de GitHub incluyen comentar su trabajo para que otros (o incluso usted mismo, N años más tarde …) puedan entender por qué está haciendo algo, escribiendo pruebas unitarias para su código, teniendo un estilo de codificación consistente / estructura de codificación limpia , etc.

Básicamente, el punto es mostrar que puede escribir código legible y mantenible que otras personas puedan entender o saltar fácilmente. Lea artículos sobre las mejores prácticas de codificación y estudie proyectos de código abierto de alto perfil para tener una idea de lo que constituye un código legible y listo para la producción.

Consejo: Si no está seguro de si su código es legible o no, siempre puede contratar a un desarrollador experimentado para que lo revise y le brinde consejos sobre las mejores prácticas, etc. Además, si termina trabajando con el mentor en más de ¡Algunas ocasiones para convertirse en un mejor programador, su mentor podría incluso escribir una carta de recomendación para usted !

Proyectos de código abierto
Si bien haber contribuido a proyectos de código abierto de alto perfil definitivamente te dará puntos, no necesariamente tienes que hacerlo porque probablemente serán demasiado grandes y complejos para un principiante. El punto de haber contribuido al código abierto es mostrar que sabes cómo usar git y que puedes colaborar con otros desarrolladores. Sin embargo, si está decidido a contribuir a un proyecto de código abierto específico de alto perfil, revise los problemas abiertos y trabaje en algo que cree que puede hacer: luchará con él durante días y se frustrará, pero el resultado final Debería ser bastante satisfactorio si te gusta el desafío.

Alternativamente, puede intentar contribuir a una biblioteca / extensiones / herramienta más pequeña pero también bastante popular que personalmente encuentre útil y se sentirá motivado para ayudar a mejorar. En general, se dirigen a proyectos con un rastreador de problemas activo y proyectos relacionados con lo que le gustaría hacer como desarrollador profesional.

Además, si tu proyecto GitHub personal recibe contribuciones de otras personas, ¡excelente! Esto demuestra que no solo puede resolver una necesidad existente, sino que también puede administrar un proyecto. Además, también indica que puede comunicar sus ideas lo suficientemente bien como para que otros desarrolladores participen en su proyecto.

Sin embargo, no puede evaluar si su proyecto de código abierto despegará, por lo que también puede considerar pedirle a sus amigos que co-creen uno solo para obtener la experiencia de colaboración.

Experiencia

Además de tener una buena cartera de proyectos que haya realizado anteriormente, es extremadamente importante tener experiencia también. Las empresas no dudarán en contratar desarrolladores sin un título de CS, pero la experiencia puede convencerlos de lo contrario. Los proyectos de construcción en los que estás interesado son buenos y todo, pero si vas a trabajar en una empresa, estarás enviando el producto de otra persona. Esto significa que se encontrará con problemas con los que probablemente no se encontrará al crear sus propias aplicaciones.

Por lo tanto, tener la experiencia de enviar código listo para la producción y resolver las necesidades de otras personas realmente lo ayudará a construir sus credenciales de codificación, incluso si no tiene un título de CS.

Entonces, ¿cómo se obtiene experiencia?

(El artículo que escribí es bastante largo, así que aquí está el enlace a la versión completa: Cómo obtener su primer trabajo de desarrollador (incluso si no tiene un título de CS) )

Las respuestas que le aconsejan poner su conocimiento para trabajar en problemas reales es su mejor plan.

Tenga en cuenta que, sin embargo, los proyectos de desarrollo de software generalmente implican un equipo. Trabajar con un equipo de desarrolladores, preguntas y respuestas, bases de datos y otros ingenieros variados es muy diferente a dominar las tecnologías.

Cuando haces todo el trabajo como desarrollador único, te pones todos estos y más sombreros para el desarrollo de software. En ese sentido, te recomiendo que “sepas” cuando te encuentres frente a otro e intentes practicar las mejores prácticas y metodologías de cada uno. Pretendo que puede haber futuros miembros del equipo cuando trabajo solo. Así que cosas simples como el control de versiones se comprometen y los comentarios se leen como un esfuerzo de desarrollo sustantivo en juego. Esto se aplica a los documentos de código o al tiempo para detenerse y crear una solución de OO en lugar de un montón de código de espagueti o buscar enfoques de diseño de bases de datos relacionales y tratar de hacer el que mejor se adapte.

Gracias por la A2A!

No dices lo que estás haciendo en tus 100 horas por semana, pero asumo que no está programando, por lo que estás preguntando cómo puedes aprovechar tus habilidades informáticas existentes y aprender a programar.

Afortunadamente, es más fácil que nunca aprender a programar en general, y en particular a la programación web. algunos recursos son:

  • Khan Academy: tiene una sección completa dedicada a aprender programación de computadoras en general y JavaScript (el lenguaje utilizado para el desarrollo web de aplicaciones para usuario) en particular
  • Para Ruby on rails, visite http://www.codecademy.com/tracks … o http://teamtreehouse.com/library … (ambos vinculados desde Khan Academy)
  • Youtube tiene muchos tutoriales – busca “Javascript tutorial” o “Ruby tutorial”
  • Sorprendentemente, algunas universidades, incluido el MIT, han puesto a disposición gran parte de su material.
    Gratis en línea. Por ejemplo, aquí está la primera hora de introducción de MIT a la informática:
  • Una vez que tengas tutoriales saliendo de tus oídos: código, código, código. Comience escribiendo un programa simple (diga algo donde escriba algo en un cuadro de texto, presione ‘Enviar’, e imprima lo que escribieron, invirtió, en negrita) y luego continúe. Busque “ejercicios introductorios de programación javascript” en Google y verá muchos ejemplos, pero la clave después de comenzar es elegir las cosas que personalmente le parezcan interesantes / emocionantes. Intenta programar un juego simple.
  • ¡Buena suerte!

Después de pasar por la situación exacta, puedo decir con confianza que aprender HTLM, CSS y jQuery son las cosas más valiosas que dominar primero. Me lancé directamente a Rails y tuve que detener todo cuando llegué al desarrollo frontend. Así que ahora recomiendo un enfoque differnet. Primero debe saber cómo preparar el andamio de su sitio con HTML y luego personalizarlo con CSS. La biblioteca jQuery obviamente requiere cierto conocimiento de JavaScript, pero inicialmente, solo necesita conocer la sintaxis básica para usar jQuery para manipular los elementos DOM. También ve resultados mucho más rápido con jQuery, que lo alienta a profundizar en JavaScript para crear funciones más complejas.

Por último, NO recomendaría Rails o Django como su primer marco para el desarrollo web. Comience con un marco de Javascript como Meteor. Si desea garantizar la empleabilidad en cualquier trabajo de desarrollo web, debe conocer Javascript de forma íntima. Los marcos populares como Rails y Django requieren habilidades en varios idiomas y una gran cantidad de DSL. Meteor es todo Javascrip.

Finalmente, como principiante, se sentirá realmente frustrado por el uso diario de Rails, ya que cambia bastante significativamente con cada versión menor. Lo mismo sucede con todos los marcos, pero en el núcleo de Meteor y otros marcos de JavaScript está el Javascript puro, una tecnología de lenguaje que cambia a un ritmo mucho más lento. ¡No pueden cambiarlo significativamente porque rompería 1 billón de sitios web! Invertir en Javascript es probablemente el movimiento más inteligente que harás como desarrollador.

Aquí está mi solución directa a su problema.

Mes 1: Elija su categoría de trabajo.
Ejemplo: desarrollador web, desarrollador front-end, desarrollador de aplicaciones.

Si elige desarrollo web, aprenda los conceptos básicos de HTML / CSS / JS y Ruby on Rails, o PHP, SQL, MYSQL durante el primer mes.

Mes 2: profundice en las tecnologías anteriores y domínelas (aunque es difícil hacerlo durante 2 meses).

Mes 3: Cree algunos proyectos, sitios web y contribuya al código abierto #Github, y cree su cartera, reanude.

A partir de los 4 meses, muestre sus cosas a los reclutadores @LinkedIn, @Angellist y otros sitios web.

O

Si elige la posición de desarrollador de aplicaciones, aprenda C ++ o java, python, primer mes y domínelo durante los 3 meses.

Mes 1: Aprende un idioma perfectamente

Mes 2: Aprender algoritmos y estructuras de datos.

Mes 3: Resuelva problemas en @Codechef, Google Summer of Code (GSoC), @hacker earth.

Mes 4: Solicite trabajos de ingeniero de software en @ LinkedIn, @ HackerRank
@HackerEarth.

Yo mismo soy un desarrollador de UI y este es un mapa de ruta que planeo tomar, si mi carrera fuera al sur y me fuera por mi cuenta.

Paso 1: Construir un sitio web de persona.
Paso 2: Crea un perfil freelance en odesk o en upwork.
Paso 3: Cree un perfil de linkedin / skillpages que incluya todas las áreas de especialización.
Paso 4: Esta parte es crucial. Enlace su blog / sitio web personal a estos perfiles.

Paso 5: Buscar trabajos / conciertos.

Por supuesto, nunca he logrado hacer todo esto personalmente, ya que casi siempre encuentro un trabajo a través de mi asesoría.

Si desea poseer habilidades que lo contraten, adquiera habilidades enumeradas en las ofertas de trabajo. En este momento, es posible que encuentres una gran cantidad de ofertas de trabajo que buscan angularJS, goJS, extJS, Knockout, Backbone, etc. Apréndelos. Entonces reclama que los conoces. Aprende lo suficiente para responder algunas preguntas básicas de la entrevista. Más allá de eso, nadie va a profundizar demasiado.

Otro aspecto clave de todo esto, es la capacidad de codificar rápidamente. Practica el uso de estos marcos. Comience con un marco y pronto aprenderá a buscar en Google y aprenderá nuevos marcos sobre la marcha. Esto es lo que necesita el mercado; alguien que puede aprender rápidamente y usar su conocimiento limitado de la mejor manera posible; No es un sabelotodo.

Bueno, ya que soy de India, y la mayoría de las universidades aquí tienen como poco o ninguna porción de WebDev en el currículo. La mayoría de los estudiantes aquí JS de fuentes en línea solamente.
Entonces, para responder a su pregunta, puede escribirlo en su hoja de vida sobre todos los proyectos que ha realizado en JS.
Todos los marcos que haces.
Mire, al final, las compañías están buscando personas que puedan ayudarlo a desarrollar sus productos y, como ha trabajado con JS, tienen el talento que tienen.
Tu título no decide tus calificaciones, tus habilidades lo hacen.
Intente convencer a sus reclutadores de que aprendió JS aparte de sus asignaturas regulares.
Espero que esto ayude. Gracias por A2A.
También “Si conoces a JS, conoces a JS”.
La mejor de las suertes.

Tangibles = todo.
¿Está contribuyendo a Github, Stack Overflow o algún tipo de repositorio de código abierto?
¿Está jugando con algo en casa o como un proyecto para ayudar a un amigo (pro bono o pagado)?
No importa cuál sea el contexto: escuela, hogar, iglesia, etc.
Lo que construiste es lo que construiste.

Asegúrate de catalogar tus tangibles.
Construye y ten esta cartera para mostrar.
Manténgase al día con las tecnologías ‘modernas’. Aka, si estás estudiando Node y Backbone, aplícalo a algo, ya sea que sea tan simple como escribir código usando lo mencionado anteriormente. APLICAR, APLICAR, APLICAR.

Gracias por A2A.

Tu pregunta ya fue respondida por Gabe, Ahmed & Ken.

Le ayudará a ponerlo en conjunto y agregará mis puntos con un enfoque para obtener un trabajo dentro de pocos meses.

  1. Comience con HTML, CSS, Javascript y JQuery: estos son idiomas importantes independientemente del tipo de tecnología de back-end que decida recoger. Puedes usar todos los recursos mencionados, Ahmed y Ken, todos son buenos. Usted puede recoger esto dentro de los 3 meses que necesite. La teoría de la práctica del código no sirve para nada. Hay escasez de buen talento en estas habilidades. Entonces, si realmente puede dominarlos, puede obtener un trabajo solo como aprendiz.
  2. Una vez que esté al día con Front-end, puede pasar lentamente a tecnologías de back-end como Ruby & Ruby-on-Rails.
  3. Siga practicando su código trabajando en proyectos de práctica (lea Udemy aquí), asuma desafíos en Hacker Rank y Hacker Earth y aumente sus puntuaciones.
  4. Cree su perfil de Github y comience a contribuir de la manera más pequeña posible al proyecto de código abierto.

Recuerda tener una actitud de aprender, practicar y compartir.

Espero que esto ayude,
Aclamaciones

Adán tiene toda la razón. Convertirse en un excelente programador no será el resultado de ningún producto o seminario, sino de horas y horas de práctica.

Sin embargo, existen excelentes herramientas que pueden ayudarlo a desarrollar sus habilidades mientras trabaja en proyectos atractivos. CodeAcademy.com ya se ha mencionado, y me gustaría dar un complemento adicional a dos sitios web (divulgación completa: I para el primero).

OpenSesame.com tiene varios cursos altamente calificados por Mark Lassof de LearnToProgram.tv. El estilo de enseñanza de Mark es fácil de seguir y muy completo, perfecto si está empezando a usar estos idiomas o necesita un repaso.

Sus cursos de desarrollo web front end incluyen:

HTML y CSS para principiantes
https://www.opensesame.com/onlin

Desarrollo Ajax
https://www.opensesame.com/onlin

Empezando con JavaScript
https://www.opensesame.com/onlin

Treehouse ( http://teamtreehouse.com ) es otra herramienta que debe considerar. Parece que cumplen con sus criterios: por una tarifa mensual, puede seleccionar varias lecciones de proyectos con videos tutoriales y entrevistas con profesionales.

Creo que tendrá que pasar al menos una fase de proyectos autónomos o trabajo independiente antes de poder encontrar un trabajo de tiempo completo como desarrollador de JS.

Ausencia de credenciales universitarias (que es una señal defectuosa para poder codificar, pero hoy en día es un estándar en la industria), la forma principal en que podría mostrar su habilidad y potencial es con el trabajo que ya ha realizado. Con el trabajo de front-end, especialmente cuando está comenzando, esperaría que un buen candidato tenga muchas exploraciones y mini proyectos, mejorando la calidad con el tiempo a medida que se familiaricen más con las tecnologías.

Una estrategia que puede funcionar es pasar un poco de tiempo reimplementando la aplicación web / sitio web de la empresa que está entrevistando, y tratar de mejorar su implementación (obviamente, solo a partir de lo que pueda descubrir mediante las herramientas de desarrollo). Es similar a la forma en que los diseñadores a veces realizan rediseños de aplicaciones / sitios no solicitados y autoguiados, desde un punto de vista de codificación y dirigidos a empleadores específicos.

Para poder presentarte como un candidato calificado y viable para un puesto de tiempo completo, necesitarás tener una buena cartera .

Esto es muy crítico. Tener una cartera con diferentes proyectos en los que trabajó, le mostrará a los posibles empleadores su nivel de habilidad. Sería muy útil si tuviera proyectos relativos a su campo.

Tener un buen repo de GitHub con muchas contribuciones también es útil. Por lo que sé, la mayoría de los reclutadores solicitan su repo de GitHub.

También debe leer sobre las preguntas de la entrevista, cómo resolverlas y cómo manejar la presión.

3 meses es un marco demasiado pequeño para llamar a alguien desarrollador de software. La profundidad es inmensa y al mismo tiempo muy implacable.

La programación tiene que ver con la práctica y esa práctica demasiado consciente. Aunque en 3 meses puedes ir a un puesto menor en cualquier empresa.

Recoge un lenguaje de programación / framework y apégate a él. (Nunca lo hago y me arrepiento después).
Cree proyectos, y esa es la única manera de sentirse cómodo con el lenguaje / marco de programación

Aprende a pensar algorítmicamente. La mayoría de las veces, es bueno tener una solución en general y luego traducirla al código.

Y tenga una cosa en mente: para aprender algo, se necesita dar 10 años de trabajo duro para convertirse en un experto en ello.

Lea esto. Enseñe a usted mismo la programación en diez años.