Cada vez que intento crear un sitio web por mi cuenta, no tengo ni idea. ¿Qué consejo le puedes dar a un nuevo desarrollador web?

Personalmente, me gusta la idea de comenzar con los requisitos de funcionalidad y luego descifrar lógicamente los pasos y componentes que necesito crear. No hay nada como un ejemplo, así que …

Objetivo: quiero crear una plataforma de blogs.

Objetivo muy general, así que analicemos lo que queremos hacer.

Función: Quiero que los usuarios puedan iniciar sesión, hacer publicaciones y mostrar las publicaciones en la página principal.

Ahora estamos llegando a alguna parte. Queremos poder almacenar usuarios y publicaciones, por lo que necesitaremos al menos dos tablas de base de datos para almacenar esta información. (Si está utilizando MVC, estos serán sus modelos). Obviamente, este es un sitio web, por lo que necesitaremos como mínimo una página de índice para mostrar todas las publicaciones, una página de inicio de sesión, una página para escribir un publicación de blog, y probablemente algún tipo de panel de administración para administrar sus publicaciones de blog. (Vistas de MVC). También necesitamos un poco de lógica aquí para unir los dos (nuestros controladores), por lo que debemos tener funciones para autorizar a un usuario, guardar sus publicaciones de blog y mostrar todas las publicaciones de blog.

Entonces, a partir de este requisito de funcionalidad, obtenemos los conceptos básicos de nuestra aplicación de blog:

Base de datos (con columnas mínimas requeridas identificadas) / Modelos:

  1. Usuario (user_id, user_login, user_password)
  2. Publicar (post_id, user_id, post_name, post_content)

Puntos de vista:

  1. Índice
  2. Iniciar sesión
  3. Panel de administración de usuarios
  4. Nueva publicación de blog

Controladores / Rutas:

Toda la lógica de programación para que suceda lo que quiere que suceda en una vista (autorice al usuario, recupere publicaciones, guarde publicaciones, etc.)

Este es ciertamente un punto de partida mucho más detallado y el proceso es muy lógico: quiero hacer que X suceda, así que necesito estos componentes para lograrlo. Hacer que su aplicación sea más potente es simplemente seguir el mismo proceso de identificación de lo que necesita.

Función: Quiero que los usuarios puedan hacer que las publicaciones solo sean visibles para ellos mismos.

De acuerdo, debe asegurarse de que su tabla para Publicar tenga una opción para hacer que las publicaciones sean privadas y necesita cierta lógica en un controlador, de modo que si esa opción está seleccionada, debe asegurarse de que el usuario esté autorizado para verla.

Función: quiero que los usuarios puedan crear categorías y asignarlas a publicaciones.

Para hacer esto, necesitará otra tabla y modelo de base de datos, y ajustar a la tabla Publicar para referirse a las categorías. También deberá agregar la lógica en los controladores y actualizar las vistas relevantes para asignar y mostrar categorías.

Y así sucesivamente hasta que conozca todos los componentes necesarios. A partir de ahí, solo los une con la programación.

Cada vez que intentas construir un sitio web, no tienes idea . Eso sucede comúnmente relacionado con las siguientes preguntas:

  1. ¿De qué trata tu sitio web?
  2. ¿Cuál es su propósito para construir un sitio web?
  3. ¿Has pensado en el diseño de tu sitio web?
  4. ¿Ha dibujado el diseño en un papel, en Photoshop u otras herramientas de creación de prototipos, o tal vez en su mente?
  5. ¿Qué interactividades quieres aplicar a tu sitio web?
  6. ¿Qué características quieres que tenga tu sitio web? Por ejemplo, registro de usuario e inicio de sesión, CRUD, carga de imágenes, sistema de chat, etc.
  7. ¿Hasta qué punto ha aprendido los idiomas para construir una interfaz de usuario de un sitio web? Son HTML, CSS, Javascript.
  8. ¿Hasta qué punto has aprendido los idiomas para construir un sistema de back-end de sitio web? Son PHP, ASP, Node.js, etc.
  9. ¿Hasta dónde has aprendido sobre bases de datos?
  10. ¿Hasta qué punto has aprendido a combinar el front-end y el back-end para trabajar juntos?

