Red de conocimiento informático - Espacio del host - ¿Qué cualidades necesitas para ser programador desarrollador?

¿Qué cualidades necesitas para ser programador desarrollador?

No nací programador, ni nací para que me gustaran las computadoras. Cuando estaba en la escuela secundaria, nunca pensé que me convertiría en programador en el futuro. Mi exposición a las computadoras fue puramente accidental. Un buen amigo de mi infancia eligió ser programador cuando estaba en la universidad. Me especialicé en informática. Para poder tener más "el mismo lenguaje" con este amigo, elegí el departamento de informática. En la universidad, vislumbré el mundo de la informática y me sentí "febril" al respecto; después de graduarme, comencé una carrera como programador.

Han pasado casi diez años desde que comencé a escribir programas y he escrito muchos programas. Después de pasar por los altibajos de estos años, no puedo evitar tener algo de experiencia. Hablando de experiencias, la experiencia más grande es que este camino es demasiado largo.

1. ¿Contigo en mi vida? Estoy dispuesto a sufrir un poco.

No espero que todos comparen los programas de escritura con la creación literaria, pero el dolor que implican no es algo que un usuario normal puede entender. Pasamos demasiadas noches sin dormir intentando escribir un buen programa. Un amigo comentó: "Escribir programas es simplemente un suicidio. Es un enorme desperdicio de energía, un desperdicio de cerebro y mucha fatiga". Pero todavía hay muchas personas que no temen las dificultades y continúan trabajando duro.

Cuando entré en contacto por primera vez con las computadoras, descubrí la belleza de las computadoras: las computadoras son mucho menos complicadas que los humanos. Si escribes bien programas, puedes tener una relación muy armoniosa con la computadora y contigo. Puede ordenarle a la computadora que haga las cosas que quiera hacer, en este momento, usted está completamente a cargo. Cada vez que te sientas frente a la computadora, sientes que estás patrullando en un reino.

El mundo de la computadora es muy grande y los programadores viven en el reino de su propia imaginación. Puede acceder a cada byte y cada bit de la computadora.

Un día así es simplemente un día celestial, y mucha gente se enamora de ese día.

Mucha gente piensa que los programadores pueden dejar de trabajar hasta los treinta y cinco años como máximo, y que ya casi es hora de descansar el cerebro. También piensan que escribir programas es un asunto de jóvenes. A cierta edad, probablemente no haya mucha gente que vuelva a ser programador.

Cuando me gradué por primera vez, estaba muy animado y quería soportar algunas dificultades primero. Dejé de trabajar cuando tenía treinta años. A medida que crecí me di cuenta de mi ignorancia. Una persona tiene veintiún o doce años cuando se gradúa de la universidad, y puede tener veinticinco cuando sus habilidades maduran. Luego hay muchas cosas infinitas, como el dinero, la esposa y la casa. Tal vez tenga treinta y cinco años cuando todo esté arreglado. Si nos rendimos a la edad de treinta y cinco años, no tendremos que elegir el camino de los programadores.

Los ordenadores llevan mucho tiempo en nuestro país, pero su uso real a gran escala no fue hasta 1985 cuando los PC desembarcaron en nuestro país. Por lo tanto, las personas que realmente escriben programas de computadora en China solo llevan más de diez años escribiendo como máximo (no sé si todavía existen personas así). Debido al tiempo relativamente corto de las aplicaciones informáticas en China, la fuerza principal del desarrollo de programas nacionales son principalmente jóvenes menores de 35 años, pero esto no significa que los programadores envejezcan fácilmente como chicas guapas. Los desarrolladores en Estados Unidos y Taiwán son principalmente personas de entre treinta y cuarenta años. Cuando empezamos a escribir programas, sentimos que no había nada que no pudiéramos hacer (aún se puede escuchar esa retórica), y lo que es más terrible es que parecíamos ser particularmente inteligentes y adecuados para desarrollar software, mucho mejor que los extranjeros. Cuando realmente entramos en contacto con esos destacados desarrolladores extranjeros, descubrimos que eran increíbles. Todos tenían más de diez años de experiencia en desarrollo. La gran mayoría de los productos fueron producidos por estos programadores con una rica experiencia en desarrollo.

