Comenzando el desarrollo web y haciendo una demostración para su inicio, creo que es bastante fácil. Actualmente hay una tendencia a pasar meses buscando al chico de tecnología perfecto para ser cofundadores. Creo que es simplemente estúpido: probablemente sea más fácil comenzar a trabajar en tu producto y mientras lo haces; Atrae a los técnicos desde las mismas plataformas de las que estás aprendiendo.
Ahora soy un aficionado a la tecnología y espero comenzar muy pronto en el camino de los profesionales de la tecnología. He estado desarrollando sitios durante los últimos 4 años y es muy gratificante.
Antes de todo, ¿a dónde ir?
- StackOverflow cuando tienes una consulta de programación específica
- Quora cuando tienes diseño arquitectónico como dudas.
- SmashingMagazine cuando quieras inspirarte en otros sitios increíbles y ver buenos tutoriales de diseño + recursos gratuitos
- Mozilla Developer Network cuando busca documentación y tutoriales complejos sobre codificación.
- WebPlatform es como MDN pero más limpio, mejor y más joven. Puede que sea demasiado joven en este momento y puede que le falte algo de información, pero crecerá y se convertirá en una de las mejores plataformas para documentación y tutoriales.
- Hacker News cuando solo quieres ver a grandes personas hablar y no molestarlas. Ah, y este es un lugar donde también obtiene la mejor información de inicio con reseñas detalladas y lo que no. La calidad de la discusión es tan increíble que simplemente no quieres arruinarla agregándole pensamientos mediocres.
- Dochub.io cuando necesite saber qué parámetros toma esa función u otra documentación similar. MDN es más lento para estas consultas.
- Google / DuckDuckGo – Google, sabes que es genial. DDG es impresionante para la programación de consultas relacionadas. Da respuestas en ese momento y allí.
¿Dónde no deberías ir?
- He desarrollado un interés en la economía mundial, ¿qué debo leer para aumentar mi conocimiento?
- ¿Cuáles son algunos buenos recursos para aprender sobre biología sintética?
- ¿Cuáles son los mejores libros para entender la Guerra Civil Finlandesa?
- ¿Cuáles son los mejores recursos para aprender coreano y cómo puedo convertirme en un orador, lector y escritor competente del idioma coreano?
- Si eres profesor, ¿a dónde vas en línea / fuera de línea para obtener recursos o discutir temas educativos?
- w3schools: si bien siempre están en la parte superior de la Búsqueda de Google, tienen un sitio desactualizado. Es posible que tengan buenos recursos para algunas de las tecnologías, pero será difícil para un lector saber cuándo confiar en ella y cuándo no debería.
- Reddit: no podrá distinguir cuándo está siendo rastreado y cuándo la persona realmente lo está ayudando. Hay subreddits decentes como la programación y diseño web . Si puedes manejar Reddit es genial, solo requiere mucho más esfuerzo que muchas otras fuentes.
- Cualquier sitio que no se vea como se hizo en la década pasada. Verificación rápida de la calidad:
- Todo el código debe estar en perfecto formato.
- Todo el código debe ser resaltado brillantemente
- Los párrafos deben estar bien formateados y el contenido debe verse ordenado en general
- Demasiados enlaces en la página, vete
- Demasiados anuncios de banner en la página, vete
Bien, entonces, ¿qué necesitas aprender?
- HTML – el núcleo de todo es HTML. Si te interesa el formulario completo: Hyper Text Markup Language. Como su nombre lo indica, es un lenguaje de marcas. Se utiliza para distinguir algunas partes de su página de otras. Utilizará las etiquetas
para marcar encabezados importantes,
- CSS – el maquillaje. Debido a que la belleza que se encuentra en los ojos del espectador, no está realmente allí si no pones esfuerzo. CSS es de nuevo bastante simple de entender. Sin embargo, puede ser difícil de usar.
- Javascript – porque es genial ser dinámico. HTML y CSS en sí mismos son bastante estáticos. Realmente no puedes capturar cosas, mover cosas, actualizar cosas sin actualizar la página. Javascript es el idioma que usarás para darle algo de vida a tu bonita muñeca.
- El lado del servidor: ahora es muy probable que esté creando un sitio de contenido dinámico. Un sitio donde presentará a diferentes usuarios con contenido diferente o contenido diferente en función de dónde se encuentre el usuario. Lo más probable es que no quiera codificar manualmente cada página y cada párrafo de todo. Aquí es donde usarás la tecnología del lado del servidor. Verá, HTML-CSS-JS son solo elementos de presentación del lado del cliente, su contenido real estará en servidores en bases de datos y utilizará algún lenguaje del lado del servidor como PHP, Python, JS, Ruby, Java, Scala, etc. para obtener información del base de datos. Y aquí viene otro desafío: la comunicación entre la lógica de su servidor y la base de datos. Por lo general, usará SQL, pero hay cosas más nuevas y ordenadas disponibles que podrían satisfacer sus necesidades.
- Dominios – Todo hecho, esto sigue siendo un desafío. Si está desarrollando un producto, probablemente lo lanzará con un dominio propio. Ahora comprar dominios es fácil. Aunque es un poco más difícil encontrar un buen registrador. Por mucho que quiera visitar http://www.godaddy.com/ (y muchas personas lo hacen), en el pasado reciente se les ha criticado mucho por su posición en SOPA. Las protestas incluyeron el movimiento de todos los dominios de Wikipedia a http://www.namecheap.com/. A menudo encontrará servicios mucho más baratos en la web, pero le sugiero que vaya a un registrador que tenga buena reputación de confiabilidad. Tenga en cuenta que los registradores en realidad no ganan mucho dinero vendiéndole dominios sino a través de servicios de valor agregado. Una gran parte de sus ganancias proviene de renovaciones: verifique los costos ocultos y los precios de las funciones; muchas veces las cosas se ven baratas el primer año pero son increíblemente caras el año que viene.
- Hosting – Encontrar un buen servicio de hosting y usarlo de la manera correcta es una tarea muy desafiante. Hay varios tipos de hosting disponibles:
- Alojamiento compartido : La opción más barata, más común y fácil de usar. Requiere la menor cantidad de conocimiento y tiempo de desarrollo. Las opciones son en gran medida basadas en PHP en servidores Apache con soporte MySQL. Estas opciones son muy restrictivas, pero, por otro lado, el proveedor de servicios se preocupa por la mayoría de los problemas, incluida la seguridad. Hay cientos de servicios de este tipo que le brindan espacio web y ancho de banda de aproximadamente $ 50 al año. El rendimiento es pobre.
- Plataforma como un servicio (PaaS) : una adición bastante reciente y se está volviendo más popular. Google App Engine y Heroku son dos soluciones. Bueno para pequeñas empresas y aplicaciones que pueden volverse virales de repente. El servicio proporciona una amplia variedad de paquetes, bibliotecas y herramientas para construir. Requiere más esfuerzo para implementar cosas que el Alojamiento compartido, pero hay cosas que son mucho menos restrictivas. Desafortunadamente, estas soluciones son más costosas de mantener cuando se agotan las cuotas libres.
- Infraestructura como servicio (IaaS) : obtendrá máquinas virtuales con las que puede hacer absolutamente cualquier cosa sin preocuparse por el tiempo de actividad, el mantenimiento del hardware y la actualización. El escalado no es tan fácil como en PaaS y tampoco lo es la implementación, pero es más barato. También es más abierto y tienes control completo sobre toda la pila.
- Auto alojamiento: No para novatos. En absoluto. Es un reto, requiere que compres servidores, ancho de banda e IP estática; mantener las cosas funcionando – día tras día. Probablemente esto puede ser más barato que cualquier otra solución, pero es mucho más trabajo. Más que eso, requiere que tengas confianza y experiencia. Libertad absoluta, obviamente.
- HTTP & REST – La comprensión de HTTP también es esencial. Esto es como la parte teórica del desarrollo web. Puede omitir esto inicialmente, pero el desarrollo de estos conceptos no solo le dará confianza sino que también aportará madurez en la construcción de interfaces y API. http://tomayko.com/writings/rest… es un (controvertido debido a su denominación, pero) un blogpost muy impresionante sobre REST y sistemas sin estado.
También necesitará comprender los códigos de estado HTTP, las sesiones y las cookies.
Sí, entonces, ¿dónde aprendes esta mierda?
- HTML : https://developer.mozilla.org/en…
- CSS : https://developer.mozilla.org/en…
- Javascript :
- https://developer.mozilla.org/en…
- http://www.codecademy.com/langua…
Este es un brillante tutorial de código mientras aprendes. Le explica casi todos los conceptos de Javascript de una manera fácil de entender. - http://yuiblog.com/crockford/
Busque las conferencias de Douglas Crockford. Es una de las personalidades más destacadas de JS. No estaba al tanto de la estupidez de los tutoriales de w3schools y aprendí ‘Javascript’ desde allí, el error más grande de mi vida en el desarrollo web. Las conferencias de Crockford lo cambiaron todo. Son tan ricos en contenido que tuve que verlos varias veces solo para comprenderlo y vincularlo todo, o al menos lo máximo que he aprendido. - MySQL :
http://dev.mysql.com/doc/refman/…
Es menos probable que necesite PostgreSQL o MSSQL ya que la mayoría de los hosts proporcionan MySQL. Casi las diferencias son visibles, puede comenzar con MySQL y luego captar rápidamente otras cuando sea necesario. - PHP
http://es.php.net/getting-started
http://php.net/manual/en/tutoria…Es más probable que utilice PHP, no porque sea el mejor lenguaje para codificar, sino por su ubicuo alojamiento. Para empezar, también es increíblemente fácil: desafortunadamente, esto resulta ser un problema más adelante. Hay varios marcos que pueden hacer que el código de tu aplicación sea mucho más estructurado y eliminar la necesidad de codificación de plantillas: Symfony, Zend, CakePHP y CodeIgniter son algunos de ellos. La mayoría de los marcos que encontrará serán MVC, es la forma moderna de las arquitecturas de aplicaciones web. MVC significa Modelo – Vista – Controlador; Puedes leer más sobre esto en wikipedia: http://en.wikipedia.org/wiki/Mod…
- Javascript bibliotecas y marcos
Usted no quiere codificar Javascript usted mismo. Es difícil hacerlo bien en un navegador, más difícil incluso para hacerlo bien en todo. Hay bibliotecas como JQuery, Mootools, YUI Library y Prototype, que tienen funciones y utilidades predefinidas fáciles de usar que puede usar para la mayoría de las cosas pequeñas. También son extensibles con un gran conjunto de complementos y extensiones que aumentan aún más la funcionalidad.Ahora, incluso esto no es suficiente, a veces, en el lado del cliente, es posible que JS se salga de control y sea imposible de manejar. Los marcos como Sencha y Backbone.js pueden ayudarlo a estructurar su código en patrones comprensibles.
- XAMPP
http://www.apachefriends.org/en/…
Claro que puedes aprender todo esto, pero ¿cómo lo probarás? Configurar XAMPP en su máquina local es una de las maneras más fáciles de obtener la pila completa de tecnologías: Apache – PHP – MySQL en su máquina. - Python y Django
Si eliges ser un poco más aventurero, puedes comenzar con Python y Django. Python es un lenguaje funcional limpio, hermoso, único, de una sola manera, que facilitará la creación de sistemas complejos.Creo que el tutorial oficial de Python es un buen recurso para comenzar: http://docs.python.org/tutorial/ La clase de Google Python también ha recibido buenas críticas: http://code.google.com/intl/sv/ mi…
Para desarrollar aplicaciones web con Python, la gente generalmente usa Django (https://www.djangoproject.com/). Django es rápido, brillante y se usa ampliamente. Encontrará suficientes recursos en línea y suficiente apoyo en varios foros.
- Java y Google App Engine
Java está en todas partes y la gente lo usa para todo. Una buena forma de desarrollar una demostración es usar Java y alojarlo en GAE (https://developers.google.com/ap…). GAE ofrece alojamiento gratuito para aplicaciones más pequeñas y una cantidad decente de integración con tecnologías de Google como Contactos, Correo, etc. para que pueda crear rápidamente una capa social en él. Por supuesto, si necesita agregar la integración de Facebook, tendrá que hacerlo por su cuenta. Sin embargo, un problema importante es que GAE solo admite NoSQL y un almacén de datos (API a BigTable, AFAIK). Puede leer sobre NoSQL aquí: http://en.wikipedia.org/wiki/NoSQL. Tenga en cuenta que para la mayoría de los casos de uso, realmente no le importa mucho si la base de datos es SQL o NoSQL. Pero como las bases de datos SQL están en todas partes, las personas generalmente se sienten más cómodas con ellas. - Bases de datos NoSQL y Cache Stores
El punto anterior me recuerda agregar esto, para bigdata puede que necesite bases de datos NoSQL (http://en.wikipedia.org/wiki/NoSQL). Existen varios tipos de bases de datos NoSQL (ejemplo de gráfico, documento, etc.) pero las tiendas de valores clave son las más comunes. - Cassandra, BigTable, HBase son algunas tiendas de gran valor clave
- Los almacenes de valor clave también se utilizan a menudo como almacenamiento en memoria para propósitos de almacenamiento en caché. Redis y memcached son dos nombres muy comunes en esta esfera.
- CouchDB y MongoDB son dos tiendas de documentos que también son increíblemente populares
Ahora, algunos idiomas alternativos del lado del servidor con los que tengo una experiencia nula / insignificante con:
- Ruby y Ruby sobre rieles
http://www.ruby-lang.org/en/
http://rubyonrails.org/ - Javascript y Node.js
http://nodejs.org/
(Esto definitivamente necesita expansión: procesamiento a gran escala y qué no. Si hay personas que quieren que lo agregue, lo haré).