2009-04-20 13 views
9

Yo mismo soy uno de estos tipos de programadores, que nunca aprendieron la codificación en un entorno formal, sino que soy autodidacta mediante el uso de scripts de copiar y pegar, y trabajos escritos disponibles a través de proyectos GPL y software premium (que a menudo es la forma en que las compañías de guiones comerciales le muestran cómo cambiar o actualizar el código en su secuencia de comandos). Copie & pegue esto en la línea 234, etc. ") ... esto son mis comienzos.Ayuda para copiar y pegar la generación de codificadores

No entiendo cómo funciona lo que hago, pero me estoy volviendo bueno en lo que hago con el código, aunque creo que debido a mis métodos de aprendizaje informal, me falta conocimiento, algunos de los realmente simples, pero principios necesarios de codificación web en general (los pormenores de los servidores, navegadores, etc.). Siento que comencé desde el interior del código de comprensión, el lado práctico ... y carezco de los fundamentos básicos y la comprensión teorizada de lo que estoy haciendo.

También conozco a muchos otros que son iguales, que comenzaron a aprender en las mismas comunidades que yo, y están más o menos en el mismo punto que yo ... Siento que algo grande falta en la imagen. Veo la falta de mi disciplina cuando trato de usar herramientas de creación de PHP, lo que me resulta muy difícil de entender ... y esto se está convirtiendo en una caída en los plazos en los que termino mis proyectos (tener que codificar todo a mano) . También me resulta difícil pedir ayuda a veces, por falta del lenguaje específico que viene con la programación, y ser capaz de usar las palabras correctas para explicar la complejidad de mi problema.

Fui peluquero de profesión, trabajé como barman y soy gerente de hotel, soy consultor de negocios por profesión. He estado aprendiendo desarrollo web lentamente desde hace 3 años, y he emprendido bastantes proyectos comerciales en los últimos 2 años, pero obviamente me siento falto en mis conocimientos generales &.

Básicamente, me gustaría preguntar a cualquier programador experimentado que haya tenido un comienzo similar para darme una idea sobre cómo puedo adaptar mis disciplinas de codificación para que sean más efectivas y productivas. ¿Qué querría aprender y comprender alguien con una comprensión tan informal de la programación? ¿Cuáles son las cosas que debo saber como programador ... y cuál es una visión general básica de toda la imagen? Siéntase libre de dirigirme a los artículos

Cualquier ayuda es siempre apreciada.

Lea

Editar: Sólo para dar una ronda de mis capacidades reales. Soy programador, escribo mi propio código desde cero ... y vendo mi trabajo. Puedo escribir funciones PHP y clases, usar mysql, tener una buena comprensión de html & css, y soy muy bueno en los aspectos de diseño (gráficos web), y estoy aprendiendo javascript/ajax/jquery, ya que estoy usando jquery en la mayoría de mis proyectos. ¡Gracias por todas las respuestas hasta ahora!

+0

Q similar: http://stackoverflow.com/questions/743099/is-it-wise-to-use-code-copied-from-the-web-in-our-own-applications – Dhana

+0

Puede probar el Tutorial de Java para ver qué frases puedes aprender sobre OOP. Luego, consulte javascript MDN para ver que JavaScript no está basado en clases, sino que está basado en prototipos. Ahora sabría cosas como la escritura fuerte, la abstracción y otras frases geniales que normalmente tengo que buscar antes de comprenderlas por completo. Si aún no está cansado, le aconsejaría que lea algo sobre patrones, generalmente faltan buenos patrones en los proyectos de PHP y dificultan su escalabilidad o extensión. Y trate de usar PHPUnit para hacer pruebas unitarias en su proyecto. – HMR

+0

He aprendido haciendo la mayor parte del tiempo también y encuentro que la teoría mencionada anteriormente es lo que me faltaba. En lugar de leer documentación, hago un var_dump o reviso las variables en firebug. Si funciona, funciona, y si no funciona, tengo que pasar el tiempo aprendiendo la teoría de todo. Ahora que no asumo muchos proyectos, hay tiempo para toda la lectura y me ayuda a aplicar la mayor parte del conocimiento a problemas prácticos que solía enfrentar. – HMR

