Cómo convertirse en un desarrollador backend rudo

Convertirse en un desarrollador ‘rudo’ requiere mucho más que aprender una tecnología y trabajar en ella. Debe ser capaz de crear aplicaciones y sistemas robustos desde cero, escalarlo, y lo más importante es aprender a escribir códigos eficientes y no solo más líneas.

Cuanto más experiencia obtenga con sus fallas, mejor será con cada revisión de código. Ser eficiente le dará más tiempo para experimentar y aprender más. Entonces el ciclo continúa.

El problema aquí no es solo cómo aprender sino dónde y qué aprender. Hay 2 tipos de empresas con las que puede trabajar:

  • Donde aprender
  1. Empresas de servicios de TI (TCS, TechM, Infosys, etc.)
  2. Empresas basadas en productos (Amazon, Uber, Flipkart y start-ups)

Algunas personas consideran que las empresas de servicios de TI son buenas para comenzar su carrera, ya que lo capacitan en algunas tecnologías particulares y usted trabaja en ellas. Pero su curva de aprendizaje permanece constante durante la mayor parte del tiempo que pasó allí porque no hay muchos experimentos que pueda hacer. Después de 1–2 años, muchas personas cambian de trabajo, solo para descubrir que les falta mucho más de lo que la industria les exige.

Mientras que, en empresas basadas en productos y startup, puedes trabajar en tantas áreas que aprendes 1 cosa nueva todos los días. Asumir la responsabilidad lo motivará a aprender más y eso es lo que se necesita. Su aprendizaje no se limitará solo a lo que tiene que trabajar, sino a explorar más. Puede estar seguro de aprender lo que nunca puede hacer con ningún otro trabajo.

Este tipo de aprendizaje es lo que debes estar buscando si necesitas estar en la cima de tu juego.

  • Qué aprender: cualquier persona que no viva debajo de una roca debe conocer las nuevas tendencias de la industria. En el escenario actual, debe comenzar con Node.js / Express.js, MongoDB, Angular.js / React.js son algunas de las tecnologías más demandadas y han crecido mucho en los últimos 5 años. Puede usar portales como Búsqueda de empleo | De hecho, para ver las tendencias y el crecimiento de cualquier tecnología si desea aprender y sabrá lo que puede considerar aprender en ese momento.

La siguiente pregunta es, ¿cómo? – Debe seguir una estructura, para obtener el tipo correcto de aprendizaje.

Aprender las habilidades , tanto como puedas hacer. Trabajar, cometer errores, rectificar, aprender de nuevo. No es necesario que los conozca a todos, pero al menos algunos de esos marcos para que pueda estar listo en cualquier momento si surge algo.

Aplicación de las habilidades: a diferencia de muchos de los trabajos que tenemos allí, los códigos no se pueden aprender simplemente aprendiendo, sino que requieren práctica. Cada tecnología que aprende, necesita hacer el mejor uso de ella y hacer tantas prácticas también. Le ayuda a crear una cartera, junto con su currículum.

Conéctese y muévase con compañías basadas en productos : ahora cree que ha aprendido mucho y le gustaría tener más desafíos, es el momento de entrar en una startup basada en productos para ponerse en marcha. Simplemente no olvides mostrarles tu portafolio y mostrarles cuán malditamente ‘rudo’ eres como desarrollador.

Siempre puede obtener ayuda de algunas fuentes en línea como Simplilearn, edWisor, coursera, codecademy, etc. para aprender node.js, tecnologías en la nube, pila media o cualquier otra cosa. Puedes seguir adelante con cualquiera de ellos, te parece lo suficientemente adecuado. Si planea aprender para obtener una certificación, puede considerar coursera.org y simplilearn, si está buscando una experiencia más práctica, puede considerar edWisor | Obtener habilidades Obtener contratado que ofrece garantía de trabajo, junto con un aprendizaje completo. Además, puede practicar en varios portales disponibles, como hackerearth, etc.

Siéntase libre de elegir la opción correcta, pero asegúrese de seguir el proceso mencionado anteriormente.

