¿Cómo puedo aprender los conceptos básicos de desarrollo web y administración de servidores? Intenté buscar tutoriales en Google, pero los resultados no fueron muy útiles. ¿Cuáles son algunos libros / recursos para construir una comprensión sólida de los fundamentos de back-end?

Hay dos cosas distintas que debes aprender si quieres tomar en serio el desarrollo de aplicaciones web.

1) Desarrollo web

El mejor método en estos días es elegir un marco web y trabajar con sus tutoriales. Inicialmente, hay muchas cosas que no “entenderá”, pero estos tutoriales son lo suficientemente prácticos como para que pueda crear una aplicación web básica sin demasiados problemas, mientras se ramifica para aprender más sobre diferentes cosas a medida que avanza.

Echa un vistazo a uno de estos:

  • Ruby on Rails (marco web) – http://guides.rubyonrails.org/ge…
  • Django (marco web) – https://docs.djangoproject.com/e…
  • Pirámide (marco web): https://docs.pylonsproject.org/p…

Implícito aquí, por supuesto, es que aprendes el lenguaje (ya sea Ruby o Python) que estos usan.

2) Administración y administración del servidor Linux

Es completamente posible hacer desarrollo web en Windows, pero Linux es el estándar de facto para estas cosas, y la experiencia generalmente es mucho más fluida. Si aún no tiene una preferencia de Linux, descargaría e instalaría Ubuntu en su máquina en una partición separada: http://www.ubuntu.com/
(o, ya sabes, simplemente borra tu instalación de Windows por completo 😉)

No tiene que convertirse en un dios de Linux de la noche a la mañana, pero aprender los conceptos básicos de la línea de comandos, bash y vim / emacs será de gran ayuda. Ubuntu es bastante amigable y tiene un aspecto familiar, por lo que no será demasiado difícil comenzar a usarlo rápidamente.
El elemento de alojamiento web es un poco prematuro en este momento. Es bueno que hayas pensado en el futuro, pero sinceramente, ni siquiera me molestaría en hacer nada con eso hasta que obtengas algo que funcione localmente.

En cuanto a las definiciones específicas que te confunden (DNS, HTTP, SSL, etc.), solo búscalas en Wikipedia. Sus recursos son bastante buenos para todos los términos básicos que mencionó.

Además, hacer preguntas específicas sobre Quora sobre el funcionamiento interno de estas cosas suele ser bastante útil 🙂

Ruby on Rails (marco web)
Django (marco web)
Pirámide (marco web)
HTTP
Capa de sockets seguros (SSL)
sistema de nombres de dominio
Hospedaje Web

Como has pedido mi opinión, William, la daré a continuación y espero completar lo que Vaibhav ya respondió.

Mientras leo la descripción de su pregunta, desea aprender sobre desarrollo web de back-end y algo de administración de Linux .

No parece estar interesado en el desarrollo web front-end, por lo que, sobre todo, me saltearé eso.
Pero debo decirle que no está de más tener un poco de conocimiento sobre el desarrollo web front-end y que incluye HTML 4 y 5, CSS y Javascript. Tener cierto conocimiento de esto lo ayudará a largo plazo, especialmente cuando tal vez tenga que cooperar con desarrolladores web que se especializan en servicios front-end.

==============================

Entonces, comencemos con el desarrollo web de back-end .

Primero, debe decidir en qué entorno le gustaría trabajar más: en el mundo de inicio (que incluye el suyo) o en el mundo empresarial .
Hay algunas superposiciones entre ellos, por supuesto.

Luego, según la decisión anterior, debe decidir qué lenguaje de programación de fondo (marcos incluidos) desea aprender.

Que quieres aprender?
¿Rubí? PHP? ASP.NET?Java?Python?Perl?Coldfusion?

Esto es importante porque determinará qué tipo de servidores / herramientas utilizará. Algunos costarán dinero (Coldfusion, ASP.NET), la mayoría no.

