2008-09-12 20 views
5

Procedente de un entorno Mac, nunca he pasado demasiado tiempo retocando/ensamblando/retocando mi propia computadora más allá de las actualizaciones ocasionales de la RAM y cambiando los discos duros. Siento que tengo una buena comprensión de cómo funciona una computadora a nivel conceptual, CPU, bus, memoria, etc., pero realmente no tengo mucha experiencia práctica para poner todo junto/desmontarlo.¿Debe un ingeniero de software saber cómo armar su propia computadora?

Mi pregunta es, ¿hay algo que ganar en términos de habilidades de ingeniería de software al aprender a montar mi propia computadora? Si se ha pasado la vida juntando piezas de hardware, ¿cómo ha influido en la forma en que escribe o piensa sobre el software?

Respuesta

9

No se aprende mucho que es útil para un programador al armar una computadora. Saber dónde colocar las tarjetas Pci y cómo conectar un procesador no es realmente útil para nada aparte de construir computadoras.

Creo que necesita un conocimiento de bajo nivel sobre cómo funcionan las computadoras, pero todo lo que es interesante para los programadores ya está soldado en la placa base. Aprenderá mucho más de la programación c o montaje y quizás leyendo el libro de Charles Petzold Código ...

0

Si usa zapatos, probablemente debería saber cómo atar uno. Pero, lo más probable, si eres lo suficientemente inteligente como para usarlos, puedes resolverlo.

Si no, tienes problemas.

2

beneficios son evidentes:

  • puede guardar un par de dólares para buen uso
  • Si pierde su posición de ingeniero de software para colgar al tanto de lo que puede hacer dinero ordenadores montaje.

La última vez que compré una computadora ensamblada descubrí que no había pasta conductora de calor entre la CPU y el radiador.

En cuanto a habilidades de ingeniería de software, no encontré ningún beneficio.

+0

Cierto, suponiendo que no tengo en cuenta mi tiempo que es :) –

2

Eh.

Siento sinceramente que el acto real de ensamblar una computadora realmente no mejora fundamentalmente su comprensión de las computadoras. No estás construyendo estas partes, las estás ensamblando en un caso siguiendo las instrucciones.

Sin embargo, se pueden obtener algunas mejoras al hacer que el sistema operativo funcione correctamente con los componentes y los problemas de depuración relacionados con eso.

Y el punto de Aku acerca de ahorrar dinero es bueno.

0

Bueno, sinceramente, no sabría qué partes elegir para ensamblar una computadora de desarrollo o juegos de primera clase. Sé cómo encaja todo, conozco los cuellos de botella del software, etc.

Lo que hago cuando tengo que ensamblar una PC es encontrar el propósito primero. ¿PC Dev? ¿juego de azar? ¿multimedia? ¿Oficina? Entonces pienso en los requisitos. Obviamente, una simple PC de oficina funciona con mucho menos espacio en disco duro, una GPU integrada, etc. Cuando me di cuenta, busqué en Internet revisiones, sistemas ya compuestos, puntos de referencia de hardware de tom, para tratar de encontrar la mejor combinación dentro de mi presupuesto . Otra cosa a tener en cuenta son los nuevos desarrollos.Si, por ejemplo, Intel está lanzando un nuevo modelo de CPU dentro del mes, esperaría para que los precios de los modelos inferiores caigan. Una vez que tengo la lista de componentes requeridos, o bien voy a mi tienda local de computadoras o encuentro el mejor precio en la red. Prefiero una tienda local, porque eso me ahorra mucho tiempo cuando obtengo un componente muerto o necesito reclamar mi garantía. Por lo general, un poco más caro.

montaje es sobre todo el pensamiento lógico, un poco de paciencia y mantener la concentración;)

5

Cuidado con los programadores que llevan destornilladores. (Leonard Brandwein)

No se aprende nada como programador al ensamblar una PC. Puedo usar un inodoro sin problemas sin instalar un sistema de alcantarillado.

1

No, no necesariamente, pero creo que los programadores deben saber cómo se puede optimizar el código para el hardware en el que se ejecuta.

