Soy un programador bastante malo, ¿puedo mejorar? ¿Alguien que sabía que era malo en la programación ha mejorado con el tiempo al practicar las preguntas de codificación en línea?

Soy dueño y manejo una compañía de software. Aquí está lo que es más importante para mí en un programador:

  1. habilidades de pensamiento crítico. Interesante que la cosa número 1 que busco no es la programación? es porque si aprendes a deconstruir un problema y aplicas la lógica a la solución de una manera estructurada, puedes aprender a ser un buen programador. Si no puedes, entonces no me importa cuánta práctica tengas, seguirás siendo un programador junior para siempre.
  2. Un buen investigador: es imposible absorber simplemente todas las respuestas y todos los cambios relevantes en la tecnología. Si sabes cómo cavar, puedes convertirte en un buen programador. Si no aprendes a cavar, no lo harás.
  3. Auto iniciador y auto motivador: todos los buenos programadores no se sientan y esperan a que alguien les diga cómo hacer algo. Preguntan, investigan, lo intentan en casa en su propio tiempo, etc. Nunca he conocido a un buen programador que no haya hecho esto.

Esos son los rasgos que busco. Ahora aquí hay algunas recomendaciones:

  1. unirse a un grupo de desarrolladores locales. Es una excelente manera de aprender de los demás y compartir lo que has aprendido. También puede ayudarlo a conectarse en red cuando esté buscando trabajo.
  2. Conéctese en línea y comience a hurgar en lugares como github donde puede encontrar ejemplos de otras personas. Hay muchos sitios como este, pero puede depender de los idiomas que use. Así que comienza en Github y ve a dónde te lleva eso.
  3. prueba las cosas por tu cuenta. Hace poco contraté a una mujer que era artista gráfica pero que realmente quería ser programadora. Ella vino a la entrevista con tantos ejemplos de código para mostrarme que ella misma se había desarrollado, podía explicarme el código, podía decirme fácilmente cómo aprendió a codificar y, francamente, eso me impresionó. Mostró todos los rasgos anteriores. ¿A quién le importa la educación que tiene? Ella lo va a resolver. Ella ha demostrado ser exactamente eso.

¡Buena suerte!

Anímate, no eres un mal programador, solo necesitas un poco más de práctica, nadie se convirtió en profesional en un solo día, la persistencia es la clave. todo lo que tienes que hacer es aprender más Si decides ir a aprender por ti mismo, aquí hay algunos consejos:

Encuentre un mentor : el mundo del software es grande y hay muchas cosas que puede encontrar en Internet al respecto, para ser sincero, hay demasiado y es difícil saber por dónde empezar. Encuentre a alguien que haya estado en la industria por un tiempo y que se mantenga actualizado. Define un plan con esta persona sobre lo que debes estudiar

Haga que revisen su código : por lo general, hay muchas maneras de lograr algo y muchas formas muy malas. Si bien Internet está lleno de grandes recursos, está lejos de ser perfecto. Asegúrese de pedirle a su mentor que revise su trabajo de vez en cuando, para que no esté aprendiendo de la manera incorrecta.

Practique con algo significativo : seguir los tutoriales tiende a ser molesto, una vez que se sienta lo suficientemente cómodo con una tecnología, intente idear una idea de proyecto personal en la que tenga que usar lo que esté aprendiendo. Eso te ayudará enormemente a mantenerte motivado y a estar orgulloso de ti mismo. Recuerde que PUEDE HACERLO, es una cuestión de tiempo y perseverancia, pero el camino puede ser largo. Para ser un gran ingeniero de software, necesitarás 3 habilidades:

1. Conocimiento de la pila completa : las aplicaciones de software son sistemas complicados compuestos por muchas tecnologías y partes: frontend, backend, base de datos, servidor web, red. Por ejemplo: cambiar una consulta en el frontend afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos, la consulta podría hacer que el sitio no funcione. Estructura de datos y algoritmos Programación de alto nivel (lenguajes de programación orientados a objetos) Administración del sistema y un poco de redes. Con esto, un ingeniero de software podrá navegar por casi cualquier sistema / aplicación y podrá tomar una decisión de ingeniería bien pensada.

