tecnicas software sistemas ser que programas programadores programador programacion principiantes para mejorar lenguaje informático hace funciones desarrollo consejos como codigo carrera buen java c

java - software - que hace un programador de sistemas



¿Programas muy pequeños para mejorar las habilidades de programación? (13)

Code Jam es un buen concurso de programación, aunque, como mencionaste, la mayoría de los problemas no son para principiantes.

Hay una buena selección de problemas de competiciones de algoritmos de topcoder anteriores. (Se llevan a cabo ~ 2 veces al mes durante casi 10 años, por lo que hay bastante).
La dificultad varía desde problemas muy simples (pero aún interesantes) en la 2da división hasta muy difíciles. Además, hay editorials con soluciones y un entorno en vivo donde puedes enviar y probar tu código. También puede aprender de las presentaciones de otras personas.

Verifique la lista de problemas .
Otra ventaja de Topcoder son los concursos regulares en línea que tienen. Encuentro que competir contra otras personas en tiempo real es un gran impulso para la motivación.

Hay muchos más archivos problemáticos, como SPOJ , UVA y Timus , aunque rara vez ofrecen soluciones o incluso sugerencias.

¡Me doy cuenta de que para convertirte en un mejor programador, necesitas programar! Entonces, obviamente, cuanto más práctica, mejor te vuelves.

Mi problema es esto Actualmente estoy en la universidad y encuentro que la carga de mi curso es un tanto desalentadora y no tengo mucho tiempo libre. No creo que realmente pueda asumir un gran proyecto, particularmente no creo que tenga motivación para llevarlo a cabo, sería más fácil para mí seguir posponiéndolo a favor del trabajo que se debe colegio.

Pero aún quiero practicar Por lo tanto, estoy buscando recursos que tengan desafíos de programación que pueden completarse en una cantidad de tiempo bastante pequeña. Idealmente, podría hacer algo en menos de 10 horas de trabajo (por lo tanto, más de una hora de trabajo al día), si no es más pequeño.

He oído hablar de Google Code Jam, pero no estoy seguro de la duración de los programas que especifica ni del nivel de habilidad.

¿Alguien tiene sugerencias? Incluso tal vez un compendio de tutoriales para diferentes funciones podría ser útil. Por ejemplo, un tutorial en archivo IO valdría la pena (si no lo sabía ya), aunque puede ser un tema bastante pequeño.




Intente inscribirse en cualquier curso de TI en los siguientes sitios web:

Estos sitios web ofrecen programas informáticos educativos gratuitos de prestigiosas escuelas en los que hay muchos ejercicios desafiantes para agudizar sus habilidades de programación. Aprendí a programar la percolación, el reconocimiento de patrones, la pelota que rebota y muchas cosas más interesantes debido a esto. Cargarás tu programa una vez que termines los ejercicios y recibirás una calificación acorde (básicamente, se verificará tu programa).

Al final de cada curso, incluso recibirá un certificado de finalización. Genial, ¿verdad?


Me gusta SPOJ y Project Euler para tomar retos y ejercicios de programación rápida.


Por experiencia, recomiendo encontrar una tarea que hagas repetitivamente y convertirla en un programa. También recomiendo, en serio, reinventar la rueda para practicar con la programación. No permita que las personas le digan que no haga algo solo porque ya existe. Si no sabes cómo funciona, intenta escribirlo tú mismo.

No sé exactamente en qué nivel de programación estás, pero no trates de hacer algo demasiado alocado, es solo un demotivador (como tratar de escribir un juego para la PS3).

Si ya puede navegar con IO, entonces debe intentar realmente aprender a usar Collections de manera efectiva. Creo que una de las mejores prácticas que he hecho fue reescribir la clase Java TreeMap. Fue un gran desafío y aprendí mucho al hacerlo.

Aquí hay algunas sugerencias para las asignaciones de práctica:

Tome un archivo de texto que contenga una buena cantidad de información, tome algo, puede obtener algo aquí si lo desea: http://www.gutenberg.org/ y haga un programa que haga lo siguiente:

  1. Leer en el archivo
  2. Crea una colección de palabras y sus ocurrencias
  3. Crea una colección de anagramas
  4. Crea una colección de palabras y las posiciones en las que ocurren (línea #, posición de la palabra)
  5. Desarrolle estadísticas sobre las palabras en el archivo, es decir, trate cada palabra como un individuo, qué palabras aparecen antes y después.
  6. Elimine todo el espacio en blanco del archivo
  7. Escriba todos los datos anteriores en sus propios archivos

Una de mis cosas favoritas es confundir los datos web, ir a un sitio web de encuestas, buscar una página que contenga datos de encuestas en forma de tabla y hacer lo siguiente:

  1. Descargar los datos
  2. Analiza los datos y convierte los datos tabulares en un archivo CSV
  3. Ábralo en excel sin error

O simplemente busque cualquier sitio y extraiga datos de él, solo asegúrese de que el sitio sea compatible con robots http://www.robotstxt.org/ , no desea que ningún sitio sienta que está bajo ataque. La mayoría de las veces esto normalmente no es un problema porque si lee los términos de uso del sitio, indica claramente que tiene permiso para descargar 1 copia de lo que sea que esté viendo, siempre que no tenga la intención de venderlo. Por supuesto, esto cambia para cada sitio.

Vaya a un sitio web y obtenga todos los enlaces fuera de la página mediante programación.

Aquí hay uno divertido, el programa Susan (no recuerdo por qué se llama Susan) que inicialmente escribí usando un programa C y dos guiones de shell Bourne en un entorno Unix. La idea en este programa es bifurcar 4 procesos secundarios y darles a cada uno una tarea como esta:

Niño 1: Lee en un archivo, crea un diccionario de cada palabra y su posición en el archivo, esto se envía a un archivo.

Niño 2: Toma la salida de Child 1 y reconstruye el documento, esto se envía a un archivo.

Niño 3: Toma la salida del niño 2 y hace lo que el niño 1 hizo nuevamente

Niño 4: Toma la salida de Child 3 y hace lo que hizo el niño 2 nuevamente

El objetivo aquí es tener una réplica exacta del archivo original una vez que Child 4 lo emite. Esto es un desafío y algo sin sentido, pero el objetivo de este ejercicio es obtener la práctica.

En su caso, no sienta que necesita usar diferentes hilos para esto, puede simplemente usar un solo programa con dos funciones diferentes y simplemente llamarlas en orden.

Una vez más, no estoy seguro si aún se encuentra en este nivel, pero trate de reemplazar cualquier bucle "for" o "foreach" que tenga en su programa con recurrencia, solo como práctica. La recursividad es un dolor en el trasero, pero es valioso conocerla y comprenderla.

Estas son algunas sugerencias que creo que realmente te ayudarán a agudizar tus habilidades.

Disfrutar


Puede intentar resolver problemas de ACM. Hay miles de problemas allí y puede encontrar el nivel de dificultad para que pueda elegir qué problemas hacer primero. El sitio oficial para esto es:

http://uva.onlinejudge.org/ . Puedes aprender más allí.

saludos arefin


Puede parecer un poco obvio, pero he notado un verdadero impulso en mis habilidades de expresiones regulares últimamente solo al responder preguntas de expresiones regulares en . La enseñanza te obliga a descomponer los problemas en piezas fácilmente explicables, y también guiará tu investigación en aquellas ocasiones en las que sabes más, pero no del todo, de una solución.

Sugiero encontrar un tema que ya domine un poco, ya que este tipo de cosas no es tan bueno como el tutorial para principiantes. Busque SO para las preguntas etiquetadas con ese tema e intente descubrir las respuestas. No solo los codifique en su cabeza; adelante y escríbalos, pruébelos y explíquelos. Si no está seguro de que su respuesta sea correcta, simplemente escríbala sin publicarla.


Si te gusta programar y quieres mejorar tus habilidades como programador, debes probar cocode.co . Es un sitio social joven, similar a pero basado en publicar y resolver desafíos de programación, en lugar de hacer y responder preguntas. Desde desafíos muy fáciles hasta difíciles.


Siempre pensé que practicar con preguntas de entrevistas de muestra era una excelente manera de perfeccionar tus habilidades y exponerte a tipos de problemas que normalmente no resolverías. Además, si va a buscar un trabajo, lo ayuda aún más.

Aquí hay uno bastante simple que hice por diversión el otro día:

Escriba una rutina para imprimir los números del 1 al 100 y vuelva a 1 sin usar ningún bucle.

Glassdoor.com tiene muchas buenas preguntas de entrevistas enviadas por personas que las obtuvieron en una entrevista.


http://codegolf.stackexchange.com puede tener algunos desafíos de programación a su gusto. Muchas de las respuestas en ese sitio están golfizadas (implementan el programa en el menor número de caracteres) pero definitivamente hay algunos ejemplos interesantes de los que aprender.


Project Euler tiene algunos problemas matemáticos / relacionados con los números que son muy interesantes y van desde fáciles hasta muy desafiantes. Puede elegir el idioma de su elección y enviar solo la solución (un número entero grande). Después de enviar la solución correcta, tiene acceso a una página de foro / comentario donde otros publicaron sus comentarios y soluciones.


Ya que estás en la Universidad y buscas mejorar tus habilidades de codificación, el libro en papel Cracking the Coding Interview podría ser una buena opción para ti. Tiene grandes preguntas generales de programación y algunas curiosidades sobre entrevistas con algunas de las mejores compañías en tecnología. No solo hay grandes preguntas, sino que también hay problemas deficientes.

[Divulgación: soy el dueño del libro, pero de lo contrario no tengo ninguna asociación con él.]