Dado que la pregunta no especifica exactamente cuál es su problema, asumiré que no es un problema de idioma / sintaxis. Si este es el caso, puede omitir esta respuesta por ahora y tal vez volver a verificarla más tarde.
Si podemos asumir que su problema es un problema mental, entonces creo que puedo sugerir una solución que podría ayudar. Pero primero, permítanme explicar qué es una mentalidad (o, al menos, como la llamo). el problema es.
- Tiene una comprensión completa de la tarea y puede pensar en la solución de alto nivel. Pero una vez que intentas codificarlo, te quedas atascado y no sabes por dónde empezar.
- Usted ha comprendido la tarea, pero no parece ser solucionable, ya que las partes de la solución que imagina requieren conocimientos o habilidades que no tiene.
- En algún momento, el problema / tarea parece ser tan complicado y usted no sabe qué hacer.
- Cuando lees tutoriales o cuadros de texto, puedes entender los ejemplos bastante bien, pero no puedes realizar tareas de codificación similares por tu cuenta, simplemente te quedas atascado.
En pocas palabras, te sientes estancado la mayor parte del tiempo cuando intentas escribir código, y el código aquí no significa un simple “bucle para / mientras” o una función C; Me refiero a escribir algo así como un algoritmo complicado o un pequeño Sistema de gestión de contenido (CMS) con una base de datos y páginas web, etc.
Si ese es su caso, entonces permítame compartir con usted mi propia experiencia (puede omitir si lo desea, la solución estará al final de la respuesta).
- ¿Qué crees que falta esta generación y cómo puede mejorar?
- ¿Cuál es la mejor manera de mejorar mi autoestima y coraje mientras me preparo para el examen más difícil y cómo puedo tener éxito?
- ¿Cómo podemos seleccionar un buen mentor o cuáles son las cualidades de un buen mentor?
- Tengo bastante éxito en la escuela, ¿cómo debo mantenerme motivado y tener éxito en la vida adulta?
- Cómo superar mi vergüenza de ser de clase media alta.
No tengo formación académica en CS o ingeniería, en realidad mi licenciatura fue en literatura inglesa y traducción. En 2007, pasé tres años (de 2005 a 2008), leyendo demasiados libros de programación (más de 120 libros principalmente en PHP, MySQL, HTML, CSS, OOP, patrones de diseño, etc.) y gané en profundidad. conocimiento, que incluso algunos de los desarrolladores más experimentados que conocía en aquel entonces no tenían (y ni siquiera necesitaban). Pero en ese momento era todo un conocimiento inútil, ya que no podía usarlos de manera efectiva. Podría, con demasiado esfuerzo, construir algunas cosas básicas, pero no más que eso. Incluso trabajé como freelance para hacer algunas cosas simples casi gratis desde 2007. Pero aún así, siento que estoy muy atrasado, ¡ni siquiera un desarrollador junior!
En este punto, comencé a culpar a mis habilidades en inglés, ya que mi inglés era muy limitado en ese momento. Así que me uní a la Facultad de Artes, Departamento de Inglés en 2008 para mejorar mi inglés. Durante el primer año, las cosas empezaron a mejorar, pero en realidad no era mi inglés, era mi mentalidad. Mientras leía los materiales de aprendizaje, estaba convencido de que mi inglés no es lo suficientemente bueno y de alguna manera este pensamiento me bloqueó para entender demasiadas cosas. Mirando hacia atrás, reconocí que si esta idea no estuviera en mi mente todo el tiempo, podría haber adquirido mucho más conocimiento de los materiales que leí. De todos modos, como todavía no me veía como un buen desarrollador, empecé a pensar que quizás todavía me esté bloqueando a mí mismo con otra cosa, pero todavía no puedo resolverlo. Después de varios análisis de mi comportamiento, reconocí que todavía me ocupo de los desafíos de programación desde una perspectiva de usuario de PC regular, tal vez una avanzada pero una de usuario, ¡no un desarrollador!
Sin embargo, no sé cómo resolver esto, así que nuevamente estaba a punto de rendirme, pero antes de hacerlo, intenté rastrear todo el Internet para encontrar una definición para esto y con la esperanza de que eso me lleve a una solución. . Porque renunciar significaría que tengo que encontrar mi pasión en una profesión diferente, ¡y no tengo eso! De alguna manera me encontré con un curso gratuito en línea de Stanford llamado “Metodología de programación”; por su nombre supuse que podría estar relacionado con lo que diagnosticé en mí mismo. (y de hecho lo fue). Repasando su esquema de plan de estudios, bueno, no está claro si eso es lo que estoy buscando, pero de todos modos lo intenté, ¡y nunca me arrepiento!
Me enseñó a entrenar las soluciones sin tener todo el conocimiento de todo antes de comenzar, y también me llama la atención que no necesito preocuparme por todo desde el primer segundo. Lo único que importa es que tengo una solución de alto nivel, luego puedo dividirla en un flujo de trabajo estructurado y, para cada parte, puedo completarla con su propia implementación o dividirla más (lo que se conoce como enfoque de arriba hacia abajo) … Y de repente, ¡logré poner en práctica todo el conocimiento que tengo! ¡y mis habilidades comenzaron a crecer muy rápidamente de una manera que nunca imaginé que fuera posible!
Para darte un ejemplo de cómo era mi mentalidad antes y después:
Considera la siguiente tarea:
“Necesitamos desarrollar una página de registro de cuenta, donde el usuario pueda completar sus detalles y guardarla en nuestra base de datos para que la próxima vez el usuario pueda iniciar sesión. El usuario debe proporcionar su nombre, apellido, dirección de correo electrónico y contraseña, y su dirección de correo electrónico debe ser una dirección de correo electrónico válida, y su contraseña debe tener entre 6 y 12 caracteres y debe incluir al menos un carácter especial “
Cuando miraba esa descripción desde la perspectiva del usuario, planteo demasiadas preguntas y detalles e incluso cuestiones irrelevantes, por ejemplo:
- ¿Cómo podré validar la dirección de correo electrónico? ¿Expresiones regulares? pero esto solo valida el formato de la dirección de correo electrónico, ¿realmente no puede verificar si se trata de una dirección de correo electrónico real?
- ¿Cómo podré saber si esta dirección de correo electrónico pertenece a esta persona? Él podría simplemente escribir cualquier dirección de correo electrónico.
- ¿Desde dónde debo empezar? ¿Los esquemas de base de datos o la página web que presenta el formulario de registro?
- Si logré hacer todo eso, ¿cómo lo mantendré conectado? ¿Usaré sesiones de PHP o cookies? ¿Y cómo usaré eso para autenticar al usuario?
La mayoría de estas preguntas, ni siquiera valía la pena pensar en esta fase, y en algún momento creo que fue por temor a que no cumpliera (y en realidad fallé demasiadas veces). ¡Entonces termino sintiendo que no soy lo suficientemente hábil para hacerlo!
Después:
… Bueno, parece que tengo casi toda la información que necesito para comenzar y tal vez podamos ajustarla más tarde si es necesario. ¡Vamos a hacerlo! Abro mi editor PHP favorito y empiezo con algo como esto:
// 1: haga eco de la salida HTML y asegúrese de que tenga su propia validación del lado del cliente
// 2 – Reciba los datos del formulario cuando el usuario presione el botón enviar y colóquelo en una estructura agradable para manejarlo en el resto del archivo
// 3 – Manejar toda la validación necesaria
// 3A – Asegúrate de que el correo electrónico es válido
// 3B – Asegúrese de que el campo de contraseña y su campo de confirmación estén completos, sean iguales y cumplan con los requisitos de contraseña
// 3C – Asegúrate de que el resto de los campos obligatorios estén completos.
// 3D – Si algo está mal, actualice la página y resalte los errores
// 3E – Si todo está bien, continúe con el paso 4
// 4 – Guardar el registro de la base de datos
// 5 – Recuerde los detalles del usuario para que sepamos que ya está registrado
// 6 – Redirige al usuario a la página de éxito.
Básicamente, esbozo mi lógica, doy cada paso por su cuenta y lo implemento directamente o escribo su propio esquema secundario y luego los implemento uno por uno.
Por supuesto, este fue solo el comienzo en el que construí el resto de mi experiencia y crecí como un desarrollador muy competitivo.
Si la descripción anterior describe su situación de alguna manera, le recomiendo que consulte el curso CS106A – Metodología de programación, ¡definitivamente lo encontrará útil!
Dado que estás estudiando Ciencias de la Computación, tus posibilidades son mucho mejores que las mías, y si la programación es algo que realmente te apasiona, hazte un favor y POR FAVOR, NO TE RENGAS y ¡definitivamente SUCEDERÁS !