Después de graduarme, la programación no es solo un hobby, sino también un trabajo para toda la vida. Definitivamente puedo hacerlo por el resto de mi vida, aunque no tengo intención de hacer solo esto por el resto de mi vida. mi vida. Pasarse toda la vida programando es fácil y difícil. Si no estás haciendo nada, simplemente escribe algunos programas de fertilización cruzada. Hay personas que han estado haciendo esto durante dos vidas. Pero si quieres dedicarte a escribir programas, no será fácil escribir durante diez años. Ahora muchos de mis amigos se han lavado las manos. A veces yo también tengo esta idea, pero una vez que me enfrento a la computadora, inmediatamente me doy cuenta: la computadora sigue siendo lo que mejor se me da y lo que me resulta más cómodo.

2. Mi futuro no es un sueño

Algunas personas estudian tecnología de programación con diligencia, se esfuerzan por mejorar su nivel de programación y consideran a los programadores senior como su objetivo, o incluso su objetivo de por vida. . Más tarde, después de participar en el desarrollo de software comercial real, me sentí muy confundido y perdido.

Cuando estaba en la universidad, ser programador senior también era mi objetivo. En ese momento, obtuve el certificado de programador senior a través del examen de grado e imprimí las palabras "programador senior" en mi tarjeta de presentación. Más tarde, mi nivel mejoró y parecía que todos me reconocían como un buen programador. En ese momento comencé a sentirme confundido.

Espero que mis habilidades puedan ser reconocidas por los demás, pero ¿qué puedo hacer si las demás las reconocen? Más tarde descubrí que no importa qué tan avanzado seas como programador, la clave es si puedes generar ideas y productos, si tu trabajo puede ser reconocido por la sociedad y si puedes crear riqueza para la sociedad.

Mi futuro es claro, desarrollar productos de alta calidad, socialmente aplicables y crear riqueza para la sociedad.

3. Cada programa es una obra de arte

Algunas personas piensan que los programadores no son nada especial y son solo un trabajo especializado. Otros consideran la programación como una creación artística y la alaban. Las dos opiniones son muy controvertidas e incluso se puede decir que son ojo por ojo.

Vayamos a otro tipo de trabajo. El cantero debería ser un oficio especializado y parece no tener nada que ver con el arte. ; pero son estos masones quienes nos han dejado innumerables reliquias culturales, como el Buda Gigante de Leshan, las Grutas de Mogao, etc. Hay que decir que estos masones nos han dejado una riqueza cultural infinita. Creo que el trabajo de la programación es similar al de la albañilería. Es a la vez tecnología y arte.

La industria del software moderna ha alcanzado una escala considerable y la finalización de muchos programas requiere operaciones a gran escala. Cuando un programador competente acepta la tarea de escribir un determinado bloque, a menudo simplemente escribe código con poco margen de mejora. En proyectos grandes, muchos programadores solo pueden comprender detalles muy locales relacionados con los módulos que programan. Además, también están restringidos por el entorno de desarrollo. Más a menudo, es difícil darse cuenta de que están involucrados en una creación "artística". Se siente como si estuviera haciendo un trabajo físico pesado. A veces me preocupa si el proyecto en el que participo tiene sentido, si es competitivo entre productos similares y si quedará obsoleto debido al desarrollo de hardware y la sustitución de sistemas operativos una vez desarrollado. . . . . .

La programación es una actividad técnica. Sólo cuando se puede realizar a gran escala podremos tener la teoría de la ingeniería del software. Precisamente porque la programación tiene las características de la creación artística, tenemos tantos buenos productos de software en nuestras vidas. Escribir un programa requiere esfuerzo físico y mental. Cuando yo, nosotros, un grupo completamos un programa, a nuestros ojos, cada programa es una obra de arte.

Cualidades que deben poseer los programadores

Prólogo

Programador es un trabajo técnico que juega un papel muy importante en el desarrollo de TI, empezando por el hardware subyacente. Desde el establecimiento de protocolos de comunicación hasta el procesamiento de la capa de transmisión de datos, la construcción del sistema operativo, la construcción de la plataforma de base de datos y la construcción de diversas plataformas de marketing de datos en la capa de aplicación, los programadores desempeñan un papel fundamental en ello. hizo una gran contribución al desarrollo de la industria de TI.