Debido a que no menciona información adicional sobre el sitio web que desea crear, las preguntas anteriores se refieren al front-end, el back-end y la base de datos.

¿Qué consejo le puedes dar a un nuevo desarrollador web?

  • Elija un editor de texto (Notepad ++ / Sublime Text / Atom)
  • Encuentre cursos interactivos, artículos, tutoriales en video sobre desarrollo web en Internet. Aquí están algunos :
  • Codecademy – Aprenda a codificar – Un curso interactivo (HTML y CSS, Ruby, PHP, Javascript, jQuery, RoR)
  • Freecodecamp – Aprenda a codificar y ayude a organizaciones sin fines de lucro – Aprenda el desarrollo web completo con Javascript
  • W3Schools – Tutoriales web en línea de W3Schools – Todos los materiales sobre desarrollo web
  • Pluralsight – Desarrollador en línea ilimitado, TI y capacitación creativa – Tutoriales en video sobre desarrollo de TI, incluido el desarrollo web
  • Codeschool – Aprende haciendo | Code School – Curso interactivo con video tutoriales
  • Tutorialspoint – Tutoriales para Kanban, Erlang, SAP Payroll, ASP.Net WP, PouchDB, MFC, SAP HR, Yii, Clojure, Aurelia, CoffeeScript, CPanel, Laravel, SAP Webi, MS SQL Server, pinterest, Indian Polity, Teradata, Windows10 – Varios materiales sobre desarrollo web (HTML, CSS, Javascript, React.js, AngularJS, PHP, Laravel, etc.)
  • Devdocs – DevDocs – Una colección de documentaciones oficiales
  • Aprenda los recursos (cursos, video tutoriales, artículos) practicando
  • Si se queda atrapado, vaya a Stack Overflow, Quora u otros foros de programación. Únase a grupos relacionados con el desarrollo web en Facebook o Google+ y haga una pregunta allí. También puede preguntar a sus amigos o maestros con experiencia en desarrollo web.
  • Si los materiales que aprendió tienen su documentación oficial, no se demore en leerlos porque los documentos oficiales siempre son confiables y están actualizados.
  • Manténgase actualizado con las noticias sobre desarrollo web. Por lo general, provienen de programas de noticias o grupos de desarrollo web en Facebook / Google +
  • Sigue practicando
  • Configure claramente su espacio de trabajo y escriba en un papel (como yo) o en MS Word, qué es exactamente lo que quiere hacer en este sitio web y cómo quiere que lo hagan sus usuarios dentro. Este documento de tareas debe dividirse en 3 etapas:

    1. Etapa 1: se trata de diseñar una base de datos y elegir qué controlador de base de datos usar (MySQL, Oracle, …);
    2. Etapa 2: trata sobre los gráficos. ¿Cómo quieres que se vea tu sitio web? Puede descargar estilos CSS y HTML prefabricados, y puede hacer los suyos propios. Incluso puedes diseñar todo el sitio web con Photoshop.
    3. Etapa 3: es elegir los idiomas del lado del servidor y del lado del cliente para programar todas las tareas que tiene. Puedes elegir una combinación de PHP y JavaScript. Puedes trabajar con Ruby. Puede trabajar con marcos para realizar tareas más rápido, o simplemente puede crear un sitio web HTML y CSS simple (si no se necesitan acciones de la base de datos).

    Simplemente ponga una lista de tareas pendientes y comience. Cuando comience a escribir la lista, verá que la idea aparecerá en su cabeza, y esta es la parte más difícil. Porque, cuando sabes lo que quieres exactamente, la programación y el proceso de diseño serán fáciles y obtendrás mucha ayuda en línea.

    Ahh, esto me lleva de vuelta.

    Si no tienes idea, entonces aún no lo has planeado. Cuando comience a codificar, debe estar lleno de ideas sobre cómo va a lograr el sitio web que es difícil saber por dónde comenzar.

    Me encanta usar una analogía, así que para esto voy a usar un autor de libros de fantasía.

    Voy a escribir una historia Toda la historia comienza una vez por vez, y luego nos encontramos con el héroe, el héroe recibe una búsqueda. El héroe se establece y encuentra dónde deben estar. El héroe se enfrenta a una gran adversidad y finalmente la supera y gana el día.

    ¿Ya estamos bostezando? Espero que sí, si me dan “otro” libro como ese para leer, lo usaría con mucho gusto como encendedor. Entonces, ¿por qué los libros como el juego de thrnoes se hicieron tan populares? bueno vamos a ver … Ahh si …

    Nos encontramos con el héroe, lo primero que hace el héroe es decapitar a alguien … ok raro … pero diferente. El rey los obliga a ir a la ciudad … ahh ok así que en la aventura. El héroe se mete en problemas … ahh gran diversidad … Espera, he visto esto antes … y ahora … oh espera … acaban de matar al héroe … ¿qué?

    En el juego de tronos, George R Martin ha planeado tantos detalles antes de que incluso haya escrito el primer libro. ¿Cómo podemos saberlo? bueno, sin revelar ningún spoiler de cosas recientes, hay una trama que solo se reveló en el primer libro, y no solo esta, si miras, hay toneladas de ellos … probablemente es por eso que tarda tanto en escribir un libro.

    Es por eso que los libros y las series son amados, porque la historia es muy rica. Pero, ¿qué tiene esto que ver con el desarrollo web? TODO

    ¿Qué hace que un sitio web tenga éxito? El hecho de que se ajusta a un propósito. Por ejemplo, tomemos uno de los sitios web más exitosos conocidos en Internet. Google Si quieres encontrar algo en Internet, ¿vas a la biblioteca para buscar una URL en un libro? ¿Buscas en Quora para ver si alguien pone un enlace a un tema allí? No, vas a google y lo encuentras.

    Si quisieras saber qué están haciendo tus amigos, ¿lo buscarías en Google? o irías a facebook? Si quisieras saber qué estaba pasando en el mundo. irias a facebook o irías a un sitio web de noticias como bbc news?

    Todos estos sitios web han visto dónde podrían ser útiles y se han insertado perfectamente en esa ranura. Entonces, cuando haces un sitio web, ¿los estás haciendo por el bien de hacerlos? (no pudo condenar) o hay alguna razón para hacerlo?

    Digamos que desea crear un sitio web para mejorar la creación de sitios web, pero no desea copiar algo que ya existe … tiene que encontrar una idea.

    Mi primer sitio web fue literalmente un CV para venderme. Tenía mi educación, algunas fotos mías (profesional en una suite) Tenía mi historial de empleo, y tenía algunas de mis pasiones … fotos y mapas de snowboard, etc. Esto permitió a las personas ver de lo que era capaz y Al mismo tiempo conocerme más como persona.

    Hoy en día estoy empleado para hacer aplicaciones de intranet para empresas. Cada sitio web tiene una razón … la más reciente fue hacer un CRM (notas sobre las interacciones con los clientes de los vendedores) para la sucursal estadounidense de la compañía. Entonces supe lo que estaba haciendo. Los datos ya estaban allí, pero necesitaban un poco de limpieza. El sistema que ya usaban estaba sobredimensionado y abarrotado y no usaban el 80% de lo que podían tener, así que lo simplifiqué. También lo marqué en el esquema de color de las compañías y lo conecté a nuestras otras aplicaciones e hice algunos informes … pero antes de hacer todo eso lo planeé todo. Vi lo que había que hacer, planeé cómo iba a hacerlo. Me aseguré de tener todas las piezas antes de comenzar a hacer cualquier cosa … Luego, cuando comencé a codificar … bueno, todo terminó demasiado rápido.

    OK, divagué un poco (no planeé lo que iba a decir … ¿ves lo que hice allí? 😉)

    En primer lugar, recuerda que no estás solo.

    Incluso si no hay seres humanos reales al alcance del oído, todavía tiene esta pequeña cosa llamada internet. Úsalo!

    Encuentre un foro o sitio web que se centre en la tecnología que está utilizando. De lo contrario, pruebe un sitio como stackoverflow o incluso el viejo Google.

    Cuando encuentre un problema, y ​​lo hará, todos los desarrolladores, sin importar el nivel de habilidad, búsquelo en un recurso en línea. El 99% de las veces, alguien se ha encontrado con él antes y ha tenido la amabilidad de escribir sobre él en algún lugar de Internet. Si no puede encontrarlo, ¡pida ayuda a otros desarrolladores en línea! Confía en mí, a los ingenieros les gustan los problemas relacionados con la ingeniería y, en su mayor parte, no les importa ayudar a otros ingenieros a encontrar soluciones (especialmente si se encontraron con el problema por sí mismos).

    En segundo lugar, incluso si eres bastante nuevo en el juego, estoy seguro de que ya has conocido a otros desarrolladores. ¿Quizás tus amigos de la escuela? ¿Quizás algunas personas locales en un club al que te uniste? ¡Hábleles sobre sus experiencias!

    Golpeando su cabeza contra el teclado porque no puede entender por qué ocurre ese error? ¡Levante su teléfono o abra su aplicación de correo electrónico y comuníquese! Incluso si no están familiarizados con la tecnología en la que está trabajando, solo comunicarse con otro humano que entiende lo que está pasando reduce el estrés.

    Para resumir, recuerde, realmente no está construyendo su sitio por su cuenta. Incluso si eres un equipo de una sola persona. Hay un mundo de otras personas que están pasando por la misma experiencia frustrante que tú. Comunícate con ellos, confía en mí, ¡descubrirás rápidamente cuánto sabes realmente!

    Las otras respuestas que mencionan la planificación previa son algunos consejos excelentes.

    Cuando comencé a aprender a crear sitios web, tenía un proyecto simple que quería hacer. Sabía cuál era mi objetivo final. Simplemente trabajé a través de los obstáculos frente a mí aprendiendo cómo resolver cada problema a medida que avanzaba, hasta que alcancé mi objetivo, que resultó ser un sitio web simple hecho con HTML y CSS, sin base de datos, para un evento local.

    Hay muchas cosas que aprender cuando su objetivo final es tener un sitio web que esté disponible para el público. Debe aprender a presentar la información en un formato utilizable y legible. Debes tener alguna habilidad de diseño, conocimiento y herramientas. Necesita saber sobre dominios, servidores de nombres y alojamiento web. Necesitas saber HTML y CSS. Necesita saber sobre FTP.

    Simplemente avance hacia su objetivo, resolviendo problemas en el camino.

    Como muchos otros han dicho aquí, debe tener un proceso en el que pueda trabajar cada vez. En nuestro caso, nuestro proceso aproximado es:

    Objetivos: defina claramente lo que desea que haga el sitio.

    Mapa del sitio: calcule qué páginas necesita en el sitio (acerca de, productos, contacto, etc.).

    Redacción publicitaria: ahora que conoce las páginas, puede comenzar a escribir el contenido (mientras continúa con los pasos siguientes).

    Wireframes: haga algunos bocetos y comience a diseñar su contenido. Conoces las páginas que necesitas (mapa del sitio) y los objetivos del sitio, entonces, ¿cómo debería ser mejor? ¿Una gran imagen de héroe en la parte superior? ¿Un botón claro call-t0-action en el lateral? Pase algo de tiempo aquí y descubra qué tiene más sentido.

    Diseño: ahora puedes comenzar a jugar con el diseño. Si haces esto primero, has puesto el carro mucho antes que el caballo.

    Desarrollo: una vez que su diseño esté disponible, puede comenzar el desarrollo. Usamos WordPress para eso, pero muchas de las otras respuestas en esta pregunta discuten formas alternativas de hacerlo.

    Puesta en escena / prueba: Pruébelo en diferentes dispositivos, haga que los amigos lo prueben, asegúrese de que todo funcione como debería.

    Lanzamiento: ¡Yay!

    Se requieren varios conjuntos de habilidades diferentes para construir un sitio web. Si te falta uno de estos, golpearás una pared de ladrillos.

    El conjunto de habilidades más común que la gente de tecnología carece es la habilidad de diseño. Los tipos artísticos y matemáticos son generalmente diferentes tipos de personas.

    Entonces, la forma más fácil de solucionar ese problema es encontrar un sitio que sea similar a uno que le gustaría crear y luego usarlo como plantilla para intentar crear el suyo.

    Luego use una herramienta que sea súper simple como Weebly, y avance usando esa herramienta gratuita para ver si puede hacer que funcione.

    Si todavía no puede copiar la idea de otra persona y hacer que una herramienta muy simple como Weebly funcione para usted, entonces tal vez sería mejor para usted contratar al niño vecino que vive en el sótano de su madre y juega videojuegos todo el día para construirlo Un sitio de WordPress.