Acabo de aprobar mi clase 12 y me he unido a una buena universidad con CSE. ¿Cómo debo mejorar mis habilidades de programación (o técnicas)?

Comience a usar Linux.

Y no temas a la línea de comando.

Parece un dragón feroz, porque ES un dragón feroz, pero es tu amigo. Pase suficiente tiempo con el símbolo del sistema de Linux. Si desea descargar e instalar un software (casi siempre es gratis, es otra ventaja 😉) y ve un tutorial en línea que muestra un método GUI y un método de línea de comandos, use este último. Todavía te enseñará muchas cosas que necesitas como buen desarrollador.

Para cuando se sienta cómodo mientras “construye” un tamaño promedio de código fuente en su máquina, habrá aprendido mucho sobre cómo un programa usa una biblioteca, cómo se incluye (o no se incluye) con su aplicación, etc. Este tipo de cosas, si se conocen bien, pueden ahorrar días de dolor de cabeza en la vida profesional, pero nunca forman parte del plan de estudios académico.

Además, Linux tiene una tremenda comunidad de desarrolladores. Te ayudarán en foros para todas tus exploraciones curiosas.


En cuanto a la práctica de programación real, sugeriría que cada vez que te golpean porque intentas hacer una cosa y el programa hace otra cosa, siempre, siempre, el primer lugar para mirar es la documentación oficial de la API de lo que sea que estés haciendo. Estos “documentos” no le dicen cómo ver si una cadena es palindrómica o no. Tendrás que construir una lógica para eso. Pero los documentos API le dirán cómo se comportarán exactamente las diversas funciones y miembros de la clase de cadena, y qué esperar exactamente de ellos.

Y por último pero no menos importante; NUNCA intente resolver un error lógico del programa mediante prueba y error. Hacerlo no te dirá exactamente qué salió mal y qué lo corrigió. La próxima vez que corras en una situación similar, ni siquiera sabrías que es una situación similar. Proceda metódicamente y sea feliz 🙂

1. Leer libros técnicos

Una de las mejores maneras de mejorar sus habilidades técnicas es leyendo libros. Cuando era adolescente, solía comprar libros de computadora en la librería local. Hoy es mucho mejor comprar en línea porque puedes encontrar más fácilmente las verdaderas gemas y evitar los limones. Visite Amazon.com o Amazon.in, busque un libro sobre un tema en particular que desee aprender y revise las reseñas y calificaciones. Busque libros con al menos 4 de 5 estrellas (generalmente no compro ninguno con menos de 4.5 estrellas). Aproveche las funciones de navegación de Amazon para encontrar rápidamente los mejores libros en cualquier campo.

Incluso cuando opta por comprar libros técnicos a nivel local (por ejemplo, para obtener una devolución fácil si no le conviene), puede consultar las reseñas en línea para descartar las malas. Tómese su tiempo para obtener una vista previa de los libros en la librería o en línea, especialmente si el costo es una preocupación. Si no puede entender el primer capítulo, no desperdicie su dinero.

Aunque los libros técnicos pueden ser costosos y, a menudo, están rellenados con largas listas de códigos y otras pelusas, los buenos lo compensan con contenido claramente organizado, bien editado e indexado. Los libros en su segunda edición o posterior son una gran opción porque ya han pasado por al menos una ronda de pruebas en el mercado.

2. Leer tutoriales en línea

La ventaja de los tutoriales en línea sobre los libros es que son accesibles, oportunos y, por supuesto, gratuitos. La desventaja es que generalmente no se editan profesionalmente, lo que puede hacer que carezcan de integridad y / o claridad. Sin embargo, a menudo tienen otras características, como abundantes enlaces, comentarios de usuarios y demostraciones interactivas. A veces, los comentarios son mejores que la información original, ya que pueden contener muchos consejos y sugerencias adicionales. Creo que esto es particularmente cierto para los sitios de referencia como php.net (un sitio de referencia para PHP).