Hay muchas personas en China que dominan la codificación. Sin embargo, existen muchos malentendidos en la industria del software de China, especialmente en el desarrollo de aplicaciones de red y es difícil formar fuerzas de desarrollo de software y capacidades de productos a gran escala. No sólo está muy por detrás de Estados Unidos, en comparación con la India, sino que también es bastante inferior. Estos problemas no residen en el coeficiente intelectual y el arduo trabajo de los programadores chinos, ni en el nivel de inversión del Estado y el sector privado en el desarrollo. Más bien, en gran medida, existen algunos malentendidos sobre la tecnología, el desarrollo de programas y los proyectos. diseño Estos malentendidos han llevado a la capacidad de producción insuficiente de la industria del software y a la falta de capacidades de desarrollo de sistemas de reutilización a gran escala. Se puede decir que cambiar los malentendidos es resolver los problemas causados ​​por el modelo de taller pequeño y el modelo de héroe individual. en la industria del software. ¿Cuáles son las limitaciones de este importante trabajo?

Hay muchos niños en China, tienen 18,9 o 21,2 años y han escrito mucho código a través del autoestudio. Algunos de sus códigos están muy bien escritos y algunos de los detalles técnicos. Son bastante sobresalientes y muy interesantes. Tienen espíritu de investigación, pero están influenciados por algunos conocimientos y opiniones equivocados, y carecen de una comprensión general del sistema y del programa. Estas personas, dijo muy bien un amigo en línea, en realidad lo son. solo algunos fanáticos de la codificación, y no están calificados en absoluto. Se les llama programadores, pero hasta donde yo sé, muchos CTO de pequeñas empresas de Internet son fanáticos de la codificación, ganan salarios aterradores y trabajan en proyectos aterradores, y el fin del mundo. Los proyectos suelen dar miedo.

1. Cualidades básicas de los programadores

Ser un programador verdaderamente calificado, o un programador que realmente pueda estar calificado para completar algún trabajo de código, debe poseer las cualidades.

1: Espíritu de equipo y capacidad de colaboración

Considerar esto como una cualidad básica no deja de ser importante, al contrario, es lo más básico e importante que deben tener los programadores. base para establecerse y establecer una vida.

Aquellos que describen a los programadores de alto nivel como llaneros solitarios están diciendo tonterías. El poder de cualquier individuo es limitado. Incluso un genio como Linus necesita formar un equipo fuerte para crear milagros. Es inimaginable que los maestros de escritura de Linux no tengan el espíritu de colaboración. Los Llaneros Solitarios pueden ganar un poco de software para ganar dinero y hacer una pequeña fortuna, pero una vez que ingresan a los equipos de I + D de algunos sistemas grandes y entran en tareas de comercialización y desarrollo de productos, las personas que carecen de esta cualidad quedan completamente descalificadas.

2: Hábitos de documentación

Cualquiera que diga que los programadores de alto nivel nunca escriben documentos es definitivamente un niño ingenuo. La buena documentación es un vínculo muy importante en el proceso formal de investigación y desarrollo. Como código Es normal que los programadores dediquen el 30% de su tiempo de trabajo a escribir documentos técnicos, pero como programadores senior y analistas de sistemas, esta proporción es mucho mayor.

Sin documentación, un sistema de software carece de vitalidad y encontrará grandes problemas en futuras soluciones de problemas, actualizaciones y reutilización de módulos.

3: Hábitos de escritura de código estandarizados y estandarizados

Según las reglas de algunas empresas de software extranjeras conocidas, la denominación variable del código, el formato de comentarios dentro del código e incluso la sangría de líneas anidadas La longitud y el número de líneas en blanco entre funciones están claramente definidos. Los buenos hábitos de escritura no solo ayudan con el trasplante de código y la corrección de errores, sino que también facilitan la colaboración entre diferentes personal técnicos.

Algunos fanáticos de la codificación claman que el código escrito por programadores de alto nivel nunca es entendido por otros. Este clamor solo prueba que ellos mismos no están calificados para llamarse a sí mismos programadores. El código tiene buena legibilidad, lo cual es un requisito de calidad básico para los programadores.

