El lenguaje que casi se convierte en CSS

Muy interesante el artículo The Languages Which Almost Became CSS que dice:

When HTML was announced by Tim Berners-Lee in 1991 there was no method of styling pages. How given HTML tags were rendered was determined by the browser, often with significant input from the user’s preferences. It seemed, however, like a good idea to create a standard way for pages to ‘suggest’ how they might prefer to be rendered stylistically.

But CSS wouldn’t be introduced for five years, and wouldn’t be fully implemented for ten. This was a period of intense work and innovation which resulted in more than a few competing styling methods which just as easily could have become the standard.

While these languages are obviously not in common use today, I find it fascinating to think about the world that might have been. Even more surprisingly, it happens that many of these other options include features which developers would love to see appear in CSS even today.

¿Por qué no todo el mundo es un buen programador?

Muy interesante la pregunta y la respuesta planteadas en Why is everyone not a programmer? en Quora:

While just about anyone, at almost any age or IQ level, can learn the concepts of writing code, to become an employable, professional software developer with any hope of long-term success, a person needs:

  • Logical thinking skills.
  • Excellent problem-solving skills.
  • A methodical approach to solving problems.
  • A passion for software development.
  • A willingness and ability to keep learning new things (e.g., languages, paradigms, design patterns, libraries, frameworks, data structures, algorithms, etc.) throughout their entire career. The learning never ever stops in this business. If you stop learning, you will fall behind and limit your opportunities.
  • Excellent written and oral communication skills. From writing documentation or code comments to providing feedback in code reviews to making presentations to defending your design decisions, communication is key in this business.
  • Patience. You need a lot of this. The list of people and situations that will try your patience is too long to even begin to list here.
  • Persistence. You need a lot of this, especially after you’ve been chasing a difficult bug for many hours or days.
  • Attention to even the most minute detail. One binary digit (bit) can have a huge effect on how something works or doesn’t work.
  • Attention to quality.
  • A willingness and ability to dive in and learn about the domain you’re writing code for, to gain a better understanding of client/user needs, terminology, concepts, etc. For example, if you’re programming financial systems, you need to learn about financial concepts. If you’re developing statistical software, you need to dig in and learn about statistics. If you’re developing simulations, you might need to roll up your sleeves and learn about astrophysics, string theory, ecological systems, etc. If you’re writing network software, you need to learn about networking. If you’re writing software to drive industrial chemical processes, you need to learn about the chemicals and processes you’re working with. (See this answer for an example.) Device drivers require learning about hardware devices. Process control software might require learning about chemical reactions. The list goes on and on.

    (One of the many things I enjoy about software development is all the other areas I’ve had a chance to learn about over the decades, in addition to the typical computer science and software engineering arenas.)

  • Compassion and empathy for the next developer who needs to read/maintain your code.
  • Compassion and empathy for the users of the software you’re developing.
  • The ability to read and interpret technical information quickly, and apply it to the task at hand (e.g., hardware datasheets, algorithm descriptions, best practices, etc.).

This is not an exhaustive list, but it gives you a general idea of the attributes you need for long-term success in software development.

Obviously, not everyone has all of these attributes. Although some can be learned/acquired, some are more fundamental to the personality and life experience of the individual.

Just as not everyone can become a professional brain surgeon, astronaut, soldier, aeronautical engineer, nurse, teacher, firefighter, lawyer, concert pianist, rock star, actor, cinematographer, carpenter, plumber, architect, sculptor, rocket scientist, pilot, etc., not everyone can be a professional software developer.

That said, I strongly believe in people — of all walks of life — having the opportunity to learn new skills, improve themselves, change careers, make themselves more employable, and go after their dreams.

In addition to being a software developer, I have taught software engineering and computer science courses to many aspiring software developers, across many ages, races, economic backgrounds, religions, previous careers, etc. Some have gone on to success in this field. Others have used the opportunity to discover that software development was not for them. A software development career is not for everyone. But, all should have the opportunity to learn and decide for themselves.

 

¿Por qué la página “home page” se llama “home page”?

Muy interesante y nostálgico lo que se explica en Why Do We Call it a Homepage?:

Berners-Lee imagined that each person would have their own little space on the web. They could add whatever bookmarks or notes they wanted to their page. They could make it public or keep it private. When they opened their browsers, they would be met with their personal website. And using their browser they could quickly make updates and publish changes to their site. The web, in other words, was meant to go both ways. We were meant to be both participants and consumers.

That space on the web, Berners-Lee called it a home page. It made sense. It was a digital “home” on the web. A space you could come back to and add the discoveries you made surfing the web. And that’s how the word home page began to circulate.

¿Qué puedo hacer para mejorar en mi programación?

De vez en cuando, alguien me escribe y me pregunta:

Me gustaría iniciarme en el mundo de la programación, para ello le pediría consejos para este mundo y que podría hacer para mejorar.

Y yo suelo contestar algo como:

En internet puedes encontrar muchos cursos de programación. Dos de las plataformas más interesantes son Udemy y Udacity.
Programar es como escribir: en el colegio se enseña a leer y escribir y prácticamente todo el mundo puede leer y escribir, pero de ahí a saber comunicarse correctamente por escrito o ser capaz de crear un escrito atractivo y que la gente quiera pagar por leerlo (piensa en un libro) hay un mundo. Lo mismo pasa con la programación: en muchos sitios se enseña a programar, pero solo se puede aprender a programar bien leyendo mucho código bien escrito y escribiendo mucho código, programando. Por tanto, para mejorar hay que practicar, practicar y practicar.