Los recursos de CPU, memoria, red y disco tienen un gran efecto en el rendimiento. Los programadores deben saber cuándo y cómo usar el almacenamiento en caché para aumentar el rendimiento de la aplicación y también cómo explotar el código para usar grandes recursos cuando estén disponibles.

Siendo un geek, diría que aprenda a montar una computadora para divertirse.

1

Para citar a uno de nuestros padres fundadores (Jeff Atwood):

En mi libro, una de las mejores maneras de entender el hardware es conseguir que sus manos sucias y juntar uno, incluyendo la instalación el sistema operativo, usted mismo. Es una pena que los programadores de Apple no pueden hacer esto ...

Aunque no estoy tan seguro de que usted hace que gran parte de un mejor programador - pero es la herramienta que utilice. Estas máquinas se rompen constantemente o necesitan actualizaciones. Creo que es una buena idea poder hacer esto y construir uno desde cero es LA forma de aprender esto.

0

He construido mi propia computadora, pero no creo que haya agregado mi capacidad para ser un ingeniero de software. Tampoco saber cómo construir uno lo ayudará a ser un mejor ingeniero.

Comprender cómo funciona una computadora y cómo el software interactúa con el hardware es lo que lo convierte en un mejor ingeniero.

El hecho de que pueda poner una CPU multi-core en una placa base no significa que entiendo por qué los procesos paralelos me ayudan, o lo que significa ingresar a una parte crítica de una llamada a función. Y debido a que tiene un caché de 4 MB, eso no significa que entiendo qué es lo que hace el caché y cómo funciona el paginado.

Hay una gran cantidad de personas que pueden construir computadoras, pero hay menos que puedan diseñar software para ellas. Si ese fuera el caso, los ingenieros de software ganarían mucho menos que ellos.

0

Solía ​​construir mis propias computadoras Windows y Linux antes de unirme a Cult of Mac. Aprendí un poco, no creo que me haya hecho un mejor programador.

Sin embargo, no es un conocimiento inútil. Es como un chef que también sabe un poco sobre fontanería.El conocimiento realmente no se aplica a sus tareas principales, pero puede ser útil cuando algo sale mal.

Editar:

Hay una gran diferencia entre la comprensión de los fundamentos de cómo funcionan los ordenadores, y poner uno junto con partes de Newegg. Una comprensión de cómo la CPU, la memoria caché y la función de memoria son invaluables para la programación. Saber cómo actualizar su video es una habilidad útil, pero no ayuda en el desarrollo diario del software.

4

Depende del tipo de alumno que sea. Si tiene una buena imaginación, probablemente pueda aprender todo lo que hay que saber sobre hardware sin tocar nada más que un libro, hay personas que necesitan ver las cosas para mejorar su comprensión.

Dicho esto, puede aprender mucho si aprovecha la oportunidad de construir una nueva computadora como una de aprendizaje, por ejemplo, tómese el tiempo para ver dónde está el southbridge, qué chip es y búsquelo, encuentre dónde está el controlador SATA, qué marca es, y buscarlo, ver sus características, etc., etc. Si solo junta las piezas lo más rápido posible, probablemente aprenda qué hacer en caso de falla y ahorre unos pocos dólares, nada más.

Además, construir cosas aumenta la curiosidad sobre ellos, lo que no puede ser malo.

0

Si todo en la serie "Escribir un gran código" tiene sentido, entonces diría que no, que no hay mucho más de lo que realmente se construye un sistema para su trabajo. Ahora trabajar como técnico y tener que diagnosticar problemas, hardware y software, aumenta su capacidad para abordar problemas y ayudaría. El problema es que no es algo que puedas aprender juntando un par de computadoras por diversión. Usted termina perdiéndose todas las pequeñas cosas raras que hacen varios fabricantes, y si puede aplicarlo, puede ayudar a ampliar su imagen general de opciones de diseño buenas y malas.

0

Tiendo a pensar que cada vez que aprendes algo y ampliar tus conocimientos y horizontes, es algo bueno, así que voy a decir 'sí'.

