¿Dónde debo comenzar a convertirme en un profesional independiente en el desarrollo web?

Hay dos categorías principales de cosas que necesitará aprender. Una es bastante obvia: las tecnologías relevantes. El otro, sin embargo, muchos freelancers no aprenden hasta que se convierte en un gran problema: ¡los negocios! Comenzaría con todas las cosas técnicas, en el orden dado, y luego, si cree que sus habilidades tecnológicas están a la altura, continúe con los temas de negocios. Idealmente, obtenga un “trabajo real” en materia de tecnología, luego aprenda las cosas de negocios en su tiempo libre, y haga la transición a trabajar independientemente mientras todavía tiene la “red de seguridad” del empleo regular.

  • Tecnología:
    • HTML No puedes construir nada en la web sin esto. (Al menos, de ninguna manera, sus clientes potenciales no podrían hacerlo por sí mismos, como usar el creador de sitios de un ISP). No necesita ser un experto en cada detalle de las nuevas capacidades de HTML5, pero absolutamente debe conozca la estructura general, las etiquetas más comunes, etc. Cuanto más se inclina su desarrollador web hacia el front- end (soy casi puramente back-end), más experto necesita ser en esto, pero incluso un back-end necesita sepa cómo generar una página válida con el contenido adecuado en el lugar correcto y cómo probar eso.
    • CSS Sí, es un dolor en el proverbial posterior, incluso para diseñadores experimentados, pero sin él, su HTML se verá demasiado simple. Una vez más, cuanto más entusiasta seas, más profunda será tu experiencia, pero incluso un rezagado debería saber cómo hacer que las cosas sean más fáciles para que otra persona haga el CSS, y poder hacer modificaciones simples para un archivo CSS para hacer cosas pequeñas como cambiar el color que tendrá un elemento.
    • JavaScript, también conocido como JS. Si usted es un back-ender puro (es decir, haciendo las cosas que se ejecutarán en el lado del servidor, no en el navegador, ni haciendo gran parte de la apariencia visual), y no usando Node.js, tal vez usted puede escapar sin esto, pero probablemente no sea allí donde terminará. Incluso como un back-end casi puro, trabajando principalmente en Ruby, termino teniendo que hacer algo de JS con bastante frecuencia, para agregar algo a una página renderizada por un marco de aplicación web JS front-end o simplemente agregar alguna transición elegante o otro efecto visual Idealmente, conocerá no solo el lenguaje en sí, sino las bibliotecas de manipulación DOM como JQuery y algunos marcos de aplicaciones web front-end como Ember, Knockout, Backbone, Angular, React, etc., y tal vez Node.js. (Si no es Node, entonces su administrador de paquetes, herramientas de compilación, etc., que son cada vez más comunes para usar con otros idiomas). También aprenda algunas herramientas de prueba para JS, como Jasmine. Idealmente (en mi humilde opinión), aprender a hacer TDD / BDD. También ayudaría a aprender herramientas de cumplimiento de calidad adicionales, como linters, analizadores estáticos, etc.
    • Al menos un marco de aplicación web de back-end (y su idioma), a menos que sea un front-end puro. Los ejemplos incluyen Ruby on Rails (en Ruby), Phoenix (en Elixir), Play (en Java), Lift (en Scala) y Node.js (en JS). NO solo aprenda el marco; Para hacer algo que no sea trivial, deberá aprender bien el idioma y personalizar lo que está haciendo. Nuevamente, aprenda las pruebas apropiadas y otras herramientas de “calidad”.
    • Para cuando haya llegado a este punto, probablemente haya tenido que aprender sobre el ciclo de solicitud-respuesta de HTTP, que a su vez depende de cómo funciona la red (principalmente TCP / IP en estos días). En asuntos relacionados, ayudaría más tarde aprender cosas como DNS.
    • Bases de datos, principalmente relacionales, pero también ayudaría a aprender otros estilos, como documentos, valores clave, gráficos, series de tiempo, etc., tal vez incluso los jerárquicos anticuados.
    • Cómo usar Unix / Linux, a menos que quieras especializarte en Windows. La gran mayoría de las aplicaciones web se implementan en Linux, por lo que es muy útil conocer su camino y la administración básica del sistema. Además, la mayoría de las tiendas de desarrollo web en estos días, incluidos muchos clientes y agencias a las que puede terminar subcontratando, usan Mac, que es esencialmente Unix-ish cuando “abre el capó” y trabaja en la terminal, lo que deberá hacer ( de nuevo, a menos que te especialices en Windows).
    • Herramientas de implementación para su (s) marco (s) de fondo y sistema operativo (s) elegidos.
  • Negocio:
    • Cómo iniciar un negocio, en su país, estado / provincia, ciudad, etc.
    • Cómo continuar un negocio, en su país, estado / provincia, ciudad, etc. Por ejemplo, qué informes, impuestos, etc. necesita presentar.
    • Qué exenciones de impuestos puede aprovechar. Esta es una de las grandes razones por las que muchas personas se vuelven independientes.
    • Márketing.
    • Publicidad.
    • Contratos, incluidos los contratos con sus clientes, los contratistas principales de los que puede obtener subcontratos y los subcontratistas que necesite para trabajar (incluyendo tanto el trabajo técnico como los gastos generales del negocio que desee externalizar).
    • Contabilidad básica, especialmente Cuentas por cobrar.
    • Todas las demás cosas que tendrá que hacer como negocio, que un empleador a tiempo completo normalmente podría cuidar de usted, como seguros, programación, ahorro para la jubilación, etc.
  • También se beneficiaría al aprender los conceptos básicos de las habilidades relacionadas con el desarrollo web, por lo que puede ser más una operación de “servicio completo”, como:
    • diseño gráfico
    • redaccion
    • SEO
    • alojamiento web (al menos, cómo organizarlo y administrarlo para sus clientes)
    • gestión de proyectos
  • Por último, podría beneficiarse de otras formas de desarrollar su autoridad , algunas de las cuales pueden proporcionar flujos de ingresos alternativos o pasivos , como:
    • blogging
    • respondiendo preguntas en foros como StackOverflow y Quora
    • hablando en (u organizando) grupos de usuarios y conferencias
    • escribir libros
    • grabación de podcasts o videos
    • enseñanza / entrenamiento / mentoría

Sobre todo, ¡SIGA APRENDIENDO! Este es un campo especialmente rápido. Debe aprender al menos un idioma o técnica nueva (al menos para usted) cada año . Por ejemplo, este año estoy aprendiendo el lenguaje Elixir y su marco Phoenix … además de investigar cómo cambiar mi negocio de una LLC a una S-corp y agregar mapas de ruta y capacitación de calidad de software a mis ofertas de servicios.

Realmente no hay un lugar correcto o incorrecto para comenzar. Pero comenzaría con algo que crees que es divertido y emocionante. Aprenderá la teoría, las sintaxis correctas y el estilo en la escuela. Usa tu tiempo libre para hacer cosas divertidas. Comience proyectos que son un poco demasiado grandes y un poco fuera de su alcance. Rompe cosas y arréglalas.

Me di cuenta después de 10 años de desarrollo web que los marcos no son el enemigo. Antes de eso, construí todo desde cero en el Bloc de notas. Estoy realmente contento de haber comenzado a usar frameworks para mis proyectos ahora. Pero también estoy muy contento de haber aprendido a hacer cosas desde cero.

Y cada vez que no sepas qué hacer, solo búscalo en Google.