2. Poder aprender solo : los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las que cambian más rápidamente, por eso necesita actualizar constantemente la aplicación de su teléfono inteligente y que sus sitios web favoritos traigan constantemente una mejor experiencia y características. En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que les ayudarán a hacer su aplicación más rápida, mejor y más confiable. Los nuevos lenguajes de programación y las bibliotecas vienen constantemente y uno no puede regresar a la universidad cada vez que surja una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que puedas aprender por ti mismo.

3. Habilidades blandas : a menos que esté dispuesto a trabajar solo, podría ser la habilidad más importante. Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas” porque este libro es muy importante para aprender cómo ser un ser humano exitoso. No puedes imaginarte cómo ser amable con las personas y ayudarles a hacer su trabajo. llevar lejos Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero digamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas. Si puede obtener estas 3 cosas, será un programador increíble y todos querrán Contratarte. Esto es lo que hacemos en la escuela de Holberton. http: //www.holbertonschool.com ¡Buena suerte en su camino para convertirse en un gran programador!

La única vez que me molesté en codificar las preguntas fue en mi universidad y en los exámenes de certificación.

Los exámenes en línea tratan sobre la memorización de curiosidades de sintaxis , nombres de funciones específicas y límites codificados. En la práctica, realmente no es necesario poder citar todo el manual de un lenguaje de programación de forma consecutiva mientras se crea una aplicación de software.

La programación consiste en resolver problemas de negocios a través de algoritmos. Nada menos, nada más. El desarrollo eficiente y elegante se suma a eso mediante la introducción de convenciones, patrones de diseño, estructuras de datos y algoritmos óptimos.

Y la programación es una pieza del rompecabezas de toda la pila técnica . Piense en la arquitectura de su computadora y el sistema operativo instalado. La capa de red también. Y todas las utilidades, servidores, herramientas, bibliotecas, demonios que se ejecutan en la parte superior.

Es por eso que Stephen M. Bear le ha sugerido que se ponga al día con las ciencias de la computación y el currículo de los programas universitarios y universitarios estándar. Si bien la teoría en bruto no tiene mucho sentido en clase, es primordial al crear aplicaciones del mundo real.

El resto se trata de resolver tantos problemas como sea posible.

  • Construye proyectos de mascotas.
  • Contribuye a diferentes aplicaciones y plataformas online.
  • Envía código a proyectos de código abierto si estás preparado para ello.
  • Desarrolle extensiones, herramientas, bibliotecas, complementos o módulos para aplicaciones existentes.
  • Juega con diferentes frameworks y tecnologías dentro de tu pila técnica.
  • Resuelve tantos problemas como sea posible.

El desarrollo profesional de software depende del aprendizaje experiencial a través de diferentes casos de negocios que requieren la automatización del software. Después de haber aprendido a través de la práctica, podrá colaborar con otros desarrolladores, realizar revisiones de código de pares, centrarse en la seguridad, el rendimiento o la estabilidad. Puedes incursionar con patrones de diseño y patrones arquitectónicos.

Pero todo comienza desde la práctica y el aprendizaje continuo mediante la programación .

La respuesta es: seguro que puedes!

Simplemente no estoy seguro si practicar preguntas de codificación es la forma correcta de lograrlo. Si fuera tú, me concentraría en escribir código y tratar de enfrentar nuevos desafíos de codificación.

En general, la práctica es tu única herramienta!

Cuando mire el código que ya ha escrito y elija nuevos proyectos, recuerde:

  1. Código limpio es código rápido
  2. Siempre piensa en los que te persiguen.
  3. El código bien estructurado se trata de cómo los diversos objetos en una base de código de software pueden colaborar entre sí .
  4. pregúntese: ¿qué tan fácil es leer y entender el código y su propósito ?
  5. El código que es estable no causará volcados cortos .
  6. pregúntese: ¿con qué facilidad se puede adaptar el código a las condiciones cambiantes o qué tan fácil es agregar nuevas funciones?

Espero haberte ayudado 🙂

¡Los mejores deseos del equipo de Inwedo!