Mi forma favorita de encontrar tutoriales en línea es usar Google. Si necesito un tutorial de CSS, buscaré en el tutorial de CSS. Por lo general, encuentro algo decente en los primeros 5 resultados de esta manera. Otras variaciones que funcionan bien incluyen cómo hacer referencia a XXX, XXX y simplemente XXX, donde XXX es lo que quieras aprender.

3. Salir con geeks

Si pasa suficiente tiempo con personal técnico, algo de su conocimiento se contagiará de usted. Incluso los geeks aprenden de otros geeks, pero si usted no es un gran geek, una excelente manera de acelerar el desarrollo de sus habilidades técnicas es unirse a un club local de informática o grupo de usuarios. Use APCUG (Asociación de grupos de usuarios de computadoras personales) para encontrar un grupo cerca de usted. Tales grupos generalmente dan la bienvenida a nuevos miembros de cualquier nivel de habilidad. Póngase en contacto con uno de ellos y asista a una reunión como invitado para ver si le gusta.

Una vez que te unes a un club de computación u otra asociación geek, el voluntariado es una excelente manera de hacer amigos rápidamente. Estas asociaciones sin fines de lucro a menudo necesitan voluntarios para el trabajo de comités y proyectos; incluso si sus habilidades técnicas son débiles, a menudo solo necesitan mano de obra bruta. Cuando decidí participar activamente en la Asociación de Profesionales del Software a finales de los 90, puse mucha energía en el voluntariado. Escribí artículos para su boletín y serví un año cada uno como vicepresidente y presidente de la asociación. Sin duda fue mucho trabajo, pero aprendí mucho trabajando estrechamente con los otros voluntarios. Muchas de esas lecciones han demostrado ser invaluables para administrar este sitio web de desarrollo personal. De hecho, escribir esos artículos, que gradualmente se volvieron menos técnicos y más motivadores, contribuyó a mi cambio profesional en 2004 del desarrollo de software al desarrollo personal.

4. Suscríbase a revistas técnicas

Las revistas técnicas solían ser uno de mis medios favoritos para aprender, pero cancelé todas mis suscripciones a revistas hace años. A principios de los años 80, pasé muchas horas escribiendo programas BASIC de Family Computing y revistas similares (me llevó mucho tiempo porque aún no había aprendido a escribir). Si bien creo que las revistas impresas son menos útiles hoy en día, la misma información a menudo se puede encontrar en línea de forma gratuita, son una forma económica de mejorar sus habilidades técnicas generales, especialmente si es poco probable que se esfuerce de otras maneras. La edición profesional y los escritores experimentados son una gran ventaja.

5. Toma clases

Si lo tuyo es el aprendizaje grupal, busca cursos de extensión universitaria y otras ofertas de aulas y talleres en tu área. Periódicamente recibo catálogos por correo de UNLV, y mientras vivía en Los Ángeles, los recibí de UCLA, Learning Tree University, Pierce College, Santa Monica College y otros.

Una ventaja clave del aprendizaje en el aula es la oportunidad de interactuar con un educador experimentado. Los maestros con décadas de experiencia conocen muchas distinciones educativas que no encontrará en libros o tutoriales en línea. Y a diferencia de muchos escritores técnicos, saben enseñar.

Si realmente quieres el título, considera ir a la universidad y especializarte en un tema técnico. Obtuve una licenciatura en Ciencias de la Computación y Matemáticas. Pero dado mi camino después de la universidad, estos títulos fueron un trabajo innecesario en lugar de desarrollar habilidades prácticas. Comencé a aprender a programar cuando tenía 10 años, y aunque recogí algunas distinciones adicionales en la universidad, hubiera sido un mejor uso de mi tiempo omitir la universidad por completo y aprender la información por mi cuenta. A la larga, encontré que mis clases de matemáticas y física eran mucho más útiles que mis clases de informática: mi conocimiento de las primeras no se volvió obsoleto tan rápidamente.

6. Crea tu propio sitio web

