2010-03-22 22 views
6

Estoy utilizando solo C por 5 años. Así que estoy seguro de que sé gramática C, pero no tengo idea de cómo avanzar en habilidades de programación.Cómo estudiar programación con lenguaje C

Hay muchos libros para idiomas modernos (como C++, Java) para estudiar habilidades de programación como la refactorización o patrón, arquitectura de software. Pero ningún libro está escrito con lenguaje C. El autor del libro dice que su libro no depende del idioma, pero no lo creo.

¿Cómo puedo avanzar en mis habilidades de programación? Tengo que estudiar el lenguaje moderno y leer los libros? ¿Hay libros sobre diseño de software o habilidades de programación escritos con C?

+0

¿Puedo preguntar por qué solo quiere aprender C? Hay muchos más trabajos para otros lenguajes de programación, para encontrar un trabajo en C tendrías que hacer algún desarrollo de bajo nivel o desarrollo integrado probablemente. –

+0

He trabajado como desarrollador de firmware y dispositivo de hardware hasta el año pasado. Entonces no podría usar ningún otro idioma. – gurugio

+0

Esta es una buena boook: http://books.google.no/books?id=9t5uxP9xHpwC&dq=Expert+C+Programming&printsec=frontcover&source=bl&ots=xeTG3qFaBx&sig=birMADKMT2cimf6UAYCZdNb48Wo&hl=no&ei=LxNCS6L5KYrS-Qaq_fGuCg&sa=X&oi=book_result&ct=result&resnum=2&ved = 0CBQQ6AEwAQ # v = onepage & q = & f = false – eaanon01

Respuesta

3

Pruebe algunos problemas de concurso de programación de ACM con C (acm.uva.es). Intente codificar las estructuras de datos y apunte a la máxima eficiencia, lo que significa el menor uso de recursos para lograr el objetivo.

4

No creo que nadie que solo conozca un lenguaje de programación (sea del idioma que sea) pueda llamarse a sí mismo un gran programador. Deberías intentar convertirte al menos en familiar con tantos idiomas como sea posible (puedes entonces "especializarte" en uno o dos si quieres) pero limitarte a uno solo te está haciendo un flaco servicio, IMO.

Así que sal y aprende Java, C#, Lisp, Haskell, Python, Perl, Lua, SQL, Javascript ... la lista de posibilidades es interminable, de verdad.

+7

¿Alguien que solo pinta no es un artista? – Inisheer

+7

Por supuesto que no, pero alguien que solo pinta en * rojo * no es un artista. –

+4

@codeka: No estoy tan seguro de que sea cierto en estos días. Muchas cosas pasan como arte. – dreamlax

1

Parece que su objetivo es:

¿Cómo se puede avanzar mis conocimientos de programación?

Sin embargo, ustedes están preguntando sólo para algo muy específico:

Pero ningún libro está escrito con el lenguaje C

En mi opinión, las habilidades de programación más importantes son independientes del lenguaje.

me gustaría sugerir que abra su mente a otras posibilidades distintas de C.

¿Por qué estás limitando a sólo el C? Si la respuesta es porque ya pasó 5 años en ella, permítame hacerlo sentir mejor al decir que no se trata de años perdidos.

¿Existen libros sobre diseño de software o habilidades de programación escritos con C?

Certainly there are.


te sugeriría altamente embargo, que uno se pregunta en la que desea ser como desarrollador de software en unos pocos años, y luego publicar una nueva pregunta preguntando cómo puede obtener no describiendo exactamente lo no es . Dependiendo de lo que desee, podemos ayudarlo a orientarlo por el camino correcto.

También C++ y Java tampoco se consideran los idiomas más modernos actualmente.

1

Un libro realmente bueno que acabo de encontrar (a través de Stack Overflow) en C es Expert C, que profundiza en detalles reales en el lenguaje C. Dicho esto, si estás interesado en aprender técnicas generales de programación (en lugar de simplemente C avanzado), te recomendaría aprender otro idioma, como Python o Java, ya que es mucho más fácil captar conceptos como algoritmos, estructuras de datos, y patrones de diseño en lenguajes de alto nivel.

0

Si desea avanzar mientras se encuentra cerca de c, probablemente pruebe C++ y python o ruby.

Eso debería darle algunos ángulos diferentes en la programación. Los lenguajes de nivel superior proporcionan estructuras de datos y algoritmos para que no tenga que preocuparse de implementarlos como lo haría en c. Eso significa que puede concentrarse en resolver problemas en lugar de cablear la lista vinculada o implementar la ordenación.

Hay muchos libros interesantes sobre programación, hay que mirar más allá del 'libro de lenguaje de programación'. Busque en la web blogs sobre desarrollo de software.

Si sabe en qué dominio desea enfocarse intente crear su propia aplicación.

Btw 5 años está bien, debería poder comenzar desde el principio y terminar con un software completamente funcional.

Como otros sugirieron probar algún concurso de codificación en línea o buscar preguntas de ejemplo y tratar de implementarlas.

Puesto que usted está aquí echa un vistazo a http://www.joelonsoftware.com/

0

Yo creo que hay que programar algunos proyectos de su propia idea, o puede tomar la ayuda de Internet, lo que puede mejorar su nivel de programación.

0

Incluso cuando trabaja como "desarrollador de firmware y dispositivo de hardware", aprender otros idiomas y herramientas puede ser muy útil. Leer sobre diferentes herramientas de compilación como GNU Automake o CMake, pruebas automatizadas de unidades y programación pragmática le ayudará a progresar y seguir siendo útil cuando solo utiliza C.

2

Un excelente libro sobre programación C "avanzada" es Peter van der Linden's Expert C Programming.

¡Incluso obtiene un apéndice con divertidas historias de entrevistas :)!

1

Sugiero leer cualquier código del sistema operativo como el código Kernel de Linux y rastrearlo desde la aplicación hasta el hardware. De esta forma no solo conocerá los diferentes tipos de datos y patrones que se usan en varias capas de softwares pero también cómo se implementan. Rgds, Softy

Cuestiones relacionadas