Todos ellos son bastante populares, ya sea en el mundo de inicio o en la empresa (PHP, Python, Ruby parecen ser más populares en el mundo de inicio, mientras que Perl, Java, ASP.NET, Coldfusion parecen ser más populares en el mundo empresarial, allí hay una superposición entre ellos, lo que significa que algunas empresas pueden usar también PHP o Python y algunas startups pueden usar Java o ASP.NET).

Supongo que irás con código abierto (gratis) y aquí las opciones son bastante claras: PHP, Ruby, Python, Perl, Java.

La forma más rápida de comenzar es tener una cuenta de hosting ya configurada con lo que necesita, por lo que su única preocupación es comenzar con la programación.

Debido a que su objetivo es obtener un trabajo de desarrollador web back-end , debe concentrar sus energías en la programación web y luego adquirir algunos conocimientos de administración de Linux.
La mayoría de los trabajos de desarrollo web no le pedirán que tenga un sólido conocimiento de administración de Linux. Después de todo, el administrador de Linux es un trabajo completo en sí mismo y hay casos raros en los que un individuo puede hacer ambas cosas al mismo nivel de profesionalismo.
La mayoría de los trabajos de desarrollo web le pedirán que tenga, tal vez, ALGUNOS conocimientos de administración de Linux.

Entonces, enfóquese primero en el lado del desarrollo web de back-end.

Si elige su lenguaje de programación, debe elegir también la base de datos con la que trabajará.
Aquí las opciones son aún menos (si va de código abierto y relacional): MySQL, PostgreSQL
Tendrá que aprender sobre ellos, pero no al nivel que el administrador de la base de datos sepa sobre ellos (como el administrador de Linux, el administrador de la base de datos es un trabajo en sí mismo).
Tendrá que conocer principalmente SQL (que es el lenguaje de programación que se usa en el mundo de la base de datos relacional) y algunos ajustes de rendimiento.

Por ahora ha decidido un lenguaje de programación y una base de datos.

Ahora ve y compra una cuenta de hosting, preferiblemente una compartida, porque será barata y tendrá todo lo que necesitas para comenzar de inmediato. No tiene que meterse con la instalación del servidor web y el software que desea. Todos ya están allí, la compañía se encarga de cualquier actualización, seguridad y administración que se necesite hacer.

Recuerde, su alcance ahora es aprender , no construir cosas avanzadas (rendimiento incluido). Para principiantes, una cuenta de alojamiento compartido será suficiente.

Digamos que quiere aprender PHP / MySQL … entonces hay muchas compañías de hosting que ofrecen este tipo de cuenta por varios dólares al mes (Dreamhost.com, Bluehost.com, Godaddy.com, Hostgator.com, Lunarpages.com, y un muchos otros).

¿Quieres Ruby on Rails y MySQL? Site5.com, Hostingrails.com, Bluehost.com, Dreamhost.com, Lunarpages.com, Hostgator.com le ofrece estos también.

¿Quieres Python y MySQL? Esas empresas de alojamiento anteriores también pueden tener eso.

Algunas empresas de alojamiento pueden ofrecerle un paquete de todos estos, es decir, PHP, Perl, Ruby, Python, MySQL, todo en una cuenta de alojamiento compartido para que pueda experimentar con todas estas tecnologías en una sola cuenta.

Su propia cuenta de Webfaction parece tener todo esto, aunque no estoy seguro si lo que tiene es una cuenta compartida o un VPS o una cuenta dedicada administrada.

Ahora, después de tener todo esto en su lugar, es hora de comenzar y aquí necesitará tutoriales (ya sea en forma de libros o tutoriales en línea).

Hay toneladas de tutoriales gratuitos en línea (video incluido).
Puede gastar algo de dinero comprando libros, pero también recomiendo buscar en línea.

Si busca palabras clave como ” Tutoriales de PHP ” o ” Tutoriales de Ruby on Rails ” o ” Tutoriales de MySQL ” o ” Tutoriales de SQL ” o ” Tutoriales de Python “, encontrará un montón de ellos.