Se resalta un punto vital: el IDE moderno y los entornos que esconden la computadora. Para bien y para mal. Un lenguaje debería ocultar la computadora, en mi opinión torpemente humilde, pero un entorno de programación nunca debería.

Este es particularmente el caso de quienes usan Visual Studio de Microsoft, que es un entorno bastante rico.

Asi que:

  1. Utilice un editor de texto más simple. Recomendaría aprender Emacs, pero cualquier editor más o menos simple lo haría.
  2. Familiarízate con tu concha. Preferiblemente, un shell similar a Unix, pero en el peor de los casos, es posible que tenga que sufrir a través del CMD de Microsoft. Sugerencia: al menos actualice a PowerShell o, preferiblemente, use Cygwin para imitar una experiencia de shell similar a Unix.
  3. Utilice las herramientas de línea de comandos para el idioma en cuestión, para compilar y ejecutar ejecutables; Esto incluye familiarizarse con las herramientas gcc , java , javac , mono o Microsoft .NET. Pero, esto es importante: solo use las herramientas de la línea de comandos para todos los pasos para crear y ejecutar su hermoso código.
  4. Empezar desde el principio; Con programas sencillos. Hola mundo al principio.

Una vez que sienta que realmente comprende tanto el código como el flujo de la cadena de herramientas, puede volver a los entornos ricos (y sofocantes, a veces), como Visual Studio, Eclipse, etc.

No te castigues; La mayoría de los programadores profesionales (como yo) son inútiles sin un IDE, un depurador y una pestaña útil abierta para Stack Overflow. Ninguna de esas cosas importa porque hay demasiado en su lenguaje de programación promedio para que una sola persona pueda memorizarlo por completo. La mayoría de ellos están cambiando constantemente de todos modos. Ser un buen programador tiene que ver con la práctica.

Pero cuando digo que se trata de práctica, es posible que no aprecies lo que quiero decir. Me refiero a que ser un buen programador se trata de pasar doce horas tratando de resolver un problema solo para descubrir que era una coma que faltaba. Se trata de cometer exactamente el mismo error una semana después. Está cometiendo todos los errores que se pueden cometer, una y otra vez, golpeando su cabeza contra ella y nunca rendirse hasta que empiece a sentir los patrones. Hasta que tus instintos comiencen a decirte qué funcionará y qué no funcionará antes de que comiences a codificar.

Las habilidades más valiosas que un programador puede tener son:

  • Ser capaz de leer el código de otras personas.
  • Ser capaz de averiguar por qué algo no funciona (incluso saber cuándo pedir ayuda)
  • Ser capaz de hacer cambios en un sistema complejo.
  • Poder escribir / diseñar un sistema complejo para que sea fácil de leer, descubrir qué es lo que está mal y hacer cambios en

En aproximadamente ese orden. Practicar las preguntas de codificación en línea le ayudará, pero mientras más pronto practique trabajar con grandes colecciones de código, más rápido adquirirá esas habilidades. Los proyectos de código abierto son un buen lugar para obtener ese tipo de experiencia. También puedes llegar a trabajar en tus propios proyectos, siempre que sean más grandes que los juguetes y les hagas muchos cambios.

¡Buena suerte!

Parece que en estos días hay mucho énfasis en aprender a codificar a través de recursos en línea. Creo que practicar con preguntas de codificación en línea solo puede ayudarlo a un determinado punto.

Convertirse en un mejor programador es un ejercicio primero para convertirse en un mejor solucionador de problemas. Una vez que entienda el problema que está tratando de resolver, entonces es cuestión de traducirlo a la mejor solución posible que pueda implementarse en el código, dado el marco en el que debe ejecutarse el código. Hay muchos dominios / subdominios problemáticos y a menudo cientos a miles de problemas individuales discretos que deben resolverse dentro de cada dominio. Por supuesto, hay habilidades básicas de codificación que se aplican a toda la programación en prácticamente todos los dominios de problemas.

