¿Es posible convertirse en un buen programador sin tomar una clase funcional de programación o algoritmos?

Sí, puede convertirse en programador sin conocer programación funcional o algoritmos.

Sin embargo, si quieres convertirte en un buen programador, debes conocerlos.

Los algoritmos consisten en pensar la solución de un problema, la complejidad del tiempo y el espacio, etc. Son una parte importante de la programación y se enseñan durante los años universitarios. La razón por la que se usan es principalmente porque aprende algunas cosas nuevas y mejora su pensamiento lógico al encontrar una solución nueva y más eficiente para problemas de la vida real.

Puede desarrollar web sin tener que conocer algoritmos. Es bastante fácil En ese caso sería simplemente programación.

Pero para escribir un buen software, saber cómo resolver el problema es imprescindible.

Si puede escribir en pseudocódigo o diagrama de flujo, significa que ha entendido el problema y sabe cómo resolverlo. Esto es muy importante en el campo de la escritura de software y ha completado el primer paso. La implementación también es muy importante y debe usar las herramientas adecuadas para hacerlo.

Creo que no debe omitir estas clases, aunque puede programar sin ellas.

Puedes aprender estos cursos por tu cuenta, pero creo que será difícil.

Incluso si no necesita estas habilidades en el futuro, cuanto más sepa, mejor.

“Saber es poseer”.

Un ejemplo que me gustaría mostrar es sobre nuestros estudiantes en la Escuela de Ingeniería de Software de Holberton. Holberton School ofrece un programa de educación superior de dos años en San Francisco, para convertirse en un ingeniero de software y operaciones altamente calificado, a través del aprendizaje basado en proyectos y entre pares.

A medida que el mundo cambia cada vez más rápido, nuestro objetivo no es enseñar a nuestros estudiantes lenguajes de programación, marcos o herramientas específicos, porque nadie puede predecir lo que necesitarán saber mañana.

En cambio, la escuela Holberton enseña a resolver problemas . Los estudiantes aprenden todo lo que necesitan para lograr un objetivo. Encuentran soluciones a problemas utilizando recursos fuera de línea y en línea, imaginación, creatividad y comunicación. Al hacerlo, podrán adaptarse más rápido a los desafíos desconocidos que enfrentarán en su carrera.

Como se ha insinuado, la programación es un campo muy amplio. Las habilidades específicas que necesita dependerán del área en la que desea especializarse: interfaces de usuario, servidores web, bases de datos, controladores de dispositivos, etc. Cada una de estas requiere diferentes conjuntos de habilidades. Podrías comenzar a tratar de aprender todas estas áreas de programación por ti mismo, pero sospecho que tomaría mucho más tiempo que tomar una clase con un buen (y quiero decir, experimentado en la industria que también es un buen mentor).

Además, la pregunta es “¿qué es un buen programador?”. Si con eso te refieres a ser competente, te sugiero que un instructor experimentado también sea útil, ya que te llevará mucho tiempo cometer todos los errores que otros han cometido para que descubras lo que el entorno de programación te permite hacer y lo que es bueno (a diferencia de lo que puede hacer pero es una mala práctica). Un instructor (ya sea en persona o en línea) puede darle orientación sobre qué hábitos puede tener que podrían ser buenos o malos.
——————————————————-
Después de seguir la discusión desde la primera vez que puse mi valor de 2p … También me gustaría señalar que hay mucho software malo por ahí. El software a menudo llega tarde, a menudo cuesta (a nivel de producción) más de lo esperado (estimado). Eso debería dar alguna pista de que escribir software (buen software, de todos modos) no es tan fácil. Por lo tanto, desconfiaría de cualquiera que sugiera una bala mágica, como sentarse y aprender a programar.

El software es muy flexible, por lo que elimina parte de la disciplina externa que proviene de las leyes de la física en áreas como la ingeniería de hardware. Siempre puede agregar una solución tras otra a una solución / diseño de software defectuoso. Así, la disciplina tiene que venir desde adentro.

Si uno usa diagramas de flujo o pseudocódigo o UML o cualquier otra herramienta, el hecho es que la parte difícil es comprender el problema. Sin comprender el problema, escribir software es muy difícil, aunque muchas personas parecen pensar que han podido hacerlo. Luego, aun habiendo entendido el problema, deben conocer las herramientas disponibles para implementar una solución. Puede, por supuesto, aprenderlos todos por su cuenta, pero a menos que sea un genio (y ese hecho es que la mayoría de nosotros no lo somos, no todos podemos estar por encima del promedio, después de todo), le llevará tiempo explorar Todas las herramientas disponibles. Peor aún, al no conocer las herramientas y su relativa utilidad en diferentes situaciones, podría, si es objetivo, encontrarse dando el mismo tiempo para aprender cada herramienta, cuando en realidad no todas tienen el mismo valor para el dominio del problema en el que se encuentra. .