Observando toda la construcción de Linux, sin hábitos de codificación estandarizados y estandarizados, la colaboración global en I+D es absolutamente inimaginable.

4: Capacidad de comprensión de requisitos

Los programadores necesitan comprender los requisitos de un módulo. Muchos niños tienden a centrarse solo en un requisito funcional cuando escriben programas. El sistema operativo y el entorno de desarrollo ignoran las consideraciones de rendimiento del propio código. Alguien dijo una vez que escribir un programa de intercambio de publicidad es muy simple. para lograr indicadores de rendimiento? Para dicho programador, si le da el sistema de DeepBlue, no podrá lograr las capacidades de acceso concurrente de Taiji Chain. Entre los indicadores de requisitos de rendimiento, son importantes la estabilidad, las capacidades de soporte de acceso y la seguridad. Como programador, debe evaluar el entorno en el que funcionará el módulo durante el funcionamiento del sistema, la presión de carga a la que estará sujeto y varios peligros potenciales. . Posibilidad de ataques maliciosos. En este sentido, un programador maduro necesita al menos de 2 a 3 años de experiencia en desarrollo y seguimiento de proyectos antes de poder tener experiencia.

5: Reutilizabilidad, capacidad de pensamiento modular

A menudo se escucha que algunos programadores tienen este tipo de quejas. Después de escribir programas durante varios años, se han convertido en trabajadores calificados y trabajan duro todos los días. Es escribir repetidamente algunos códigos que no tienen ideas nuevas. Este es en realidad el mayor desperdicio de talentos de software chinos. Algunas tareas repetitivas se han convertido en el trabajo principal de los programadores expertos y, en realidad, son completamente evitables.

El diseño de reutilización y el pensamiento modular requieren que los programadores piensen más al completar cualquier módulo funcional o función, y no se limiten a ideas simples para completar la tarea actual. Piense en ver si el módulo puede existir sin este sistema. ¿Se puede hacer referencia directamente a otros sistemas y entornos de aplicaciones simplemente modificando los parámetros? Esto puede evitar en gran medida el trabajo de desarrollo repetitivo. Si una unidad de investigación y desarrollo de software y un grupo de trabajo pueden considerar estos problemas en cada proceso de desarrollo, los programadores no desperdiciarán demasiado. mucho tiempo en trabajos repetitivos y tendra mas tiempo y energia para invertir en trabajos de codigo innovadores.

Algunos buenos códigos de módulos de programa, incluso si fueron escritos en la década de 1970, serían muy adecuados si se incluyeran en algunos sistemas como módulos funcionales, pero lo que veo ahora es que muchos pequeños Tan pronto como el. El software de la empresa se actualiza o mejora, a menudo se reescribe todo el código y la mayor parte del trabajo repetitivo es una pérdida de tiempo y energía.

6: Hábitos de prueba

En cuanto al desarrollo comercial y formal, los ingenieros de pruebas a tiempo completo son indispensables, pero eso no significa que haya ingenieros de pruebas a tiempo completo. no es necesario realizar autopruebas; el desarrollo de software como proyecto, una característica muy importante es que cuanto antes se descubra el problema, menor será el costo de resolverlo para los programadores en cada fragmento de código y cada submódulo. Después de pruebas cuidadosas, puede intentar descubrir y resolver algunos problemas potenciales lo antes posible, para tener la mayor garantía de eficiencia y confiabilidad de la construcción general del sistema.

El trabajo de prueba en realidad necesita considerar dos aspectos. Por un lado, es la prueba de llamadas normales, es decir, ver si el programa puede completar funciones básicas en llamadas normales. Desafortunadamente, en muchos casos esta se ha convertido en la única tarea de prueba de la empresa, pero en realidad está lejos de serlo. El segundo aspecto es la prueba de llamadas anormales, como las pruebas de estabilidad bajo cargas de alta presión y las pruebas bajo posibles entradas anormales del usuario. Pruebas generales del impacto del módulo en caso de falla parcial del sistema, pruebas de estabilidad del módulo cuando solicitudes anormales frecuentes bloquean recursos, etc. Por supuesto, los programadores no necesitan realizar pruebas tan completas en cada parte de su código, pero los programadores deben comprender claramente el estado de sus tareas de código en el proyecto general y los diversos requisitos de rendimiento, y realizar pruebas relevantes de manera específica. y encontrar y resolver problemas lo antes posible. Por supuesto, esto requiere las habilidades de comprensión de los requisitos mencionados anteriormente.