¡¡¡Seguir aprendiendo!!!

Al escribir código y ganar experiencia. Pero, ¿cómo escribes código y ganas experiencia? Ahora toda mi respuesta se basa en el hecho de que todo lo que voy a decir, lo harás solo con dosis SALUDABLES de escribir código, cometer errores y volver a intentarlo.

Algunos hábitos que los desarrolladores “rudos” tienen, se desarrollan a través de experiencias dolorosas. Puede, por ejemplo, aprender “Desarrollo guiado por pruebas” para ganar puntos de brownie, o puede hacerlo porque es flojo y ha aprendido de la manera difícil que las funciones de escritura de forma incremental mientras arregla constantemente las pruebas, es la única forma de mantenerse cuerdo. Notarás que ninguno de los principales grandes proyectos ágiles tiene “bifurcaciones de características de un mes” que se fusionan de repente y luego intentan arreglar las pruebas o escribir pruebas.

Entonces, mientras haces las cosas que te digo que hagas, también comenzarás a darte cuenta de estos hábitos.

Esto es lo que haces:

1. Identifique un problema difícil primero. No tiene que ser único. Siempre y cuando no sea trivial.

2. Comience a escribir código para ello.

Ahora, esta es la “salsa secreta” para hacerte rudo: que te das cuenta de algunas verdades sobre el desarrollo del backend y aceptas estas verdades por ti mismo. No porque lo dije, sino porque los has probado y SABES que son ciertos.

Pregunta, luego PRUEBE sus suposiciones.

a) Te dirán que nunca debes crear muchos objetos, pruébalo. NO HE CONOCIDO UNA VEZ una persona cuyo sistema se ralentizó porque crearon demasiados objetos.

b) Se le informará que hacer demasiadas llamadas de red es “costoso”. Nunca conocí a alguien que realmente hubiera enfrentado esta realidad. Hacer el mismo trabajo una y otra vez es lo que causa el gasto. La red no tuvo nada que ver con eso. El problema raíz nunca son las llamadas de red, es que el flujo

c) Se le dirá cómo usar “las variables globales es malo y cómo no las usamos”. Le prometo a cada persona que dice que está mintiendo. 🙂 Java tiene variables estáticas que se usan PESADAMENTE. El estado compartido es lo que impide que las personas tengan una arquitectura adecuada, y ninguna cantidad de libros, sinergia, dinamismo, UML, diagramas, etc., lo solucionará. Obtendrá un turd pulido, pero tener un estado global compartido sigue siendo un turd. 🙂

EXCEPCIÓN: a menos que alguien esté usando Erlang o alguien realmente tenga procesos de sistema operativo independientes que transmitan mensajes de un lado a otro. 🙂 Si conoce a esa persona, envíeme su referencia. ¡Tienen un trabajo esperándolos en este momento!

d) Valórate en los resultados, no en el trabajo duro. El hecho de que tenga una cobertura de código del 100% línea por línea no significa que obtendrá nada de sus pruebas. Escriba pruebas SIGNIFICATIVAS que le digan algo.

e) Por el AMOR DE DIOS no optimices. Aprenda las siguientes tres reglas de desarrollo de software:

1. Primero haz que funcione.

2. Luego hazlo hermoso.

3. Luego, si es necesario, hazlo rápido.

La optimización es el resultado de la arquitectura y las decisiones algorítmicas, que no reemplazan la elegante recursión con bucles deslumbrantes dignos de la pantalla de un pirata informático. CONOZCA esta realidad. Escriba programas que hagan ambas cosas y dígame cuándo comienzan a divergir. ¿Mil millones de iteraciones? ¿Un trillón de iteraciones?

f) Usa Chaos Monkey. Todo lo que asumas NO va a salir mal: haz que salga mal y mira cómo se ocupa tu sistema. Si aprende una verdad fundamental durante esta fase, que es que sucede una mierda, y su código que asume esta realidad, es MUCHO más simple, más fácil de entender y mejor factorizado, que el código que supone que la mierda NUNCA sale mal y es perfecto. hora.