Entonces, la respuesta corta es que, si bien los genios * pueden * convertirse potencialmente en buenos programadores por autoaprendizaje y práctica, la mayoría de las personas no lo harán. Es posible, por supuesto, pero requiere un cierto grado de autocrítica y rigor y tiempo que la mayoría de las personas no tienen. No digo que no sea posible, pero está haciendo el trabajo mucho más difícil y, probablemente, más lento de lo que sería de otra manera.

Respuesta corta, si.

En realidad, se reduce a lo que define con un buen programador, pero vamos con un buen programador que puede escribir código rápido y eficiente.

Lo que se enseña en las clases típicas de programación funcional y algoritmos es contenido fácilmente disponible en Internet.

Solo necesita saber dónde buscar el contenido que necesita. La mayoría de los algoritmos que se enseñan en los cursos de CS se pueden encontrar en Wikipedia, y la programación funcional puede ser autodidacta con la gran variedad de tutoriales disponibles para lenguajes funcionales como Haskell.

Tomé ambos cursos en mi escuela y aprendí mucho en ambos, pero como dije, el contenido de ambos puede ser autodidacta.

Sí, las clases están sobrevaloradas. Sin embargo, no puedes ser un buen programador sin estudiar programación. También es útil estudiar con alguien que realmente conozca la programación, en lugar de algún profesor universitario (o un asistente de enseñanza más probable) que pueda o no tener idea.

Su mayor responsabilidad es aprender malos hábitos de codificación y perder el tiempo haciendo cosas que podría haber evitado. Pero, esto vuelve a la forma en que adquieres un lenguaje de programación. Y, debes comenzar de a poco y construir.

Hay recursos asombrosos en Internet para esto. Hay programas de instrucción en la forma de cursos en línea, pero estos también son cuidado del comprador. Al final, codificar una serie de proyectos más complicados y encontrar un compañero / mentor son los mejores pasos.

Las escuelas funcionan, especialmente para el desarrollo corporativo, pero por cualquier cosa que hice, lamenté contratar a cada graduado de la universidad, aunque amaba a estas personas como personas, como codificadores, fueron una pesadilla.

El gran problema es cómo demuestras que sabes un idioma en un nivel “profesional”. Y, una vez más, a los ojos de los codificadores, la prueba está en el budín, no en el tonto certificado.

Aprenda a documentar su código y la disciplina para hacerlo. Esta es la clave, cualquiera que lea su código verá primero este aspecto o la falta de él. Al igual que en la película “La red social”, en última instancia, los codificadores son juzgados por su capacidad de producir código que funcione, que sea utilizable en situaciones compartidas, y a menudo bajo presión. Aunque las “pruebas” que llevaron a cabo en la película fueron probablemente una licencia más poética que la realidad.

Normalmente contraté solo por recomendación. E, incluso entonces, tenía que pasar la primera semana, antes de saber si tenía una posición real.

Si. Pero tendrías que estudiarlo todo tú solo. Es mucho más fácil convertirse en un buen programador.

Es como “¿Es posible convertirse en un buen músico sin aprender a leer la notación musical”. Claro, en teoría. Pero en la práctica, pocos no lo logran sin comprender los fundamentos.

Depende de lo que quieras decir con “un buen programador”. Si solo desea crear sitios web o escribir una interfaz de usuario para aplicaciones de teléfonos inteligentes, entonces la programación funcional y los algoritmos no serán necesarios. (No menospreciar a las personas que hacen esos trabajos; son difíciles a su manera).

Pero la mayoría de las personas definirían a un buen programador como alguien que puede encontrar soluciones eficientes para una amplia variedad de problemas (algorítmicos). Si desea convertirse en ingeniero de software, enfrentará este tipo de problemas en las entrevistas técnicas. Por lo tanto, deberá estar familiarizado con al menos los conceptos básicos de una clase estándar de algoritmos de pregrado.

La programación funcional es muy buena y poderosa, pero no es tan utilizada. Creo que puedes sobrevivir sin él (o al menos lo tengo hasta ahora), pero planeo enseñarme a estar más cómodo con él pronto.

Depende de lo que estés programando

Los programadores de ADF, por ejemplo, nunca necesitan aprender programación funcional y algoritmos. Pueden crear aplicaciones web simplemente arrastrando y soltando cosas en su lugar. Puede ser un programador principiante de ADF sin siquiera saber Java. Sin embargo, una vez que comience a ser experto en ADF, se espera que conozca Java y personalice ADF para satisfacer necesidades especiales. Se espera que sepa cómo usar las estructuras de datos comunes disponibles en Java. Nunca se espera que conozca ningún algoritmo, ni siquiera una clasificación rápida

La razón por la que muchos cursos de ciencias de la computación / ingeniería enseñan sus algoritmos y conceptos de programación funcional es porque el curso lo está entrenando para ser un ingeniero, no solo un programador. Le están enseñando conceptos fundamentales que puede usar más adelante. Conocer los algoritmos y poder evaluar el rendimiento de los algoritmos es una habilidad muy importante para aprender si quieres crecer como ingeniero. Si todo lo que quieres hacer es programar, entonces seguro, abandona la clase de algoritmos.

