1 votos

¿Qué "conjuntos de habilidades técnicas" necesitas conocer (o estar dispuesto a aprender) para ser un desarrollador de aplicaciones web freelance exitoso (programador) y por qué?

¿Qué conjuntos de habilidades técnicas se consideran esenciales para los desarrolladores de aplicaciones web freelance (codificadores)? ¿Por qué son esenciales?

(es decir, marcado, lenguajes de script/programación, diseño, RDBMs, control de versiones, etc.)

Esta pregunta se refiere específicamente a las 'habilidades técnicas' (es decir, por favor, no incluya habilidades blandas como habilidades interpersonales, o habilidades de gestión del tiempo, etc. ya que esas no son habilidades 'técnicas' y están más allá del alcance de esta pregunta).

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.

3voto

Justin Puntos 1169

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.

3voto

dr-jan Puntos 673

Realmente te estás vendiendo a ti mismo, y tu capacidad para crear algo, tus clientes probablemente no se preocuparán por las tecnologías que utilices en el proceso. Por lo tanto, diría que es importante ser competente con al menos un conjunto de tecnologías full stack. Como otros han mencionado, esto casi con seguridad significa tener una base sólida en HTML, CSS y Javascript (se puede argumentar que se puede trabajar con lenguajes de plantillas y preprocesadores de CSS, pero al final todo se convierte en HTML/CSS/javascript).

A partir de ahí, se puede ir en cualquier dirección, a muchas personas les gusta el lenguaje Ruby y, por lo tanto, el framework Ruby-on-Rails es un gran conjunto de herramientas. Un aspecto destacado de rails es el ecosistema de plugins (gemas de Ruby) para hacer casi cualquier cosa que necesites para construir la mayoría de las aplicaciones web. Si realmente te gusta Javascript, hay node.js y una serie de frameworks de front/back end desde express hasta angular y meteor. Estos solo raspan la superficie de lo que está disponible, por supuesto, creo que el punto es encontrar algo con lo que disfrutes trabajando, y usarlo por un tiempo. Además, independientemente del framework y lenguaje que uses, es importante tener conocimientos y experiencia con algún tipo de sistema de base de datos, ya sea un RDBMS o NoSQL.

El diseño es una gran habilidad técnica, 'técnica' puede que no sea la palabra correcta, sin embargo, es muy importante ya que es la parte en la que la mayoría de los clientes se van a centrar mucho. Las buenas habilidades de diseño son una mezcla de pasión, arte y comprensión de tu cliente y, por extensión, de sus clientes. Es fácil imitar lo que han hecho otras personas, lo que ha funcionado bien, pero saber qué diseño aplicar dónde y cuándo es lo que hace que un diseñador sea exitoso. Creo que la práctica es inevitable e invaluable, siempre busca retroalimentación, pero no siempre la escuches.

TL;DR - Comienza con un full stack, y expandete a partir de ahí.

2voto

trouble Puntos 28

Para tener éxito en este juego, debes saber cómo todas las piezas técnicas encajan juntas, y por qué, y cuándo usarlas. Eso podría significar:

  • Uso de bases de datos RDBMS o NoSQL
  • servicios web - uso e implementación
  • servicios de archivos - uso e implementación
  • protocolos TCP/IP - uso y riesgos
  • cómo usar una implementación de servidor web vs otra (IIS vs Apache vs NGINX, por ejemplo)
  • Redes (subredes)
  • cuándo usar un CMS, y cuándo NO usar un CMS
  • Caprichos del navegador
  • Memoria caché - http y de aplicación
  • Sockets seguros
  • Elegir el mejor sistema operativo para una implementación (importa)
  • Lo que se debe y no se debe hacer al enviar correo electrónico o SMS masivos

Es un gran error etiquetarte a ti mismo como "codificador". Todas estas son habilidades técnicas que claramente trascienden dicha etiqueta.

Tus clientes (o prospectos) desarrollarán una expectativa limitada de ti por la etiqueta que uses (o les permitas usar). Esta expectativa limitada a menudo se traducirá en que el prospecto te pague menos de tu valor real.

Personalmente, respondo a 'contratista', 'desarrollador' o 'ingeniero de software'. 'Tecnólogo' no está tan mal aunque creo que es un término que no indica nada. Pero nunca 'codificador', y sobre todo, nunca 'hacker'.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X