Red de Respuestas Legales - Directorio de abogados - Compañía hermana

Compañía hermana

La programación consiste en simplificar problemas complejos y hacer que cada acción sea tan simple como 1+1=2, y luego la computadora lo hará. Esta es mi comprensión de la programación. Cuando la hermana mayor escuchó esto, se dio cuenta de algo y dejó de hablar sobre ese tema.

Analicemos las características de los ordenadores. Para ser precisos, la tecnología informática actual en nuestra sociedad es todavía muy primitiva. Es correcto decir que es una computadora, sólo puede calcular. Decir que es una computadora es demasiado halagador. No puede tener la capacidad de pensar.

En la arquitectura von Neumann, un dispositivo informático es un dispositivo con ciertas capacidades informáticas y la capacidad de interactuar con el mundo exterior y repetir acciones a alta velocidad. Esto puede ser diferente de lo que se aprende en los libros de texto. , pero así es como lo entiendo.

Así que, desde el principio, nunca consideré al ordenador como un compañero, un compañero que pudiera ayudarme con ideas o pensando en mi nombre, sino sólo como una herramienta. ¿Para qué se utiliza esta herramienta? Creo que lo más importante es que tiene dos funciones:

1. Repetición infinita, una secuencia de acciones, una vez programada, la computadora puede repetir esta secuencia innumerables veces sin sentirse cansado. Esto es especialmente adecuado para tareas aburridas y repetitivas. Por ejemplo, en nuestra escuela tenemos que tocar el timbre todos los días en clase. Si alguien lo hace, se aburrirá y puede cometer errores después de hacerlo durante mucho tiempo. Pero si la computadora lo hace, no habrá pensamientos, no te sentirás cansado y lo harás muy bien. Las computadoras son particularmente adecuadas para tareas repetitivas.

2. Estabilidad de la calidad del servicio. Las computadoras son buenas para tareas repetitivas y la otra cosa es que los resultados son siempre los mismos. Esto refleja una de las ideas más importantes de la era de la industrialización: el pensamiento de producción en masa. Como puede ver, en la sociedad actual, el arte que no se puede copiar es bueno, pero lo que el público necesita son productos producidos en masa, porque la calidad y la producción son estables y pueden satisfacer las necesidades del público. Aunque Rolls-Royce es hermoso, la mayoría de la gente conduce autos de gama baja como Volkswagen y Toyota. Así son las cosas. O el ejemplo de tocar una campana. Si fuera un humano, podría enfermarse, tomarse un tiempo libre o simplemente olvidarse, pero no una computadora. Mientras haya electricidad y funcione correctamente, no hay nada de malo en tocar el timbre.

De esta manera, gradualmente entendí que una computadora es en realidad una máquina que puede producir servicios continuamente con calidad constante.

Bien, ¿podemos entender primero que la programación informática es en realidad un trabajo humano? Cuando satisfacemos una necesidad de servicio, lo hacemos una vez, lo hacemos bien y obtenemos un resultado satisfactorio. Entonces consideramos que esta acción es repetible. Hagámoslo la próxima vez que nos encontremos con un problema similar. Entonces, hicimos arreglos para que las computadoras lo hicieran. ¿Bien?

¿Significa esto que el programa realmente habla sobre cómo hacer algo y el proceso para hacerlo? El significado de este proceso en realidad lo definen los humanos, y luego la programación le enseña a la computadora a hacerlo.

Solía ​​tener la sensación de que la programación informática tiene dos significados. Uno es el significado del programa en sí, es decir, cómo hacer las cosas. El otro es el significado lógico implícito en el programa, es decir, el significado de hacer cosas. Los programas sólo tienen un significado literal, mientras que la lógica es una capa de significado expresada por los párrafos del programa juntos. Ahora que lo pienso, esta es realmente la verdad.

Bien, ahora que sabemos que la programación consiste en dividir los pasos para hacer algo y enseñarle a la computadora a hacerlo, pero ¿con qué granularidad se divide? Esto es muy importante. Si la granularidad de la división es demasiado fina, desperdiciará tiempo y energía del programador, que son costos. Además, la descomposición es demasiado aproximada y la computadora aún no puede entenderla. Si se hace mal, será un error.

Esto muestra que hay un concepto muy importante en programación, que es la granularidad, que es qué tan granular describimos el problema.

La primera computadora fue la más estúpida. Los estudiantes que han estudiado los principios de la composición por computadora probablemente sepan que mientras haya un acumulador, en realidad puede considerarse como una computadora y solo puede realizar operaciones de suma. Porque sabemos por las matemáticas que cualquier cálculo puede eventualmente evolucionar hacia un cálculo de suma. De hecho, la CPU actual todavía tiene esta lógica de adición en el núcleo subyacente.