7: La capacidad de aprender y resumir

Los programadores son una profesión donde los talentos pueden eliminarse fácilmente y quedarse atrás, porque una tecnología puede ser líder solo en tres o dos años. Si los programadores quieren establecerse y ganarse la vida, deben mantenerse constantemente al día con las nuevas tecnologías y aprender nuevas habilidades.

Ser bueno aprendiendo es una motivación necesaria para progresar en cualquier profesión. Para los programadores, ¿este requisito es aún mayor?

Pero también es necesario encontrar el objetivo adecuado para aprender. Algunos pequeños fanáticos de la codificación también hablan de su capacidad de aprendizaje. En un momento aprendieron asp, en otro momento aprendieron php y ahora aprendieron jsp. use esto como capital para presumir, persiguiendo ciegamente algunas cosas y sustantivos superficiales, y no comprenda los protocolos de transmisión de comunicación al crear programas de red, y no comprenda el procesamiento de vectores de interrupción al crear aplicaciones, no importa cuánto personal técnico haya dominado. El llamado nuevo lenguaje nunca mejorará cualitativamente.

Ser bueno resumiendo también es una manifestación de la capacidad de aprendizaje. Cada vez que completa una tarea de investigación y desarrollo o un fragmento de código, debe realizar un seguimiento intencionado del estado de la solicitud y los comentarios de los usuarios del programa, resumir en. en cualquier momento, y encuéntrate a ti mismo. Solo mejorando gradualmente las deficiencias de esta manera un programador puede crecer.

Incluso si un programador que no tiene potencial de crecimiento parece ser un maestro en este momento, se recomienda no elegirlo, porque pronto llegará el momento en que se quedará atrás.

Se debe decir que las personas que tienen todas las cualidades anteriores son programadores calificados. Tenga en cuenta que las cualidades anteriores no están determinadas por el coeficiente intelectual ni se pueden aprender en algunos libros de texto universitarios. la comprensión del programador de su propio trabajo, que es una cuestión de conciencia.

2. Cualidades que los programadores/diseñadores de proyectos senior también deben poseer

Como programador senior, o incluso como analista de sistemas, es decir, para el diseñador de un proyecto de programa en otros. En otras palabras, además de todas las cualidades mencionadas anteriormente, también debe poseer las siguientes cualidades:

Primero, capacidad de análisis de requisitos

Para los programadores, comprender los requisitos puede completar tareas calificadas. Code, pero las organizaciones y los gestores de proyectos de I+D no sólo tienen que comprender las necesidades de los clientes, sino que, más a menudo, también tienen que formular algunas de sus propias necesidades.

Por lo general, a la hora de realizar tareas de I+D, puede ser una demanda planteada por los clientes, o una demanda planteada por el departamento de marketing y marketing. En este momento, para el departamento de I+D, lo que ven es. no es una demanda completa, pero generalmente En otras palabras, los requisitos son solo algunos requisitos funcionales, o más formalmente, es posible obtener una vista completa del usuario, pero esto no es suficiente, porque los clientes pueden tener dificultades para hacer una vista completa y clara; propuesta debido a factores más no técnicos o requisitos de desempeño profesional, pero para los organizadores y planificadores de proyectos, deben poder comprender claramente la existencia de estos requisitos y presentarlos de manera adecuada al completar el informe de análisis de requisitos, y al mismo tiempo. , deben reflejarse completa y claramente en Diseñar la especificación para que los programadores no pierdan de vista estas pautas al codificar.