Si te das cuenta de esta verdad, hazme un ping. Tengo un trabajo esperándote.

g) El punto anterior es por qué REST se ganó a RPC (SOAP, Corba, XML-RPC, RMI, DCOM, EJB, y más …) El código REST API es más simple Y aún más confiable tanto en clientes como en servidores. Casi suena como … ¿ironía? Sí.

Aprenda de esto: hay una razón por la cual las personas que tienen que soportar miles de máquinas, prefieren pequeños servidores node.js que atienden una solicitud a la vez, pero pueden hacer girar un millón de réplicas de sí mismos en una máquina, en lugar de un gigante que requiere 20 minutos para el inicio, crea 20,000 subprocesos y luego se arrastra (ver Tautología 3: Todos han compartido el estado. El resto está mintiendo).

h) Literalmente 1 de cada 100 personas que afirman haber ejecutado “miles de máquinas” literalmente ha ejecutado miles de máquinas. Hay MUY pocas veces que necesita miles de máquinas, y los problemas que enfrenta al manejar flotas de ese tamaño son francamente extraños. El hecho de que haya superado el tamaño de 100 máquinas no significa que sepa cómo son “miles” de máquinas.

Cosas totalmente inesperadas como las memorias intermedias TCP de su máquina comienzan a utilizar más memoria que su proceso principal, porque cada conexión entre máquinas requiere una memoria intermedia. Las búsquedas en la tabla de enrutamiento le cuestan más tiempo que “crear objetos”. Todos esos esfuerzos de agrupación de objetos solo le costaron costos horribles en el bloqueo, y ni siquiera fueron sus décimos polos más largos. 🙂

Reserve 1000 máquinas en EC2 y ejecútelas detrás de un equilibrador de carga. Mira qué pasa. Sonará tan rudo y autoritario en cualquier entrevista real, se reirá en la mitad de las entrevistas cuando pretendan estar probando para “software escalable”.


Eso es todo lo que tengo. ¿Notó una clara falta de opciones tecnológicas aquí? Si es así, ya estás en un buen comienzo. Use quick-basic para todo lo que me importa, y si sigue las reglas anteriores, su programa ampliará y superará la plataforma Enterprise-Ready documentada por UML con diseño de patrón de diseño más hiper optimizado en el mercado.

De la misma manera que te vuelves rudo en todo …

More Interesting

He estado desempleado durante casi 1 año, estoy aprendiendo Go y quiero convertirme en desarrollador de backend, ¿qué debo hacer para conseguir un trabajo?

Me uní a un equipo de PHP API en el que voy a trabajar como desarrollador web de back-end. Actualmente están trabajando en PHP YII y Mongo. Redis ¿Qué debo aprender junto con él? ¿Cuál es un consejo?

¿Cómo reaccionaría usted, como jefe, ante un desarrollador front-end que desea trabajar en el back-end?

¿Cuándo sabes que eres bueno en backend?

¿Son los desarrolladores de back-end más respetados que los desarrolladores de front-end?

¿Qué es más desafiante en los niveles más altos de habilidades, desarrollo web front-end o back-end?

Cómo dominar rápidamente JavaScript y Node.js en un mes con un fondo existente en Java

¿Qué hace un desarrollador web creativo y qué lo hace diferente de un desarrollador front-end y un desarrollador back-end?

Cómo conectar los puntos entre tutoriales de programación y aplicaciones de la vida real

Si reinventara findthebest.com, ¿cuáles serían los idiomas del lado del servidor y del cliente que usará?

¿Cuál es el mejor marco, CMS o API para aprender como desarrollador de back-end de PHP?

¿Cuáles son los mejores lenguajes de programación de back-end para la página web?

¿Qué debo aprender para el desarrollo web (front-end y back-end) en 2017?

¿Es seguro decir que el desarrollo web front-end es más probable que le consiga un trabajo, pero el desarrollo back-end creativo es donde está el dinero real?

¿Node.js se convertirá en la mejor alternativa para el desarrollo de backend en 2015?