Después de un tiempo, después de haber aprendido los conceptos básicos , puede comenzar a aprender sobre los marcos.
Hay muchos marcos para estos idiomas y a continuación se detallan algunos:

  • PHP (Zend framework, CakePHP, CodeIgniter, Symfony, Yii, incluso Drupal puede considerarse un framework)
  • Ruby on Rails es un framework de Ruby pero hay otros frameworks de Ruby, como Sinatra
  • Python (Django, Pilones / Pirámide, BlueBream, Web.py, Web2Py)

Al mismo tiempo que aprende sobre el lenguaje de programación bak-end que eligió, también debe aprender sobre la base de datos elegida.

Lo más probable es que elija MySQL, que es la base de datos de código abierto más popular que existe y puede encontrarla aquí en MySQL.com (consulte la edición de la Comunidad).

Puede encontrar tutoriales en el sitio oficial ( http://dev.mysql.com/doc/refman/ … y http://dev.mysql.com/tech-resour …) pero no solo.

Para escribir en esos lenguajes de programación necesitará también un editor de texto.
Puede comenzar directamente desde el bate con el Bloc de notas, escribir código en él y luego cargarlo en la cuenta de alojamiento compartido para ver los resultados (lo cargará usando un programa FTP como Filezilla u otros).

Pero es mejor usar editores de texto avanzados, como Editplus, Textpad, Notepad ++, UltraEdit, que tienen resaltado de sintaxis y otras ventajas, lo que facilita la programación.
También puede usar algunas herramientas IDE, como Eclipse, si lo desea.

También aprenderá sobre alguna otra terminología como SSL, HTTPS, DNS, etc. Un paso a la vez.

==============================

Ahora, un poco sobre la administración de Linux .

Como dije, no necesitas ser gurú en esto porque no es tu objetivo convertirte en administrador de Linux.
Solo necesitas lo básico. Necesitará saber cómo instalar Linux, instalar un servidor web, instalar el lenguaje de programación y la base de datos de su elección para que también pueda desarrollar localmente, no solo de forma remota.

Parece que eres un chico de Windows, según tus antecedentes.
Supongo que no quiere renunciar a su máquina Windows en el corto plazo.

Vaibhav le dio el consejo de instalar Linux Ubuntu en otra partición o eliminar Windows por completo. Eso puede ser bueno si quieres olvidarte por completo de Windows. Lo más probable es que no lo olvides tan fácilmente … probablemente aún quieras usar Windows, especialmente porque pagaste y trabajaste durante tanto tiempo (como desarrollador de juegos).

Te daré un consejo diferente …

En lugar de instalar Linux en otra partición y tener un arranque dual, ¿por qué no usar una máquina virtual donde instalará su sistema operativo Linux?

Así es como lo tengo y es mucho más fácil de manejar.

Una máquina virtual es una instalación de sistema operativo invitado completamente aislada dentro de su sistema operativo host normal. Lo que sea que esté haciendo dentro de la máquina virtual no afectará a su sistema operativo principal.

Primero, debe instalar un software de máquina virtual como VMWare.com o VirtualBox.org.
VirtualBox es gratuito, mientras que VMWare le ofrece una versión gratuita llamada VMWare Player http://www.vmware.com/products/p

La belleza de VMware Player es que una vez instalado, puede encontrar muchas máquinas virtuales ya hechas para él en su mercado de dispositivos virtuales: http://www.vmware.com/appliances

Puede encontrar máquinas Ubuntu, máquinas Linux Mint (una versión optimizada de Ubuntu), máquinas Fedora, máquinas Debian, máquinas CentOS, etc.
Simplemente copie la máquina virtual comprimida, descomprímala y luego móntela en VMware Player. Encienda y sus máquinas se cargarán. No requiere instalación. Así es como tengo Ubuntu Linux y Linux Mint en mis computadoras portátiles con Windows XP / 7.

Si desea pasar por la molestia de instalar Linux usted mismo, vaya primero y descargue la distribución que desee (Ubuntu.com y LinuxMint.com son las distribuciones de Linux más fáciles de usar).

Luego instale el software de la máquina virtual VirtualBox. Después de eso, puede comenzar a construir su máquina virtual Ubuntu / Linux Mint, lo que significa instalarlas básicamente, como si las instalara en otra partición o en un disco duro limpio.

Estoy diciendo que use VirtualBox para una instalación de bricolaje porque VMware Player no lo permite. VMware Player solo le permite jugar a las máquinas virtuales ya creadas para VMware, no crear una usted mismo.
Para crear una máquina virtual usando VMware, tendría que comprar su VMware Workstation (o algo así). No sé si la versión de prueba le permitirá crear Y mantener la máquina virtual.

Utilicé VirtualBox para crear una máquina virtual Linux Mint desde cero en mi computadora portátil con Windows 7. Pero también puede tener máquinas virtuales ya hechas para VirtualBox en virtualboximages.com.

El software de la máquina virtual se configurará para obtener acceso a Internet, para que pueda cargar su último trabajo en su cuenta de alojamiento compartido.

Después de tener una de estas máquinas virtuales en su computadora, puede iniciarlas y usarlas fácilmente sin salir de Windows. Puedes trabajar en él y luego saltar a Windows como quieras.

Ahora tiene una máquina virtual con su Linux de elección. Deberá instalar el servidor web de su elección (Apache generalmente), su lenguaje de programación de elección (PHP, RoR, Python), su base de datos de elección (MySQL, PostgreSQL), sus herramientas de desarrollo de elección (editores de texto avanzados, IDEs avanzados ), su programa FTP de elección (Filezilla u otros).

¡Estás listo para comenzar a desarrollar web!

Después de que se vuelva competente y desee construir cosas avanzadas (o incluso comenzar su propio inicio), puede deshacerse de la cuenta de alojamiento compartido y usar un VPS o una cuenta de servidor dedicada.

¡Te deseo éxito en tu futura nueva carrera!

==============================

CAMPO DE GOLF

Lenguajes de programación web del lado del servidor

Bases de datos

Hosting compartido

Editores de texto avanzados

Software FTP

Herramientas IDE

Software de máquina virtual

Maquinas virtuales

Marcos web

Diverso

Algunas de mis respuestas sobre Quora

  • Me gustaría aprender programación relacionada con la web. ¿Con qué debo comenzar?
  • ¿Qué software necesito para crear una base de datos de Internet como IMDb o similares? ¿Puedes dar algunas soluciones de software gratuitas / baratas y las mejores?
  • ¿Dónde puedo encontrar una buena guía HTML para comenzar a aprender diseño web?
  • Sé cómo hacer sitios web básicos ahora. ¿Qué debería aprender a continuación?

More Interesting

¿Qué tecnologías, si las hay, tienen más que ver con su vida profesional que con su vida privada?

¿Qué es la interrupción financiera?

¿Cómo consiguió Xiaomi una base de usuarios tan grande en la India a pesar de que no hubo campaña ni publicidad?

¿Cómo ha cambiado Scientology a medida que la ciencia y la tecnología han avanzado?

¿Cuándo nos beneficiaremos realmente de las tecnologías transhumanistas?

¿La cámara en Google Glass es más o menos un problema de privacidad que la cámara en los teléfonos inteligentes?

Ahora que Google y Microsoft están integrando su propio hardware, software y servicios, ¿qué ventajas de productos tiene Apple en el futuro?

¿Son incompetentes las personas STEM en auge en comparación con los millenials de generación de información?

¿Cómo será nuestro futuro? ¿Será un futuro de la ciencia porque la tecnología que tenemos está evolucionando, o un futuro baldío debido al calentamiento global, etc.?

¿Cuánto tiempo pasará hasta que los teléfonos celulares muestren la temperatura ambiente?

¿Hay alguna manera de usar Internet ilimitado sin reducir la velocidad?

¿Están muertos los teléfonos inteligentes?

¿Existe alguna empresa / startup que intente encontrar una nueva forma innovadora de pagar a los empleados (más allá de los bonos, las acciones, el salario clásico, etc.)?

Si Alemania no hubiera perdido la guerra, ¿estaríamos más avanzados tecnológicamente?

¿Cuáles son las nuevas tecnologías futuras en 2017?