¿Cómo planificar tu vida cuando aprendes a desarrollar software?
2. Aprende de forma inmersiva, redacta un programa o proyecto eficaz, evalúa tus propias capacidades y asegura calidad y cantidad para asegurar el progreso.
3. Establezca su propia dirección de desarrollo y formule planes constructivos. Partir de las necesidades, integrarse y adaptarse a los cambios.
4. Hay una secuencia de aprendizaje y especialización, y debes tener tu propia experiencia técnica.
5. La inteligencia artificial y la tecnología de minería de datos también se convertirán en la competitividad central de los ingenieros de software modernos. Los productos futuros incluirán tres partes: hardware, software e inteligencia.
6. Si domina las tecnologías y principios básicos del desarrollo de software y fortalece la práctica, será fácil aprender nuevas tecnologías y otras habilidades en el futuro.
7. La programación también conlleva el arte de la "combinación". Sólo combinando varias cosas adecuadas podemos desarrollar un software eficaz, utilizando la combinación en lugar de la herencia. Aprenda diferentes estilos de programación (funcional, declarativa, dinámica) y amplíe su pensamiento. Un lenguaje de desarrollo es solo una herramienta. Por lo general, debe elegir una herramienta de lenguaje adecuada (o incluso varias) para completar mejor el trabajo de desarrollo.
8. Divide y conquista, combina y usa, especialízate y rompe." Linus Torvalds, fundador del kernel de Linux: En un proyecto enorme, las personas pueden entender rápidamente módulos que no han sido desarrollados por ellos mismos. Lo exacto significado de funciones en otros módulos para mejorar la eficiencia del desarrollo" - (similar a la programación en pares en desarrollo ágil, para lograr el propósito de comprender todo el proyecto para mejorar la eficiencia del desarrollo). Al mismo tiempo, los programadores no deben obsesionarse con algunas tendencias técnicas de corta duración y descuidar el crecimiento de las relaciones interpersonales y el cultivo de la competitividad central.
9. La computación paralela es mejorar la eficiencia de la computación. Después de años de desarrollo, nuestro país también ha logrado grandes avances en la investigación de algoritmos paralelos. La aplicación de la computación paralela se ha extendido a la previsión meteorológica, la exploración petrolera. Aeroespacial y aeroespacial, utilización de energía nuclear, bioingeniería y otros campos, la investigación teórica y la promoción y aplicación han logrado grandes avances.
10. Al desarrollar el software del sistema, lo más importante es comprender verdaderamente el modo operativo y el proceso del sistema. Esas hermosas tecnologías abstractas y funciones avanzadas son secundarias. Una vez que se involucran los detalles de la programación orientada a objetos, comienzan a surgir muchos problemas. Por ejemplo, quién creará objetos, quién administrará los objetos y quién los eliminará (modelo de objetos: ¿qué hacer? ¿Cuándo hacerlo? ¿A quién hacerlo? ¿Qué métodos deberían incluirse en la interfaz y deberían hacerlo)? ¿Estos métodos pueden ser implementados por la clase base o la clase derivada? ¿Por qué una interfaz debería tener estos métodos y no aquellos? La programación para interfaces hace que los programas sean más versátiles.
11. Participa en el desarrollo de tantos proyectos de código abierto como sea posible y desarrolla algunos productos junto con tus amigos.
12. Utilice varios métodos para realizar pruebas unitarias y detectar errores esta mañana. Impulsar mejoras en el diseño mediante pruebas.
13. Manténgase al día, por ejemplo: absorba la esencia de gestión del marco MFC, orientado a objetos y basado en mensajes, y luego podrá optar por abandonar MFC.
>Defender el espíritu de .net framework y java: ingeniería, conveniente, segura y estable. En el desarrollo de software, no es necesario implementar todas las funciones desde cero, como dice el clásico "no es necesario reinventar la rueda". Deberíamos apoyarnos en los gigantes y aprovechar al máximo los logros de la industrialización del software.
14. De hecho, si estudiamos C/assembly más profundamente, ¡hay esperanza para el software chino! Por ejemplo: sistema operativo, controlador de dispositivo, motor de gráficos de imágenes.
15. Ha llegado la era YB de explosión de datos globales
Jim Held, director del proyecto de investigación de computación a teraescala de Intel, afirmó recientemente que el almacenamiento de datos global actual está creciendo a un ritmo de 60% cada año. Held cree: "La cantidad de datos y su rápido crecimiento han superado nuestras capacidades de procesamiento". Held dijo: "Hemos entrado en la era ZB y pronto entraremos en la era YB". (Nota: 1ZB=1.000.000.000.000 (10 elevado a la 21ª potencia) gigabytes, YB=10 elevado a la 24ª potencia). La creciente confiabilidad de los servicios de Internet, la rápida proliferación de teléfonos inteligentes y la enorme demanda de innumerables empresas han llevado a una explosión de datos en todo el mundo, dijo Hyde.
En el backend, la unificación de plataformas en la nube centradas en Internet es la tendencia general, e incluso integrará otras industrias como la de electrodomésticos, radio y televisión, publicación de medios y comercio electrónico.