He aprendido mucho de los artículos titulados Lo que todo programador debería saber … , tienden a proporcionar mucha información útil y detallada sobre un tema en particular, que de lo contrario es Muy difícil de descubrir. En mi búsqueda de aprendizaje, he encontrado algunos artículos muy útiles, que he marcado como referencia y lectura múltiple. Personalmente creo que todos los programadores pueden beneficiarse con la lectura de estos artículos, lo que me hace escribir este post y compartir con ustedes todos estos artículos de «Lo que todo programador debe saber» . Estos son de mis marcadores personales. En este artículo, verá lo que todo programador debe saber sobre temas como la memoria , Unicode, aritmética de punto flotante , redes , diseño orientado a objetos , tiempo , codificación de URL , cadenas y muchos más.
En Azul Web tenemos un curso profesional de C++, para acceder al curso completo se necesita una membresía que tiene un precio simbólico, si gustas podemos darte un cupón de descuento. Dejamos un mensaje en nuestra sección de contacto, o en nuestra pagina de Facebook.
Esta lista es muy importante para los principiantes y los recién llegados, ya que son los que carecen de conocimientos prácticos. Dado que la mayoría de estas publicaciones están impulsadas por el conocimiento práctico, los programadores principiantes e intermedios pueden quitarle mucho. Además, el conocimiento de los fundamentos en una etapa temprana de la carrera ayuda a evitar errores, como lo han hecho otros programadores y desarrolladores de software en su curso de aprendizaje.
Aunque no es fácil captar todo el conocimiento dado en estos artículos en una sola lectura. Es probable que no entienda algunos detalles sobre el número de punto flotante o que se confunda con detalles sutiles de la memoria, pero es importante tenerlos a mano y referirlos de vez en cuando con un contexto. Así que buena suerte y disfruta leyendo estos maravillosos artículos. Por cierto, no olvide compartir cualquier artículo de Lo que todo programador debería saber si no está en esta lista.
Lo que todo programador debe saber sobre la memoria: Este es uno de los artículos clásicos, que lo llevará a través de muchas líneas de memoria, algunas antiguas, algunas nuevas, otras conocidas y otras desconocidas. A pesar de ser tan estafador y omnipresente, no todos los programadores tienen suficiente conocimiento de la Memoria. El conocimiento de la memoria en el sistema moderno se vuelve aún más importante si está en el espacio para escribir aplicaciones de alto rendimiento. Los diseñadores de hardware han desarrollado técnicas de aceleración y manejo de memoria cada vez más sofisticadas, como cachés de CPU, pero no pueden funcionar de manera óptima sin la ayuda del programador. Todavía estoy leyendo este artículo, y no puedo decirle cuánto he aprendido de esto sobre RAM, cachés de CPU, por ejemplo, caché L1 y L2, diferentes tipos de memoria, acceso directo a la memoria, diseños de controladores de memoria y memoria en general. En resumen, una lectura obligada para los programadores de todos los niveles de experiencia.
Lo que todo científico informático debe saber sobre la aritmética de: punto flotante La aritmética de punto flotante es un tema delicado y no es fácil de dominar. Incluso muchos programadores de Java no saben qué puede salir mal al comparar elvalor flotante / doble con eloperador == . Muchos de nosotros a menudo nos equivocamos al hacer cálculos monetarios en flotación y doble . Este artículo es otra joya de esta serie y debe ser leído por todos los desarrolladores y programadores de software. A medida que su experiencia crezca, se espera que conozca detalles sutiles de cosas comunes, y la aritmética de punto flotante es una de ellas. Como desarrollador senior de Java, debe saber cómo realizar el cálculo monetario, cuándo usar float ,Clases dobles o BigDecimal , cómo redondear números de punto flotante, etc. Incluso si conoce los fundamentos de la aritmética de punto flotante, aprenderá algo nuevo sobre el cálculo de punto flotante al leer este artículo.
Lo que todo desarrollador debe saber sobre la codificación de: caracteres Unicode es otra área en la que muchos programadores tienen dificultades, y «El Absoluto Mínimo que todos los desarrolladores de software deben saber absolutamente, positivamente sobre Unicode y conjuntos de caracteres (¡sin excusas!)» Pretende llenar ese vacío. En una nota al margen, Sí, ese es el título completo de ese artículo. Fue escrito por Joel Spolsky, uno de los fundadores de statckoverflow.com. Joel ha escrito este post en su blog hace casi 10 años, pero sigue siendo relevante en el mundo de hoy. Este artículo le enseñará sobre ¿Qué es Unicode, W sombrero es la codificación de caracteres , como los personajes se representan usando bytes y mucho más. Una de las mejores cosas de este artículo es el lenguaje y el flujo, incluso si no sabe nada acerca de Unicode, puede seguirlo fácilmente. En resumen, uno más debe leer para todos los programadores, programadores e ingenieros de software.
Lo que todo programador debe saber sobre el tiempo: Aparte de la codificación de caracteres, la hora y la fecha son otra área en la que luchan muchos programadores, incluido yo. Incluso los desarrolladores senior perdieron entre GMT, UTC, horario de verano y entre segundos de salto. Hablando francamente, no es fácil lidiar con las zonas horarias sin cometer errores, luego agregue el ahorro de luz diurna y el efecto de eso. Los problemas empeoran si utiliza el método de prueba y error porque nunca podrá resolver su problema al hacerlo. Hay tantas cosas que pueden salir mal y hay un número igual de conceptos erróneos. Cosas como, ya sea que la fecha contenga una zona horaria o no, pueden confundirte como un infierno, convertir la hora de UNIX en otra zona horaria puede asustarte, olvidarte de la sincronización del reloj y los retrasos. Espero que muchos de sus conceptos erróneos sobre el tiempo desaparezcan y que construyan un sonido fundamental sobre el Tiempo,
Lo que todo desarrollador web debe saber sobre la codificación de URL: Este artículo describe conceptos erróneos comunes sobre la codificación del Localizador uniforme de recursos (URL), luego intenta aclarar la codificación de la URL para HTTP, antes de presentar problemas frecuentes y sus soluciones. Si bien este artículo no es específico de ningún lenguaje de programación, ilustra los problemas en Java y termina explicando cómo solucionar los problemas de codificación de URL en Java y en una aplicación web en varios niveles. Aprenderá los conceptos básicos de la gramática de URL, la sintaxis general de URL en HTTP y otros protocolos. Este artículo también explora los errores comunes de las URL, por ejemplo, la codificación de caracteres, los caracteres reservados en la parte diferente de la URL y los problemas de codificación / decodificación de URL. Si usted es un programador de Java, también aprenderá cómo manejar las URL en la aplicación Java de la manera correcta. Cómo construir URL y usar la biblioteca de cliente HTTP Apache commons. Finalmente, también sugiere las mejores prácticas o el manejo de URL, por ejemplo, debe codificar las URL cuando las construya, asegurándose de que los filtros de reescritura de URL traten su URL correctamente y mucho más. En resumen, un artículo imprescindible para cualquier desarrollador y programador web.
¿Qué debe saber cada programador sobre el desarrollo web? : Este es un artículo interesante del intercambio de apilamiento de programadores, sobre lo que debe considerar cada programador que implementa los detalles técnicos de una aplicación web antes de hacer público el sitio. Esto incluye cosas que van desde el diseño de la interfaz y la experiencia del usuario , seguridad , estándares web , rendimiento , optimización del motor de búsqueda (SEO), Tecnología involucrada, y sobre varios recursos importantes. Dado que el mundo de hoy depende enormemente de que Internet y los programadores tengan su sitio personal, un blog es bastante común. La experiencia adquirida en este artículo ni siquiera ayudará en su trabajo profesional, sino también en su trabajo personal. Aprenderá sobre toda la tecnología clave, por ejemplo, HTTP, HTML, XML, CSS, JavaScript, compatibilidad con navegadores, consejos para reducir el tiempo de carga de su sitio web, mapas de sitio XML, especificaciones W3C y varios otros detalles clave.
Lo que todo programador debe saber sobre SEO: Este es otro artículo, que es muy importante para los desarrolladores web, programadores y bloggers. El SEO es demasiado grande como para ignorarlo ya que muchos programadores también son bloggers, es importante aprender algunos conceptos básicos de la optimización del motor de búsqueda para ayudar a Google a encontrar su contenido y presentarlo a otros programadores. Dado que ninguna empresa puede sobrevivir sin la presencia en la web en el mundo interconectado de hoy, el SEO se vuelve aún más importante. Si usted es propietario de una empresa nueva, que vende un producto, entonces SEO es algo de lo que debe preocuparse. Todos los programadores, especialmente los desarrolladores web, pueden beneficiarse en gran medida de este artículo. Recuerde, la optimización del motor de búsqueda es un tema amplio y muy dinámico, y también varía entre los diferentes motores de búsqueda, por ejemplo, Google, Yahoo y otros. Por lo tanto, para dominar este tema, siempre deberá actualizar sus conocimientos.
Lo que todo programador de C debería saber sobre el comportamiento
no definido # 1/3 El lenguaje de programación C tiene el concepto de «comportamiento indefinido». El comportamiento indefinido es un tema amplio con muchos matices y esa es una de las razones por las que me gusta Java, menos comportamiento indefinido, menos confusión, más estabilidad y más paz. Muchas cosas aparentemente razonables en C en realidad tienen un comportamiento indefinido, y esta es una fuente común de errores en los programas. Más allá de eso, cualquier comportamiento indefinido en C le otorga licencia a la implementación (el compilador y el tiempo de ejecución) para producir código que formatee su disco duro, haga cosas completamente inesperadas, o peor. Lea este excelente artículo para sumergirse en el mar de un comportamiento indefinido
Lo que todo programador debe saber acerca de las redes: Del artículo en sí «Eres programador. ¿Alguna vez te has preguntado cómo funcionan los juegos para múltiples jugadores? Desde el exterior, parece mágico: dos o más jugadores que comparten una experiencia consistente en la red como si realmente existieran juntos en el mismo mundo virtual. . Pero como programadores sabemos que la verdad de lo que realmente está sucediendo debajo es muy diferente de lo que ves. Resulta que todo es una ilusión «. Este es un artículo muy interesante sobre redes, escrito para programadores de juegos, pero creo que todos los programadores y desarrolladores pueden beneficiarse de esto.
Lo que todo desarrollador de Java debería saber sobre cadenas: Este es mi artículo sobre java.lang.Stringy lo que personalmente creo que todo programador de Java debería saber al respecto. La cadena es muy importante en la programación diaria en Java y es por eso que cualquier desarrollador de Java debe tener un buen conocimiento. Este artículo toca muchas áreas importantes de String, incluyendo el conjunto de cadenas, el literal de la cadena, la comparación de String con == vs equals () , la conversión de bytes a String, la razón por la que String es inmutable, la concatenación de cadenas y mucho más. Es posible que el programador avanzado ya sepa todas estas cosas, pero incluso así es bueno revisarlas.
¿Qué debe saber cada programador sobre seguridad?: Esta pregunta fue hecha por un estudiante de programación de computadoras en StackOverFlow. Al igual que aprendemos mucho sobre conceptos generales de programación, por ejemplo, sistema operativo, algoritmo, estructura de datos, arquitectura de la computadora y otras cosas, también es importante conocer la seguridad. Si bien la seguridad es un gran tema que abarca desde el cifrado / descifrado, SSL, seguridad web, ofuscación, autenticación, autorización, etc., todos los programadores deben tener un conocimiento mínimo básico. Personalmente no sabía mucho sobre seguridad cuando comencé mi carrera, es cuando empiezo a escribir aplicaciones web basadas en Servlet / JSP, llego a conocer la seguridad web y varias amenazas de seguridad como Inyección de SQL , Denegación de servicio , Inyección de XML , Secuencias de comandos de sitios cruzadosy otros. Como desarrollador de Java, ahora sigo las prácticas de codificación de Java seguras proporcionadas por fortify, PMP y otros proveedores de análisis de código estático. Este artículo es una muy buena colección de temas y enlaces sobre Seguridad y si está haciendo codificación o no, seguramente se beneficiará de este recurso.
Números de latencia que todo programador debería saber: Este es el artículo extra, pero debe ser leído por todos los programadores. Para escribir aplicaciones de alto rendimiento en cualquier lenguaje de programación, por ejemplo, Java o C ++, debe saber los números de latencia fundamentales, por ejemplo, cuánto tiempo se tarda en leer una variable de la memoria, de la caché L1, de la caché L2, de la lectura aleatoria en SSD y desde el disco. Cuánto tiempo lleva bloquear el desbloqueo en mutex, enviar un paquete de datos de una ciudad a otra o hacer un viaje de ida y vuelta en el mismo centro de datos. Estos números de latencia son independientes de cualquier lenguaje de programación y parte de los conocimientos básicos, un desarrollador debe tener que escribir aplicaciones de latencia baja de alta frecuencia. Lo bueno de este enlace es que también le proporciona un análisis comparativo de cómo estos números de latencia han evolucionado a lo largo de los años. Puedes ver cuáles fueron estos números de latencia en 2006 y cuáles son ahora.
Eso es todo en esta lista de artículos que todo programador debe leer . Al leer los títulos de los artículos como Lo que todo programador o desarrollador debe saber , obtienes un conocimiento profundo de un tema en particular. Hablando francamente, hay demasiadas cosas que aprender para los programadores, aprender un lenguaje de programación como Java es solo una punta del iceberg, pero ¿no es así que muchos de nosotros tenemos pasión por aprender? La programación es un trabajo desafiante, y solo las cosas que lo ayudan a lo largo de su carrera son conocimientos fundamentales, por ejemplo, sobre memoria , Unicode , números de punto flotante , tiempo , seguridadEs muy importante para cualquier programador. Pocas cosas son específicas del lenguaje de programación, por ejemplo, mi publicación sobre Java String y lo que todo programador de C debería saber sobre el comportamiento indefinido, pero aún así es bueno para muchos principiantes y desarrolladores.
Fuente: Javarevisited