Respuesta

3

Todos aprendemos de manera diferente, así que no se sienta impedido por la forma en que ingresó al campo.

Supongo que la cosa más sencilla y fácil que puedo sugerir sería que te consigas un libro de PHP (ya que es lo que estás familiarizado en este momento) y comiences desde allí para aumentar la confianza.

En su tiempo libre, solo cree algunas aplicaciones básicas muy pequeñas para practicar sin ninguna presión. Luego tome un lenguaje como Python, Java o .NET ... dependiendo de lo que le apetezca. Con un idioma o dos en tu haber, puedes adquirir libros como Code Complete, que cubrirá algunas de las áreas más esotéricas del desarrollo de software.

Buena suerte, esta es una profesión en la que nunca dejas de aprender.

+0

Sí, este parece ser el camino a seguir ... Nunca he leído un libro sobre programación, así que probablemente me siento ligeramente alienado por eso. Encuentro tu respuesta muy alentadora. Muchas gracias :) – Lea

3

en caso de que le interese convertirse en un mejor programador, le recomiendo que lea el pragmatic programmer, no se preocupe, no se trata de un texto completo de códigos que le sacarán el pelo sino lecciones útiles que pueden sólo se destila de años de experiencia en programación escrita de una manera fácil de leer pero aún muy informativa :)

+0

Muchas gracias por la referencia, acabo de leer las primeras páginas, y ya me siento mejor. Esto es una necesidad en mi lista. ¡aclamaciones! – Lea

1

No estoy del todo convencido de que la premisa de la "Copia & Paste Generation" sea cualquier tipo de nueva fenómeno. Solo las herramientas están disponibles para un público más amplio ahora que antes.

Si desea afinar realmente sus habilidades, que valdría la pena tomar algunas clases, ya sea en una universidad local o en un entorno de aprendizaje autodirigido a través de la utilización de algunos de los many, fine recursos en línea o books

+0

Gracias por su respuesta. No pretendo hacer que suene como un fenómeno nuevo, pero mucha gente se identificará con lo que me refiero ...Que está más dirigido a los métodos en los cuales yo y otros hemos aprendido. Gracias por sus consejos :) – Lea

0

La programación de copiar y pegar se refiere a usar el mismo código en varios lugares en lugar de ponerlo en una función o clase. Si todo lo que hace es modificar el código fuente existente mientras sigue una guía práctica, lo que usted hace no se llama programación, simplemente copie y pegue.

Lo que necesita hacer es leer un libro sobre programación, cualquiera que sea su nivel. Si sientes su nivel de copiar y pegar, deberías comenzar con un libro para principiantes. Olvida todo lo que crees que sabes, lee y sigue el libro. Cuando haya terminado, puede recordar algunos de los códigos inteligentes (?) Que notó durante su C & P días.

+0

Hola, gracias por tu respuesta. Lamento no haber explicado correctamente lo que quiero decir, pero me refiero más a los métodos en los que me presentaron a la programación. Y eso fue a través de copiar y pegar ... Construí mi primer script usando fragmentos, y con frecuencia usé fragmentos de tutoriales. Gracias por tus consejos. – Lea

1

Creo que Code Complete es otro libro en la misma línea del programador pragmático que ya ha sido recomendado.