No, no tiene que tomar una clase, pero debe aprender sobre programación funcional y algoritmos.

El paradigma de programación funcional aparece en todas partes. Es posible que no realice una programación funcional real, pero es bueno comprender la idea de datos inmutables y funciones idempotentes. Estos aparecen en la mayoría de los proyectos, como mínimo en scripts de implementación. La programación declarativa, como las configuraciones y los gustos de Puppet, es esencialmente un enfoque funcional. Cualquier programa multiproceso o multiservidor también se ocupará de la concurrencia, y saber cómo los inmutables resuelven el problema realmente puede ayudarlo.

Ciertamente necesita conocer los conceptos básicos de la complejidad de algortihm. Debe comprender los conceptos básicos de cuánto cuestan los algoritmos. Si bien es posible que no esté haciendo computación altamente orientada al rendimiento, un algoritmo mal elegido puede ralentizar cualquier aplicación. También necesitará buscar algoritmos en algún momento o convencer a alguien de que algo no es realmente posible.

Es posible que alguien sea un buen programador sin darse cuenta de que conoce esta información, pero sin ella simplemente no puede ser un buen programador. No hay necesidad de salir corriendo y tomar clases extendidas sobre el tema, pero ciertamente debe aprender los conceptos básicos y el seguimiento cada vez que vea algo de lo que no esté completamente seguro.

Por supuesto mi amigo. Tiene Internet, tiene stackoverflow, tiene muchos blogs, tiene sitios web de tutoriales, tiene sitios web de control de calidad, tiene IRC, tiene listas de correo, tiene secciones de desarrollador para cada tecnología y API que puede usar en sus aplicaciones o sitios web o softwares. Y si no está obteniendo qué hacer o dónde comenzar, puede hacer preguntas a la comunidad. Después de todo tienes quora. Hay muchos programadores buenos e incluso rockstar en quora.

La Web en sí misma es una clase de programación con códigos de muestra, posibles errores y problemas con algunas tecnologías, herramientas, IDE y lenguajes de programación, experiencias de otros programadores que trabajan en un lenguaje o plataforma específicos, ejemplos de problemas y oportunidades del mundo real. decide tú mismo: ¿Quieres ser solo un consumidor pasivo de la web o creador de contenido rockstar de esta enciclopedia infinita?

Los programadores vienen en todos los sabores. Muchos desarrolladores de UX / frontend pueden seguir toda su carrera sin tener que pensar demasiado en la complejidad algorítmica o la eficiencia del espacio: el campo de la programación es lo suficientemente diverso como para satisfacer una amplia variedad de habilidades y fortalezas.

Dicho esto, si está buscando desarrollar servicios web, sistemas de back-end, aplicaciones nativas o sistemas de almacenamiento de datos, el conocimiento de algoritmos es imprescindible, la programación funcional no lo es tanto, pero no puede dañar.

Si. Muy simple. Es posible que no pueda comprender también el lado teórico. (Ciencias de la Computación).

La programación funcional sigue siendo una de las más queridas entre los geeks porque realmente abstrae los problemas en sistemas completos expresivos y manejables en lugar de depender del contexto de los bits en la memoria durante el tiempo de ejecución y la depuración complicada mediante la inspección de variables.

Los algoritmos proporcionan un lenguaje para hablar sobre el tiempo de ejecución de los programas y comprender cómo las elecciones de diseño pueden afectar el producto. También es útil en el contexto general de la vida, al comprender la diferencia entre el tiempo constante y el tiempo lineal. Lo que realmente se enseña en las clases de algoritmos son las herramientas necesarias para analizar sistemas complicados. Lo que se enseña en las clases de programación funcional es cómo razonar con listas y estructuras de datos de manera abstracta.

Esto es interesante Será un mejor programador.

Debes conocer los algoritmos con seguridad, y la programación funcional de repente se ha vuelto mucho más relevante en estos días con Java 8. Dicho esto, no necesitas aprender nada en el aula, pero definitivamente necesitas aprender el material.

Siempre es posible ser bueno en algo sin tomar una clase. Todo depende de cuán abierto y motivado seas. Nunca debemos limitarnos porque no hemos tomado una clase. Asumir la responsabilidad de su propio potencial y crecimiento. Si el futuro de cada individuo está en manos de otros, entonces todos estamos jodidos.

Por supuesto, los algoritmos son un área muy pequeña de programación, al menos escribirlos usted mismo lo es.

La programación funcional no tiene que ser parte de la programación, si no quiere que lo sea. No digo que no debas hacer FP, pero prácticamente todo el software se ha escrito sin él.

Sí, es posible. También es posible sentarse en un erizo. Pero tampoco es recomendable.

Después de todo, si no toma una clase sobre tales cosas, tendrá que estudiarlas por su cuenta, lo que, aunque es posible, suele ser la forma más difícil de aprenderlo. Y no puede ser un buen programador sin aprender el contenido de una buena clase de algoritmos.

si