Si vas a ser un desarrollador freelance exitoso, entonces necesitas ser muy competente en toda la pila web, desde la manipulación de datos hasta la presentación en el navegador. No puedes simplemente ser un especialista en el desarrollo de front end o back end y depender de otro miembro del equipo para proporcionar especialización en la otra disciplina, a menos que te asocies con alguien.
Dada la amplitud de dispositivos habilitados para Internet en los que se espera que funcionen los sitios web en la actualidad, es imprescindible tener un sólido conocimiento de HTML/CSS y de diseños receptivos. No creo que sea trabajo de un diseñador trabajar en la capa de presentación de un sitio web. Tan pronto como tengas que arrancar un IDE y escribir cualquier tipo de código (incluido HTML y CSS aquí) estarás firmemente dentro del alcance del desarrollador. Además, tener habilidades para el desarrollo de front end es donde tienes el mayor impacto en tus clientes, porque eso es lo que ven.
Junto con sólidas habilidades de codificación de front end, que también deben incluir JavaScript, es importante tener una sólida apreciación de la usabilidad del sitio web y la experiencia del usuario. A menudo necesitas guiar al cliente sobre la mejor manera de presentar una característica particular, por lo que tener buenas habilidades de experiencia de usuario es clave.
No tienes que ir mucho más allá de un simple sitio web de folletos antes de que un cliente solicite funciones que requieren algún tipo de lenguaje del lado del servidor, por lo que la competencia en tu disciplina elegida del lado del servidor es fundamental. El nivel de experiencia y si también necesitas experiencia en diseño y manipulación de bases de datos será determinado por el tipo de sitios web que tus clientes requieran. Si necesitan algo muy centrado en datos o personalizado, entonces se vuelve muy importante. Si el sitio web no depende particularmente de los datos, o requiere un CMS, entonces la mayor parte de eso se encarga por ti. Los problemas con no tener experiencia en el aspecto de la base de datos surgen cuando llega la pregunta inevitable pidiéndote que personalices esta pequeña parte aquí y almacenes algunos datos personalizados.
Además de los aspectos generales de programación, el conocimiento sólido de la plataforma de servidor que necesitas para implementar los sitios de tus clientes se vuelve mucho más importante, ya sea la configuración de IIS para Windows, o Linux/Unix/Apache, etc. Si el sitio necesita ser implementado en la nube, debes estar preparado para convertirte en un experto en la plataforma de alojamiento en la nube que tu cliente desee utilizar. Cuanto más experto puedas convertirte en la forma en que funcionan estas plataformas, las características que proporcionan y, crucialmente, cuánto cuestan, mayor impacto puedes tener en las decisiones de tus clientes al respecto.
También debes sentirte cómodo con una variedad de sistemas de control de origen. Actualmente estoy trabajando con clientes que me piden que use Git y TFS y también he tenido que usar Subversion y Mercurial, por lo que tener la voluntad de adoptar estas tecnologías ayuda, tanto en las relaciones con los clientes como en tu propio desarrollo técnico.
1 votos
Esta pregunta parece ser un poco amplia... ¿Puedes ser más específico/a?
0 votos
Hola Niv. Las mejores preguntas en nuestro sitio son sobre problemas reales y cotidianos que enfrentan los freelancers, problemas que realmente hacen que los expertos piensen. En lugar de eso, piensa en un problema que enfrentaste como freelancer relacionado con habilidades técnicas, y úsalo como base para un problema real y actual que pueda ser respondido con respuestas de expertos y detalladas. Por favor consulta Good Subjective, Bad Subjective para obtener orientación sobre cómo reformular tu pregunta. Espero que esto ayude.
1 votos
Realmente depende del trabajo específico que estés realizando. Si eres desarrollador de plugins de WordPress, necesitas saber PHP y WordPress. De manera similar, si desarrollas el front-end de sitios web, deberías conocer HTML y CSS. Sin embargo, tener experiencia combinada (aunque no mucha) en HTML/CSS/PHP/MySQL/JS generalmente es bueno ya que puedes desempeñar una variedad de trabajos.
0 votos
@jmort253 - Reflexioné un poco sobre esto. El tipo de respuestas que estoy buscando son del estilo de la respuesta de VarunAGW como comentario, excepto espero que se amplíen - por ejemplo, no creo que puedas ser un 'desarrollador' sin conocer HTML. También necesitarías saber cómo usar un IDE, FTP, cómo configurar un servidor (es decir, ejecutar y probar tu código), y así sucesivamente - por lo que hay conjuntos de habilidades técnicas que necesitas conocer y realmente no puedes prescindir de ellas. Si la pregunta aún no es aceptable según tu criterio, entonces la eliminaré - sin rencores en cualquier caso - házmelo saber cuál es tu preferencia.
1 votos
Gracias por las ediciones, @NivF007. Todavía es un poco amplio, pero las ediciones ayudan mucho y aún así podría recibir algunas respuestas basadas en hechos, referencias y experiencia.
0 votos
Gracias jmort253. Tus ediciones y sugerencias son siempre excelentes. Es amplio, estoy de acuerdo, al igual que la definición de un 'desarrollador de aplicaciones web' (es decir, sin estándares generalmente aceptados) - pero creo que hay algunas esenciales como desarrollar sitios web basados en bases de datos (y persistencia de datos), gestión de sesiones, al menos un conocimiento básico de patrones de diseño (es decir, código procedural, MVC, OOP) - lo básico eencial de lo que se necesita para etiquetarse como un 'desarrollador de aplicaciones web' (especialmente en oposición a un 'diseñador web' que comúnmente se entiende como algo distinto).