7
  • Date cuenta de que "copiar y pegar programación" no se está programando, a pesar del nombre. El acto de "programar" es descubrir cómo algo debería funcionar y qué código se necesita para que funcione. Por lo tanto, cuando copias y pegas un código, es otra persona quien hizo la programación. Esto no es necesariamente algo malo, ya que no siempre deberías escribir código tú mismo. Pero para llamarse programador, necesita haber escrito el código usted mismo.

  • Querrá empezar humildemente. No intente escribir una aplicación compleja grande como primer paso para la programación. Hay una buena razón por la cual a la mayoría de las personas a las que se enseña programación se les enseña primero cómo imprimir "Hola, mundo". Esto se debe a que hay mucho más que deberá saber que solo el código que debe usar: necesita saber dónde comienza la ejecución del código y cómo fluye, y ese tipo de cosas. Debes poder mirar el código y recorrerlo mentalmente, sabiendo a dónde seguirá la ejecución del programa, para que entiendas cómo funcionará.

  • Tome un tutorial o curso de programación. Hay tantas cosas gratis en línea. No confíe en ningún tutorial que simplemente le proporcione grandes porciones de código, asegúrese de que le obligue a encontrar algún código usted mismo. Haga ejercicios como ordenar cadenas, calcular secuencias de fibonacci y similares, y "eco" o "imprimir" los resultados. Aprende sobre enunciados condicionales (como "si") y el ciclo "para" y juega con ellos para hacer varias cosas.

  • La programación de GUI o formularios es más complicada; asegúrese de conocer los fundamentos del lenguaje antes de buscar en la API o la documentación del marco de trabajo para ver qué puede hacer el idioma.Tendrá que saber cómo fluye la ejecución, cómo escribir funciones, qué tipos de variables puede usar, etc. antes de que pueda usar efectivamente una API o un marco de todos modos. Es aburrido no poder hacer gráficos o formularios geniales y apegarse al texto básico o al procesamiento de números, pero tienes que caminar antes de correr. Asegúrate de estar haciendo, no solo leyendo. Cuando conozca algo nuevo como el tipo de matriz, la instrucción "while", pruébelo. Al hacerlo, lo "obtendrás" mucho más rápido que solo leer un libro o sitio web y es más probable que lo recuerdes.

  • Lea libros sobre la programación. Algunas personas dicen que debes aprender C antes de aprender cualquier otra cosa. No necesariamente estoy de acuerdo, pero si aprendes C, entonces el libro para leer es "The C Programming Language" de Kernighan y Ritchie. Muchos libros de programación son muy interesantes, pero no son adecuados para principiantes, o no te enseñarán cómo comenzar a programar realmente. Este, es una excepción.

  • Utilice un editor de texto decente con resaltado de sintaxis y numeración de líneas. Eso es todo lo que deberías necesitar. Un gran IDE que también completa el código y similares no es necesariamente útil en la etapa de aprendizaje. No pierda demasiado tiempo eligiendo uno o configurándolo. Si aún no tiene uno, simplemente obtenga Notepad ++ (si está en Windows) y termine con él. Si no te gusta, puedes cambiarlo una vez que seas más competente. O bien, si ya pagó por Microsoft Visual Studio, utilícelo, pero no salga solo por el simple hecho de aprender un idioma. Evite caer en la trampa de gastar todo su tiempo en afilar sus herramientas y no usarlas.

+0

Gracias por su respuesta. Aunque como dije en mi pregunta, he completado bastantes proyectos comerciales. Gran parte de lo que estás hablando aquí, ya puedo hacerlo. No soy un novato completo, y sí autorizo ​​mi propio código. Me refiero a C & P como los primeros métodos en los que llegué a aprender, para darles a todos una idea de mis comienzos. Si miras mis otras preguntas, obtendrás una mejor idea de mi nivel de conocimiento. Gracias de nuevo. – Lea

+0

Creo que el primer programa que me enseñaron de alguna manera formal fue un juego tipo 'adivina el número'. El mundo de hola es realmente más un ejemplo de pizarra, o al menos, una manera de mostrarles a los programadores experimentados cómo es un nuevo idioma. – SingleNegationElimination

+0

@Lea veo. Supongo que, aparte de seguir leyendo libros de programación y mantenerse en contacto con sitios web de programación (como este), como alguien que ya tiene algunas habilidades de programación autodidactas decentes, podrías intentar ampliar tus habilidades en otras áreas, como el marketing y, en particular, -promoción, que puede ser importante y podría diferenciarte de otros programadores. También podrías intentar aprender un idioma diferente. Pruebe Python o Javascript. Descubrí que disfruté haciendo eso. – thomasrutter

7

¿La forma más fácil y rápida de hacerlo? Encuentra un mentor, o un conjunto de mentores. No necesariamente un mentor de la vida real, pueden estar fuera de línea, aunque un mentor de la vida real es más práctico.