Por supuesto que esto no tiene nada de malo, pero hay un pequeño problema, es decir, las partículas son demasiado finas. Si el programador tuviera que descomponer todo en cálculos de suma muy detallados, el trabajo difícilmente sería humano. ¿Sin solución?

Jaja, como dijimos antes, ¿cuáles son las características de los ordenadores? Repitiendo infinitamente, encontraremos que algo, como 7*24, es una operación de multiplicación, pero eventualmente lo dividiremos en una operación de suma. Pero eso no significa que tengamos que desmantelarlo cada vez. El cálculo de la multiplicación también es un trabajo y una regla.

Entonces, después de desmontarlo una vez, por supuesto, podemos compilar el proceso de desmontaje en un programa y dejar que la computadora ejecute este programa la próxima vez que encontremos un problema similar. Jaja, ¿cómo crees que se implementan las instrucciones de multiplicación en la CPU de Intel? ¿Cómo crees que se implementa el sistema de microcódigo dentro de la CPU de AMD?

Es este tipo de pensamiento el que resuelve todos los problemas. Cuando satisfacemos las necesidades, primero debemos dividir y luego buscar constantemente si se ha dividido antes. Cuando encontramos un segmento de programa adecuado, podemos usarlo directamente sin dividirlo en detalles cada vez, lo que reduce la carga de trabajo. Por supuesto, cuando encuentre nuevos problemas, aún tendrá que solucionarlos usted mismo. Pero después del desmontaje, es mejor escribir el desmontaje en un programa y usarlo la próxima vez.

Cuando las personas juegan con varios idiomas, normalmente proporcionan una biblioteca base. Esta biblioteca básica es en realidad el resultado de un desmontaje previo. Las empresas de software creen que es representativo y puede cumplir con la mayoría de las aplicaciones, por lo que lo compilan en una biblioteca básica que los programadores pueden usar directamente en el futuro sin tener que repetirlo ellos mismos. ¿Crees que sí?

¿Ahora sabes cómo consultar las bibliotecas básicas de C, como stdio.h, stdlib.h? ¿Qué significa iostream en C++, lo sabes? ¿Lo sabe el MFC? ¿Qué significa la biblioteca en tiempo de ejecución de Java?

Sin embargo, el mundo siempre tendrá muchas necesidades y las capacidades informáticas mejoran constantemente. Cosas que antes no eran adecuadas para ordenadores ahora lo son gradualmente. Por lo tanto, todos siempre encontrarán algunos problemas nuevos que deberán resolver ellos mismos. La biblioteca base no los proporciona. Este es el verdadero significado de la existencia de la profesión de programador. Ayude a los usuarios a desmontar nuevas necesidades y resolver nuevos problemas. Por supuesto, la biblioteca en sí también se está mejorando, y los problemas que se ha demostrado que se pueden desensamblar con éxito se parchean constantemente en la biblioteca para evitar la duplicación del trabajo por parte de los programadores en el futuro. Es así de simple.

Jaja, después de tanta verbosidad, muchos estudiantes pueden estar confundidos. ¿Qué quiere decir, señor hermano?

Lo que quiero decir es realmente muy simple. La programación es una cuestión de desmontaje, pero debemos prestar atención a las técnicas y métodos de desmontaje. No hagas lo que otros han hecho antes, intenta utilizarlo. Si no, hazlo una vez e intenta guardarlo para la próxima vez. Es así de simple.

Entonces, ¿qué tiene esto que ver con el título de este artículo, "Cultivar habilidades internas en programación"?

Por supuesto que sí. ¿Cuál es la fuerza interior de la programación? Mi comprensión es la capacidad de comprender y describir el mundo de manera abstracta. Un trabajo puede extraer rápidamente rutinas que pueden repetirse la próxima vez y pueden describirse mediante ciertas reglas, que son especificaciones del lenguaje informático. Con estas dos habilidades, puede asegurarse de poder escribir un programa si encuentra algún problema.

Así que todos aprendieron muchas matemáticas, lenguajes, algoritmos, estructuras de datos e incluso principios de compilación y sistemas operativos en la escuela. De hecho, estas son herramientas, no el propósito de escribir programas.

Escribir programas significa que cuando encuentras una necesidad, puedes abstraerla rápidamente, comprender sus puntos en común y describirla en un lenguaje claro. Los temas anteriores le ayudarán a mejorar sus habilidades de abstracción o sus habilidades descriptivas. ¿Crees que esto es cierto?