Si está teniendo dificultades con las habilidades de codificación básicas, la mejor manera de mejorar es tomar cursos de programación de nivel inferior en persona en una universidad local o en el Community College. Encuentre un compañero de estudio o grupo para que puedan aprender juntos. Una de mis mejores experiencias tempranas como estudiante universitario fue trabajar con un compañero de estudio en un curso de programación avanzada. A veces nos quedábamos despiertos toda la noche trabajando manualmente mediante la lógica de decenas de páginas de código (esto fue en 1981, antes de que los alumnos tuvieran PC). Después de un semestre haciendo esto, mis habilidades de programación se triplicaron y pude aprender los conceptos básicos de un par de nuevos idiomas rápidamente.

Después de mejorar sus habilidades básicas, pase a las estructuras de datos y algoritmos . Estos son los componentes básicos de toda la programación moderna y proporcionan las herramientas fundamentales para resolver una gran cantidad de problemas en el código. Más allá de esto, necesitará habilidades de base de datos y algunos conocimientos prácticos sobre uno o dos sistemas operativos modernos y conectividad de red, etc. Con todo esto en su lugar, puede concentrarse en resolver problemas del mundo real.

Los programadores profesionales a menudo pasan muchos años enfocados en un dominio de problemas específicos como finanzas / banca, manufactura, ciencias de la vida, desarrollo de software de sistemas, desarrollo web, desarrollo de juegos, etc. Hay subdominios dentro de todas estas áreas. Por ejemplo, puede convertirse en un administrador / arquitecto de bases de datos y pasar una década o más de datos de modelado para una gran división de negocios. Cada una de estas áreas requiere experiencia extensa y profunda más allá de las habilidades de programación.

También es bueno conocer el conocimiento teórico de las ciencias de la computación y puede ser esencial dependiendo del dominio del problema en el que trabaja un programador.

Al principio me centraré en la segunda pregunta y luego responderé la primera pregunta.

Por favor, perdónen mi inglés: lo estoy aprendiendo durante 15 años y todavía no puedo escribirlo lo suficientemente bien, sea lo que sea. Siempre fui tímido al respecto y no lo usé debido a la ansiedad de rendimiento. Aunque últimamente comencé a practicarlo y esa es la razón por la que respondo la pregunta

Cuando comencé a aprender a programar en la escuela primaria, en general me consideraba un buen programador con potencial para ser un gran programador. Nunca lo dudé, es decir, creé serpientes, arkanoides y pong a la edad de 13 o 14 años (hace 16 años), uno de los cuales tenía casi 1000 líneas de código. Piénselo, hombre, Arkanoid tenía 1000 líneas de código y una clase que se instancó 50–100 veces y podía reproducir mp3 en el fondo. Y tuvo editor WYSIWYG. Y el código verificó cada bloque 60 veces por segundo, lo que equivale a 3000 cheques por segundo. Estaba a 2 años de trabajar para Microsoft. ¿Suena divertido? No debería.

Justo antes de la secundaria, investigué olimpiada en informática, porque ¿qué tan difícil puede ser? He leído algunos problemas, no pude pensar en una solución, así que simplemente me encogí de hombros. Luego me fui a la preparatoria y vino la olimpiada real.

Hay tres etapas de la OI. La primera etapa la estás haciendo en casa, teniendo 4 semanas y 5 problemas o algo. La segunda etapa es muy similar desde el punto de vista de los problemas: la misma dificultad, las mismas reglas de evaluación, etc., pero tienes que ir a la universidad local y al código en el sitio. Hay dos días; al comienzo de cada día, conoce 2–3 problemas y tiene 5 horas para codificarlos. La tercera etapa es la misma que la segunda. 5 semanas vs 10 horas es para llevar básico.

En la primera etapa lo hice bastante bien, sin embargo, requería una cantidad de tiempo monstruosa, ya que pasaba fácilmente de 4 a 6 horas al día durante 4 semanas completas. Intenté no pensar en cómo voy a comprimir eso en 10 horas. Como era de esperar, la segunda etapa fue un desastre total.