Puede encontrar estas personas cuando participa en comunidades locales de desarrollo de software, por ejemplo, foros o reuniones de grupos de usuarios. Frecuentes estos lugares, tanto fuera de línea como en línea; la cantidad de conocimiento que aprenderá es inmensa, por no mencionar el beneficio de poder intercambiar ideas con otras personas.

Code Complete y Pragmatic Programmer son también excelentes sugerencias de libros de arriba. Le sugiero que vaya primero con Code Complete, ya que aborda cómo hacer que su código sea sensato y elegante, lo que sin duda puede usar inmediatamente.

Goodluck!

+0

Buena sugerencia para encontrar un mentor. Sería particularmente bueno para alguien que se ha enseñado a sí mismo. – thomasrutter

1

He sido su situación antes, el último año de la escuela secundaria en una pasantía que "aprendí" c y la programación del shell sobre todo a través de copiar y pegar, y más tarde en varias ocasiones cuando puede haber estado en una situación similar con tecnologías.

Mis recomendaciones:

  1. tomar una clase en su CC. El que desea es el que es el requisito previo para las clases de programación avanzada. Probablemente también ofrezcan una clase de nivel "Nunca he tocado una computadora", pero esta no será la prerrequisitos oficial para las clases de seguimiento. Esto probablemente será en Java.

  2. Trabaja tu camino a través de uno de los mejores libros de programación que incluye ejercicios. Kernighan y Ritchie's C Programming Language es un clásico. Esta sería mi recomendación porque C es lo suficientemente similar a PHP para ser familiar, pero lo suficientemente diferente como para poder mantenerlos separados. Digo esto aunque probablemente nunca escribirás una sola línea de producción. El ANSI Common Lisp de C. Paul Graham también es una opción adecuada.

  3. Si eres realmente duro y tienes la dedicación, puedes probar Estructura e Interpretación de Programas de Computadora, por Abelson y Sussman. Este es el libro utilizado en el primer curso de programación en UC Berkeley (http://webcast.berkeley.edu/course_details.php?seriesid=1906978389) y en MIT (http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/). Esto puede ser muy difícil de intentar fuera del entorno escolar. Está diseñado para estudiantes jóvenes y brillantes que no tienen nada que hacer más que estudiar y con la oportunidad regular de obtener tutoría de estudiantes de posgrado. Lo incluyo solo para completarlo.

Evitaría cualquier libro de programación web. Usted ya conoce la programación web. Me da la impresión de que te sientes como si estuvieras golpeando un pedazo de una pared, y miras una forma de evitarla o pasar por encima de esa pared, en lugar de tratar de atravesarla directamente.

Recomendaría no buscar en ningún libro orientado a la web, ya que no le dará una idea general, sino que describirá la técnica solo cuando se aplican a la programación web. Las cosas importantes que hay que entender son cómo funciona realmente una computadora, la diferencia entre la pila y el montón, los indicadores, los conceptos básicos de la recolección de basura, la recursión, y probablemente sería útil comprender al menos el mecanismo de extensión. Quiero decir, si comprende bibliotecas compartidas en Unix, o DLL en Windows, o classpath y jar en Java, o cómo crear una biblioteca en PHP, Ruby, Perl o Python, cualquiera de ellas estará bien. Es solo el concepto de cargar código externo lo que es importante.

+0

Me gusta mucho su visión holística. Es lo que hubiera preferido comenzar con entender la PC real. Estoy de acuerdo con usted, cualquiera con este tipo de comprensión podrá acercarse a la codificación web con una gran ventaja conociendo la "imagen más grande". ¡Gracias por su respuesta! – Lea

0

Dominar cualquier habilidad requiere tiempo, pero si sigues así, mejorarás. No hay nada intrínsecamente diferente en la programación en ese sentido. Exactamente cómo se aprende mejor, es un asunto muy individual, por lo que es muy difícil dar ningún consejo significativo sobre eso. En mi experiencia, combinar diferentes tipos de aprendizaje (experiencia práctica, estar con otros programadores, leer libros, educación formal, etc.) en dosis uniformes funciona mejor que solo seguir un tipo de aprendizaje (como la educación formal).

Usted puede encontrar estas lecturas interesantes, si no los conoces ya:

Cuestiones relacionadas