Los lectores a largo plazo de este sitio saben que soy un gran admirador del aprendizaje experimental. Establecer una meta para crear un sitio web básico es una excelente manera de aprender habilidades prácticas como HTML y CSS. Cuando tenga una razón convincente para aprender, sus objetivos acelerarán su aprendizaje y aprenderá con un enfoque en la aplicación práctica.

Aprendí HTML en 1995 cuando quería crear mi primer sitio web. Creé el sitio a medida que aprendía el lenguaje HTML, evolucionando gradualmente desde el ejemplo básico “Hola, mundo”. Más tarde aprendí CSS, PHP, MySQL y RSS, por lo que pude hacer cosas más interesantes de lo que permitiría HTML simple.

7. Construye tu propia PC

Si desea desarrollar mejores habilidades de hardware, un gran proyecto es construir su propia PC desde cero. Hice esto en 2004 y lo encontré muy gratificante. Ahorrará dinero, aprenderá mucho sobre cómo funciona su computadora y terminará con una máquina bien personalizada que puede actualizar fácilmente. Después de que llegaron todos los componentes, me llevó cerca de un día ensamblar todo e instalar el software necesario. Esto puede o no ser un buen uso de su tiempo, pero me pareció que valió la pena por la experiencia. Todavía uso esta misma PC hoy, y es lo suficientemente rápido para mis necesidades.

En My Super PC se puede encontrar un tutorial detallado, fácil de usar y paso a paso que utilicé. Utilicé PriceWatch.com para encontrar los mejores precios en línea para todos los componentes, que superaron los precios minoristas locales en un 30% en promedio. Recuerdo comprar varios componentes de NewEgg.com.

Si este proyecto te pone nervioso, no lo recomendaría. Pero si se siente cómodo investigando y seleccionando componentes y siguiendo cuidadosamente las instrucciones de montaje, es una forma gratificante de pasar un día.

8. Adopta una variedad de software

La productividad general del software mejora con una amplia experiencia, por lo tanto, use muchos programas de software diferentes (en línea o fuera de línea) para mejorar su capacidad general de hacer las cosas a través del software. Comencé a usar software en 1981, y una experiencia tan amplia me facilita aprender nuevas aplicaciones rápidamente. Por lo general, me sumerjo y empiezo a usarlos sin pasar por los tutoriales o leer el manual. Esto me ahorra mucho tiempo y me facilita la tarea de justificar el esfuerzo de instalar un nuevo software y actualizar un software antiguo.

Cuando Erin tiene problemas para descubrir cómo hacer algo en una de sus aplicaciones, a menudo puedo resolver su problema en segundos, incluso si no estoy familiarizado con el programa. Después de usar cientos de diferentes programas de software, eventualmente aprende a pensar como un programador de interfaz, por lo que intuye cómo es probable que se implementen ciertas características. Piense en ello como intuición técnica.

Se ramifica a partir de la miopía del software y experimenta la riqueza total del uso de muchas interfaces diferentes. Aprenderá mucho sobre el diseño de interfaces a partir de programas de edición de imágenes, herramientas de programación y, por supuesto, juegos de computadora. Cuanto mayor sea la variedad de interfaces que experimente, más rápido podrá aprender y dominar cada nuevo programa que use.

9. Aprende a programar

La programación es el arte de instruir a una computadora para que realice una tarea. La clave para lograr esta hazaña es aprender a pensar como una computadora. La programación es una de las tareas más desafiantes para la mente que un ser humano puede realizar, pero nada se compara con la satisfacción de diseñar un código para resolver un problema específico. Pregúntale a cualquier programador.

Aprendí a programar en BASIC a los 10 años y luego aprendí más de una docena de lenguajes de programación. El desafío de desarrollar mis habilidades lógicas y analíticas a una edad tan joven me ha servido bien toda mi vida, incluso en actividades aparentemente no técnicas.

Por ejemplo, abordo muchos problemas de desarrollo personal con la mentalidad de un programador. ¿Cómo definimos el problema? ¿Cuáles son las posibles soluciones? ¿Qué solución cumple mejor nuestras limitaciones? ¿Cuáles son los pasos de instrucciones para implementar la solución? ¿La solución produce el resultado deseado? ¿Podemos hacer que esta solución sea más elegante u óptima? Tomé el proceso de programación común de recopilación de requisitos, arquitectura, diseño, codificación, depuración y optimización y lo apliqué al desarrollo personal.