No fue una realización repentina, pero poco a poco me vino a la mente lo mucho que no sé. Otras personas pudieron pensar en soluciones y codificarlas teniendo solo 5 horas, mientras que yo apenas pude pensar en una solución para un problema durante todo un día. Sin mencionar el código. El “Cormen”, que tenía 1000 páginas, era muy difícil de leer, y solo enseñaba lo básico. Algunas veces tuve que revisar el capítulo 5–10 veces o leer la página 5 veces. Si los conceptos básicos son difíciles, ¿cómo podría ser posible combinar esos conceptos básicos en un algoritmo complejo? Ese fue mi pensamiento en ese momento.

Recuerdo el sentimiento de resignación desesperada. Parecía muy difícil, casi inalcanzable y las personas que podían hacerlo me parecían una raza diferente de personas. En este momento realmente creí que no era apto para eso y nunca seré capaz de entender los algoritmos, por no mencionar combinarlos para resolver el problema. Aunque me comprometí y decidí continuar (también tuve una * tonelada * de apoyo)

2 años después (y bastante trabajo) logré la medalla de plata en OI, de lo que estoy muy orgulloso hasta el día de hoy. Más tarde en la universidad fui bastante bueno en las competiciones.

Fui Good Programmer (r) que creó Good Code (r) de nuevo. Podía pensar en algoritmos y mezclarlos libremente, pude codificar de forma rápida y precisa. Fui reconocido localmente en la Universidad. No podía creer que fuera tan estúpido pensar que Arkanoid me hizo un buen programador (r), de alguna manera era embarazoso. El arkanoid era realmente malo: para la detección de colisiones, comparaba todos los bloques de cada cuadro, lo que no tiene ningún sentido. Yo despediría a esa persona. De todos modos, yo era un buen programador (r).

Entonces, espero que lo hayas adivinado, en alguna ocasión tuve otro problema que me hizo pensar “bueno, realmente no sé cómo codificar”, el mismo sentimiento de desesperanza. Dunning-Kruger me consiguió de nuevo, eso es vergonzoso. Pero fue diferente esta vez, simplemente lo absorbí y comencé a aprender.

Entonces otra vez, y otra vez.

Entonces me di cuenta: eso es solo una parte del intercambio. Si no estás ocasionalmente bajo el agua, significa que no estás evolucionando. Si no estás evolucionando estás aburrido, que es mucho peor que estar bajo el agua. Por fin para mi

En 10 años, espero ver la corriente y pensar “wow, apestaste”. A pesar de que probablemente dolerá, todavía lo espero.

Así que es una buena sensación tener que estar bajo el agua o descubrir que no estás cumpliendo tu ideal. Siempre y cuando no te hunda, porque eso es posible. El pánico y la ansiedad ante el rendimiento son cosas reales.

No debes sentirte bajo el agua todo el tiempo, porque eso te está desgastando, pero creo que 50–50 es una buena proporción. Tal vez sea 10–90, o tal vez 90–10. No lo sé, probablemente sea personal.

De todas formas.

¿Puedes mejorar? Bueno, probablemente puedas, sin embargo, la pregunta más interesante es si deberías? O: “¿Puedo convertirme en un programador razonablemente bueno en un tiempo razonable?”. Y la respuesta que creo es: no sabemos. En primer lugar, todo es subjetivo. Tienes que definir el tiempo razonable y el programador bueno razonable para ti. Puede ser difícil juzgar, por eso traté de darte un contexto.

Es una posibilidad que la programación no sea para ti. Personalmente creo que no somos aptos para todo. Es decir, podemos mejorar en cualquier cosa, pero es probable que haya un límite individual y una tasa de aprendizaje. Si tardé 50 años en lograr algo que “normalmente” lleva 5 años, simplemente no vale la pena, porque hay mejores opciones para mí.

Sin embargo, a partir del conocimiento muy limitado que tenemos, parece que está programando, lo que representa aproximadamente el 50% del éxito. Y las cosas más importantes de todas: puede ver sus defectos y aceptarlo. Eso me parece algo bueno y * raro * para mí.

Solo tenga en cuenta que algunas cosas tardan años en aprenderse y son, tan simples como eso, difíciles.

Buena suerte;