Por eso, cuando enseño a mis aprendices, a veces me gusta decir algo. De hecho, como programador, es bueno aprender un poco de chino, porque de hecho, el chino es la mejor manera de cultivar habilidades descriptivas. El inglés no cuenta. Aunque el inglés también es un idioma, la educación en China es generalmente incomprensible y las habilidades descriptivas en inglés de los estudiantes rara vez se cultivan desde la perspectiva de un escritor inglés. Solo nuestra clase de chino no solo enseña el idioma, sino que también enseña a las personas las habilidades organizativas para describir problemas a través de innumerables oraciones y composiciones. Esta habilidad es muy útil al escribir programas.

En ese momento surgió el tema. El idioma chino primero tuvo Oracle, luego el chino clásico y luego el vernáculo. Descubrimos que no existe tal idioma. En general, se está volviendo cada vez más simple. ¿Por qué? Porque la gente piensa que el chino es algo que la gente puede entender, y las cosas que son demasiado profundas no son aptas para la popularización y no tienen vitalidad. Por el contrario, cuanto más simple es algo, más rápido se vuelve popular.

Tenga en cuenta que al escribir un programa, el desmontaje es para simplificar el problema, no para describir el problema de una manera oscura. Esto se llama habilidad. Los verdaderos programadores son maestros en simplificar problemas.

Por supuesto, de este tema ¿podemos sacar conclusiones? De hecho, el método de programación en sí y el funcionamiento interno de la programación en sí no tienen características de lenguaje, como C, C++, Java, PHP y Python. . .

¿Todos hacen las cosas de la misma manera?

Así que propongo aquí que la habilidad interna de practicar la programación es aprender la capacidad de abstracción y la capacidad de descripción, que no tiene nada que ver con el lenguaje. En otras palabras, a partir de cualquier idioma, puedes practicar tus habilidades internas al extremo. La clave es si usas tu corazón.

Entonces, durante mi período de estudio, mi consejo es: no seas demasiado ambicioso, no evalúes la calidad del lenguaje y la calidad de la plataforma, no tiene mucho sentido, y No estoy seguro de en qué plataforma te desarrollarás eventualmente en esta vida y en este idioma. Tome los libros que tenga a mano y los cursos impartidos por el maestro, sumérjase en el estudio y estudie mucho. Después de salir del armario, cambiar de idioma es más difícil que comer, jaja. Esta es la respuesta oficial a la pregunta de J.J.

Hablemos de Xiaoguo otra vez. Enumeró una pregunta muy sesgada, es decir, hay dos variables a y b, pero no si y? :, cambiar u otras declaraciones de juicio para encontrar el mayor de dos números.

Creo que esta pregunta no es buena, por eso planteo una objeción. La razón principal es que, según la discusión anterior, creo que el criterio para evaluar a un programador debería ser su capacidad para simplificar y describir problemas, en lugar de su capacidad para complicarlos.

Esto es común entre los académicos. No te enojes aquí. Sé que la mayoría de nosotros ahora nos especializamos en informática en la universidad y somos académicos, pero las opiniones del profesor Xiao son diferentes a las de los demás.

En la escuela, la tarea del profesor es enseñar a todos lo máximo posible, porque no sabe qué harás en el futuro y qué conocimientos son inútiles. Por lo tanto, los profesores de la escuela harán todo lo posible para cultivar la capacidad de todos para describir problemas complejos. Esto ha llevado a que los exámenes de la escuela compliquen las preguntas tanto como sea posible y prueben más elementos. El ambiente en la escuela también cree que alguien que resuelve problemas complejos es un maestro, incluso si el problema en sí no es complicado. Cada uno hace complicado evaluar sus propias capacidades.

Pero este no es el caso en el trabajo real. En el trabajo real, lo que todo el mundo valora más es la capacidad de resolver problemas de la forma más sencilla, porque es el coste más bajo y prácticamente todo el mundo gana más dinero. Por lo tanto, el desmantelamiento abstracto y la descripción clara del problema es muy importante.

Muchos estudiantes se sentirán muy incómodos cuando empiecen a trabajar. De hecho, es un cambio en este concepto. En la universidad, la complejidad es hermosa, pero en las empresas, la simplicidad es hermosa. Esto debería suponer un gran cambio de mentalidad, incluso un cambio de visión del mundo, lo cual es muy difícil. En términos generales, los estudiantes que se transfieren rápidamente progresarán más rápido en la empresa, pero también he visto programadores que han trabajado durante décadas y no se han transferido. Generalmente vivir en una empresa resulta un poco agotador.

Te sugiero que pienses en lo que dije hoy, mires el problema y captes la esencia. Siempre que pueda mantenerse al tanto de las ideas de desarrollo de las empresas comerciales y comprender los elementos de la simplicidad, no me atrevo a decir que definitivamente podrá encontrar un trabajo, pero mientras lo encuentre, básicamente podrá integrarse rápidamente a la empresa.