Si bien los humanos ciertamente no son tan precisos o predecibles como las máquinas, tenemos grandes problemas de compatibilidad, a veces incluso con nosotros mismos, la mentalidad de un programador puede generar soluciones efectivas a problemas muy humanos. La intuición es un factor importante tanto en el desarrollo personal como en la programación, pero me gusta que haya un proceso de respaldo estructurado que funcione en ambos campos. Sin embargo, es mucho más difícil usar este proceso en el desarrollo personal porque sabemos cómo piensa una computadora, pero aún estamos descubriendo cómo piensan los humanos.

10. Cásate con un geek

Su salvación final en el camino hacia el geekdom es – jadear – casarse con un geek. Me estremezco al pensar en el purgatorio técnico en el que Erin estaría revolcándose en este momento si nunca nos hubiéramos conocido. Casi lloré cuando la vi por primera vez arrastrándose en una Mac monocromática de 10 ″ en 1994, y pronto le di una lástima a una PC con un monitor SVGA de 14 ″. Le dije que si muero primero, tendrá que casarse con otro geek de inmediato, una tarea fácil para alguien con sus habilidades sociales.

Si no eres un geek, entonces haz lo que puedas para reclutar uno en tu familia. Si es demasiado pedir, al menos encuentra un geek con el que puedas hacerte amigo. Realmente pueden salvarte en un atasco y evitarán que te quedes demasiado atrás del resto del mundo.

Sé amable con tus amigos geek y ofréceles un valor justo a cambio de su ayuda. Los intercambios creativos son a menudo bienvenidos. Por ejemplo, Erin y yo somos ineptos cuando se trata de moda y decoración del hogar (mi daltonismo ciertamente no ayuda), por lo que alguien que pueda enseñarnos a vestir y comprar muebles que combinen sería un aliado bienvenido. En este momento, lo mejor que tenemos es nuestra hija de seis años. Está muy segura de sí misma, pero no estoy segura de que se pueda confiar en su consejo.

En caso de que aún no lo hayas notado, los geeks se están apoderando del mundo. ¿Cuántos geek multimillonarios hay ahora, incluida la persona más rica del mundo? Las habilidades técnicas son de gran importancia en estos días, y los desposeídos técnicos están más distanciados que nunca. Como dice la leyenda del hockey Wayne Gretzky: “Patina donde va el disco, no donde ha estado”.

Fuente: https://www.stevepavlina.com/blo

cada habilidad necesita práctica y trabajo duro
primero nunca se compare con sus compañeros de clase, luego comience desde lo básico de la programación de computadoras, como la estructura de datos, el algoritmo, la base de datos, la red de computadoras, etc.
En lenguaje puedes comenzar desde c / c ++ / java
también aprenda algunos idiomas web como html, css, javascript
para el trabajo, la buena aptitud también es un factor importante.

Mejore sus habilidades para resolver problemas compitiendo en sitios web como
codechef
fuerzas de codificación
codificador superior
hackerrank
Hackerearth
y por fin tener una actitud de aprendizaje y siempre listo para algo creativo.

Hola, harshit: ve que debes ser muy apto para programar con seguridad, pero al mismo tiempo también tendrás que desarrollar tus habilidades técnicas como si no pudieras entender el problema a fondo, ¿cómo darás a tus clientes un ¿buena solución? Entonces, para resumir, sí, agudice sus habilidades de programación, pero al mismo tiempo perfeccione sus habilidades técnicas también.

Buena suerte

Vea la respuesta vinculada sobre cómo desarrollar una base sólida en software y aprender cosas de una manera interesante.

La respuesta de Gurudutt Mallapur a ¿Qué se puede hacer con la informática después de la 12ª escuela estándar?

Practique en hacker earth o cualquier otro tipo de sitios.