¿Es beneficioso estudiar más allá de los conceptos básicos de un lenguaje central cuando el objetivo principal es confiar en su marco? [cerrado]

10

Tenga en cuenta que este no es otro '¿Cuánto [ insertar lenguaje de programación aquí ] debería saber antes de pasar a [ insertar marco aquí ]?' Lo que me gustaría saber es cuán beneficioso es aprender los conceptos avanzados de un lenguaje de programación cuando su intención es confiar en gran medida en su marco la mayoría de las veces. Entonces, por ejemplo, comencé a usar jQuery y primero me tomé el tiempo para comprender realmente los conceptos centrales de Javascript. Además, tengo algunos más allá de los libros básicos (Secretos de un Javascript Ninja, por ejemplo) en el estante que realmente profundizan en el lenguaje. A medida que hojeo las páginas, encuentro que una buena parte no se transfiere a jQuery, ya que mi intención principal es la manipulación del DOM.

Lo mismo puede decirse de Ruby y RoR. ¿Estos libros me harán un mejor programador en general? Probablemente. ¿Pueden estos temas ayudarme a ser mucho mejor con su marco? Eso es lo que me cuesta entender.

Carl Edwards
fuente
77
Al depurar, a menudo ayuda si comprende lo que sucede detrás de la cortina. Aparte de eso, en su mayoría aprendo cosas nuevas cuando encuentro la necesidad, y lo estoy disfrutando.
marczellm
2
Estoy un poco con marczellm en esto. Mi actitud general es que solo tienes tanto código que podrás producir en tu vida, y los idiomas, dialectos y marcos salen básicamente más rápido de lo que puedes escribir código. Si ya puede trabajar con varios idiomas y marcos, entonces probablemente desee estudiarlos según lo que necesite saber o querer saber, no como muescas cada vez mayores en su cinturón.
Panzercrisis
Yo diría que esta es otra pregunta de "cuánto". Ciertamente tiene la misma respuesta, que es una escala variable dependiendo de sus circunstancias exactas.
jmoreno
jQuery es un caso un poco especial. Es casi otro lenguaje específico de dominio incrustado dentro de Javascript. (Casi pero no tranquilo). Me pregunto es por esta especialidad que esta pregunta se escribiría mejor específicamente sobre jQuery y Javascript (en lugar de que jQuery y javascript sean solo un ejemplo)
Lyndon White

Respuestas:

27

Es más importante estudiar el lenguaje que estudiar el marco. Aprende bien el idioma y usarás bien el marco.

En orden de importancia (lo más importante primero):

  1. Principios fundamentales de programación: algoritmos, estructuras de datos, etc.
  2. Paradigmas del lenguaje: POO, funcional, etc.
  3. Características del lenguaje
  4. Sintaxis y frameworks.
Robert Harvey
fuente
2
Muchos votos a favor sobre esto si pudiera. Un programador estará limitado tanto en diseño como en capacidad para trabajo avanzado por lo que no sabe.
Peter Smith
8
5. Código idiomático. Lea el código de otras personas y aprenda los estilos de este idioma en particular.
Joshua Taylor
55
@JoshuaTaylor Creo que pondría eso antes que los frameworks en importancia, ya que es probable que el código idiomático se use con el framework y aprenderlos por separado es más útil: las expresiones idiomáticas no son parte del framework, y los usuarios del framework probablemente añadido más
Izkata
Votado porque confirma mis prejuicios personales. Sin embargo, me gustaría tener sus fuentes por favor.
Aaron Hall
5

Por supuesto. La pregunta es "¿vale la pena la inversión de ese beneficio?". Yo diría que siempre es así, pero ciertamente depende de usted y su entorno, ya que afectarán el beneficio (cuánto obtendrá su entorno de su conocimiento) versus el costo (cuánto tiempo le lleva aprender y qué tan bien absorber el conocimiento).