0

Sí, pero no en el sentido que estás pensando. Creo que es increíblemente valioso aprender sobre el diseño básico de microprocesadores, la arquitectura de memoria, etc. Incluso mejor si puede obtener un kit de proyecto para hacer algo básico con un PIC o sello. Saca las abstracciones del camino y aprende un poco a nivel de bits. También se recomienda una revisión de los libros relevantes de Patterson y Hennessy.

Construir una PC a partir de componentes es un buen ejercicio de una sola vez, solo para comprender los problemas de compatibilidad de las distintas partes.

3

Construir sus propias computadoras lo convierte en un mejor generalista, no en un mejor especialista. Si considera la programación como la aplicación especializada de código en un editor que se convierte en aplicaciones, entonces construir sus propios sistemas no ayuda en nada a esa práctica.

Sin embargo, si necesita poner un servidor en un colo, administrarlo, averiguar cuándo se bloquea si es su aplicación o un mal disco o un mal ventilador que se fue al sur, entonces yah, sabiendo lo que son todas las piezas , entendiendo lo que hacen, cuáles compraste y por qué, si el hardware o el software es probable que sea el problema, entonces construir una computadora es el primer paso mínimo en ese camino. Si no eres responsable de la ejecución real y la utilidad de tu código, entonces es una pérdida de tiempo.

Un ser humano debería ser capaz de cambiar un pañal, planear una invasión, descuartizar un cerdo , conn un barco, diseñar un edificio, escribir un soneto, cuentas de balance, construir un muro, establece una hueso, la comodidad morir, tomar pedidos, dar órdenes, cooperar, actuar solo, resolver ecuaciones, analizar un nuevo problema, el estiércol de paso, programa de un ordenador, cocinar una comida sabrosa, lucha eficiente, mueren con galantería. Especialización es para insectos.

0

Como programador que ha construido ordenadores desde hace años, yo diría que no me ha dado una influencia considerable sobre la calidad o la estructura de mi código, pero ha me ha dado una buena base de cómo el la calidad de su hardware afecta la experiencia del usuario final al ejecutar el código.

Además, y creo que tal vez este sea el mayor beneficio: construir su propia PC le da suficiente conocimiento para decir si un sistema de desarrollo que le han dado como empleado es o no es bueno. Brindar una opinión informada a una persona de TI/administración acerca de por qué el sistema que han proporcionado es inferior puede ser la clave para obtener una actualización.

0

Todo lo que se relacione con la tecnología con la que trabaja directamente lo ayudará a mejorar en todas las tareas relacionadas con esa tecnología.

Conocer el hardware de la computadora lo convertirá en un mejor programador. Puede que no lo haga directamente, pero habrá instancias en las que te beneficiará.

Realmente depende de lo que quiere que sean sus habilidades. Sería una pérdida de tiempo jugar con el hardware si desea especializarse en matemáticas complejas o tipos específicos de software (A.I., por ejemplo).

Sin embargo, si desea hacer cosas como construir robots con mentes propias, necesitará saber tanto software como hardware. Si desea desarrollar juegos, especialmente como indie o incluso solo, se le pedirá que emule múltiples trabajos y especialidades. Qué pesadilla sería si un desarrollador independiente no entendiera cómo el hardware diferencia entre los sistemas.

IMO, no puede considerarse un verdadero nerd a menos que sepa cómo hacer tanto el software como el hardware. Cuando me encuentro con programadores que no saben cómo instalar una tarjeta gráfica, tengo conflictos sobre si debo reír o llorar.

Por supuesto, no todo el mundo es lo suficientemente inteligente o entusiasta acerca de la tecnología como para interesarse en ella hasta el punto de querer saber cómo se crea el hardware, mucho menos ensamblado y luego programado. A medida que fui creciendo, aprendí a reír menos a los demás, y en su lugar entiendo que es posible que no tengan la necesidad de aprender sobre hardware mientras se concentran en el software. Ciertamente no es un requisito.

Cuestiones relacionadas