Aprendí a programar sin depuradores e IDE. De hecho, aprendí en la década de 1970 cuando nuestra escuela secundaria no tenía computadora. Escribimos nuestros programas en papel, enviándolos por correo postal al centro de cómputo regional, quienes los perforaron con tarjetas perforadas, los enviamos a una impresora y enviamos por correo la copia impresa resultante a la escuela.

Eso ciertamente me hizo más cuidadoso, y pensar mucho en el código que estaba escribiendo.

Pero no estoy seguro de que trabajar con IDE y con el depurador sea realmente responsable de sus problemas.

Mi consejo habitual es que una vez que se sienta cómodo con el lenguaje de programación y conozca los principios básicos de asignación, bucles, si / else, funciones, arrays y estructuras, lo próximo que debe hacer es presentar un proyecto que quiero hacer. Algo que va a tomar mil líneas de código, no 50.

En general, recomiendo escribir un juego simple … tal vez más de uno.

Lo que esto hace es evitar que te centres en el pequeño problema que podría plantear una pregunta de codificación, y pensar más en el panorama general. ¿Cómo * escribirías * algunos juegos simples como Hangman o TicTacToe? Entonces, ¿qué tal algo con unos gráficos simples como Pong o Breakout?

La programación real no se parece mucho a las “preguntas de codificación”, y esas solo pueden llevarlo muy lejos.

Sí, la práctica te hará mejor. Eso es prácticamente un hecho, independientemente de lo que practiques.

Antes de que decidas practicar, primero debes preguntarte: ¿es realmente malo lo que soy malo respecto a lo que quiero hacer? Esta es siempre una buena pregunta para hacer acerca de cualquier prueba, ya que las pruebas no miden realmente lo que pensamos que están midiendo.

El hecho de que no haga bien las preguntas de codificación no significa que sea un mal programador. Simplemente puede significar que eres malo respondiendo preguntas de codificación.

Nunca he intentado hacer preguntas de codificación en línea. No tengo idea de si les iría bien o no, pero tampoco me importa. Como desarrollador de software, mi enfoque es crear software útil que satisfaga a los usuarios de ese software. Tengo que entender lo que quieren y construir una solución que los haga felices. Lo he hecho durante muchos años, así que sé que soy bueno en eso.

A veces, me encuentro con problemas a nivel de código, cuando intento descubrir la mejor manera de realizar alguna tarea específica. Si no puedo hacer eso, busco respuestas, encuentro una que haga lo que quiero y la aplico. Soy bueno haciendo eso. No necesito saberlo todo, tengo la respuesta a cada problema de codificación, porque alguien más ya lo tiene.

Por lo tanto, antes de juzgarte a ti mismo por lo bien que lo haces con los problemas de codificación, pregúntate “¿son estos problemas relevantes para lo que hago en mi vida de programación habitual?” Solo si la respuesta es “sí”, debes continuar con el siguiente pregunta: “¿realmente necesito poder responder estas preguntas directamente de mi conocimiento, o simplemente puedo encontrar los recursos que necesito para responderlas?”. Con la frecuencia que no, no necesitará la respuesta, Sólo hay que ser capaz de encontrarlo.

Sí. Francamente, todos empezamos con malas prácticas. La programación es una habilidad adquirida, y necesitas tiempo para nutrirla.

No te preocupes, te sientes así cuando comienzas algo nuevo, pero gradualmente serás bueno en eso. Comience con lo básico y suba la escalera con conceptos de uy, patrones de diseño, diferentes enfoques de programación. Give Exercism.io: tutoría de código de origen público. un intento. Además, intente comprender el contexto también, ¿por qué está resolviendo un problema en particular, cómo ayuda en el mundo real?

Por último, trate de leer el código de otras personas. Ayuda a comprender el flujo de un lenguaje o marco.

Ser bueno respondiendo “preguntas de codificación” no hará mucho para que usted sea un mejor programador por sí mismo.

  1. Enséñate a ti mismo de informática. Eso le enseñará, entre otras cosas, por qué las respuestas que da a las preguntas de codificación son correctas.
  2. Aprenda muchos lenguajes de programación y utilícelos para implementar programas que sean razonablemente grandes y realmente útiles.
  3. Aprende a escribir pruebas y escribe pruebas para cada programa que escribas. Trate de obtener una cobertura de código del 100% y comprenda los casos en los que no puede obtenerla.