¿Por qué diría que es beneficioso? Porque no siempre estarás en el marco. Incluso el marco más completo sigue siendo parte de un ecosistema más grande. No puede hacer llamadas jQuery solo. Debe saber cómo vincular su secuencia de comandos en la página, cómo se ejecuta, cómo interactúa con las cosas que desea hacer. Eso puede ser "básico" en su libro, pero siempre he descubierto que un conocimiento más profundo me ayudó a hacer que el código sea más rápido, y ciertamente a depurar los problemas más rápido. Marco o no.

Más allá de eso, el mundo real tiene la desagradable costumbre de entrometerse en los programadores. Claro, su tarea hoy puede ser manipular DOM, pero mañana puede que necesite conectar algún SWFObject. Tener una buena base le permitirá adaptarse más fácilmente a los entornos cambiantes.

Y, por último, aunque es posible que solo desee realizar la manipulación DOM, muy pocos programadores trabajan solos. Sus compañeros probablemente harán cosas más avanzadas con el lenguaje de programación. Deberá poder leer ese código, o al menos, no arruinarlo.

Telastyn
fuente
1

Probablemente necesite un poco de equilibrio en la cantidad que debe aprender. No es todo o nada, así que dedica todo el tiempo que puedas. Debe preguntarse qué riesgos desea aceptar confiando en el marco.

Es genial si todo lo que necesita es tener en funcionamiento algún Producto mínimo viable. No va a haber un gran rendimiento o problemas complejos de requisitos. Esto supone que eligió un marco que puede manejar lo que está tratando de construir.

En el otro lado del espectro está si está trabajando en una aplicación bastante grande / compleja y encuentra algo que el marco maneja mal. No es gran cosa, así que terminas teniendo que aprender más JavaScript. Hubiera tenido que pasar ese tiempo si lo aprendió desde el principio. ¿Pero tienes tiempo? ¿Serás capaz de aprender los fundamentos bajo el estrés de no hacer algo a tiempo? Nadie puede responder eso.

Equilibrarlo es probablemente la mejor apuesta. Ir a tu ritmo. Aprende algunos JavaScript si puedes. Puede que no se convierta en un experto, pero esa no es razón para ignorarlo. Los marcos fueron creados por personas que necesitaban resolver un problema similar al suyo, pero no exactamente como el suyo.

JeffO
fuente
1

Un área general que sufre de profundizar en el marco (s) antes de conocer bien el lenguaje central es el rendimiento. Esto es cierto para todos los idiomas / plataformas ( Hibernate n + 1 selecciona, etc.). Aquí hay muchos consejos y trucos de JQuery que se basan (entre otras cosas) en un buen conocimiento del lenguaje central en relación con el rendimiento:

Use For en lugar de Each Las funciones nativas son siempre más rápidas que las contrapartes auxiliares. Siempre que esté recorriendo un objeto recibido como JSON, será mejor que reescriba su JSON y haga que devuelva una matriz a través de la cual puede recorrerlo más fácilmente.

Use ID en lugar de clases Es mucho mejor seleccionar objetos por ID debido al comportamiento de la biblioteca: jQuery usa el método nativo del navegador, getElementByID (), para recuperar el objeto, lo que resulta en una consulta muy rápida.

Shivan Dragon
fuente
0

Creo que su pregunta se basa en una premisa falsa. Comienza diciendo que planea confiar en un marco y luego pregunta si es beneficioso aprender más allá del marco. Entonces, por supuesto, llegas a la conclusión de que no vale la pena. Pero esa premisa es defectuosa. No debe centrarse en usar un marco. Debes concentrarte en usar la herramienta adecuada para el trabajo correcto . jQuery es realmente bueno en ciertas tareas, y también lo es Ruby on Rails o cualquier otro marco. Pero no siempre son la herramienta adecuada para todo. Aprender sobre el lenguaje más allá del marco, e incluso aprender sobre otros marcos o microframeworks u otras herramientas, lo ayuda a identificar cuándo su marco se interpone en su camino más de lo que lo está ayudando, y le brinda la capacidad de buscar otros,

Entonces mi respuesta es: sí, vale la pena porque el marco no es la herramienta adecuada para cada trabajo.

jpmc26
fuente