Los programadores deben comprender correctamente el entorno en el que se encuentran las necesidades del usuario y realizar un análisis específico de las necesidades. Por ejemplo, si el mismo software se lanza mediante alquiler y licencia de ASP, el rendimiento será diferente. Las necesidades pueden ser diferentes. El primero enfatiza mejores capacidades de soporte y estabilidad, mientras que el segundo puede enfatizar la universalidad en varias plataformas y la simplicidad de instalación y uso.

En segundo lugar, los métodos de diseño de proyectos y las capacidades de procesamiento de procesos

Los programadores deben poder dominar no menos de dos o tres métodos de diseño de proyectos (como métodos de diseño de arriba hacia abajo, como métodos rápidos). método de creación de prototipos, etc.) y ser capaz de seleccionar métodos de diseño apropiados para el diseño general del proyecto en función de los requisitos del proyecto y la asignación de recursos.

La selección inadecuada de métodos de diseño retrasará el ciclo de I+D, desperdiciará recursos de I+D e incluso afectará los resultados de I+D.

Un programador también necesita dedicar mucho tiempo al diseño y procesamiento de diagramas de flujo. Necesita hacer diagramas de flujo de datos para establecer un diccionario de datos. Necesita procesar diagramas de flujo lógicos para formar un conjunto. proceso del sistema.

Un sistema con problemas de proceso no se convertirá en un buen sistema por muy bonito que sea el código y lo exquisito que sea cada módulo. ?Por supuesto, hacer un buen trabajo en el análisis de procesos y elegir un buen método de diseño de proyectos requiere una comprensión suficiente de las capacidades de análisis de la demanda.

En tercer lugar, el diseño de reutilización y las capacidades de descomposición modular.

Esto parece ser una vieja canción otra vez, ¿no se ha explicado este problema en términos de cualidades básicas?

Como programador que participa en tareas de módulos, debe considerar la reutilización de los módulos funcionales específicos que enfrenta. Como analista de sistemas, los problemas que debe enfrentar son mucho más complejos. descomponer el sistema general en muchos módulos funcionales y funciones reutilizables de acuerdo con una capacidad de análisis modular, y formar un requisito de diseño independiente para cada módulo. Por ejemplo, tomemos la producción de automóviles. Al principio, cada automóvil se instalaba de forma independiente y cada componente se hacía a medida, pero luego, con la llegada de la producción en masa mecanizada, una fábrica de automóviles comenzó a producir automóviles. Los componentes independientes comenzaron a tener un cierto grado de reutilización. Posteriormente, la estandarización se convirtió en una tendencia importante. Los componentes de automóviles de diferentes modelos, marcas e incluso diferentes fabricantes también pueden reemplazarse y actualizarse fácilmente. En este momento, la eficiencia de la producción de automóviles alcanza su máximo. cambiar. Lo mismo ocurre con la ingeniería de software en una industria de software madura, en algunos proyectos y sistemas relacionados, se pueden reemplazar diferentes componentes a voluntad, por ejemplo, en muchos software de escritorio de Microsoft, en muchos módulos de operación (como abrir archivos, guardar). archivos, etc.) son el mismo conjunto de módulos funcionales reutilizados, y estas interfaces se proporcionan a los desarrolladores de aplicaciones de escritorio a través de algunas bibliotecas de clases para una conexión conveniente. Esta es una evidencia obvia del diseño de módulos reutilizables.

Descomponer un sistema de aplicación grande e intrincado en una serie de combinaciones de módulos relativamente independientes y altamente reutilizables que pueden completar la conexión de datos basándose solo en unos pocos parámetros es un programa de alto nivel como uno de los más importantes. Las tareas de ingenieros y analistas de sistemas, métodos adecuados de diseño de proyectos y diagramas de flujo claros son garantías importantes para lograr este objetivo.

Cuarto, capacidad general de evaluación del proyecto