a2a

Definitivamente mejorarás con la práctica. Gran parte de la informática es, por supuesto, bastante difícil con respecto a las matemáticas. Dicho esto, la programación es más una habilidad experiencial similar a la de los bolos.

No necesariamente te compares con aquellos que compiten en competencias de codificación en línea. Muchas de las personas lo están haciendo porque ya están entre las mejores. Eso no quiere decir que no seas empleable.

Cosas que los empleadores esperan de sus buenos programadores:

  1. el tiempo de entrega
  2. funcional
  3. relativamente libre de errores
  4. bien escrito – mantenible

Cosas que los desafíos de codificación en línea muestran sobre los programadores que a los empleadores les importan

  1. ??????

Un buen programador es el que usa sus herramientas. Los depuradores son herramientas. Los IDEs son herramientas. Los marcos son herramientas. Si puedes usarlos para superar tus debilidades, eres un buen programador.

Olvídate de los IDE y trabaja para resolver problemas. Me gustaría agregar que si puede resolver algunas preguntas en línea, está bien, no tiene que convertirse en un genio de la codificación en línea a menos que desee trabajar para Google. Es mejor intentar resolver un problema del mundo real, preferiblemente con escalas, pruebas unitarias y evaluaciones comparativas. Esto podría potencialmente proporcionarle un mejor trabajo trabajando con personas que no dependen demasiado de sus IDE.

En realidad, suena bien. Se ha graduado de ser un principiante a un programador intermedio con esta realización. Has cruzado el umbral de saber lo poco que sabes. ¡Esto es motivo de celebración!

Sí, continuarás mejorando si sigues programando. Vea si puede encontrar un mentor que lo guíe y le brinde críticas. Ahora que reconoce sus limitaciones, puede encontrar otras personas dispuestas a ayudar, incluso si se negaron antes.

Es parte del proceso. Ya estás en camino de convertirte en un gran programador, ¡no te rindas ahora!

El consejo habitual es resolver partes más pequeñas del problema de una sola vez. Puede ser difícil entender todo bien, pero en computación hay un truco llamado refinamiento paso a paso que le permite simplificar los problemas de una manera estructurada que producirá los mismos resultados que resolver el todo.

Domina el refinamiento paso a paso y puedes reducir cualquier cosa en piezas que puedas resolver fácilmente. Si estás luchando para ir a la lógica, haz que te llegue la lógica.

Creo que el hecho de que te des cuenta de que puedes hacerlo mejor es, en mi opinión, el rasgo más importante que puede tener un programador. Te recomiendo que vayas a Codecademy: aprende a codificar, de forma interactiva y gratuita, obtén el conocimiento de los conceptos de programación y el conocimiento de la sintaxis de un lenguaje como Python. El 99% de la programación está traduciendo el problema a un modelo de solución que puede implementarse en el idioma que elija. Una vez que entiendas los conceptos y la sintaxis, tus habilidades aumentarán. Si quieres más habilidades lee más libros y recursos en línea.

Creo que estás siendo demasiado duro contigo mismo. Dudo que muchas personas comiencen a enfrentar esos desafíos en línea; están destinados a ser duros Lo que debe hacer es mirar los problemas, deconstruirlos y luego relacionar cómo las respuestas del modelo que se proporcionan a menudo en esos mismos sitios resuelven el problema. Entonces empiezas a hacer conexiones y la lógica se aprende y, de repente, empiezas a progresar para hacer esos desafíos.

¡No, estarás atrapado como un mal programador para siempre!

(Es una broma)

La práctica definitivamente te hará mejor. Recuerde que siempre habrá gente mejor que usted y siempre preguntas para las que no sabe la respuesta.

Todo lo que puedes hacer es tratar de aprender todo lo que puedas, si haces esto, no hay duda de que serás mejor. (Incluso si crees que no eres tan inteligente)

Recomiendo leer libros de texto para mejorar tus habilidades, o hacer desafíos en Hacker Rank

¡La mejor de las suertes!