Como diseñador de sistemas, debe poder partir de la situación general y tener una comprensión clara del proyecto en su conjunto, por ejemplo, si la asignación de recursos de la empresa es razonable y está vigente, por ejemplo, si el cronograma del proyecto puede maximizar la eficiencia sin dejar de completar el proyecto a tiempo. Evaluar la carga de trabajo de todo el proyecto y de cada módulo, evaluar los recursos necesarios para el proyecto y evaluar las dificultades que puede encontrar el proyecto requieren una gran acumulación de experiencia. En otras palabras, este es un estado que solo se puede lograr. mediante resumen continuo. En Occidente, algunos líderes en diseño de sistemas de software son muy mayores, como 4, 50 o incluso más. Son mucho menos activos en la codificación que los jóvenes, pero en términos de evaluación de proyectos, tienen la mayor acumulación de décadas. riqueza importante y valiosa. China carece de esa generación de programadores. La razón principal no es que falten programadores de esa época, sino que los programadores de esa época son básicamente producidos por unidades de investigación y no por el desarrollo de software de productos profesionales. acumulan ese tipo de experiencia en I+D de productos y no hay nada que puedan hacer al respecto.

En quinto lugar, capacidades de gestión y organización del equipo

Completar un proyecto requiere los esfuerzos concertados del equipo. Como diseñador de proyectos o gerente de I+D, usted debe poder maximizar sus capacidades. Para aprovechar al máximo la fortaleza general del equipo, la gestión técnica se diferencia de la gestión general de personal por su carácter profesional, porque en ella se diseñan algunos indicadores y factores técnicos.

La primera es la cuantificación del trabajo. Sin cuantificación, es difícil realizar evaluaciones de desempeño adecuadas, y la cuantificación del programa no es simplemente una cuestión de calcular el número de líneas de código, por lo que se requieren gerentes técnicos. para poder evaluar verdaderamente la complejidad y el esfuerzo de un Módulo.

El segundo es el ajuste del modelo de colaboración en equipo. En términos generales, la colaboración en el desarrollo de programas generalmente se divide en grupos. Los grupos tienen el método de programador dominante y el método democrático. La brecha en el nivel de capacidad, así como las necesidades de investigación y desarrollo del proyecto, eligen el método de formación de equipo adecuado y combinan estrechamente las responsabilidades y tareas de los miembros, para maximizar la eficiencia de la formación del equipo.

Es posible que una persona con altas habilidades de codificación no pueda convertirse en un gerente de I+D de proyectos calificado. La falta de habilidad en esta área a menudo se pasa por alto.

En resumen, se puede ver que como responsable de I + D y diseñador de proyectos, las cualidades y habilidades requeridas no son la capacidad de escribir códigos de programas, por supuesto, en general, un programador. ha logrado esta cualidad a través de la mejora continua, su capacidad de escritura de código ya es bastante extraordinaria, pero preste atención a la relación causa-efecto aquí. Un diseñador de proyectos de alto nivel generalmente ya es muy bueno en la escritura de código. Significa que un programador con un código excelente puede estar calificado para el trabajo de diseño de proyectos. El problema aquí no es un problema de coeficiente intelectual y libros de texto, sino un problema de que un programador acumule experiencia y mejore gradualmente. , No pensamos conscientemente en la organización y el diseño de reutilización del proyecto, y no tenemos documentación regular ni hábitos de resumen. Si no los cambiamos, nuestros diseñadores de proyectos calificados seguirán siendo muy deficientes.

Además, para evitar que la gente aburrida se lo tome en serio, me gustaría agregar que el objetivo de este artículo es realizar proyectos de software comercial e ingeniería de expertos en programación de instituciones de investigación científica. como los expertos en algoritmos, como los expertos en procesamiento de imágenes, su trabajo es investigar temas en lugar de completar directamente software comercial (por supuesto, eventualmente se convertirá indirectamente en productos comerciales, como los temas de investigación que realiza Microsoft Research), por lo que la calidad enfatizar puede ser otra cosa. No se puede decir que estas personas (expertos) sean programadores y no se pueden medir según los estándares de programadores.

3. Proceso de diseño para el desarrollo de proyectos de software

Finalmente, me gustaría agregar algo. ¿Cuál es el proceso de diseño para el desarrollo de proyectos de software? Tomemos como ejemplo el método de diseño estándar habitual (pero me gusta el método de creación rápida de prototipos).

El primer paso es la investigación de mercado

La tecnología y el mercado deben combinarse para obtener el mayor valor.

El segundo paso es el análisis de la demanda.

Esta etapa requiere tres cosas, vista del usuario, diccionario de datos y manual de operación del usuario.

La vista de usuario es el estilo de página que pueden ver los usuarios del software (incluidos los usuarios finales y los usuarios administrativos), que contiene muchos procesos y condiciones operativas.

El diccionario de datos es algo que especifica la relación lógica de los datos y los organiza. Después de completar el diccionario de datos, se completa más de la mitad del diseño de la base de datos.

El manual de operación del usuario es un manual de instrucciones que especifica los procedimientos de operación.

Tenga en cuenta que el proceso de operación del usuario y la vista del usuario están determinados por los requisitos, por lo que deben completarse antes del diseño del software. Completarlos proporciona restricciones y pautas para el desarrollo del programa. Desafortunadamente, muchas empresas no lo hacen. Cuando se hace, la causa y el efecto se invierten y el orden no se distingue. Esto a menudo crea una desconexión entre el trabajo de desarrollo y las necesidades reales.

Análisis de requisitos, además del trabajo anterior, el autor cree que, como diseñador de proyectos, se debe hacer una declaración completa de requisitos de desempeño para el proyecto, porque a menudo los requisitos de desempeño solo pueden ser entendidos por personas que entienden tecnología, que requiere expertos técnicos ser capaces de tener una comunicación real y comprensión con el lado de la demanda (clientes o departamento de marketing de la empresa)

El cuarto paso es el diseño detallado

Este es un paso importante. nivel que pone a prueba el pensamiento de diseño de los expertos técnicos La especificación de diseño detallada debe proporcionar módulos específicos al codificador de la manera más limpia (estructura de caja negra) para maximizar la modularidad general del sistema. Una buena especificación de diseño detallada puede reducir la complejidad de la codificación. De hecho, como mínimo, estrictamente hablando, la especificación de diseño debe proporcionar la definición de cada parámetro de cada función en detalle, desde el análisis de requisitos hasta el diseño del esquema y la finalización de la especificación de diseño detallada, un proyecto de software debe decir que está a medio hacer. . En otras palabras, cuando un sistema de software grande está a mitad de camino, todavía no se ha iniciado una línea de código.

Aquellos que simplemente entienden a los programadores de software como escritores de códigos han cometido un error fundamental.

El quinto paso es la codificación

En un proceso de I+D estandarizado, el trabajo de codificación no excederá la mitad de todo el proceso del proyecto, normalmente 1/3 del tiempo. Como dice el refrán Si el proceso de diseño se completa bien, la eficiencia de la codificación mejorará enormemente. La coordinación del progreso y la colaboración entre diferentes módulos durante la codificación son las más cuidadosas. Quizás el problema de un módulo pequeño puede haber afectado el progreso general, lo que obligó a muchos. Los programadores dejan de trabajar y esperan. Este problema ha ocurrido en muchos procesos de investigación y desarrollo. La comunicación mutua y las soluciones de emergencia al codificar son muy importantes. Para los programadores, siempre habrá errores y siempre debes enfrentar este problema. ¿El famoso Microsoft no ha publicado un parche durante tres meses consecutivos? ¡Nunca!

El sexto paso es la prueba

Hay muchos tipos de pruebas:

Según el método de ejecución de la prueba, se puede dividir en pruebas internas y pruebas externas.

Según el alcance de la prueba, se puede dividir en prueba de módulo y depuración conjunta general.

Según las condiciones de la prueba, se puede dividir en prueba de funcionamiento normal y prueba de condición anormal

Según el rango de entrada de la prueba, se puede dividir en pruebas de cobertura total y pruebas de muestreo

Lo anterior es fácil de entender y no se explicará nuevamente.

En resumen, las pruebas también son un paso muy importante en el desarrollo de un proyecto. Para un software grande, las pruebas externas de 3 meses a 1 año son normales, porque siempre habrá problemas impredecibles.

Después de completar la prueba, completar la aceptación y completar algunos documentos de ayuda finales, el proyecto general llega a su fin. Por supuesto, habrá actualizaciones, reparaciones, etc. en el futuro. No estamos tratando de engañar al dinero mediante transacciones únicas. Es necesario realizar un seguimiento constante del estado de funcionamiento del software y continuar parcheándolo y actualizándolo hasta que el software se elimine por completo.