A la mayoría de los estudiantes universitarios, “por lo general”, se les enseña un solo lenguaje de programación en detalle, con “comprensible” profundidad y con prácticas que siempre tienen sabor a poco. Esto lo limita cuando se expone a la sintaxis de lenguajes diferentes y este suceso también se percibe en el enfoque que posee, respecto a la solución de problemas diversos, en su desempeño como profesional al terminar los estudios. Dicho en otras palabras, cualquiera sea el problema a resolver, la disponibilidad de recursos siempre será limitada al aprendizaje capitalizado. Cuando la enseñanza intenta abarcar varios lenguajes de manera superficial, la confusión generalizada termina siendo una constante obligada. Por lo tanto para ti, ¿cuántos lenguajes de programación necesita dominar en profundidad un profesional?
-
-
Cada lenguaje de programación fue diseñado, originalmente, para un propósito específico. Por este motivo, tiende a promover una forma de “atacar” los problemas de manera muy propia, muy particular y del mismo modo, esa “manera muy propia” es llevada adelante en la solución de un problema. La comprensión de un sólo lenguaje, promueve soluciones que sólo se acercan a un problema desde una sola perspectiva. Saber varios, te permitirá mirar el problema desde una variedad de perspectivas, donde podrás comparar entre múltiples opciones de desarrollo y la solución para el problema podrá ser seleccionada como la más natural, sencilla y eficiente.
Imagínate, por ejemplo, que todo lo que tienes en tus manos es un martillo. En este caso, tanto los clavos como los tornillos se insertarán siempre bien con ese martillo. Porque aprenderás a hacer eso: a utilizar ese martillo para resolverlo todo. Sin embargo, si también tienes un destornillador, entonces tendrás una solución alternativa para la inserción de los tornillos. De este modo entonces, podrás seleccionar la mejor herramienta para cada tarea en particular. De mismo modo, los lenguajes de programación están diseñados para resolver cualquier clase de problemas mediante una metodología específica, cada uno alentando a los estudiantes (como tú) a mirar el problema desde una perspectiva particular. FORTRAN, por ejemplo, fue diseñado para ayudar a resolver problemas matemáticos. Puede ser un lenguaje ideal a utilizar para la solución de un problema puramente matemático. COBOL fue diseñado para ayudar en la forma de almacenamiento de los datos requeridos por cualquier tipo de negocio y su manipulación.
La solución de problemas suele requerir el conocimiento de varios sistemas de programación
El lenguaje C (originalmente) fue creado para ayudar en la implementación de sistemas operativos (UNIX) y, además de permitir construir aplicaciones específicas, tiene características particulares que le permiten tener acceso o manipulación del hardware que posee el sistema de proceso donde es utilizado. C + +, por su parte, fue diseñado para resolver problemas específicos dentro del lenguaje C, con el agregado de permitir el soporte programación orientada a objetos. Es decir, posee una mezcla de capacidades que permiten resolver problemas además de brindar un apropiado apoyo metodológico. El lenguaje de programación Ada tiene como objetivo proporcionar un funcionamiento fiable, con particular énfasis en las áreas de seguridad, donde se pueda tener una rápida escalabilidad y facilidad de mantenimiento. El lenguaje Java fue desarrollado para proporcionar (también) apoyo metodológico orientado a objetos y a una sencilla portabilidad. Los lenguajes de Script están, en general, diseñados para permitir soluciones muy rápidas a problemas pequeños. De este modo, la lista de lenguajes de programación, y sus características propias, se podría expandir hasta ocupar toneladas de caracteres. Sin embargo, lo que el artículo intenta reflejar es que aprender en forma eficiente una variedad de lenguajes de programación, te permitirá a ti y a cualquier estudiante, analizar las ventajas y/o desventajas de cada uno, a la hora de resolver un problema específico.
Cada lenguaje de programación posee herramientas óptimas para obtener soluciones eficientes.
Un ejemplo muy sencillo de expresar este pensamiento, habla de las listas de elementos dentro de un programa (por ejemplo, un listado con todos los microcontroladores que posees). En el universo posible de soluciones a un problema, podríamos considerar a todas las listas como un conjunto de objetos estáticos que debe tener un número fijo de elementos, o bien como objetos dinámicos que no tienen límites de cantidad. Cualquiera de estas elecciones podría ser (o no) una solución natural para el problema. Por ejemplo, las listas estáticas requieren que el número máximo de elementos se conozca de antemano. Si el número de elementos es un valor fijo durante toda la ejecución del programa, la cantidad de almacenamiento necesaria y utilizada, para manipular esta información, será invariable y estará disponible de forma fiable, ya que tendremos un conocimiento previo de su dimensión. Sin embargo, si el número de artículos (o elementos de la lista) no se conoce de forma previa, o sufre variaciones durante la ejecución del programa, el programador tendrá que seleccionar un tamaño máximo que quizás sea mucho más alto que el número probable de artículos. Así, el espacio de almacenamiento puede ser inútilmente gastado en la asignación de una variable demasiado grande, sólo por prevención de errores.
Vale decir entonces que, las listas dinámicas “se crean en tiempo de ejecución”. Si el número total de elementos que se almacenan no se conoce de forma previa, quizás ésa sea la manera ideal de resolver y trabajar el problema. Sin embargo, por su propia naturaleza, las listas dinámicas pueden crecer en tiempo de ejecución y por lo tanto, los recursos que necesitan siempre son desconocidos y quizás se produzca una condición de error, si la memoria disponible se agota durante la ejecución del programa. Este inconveniente, en ocasiones, puede ser imposible de demostrar antes de la ejecución del programa, especialmente para los sistemas integrados con capacidad de memoria limitada, como puede ser un microcontrolador. De este modo, podemos ver que una simple lista de componentes puede originar problemas si los lenguajes que creemos dominar en forma sólida, no tienen la posibilidad de ofrecernos las herramientas elementales para realizar el trabajo.Fuente: EETimes
Los lenguajes de programación deben aprenderse en forma eficiente para acceder a soluciones rápidas y eficaces
Los lenguajes de programación, por lo tanto, deben considerarse en forma análoga a una caja de herramientas. Cada lenguaje es una herramienta que ayudará a resolver un tipo de problema. Al comparar la solución que ofrece cada herramienta, un estudiante puede seleccionar entre estas soluciones y decidir cuál es el mejor método, para resolver el problema en cuestión. Como mencionamos al comienzo, el martillo se utilizará para el clavo y el destornillador para el tornillo. Este ideal de selección de la mejor solución para cada problema, sólo estará disponible si un estudiante ha estado expuesto a múltiples formas de ver el problema, teniendo la posibilidad de optar por múltiples herramientas de programación. Los estudiantes deben tener la comprensión de una amplia variedad de lenguajes. De este modo, encontrarán soluciones a problemas de diferentes áreas contando con una amplia variedad de herramientas que necesitarán para triunfar en la vida, después de la universidad. Según tu opinión personal, ¿cuántos lenguajes de programación necesita dominar en profundidad un profesional antes de salir al mundo laboral? ¿Existen lenguajes esenciales? Esta realidad, ¿como ha sido en tu caso?. Cuéntanos
-
¿Y tú, qué opinas?
-
#1KernelPanic jueves, 24 de mayo de 2012, 17:09
Yo recomendaría tanto opciones libre como con licencia.
Por ejemplo yo manejo Java, Ruby (muy bueno para aprender POO), PHP y por supuesto C uno de los mejores para aprender a programar. Yo aprendí con C y a partir de este aprendí con los demás lenguajes (obvio comenzando por la lógica de programación)
Actualmente como egresado de una universidad q tiene contrato con microsoft nos regalaron licencias de Visual Studio, y ahi me he enfocado en C# una buena alternativa (paga) para la programación
Aunq recomiendo el Express q también es bueno..,
Jamás Visual Basic - Muy básico no aprende uno la lógica de progrmamación con este lenguaje y tampoco Pascal porque sus enfoq... Leer más -
#2
-
#3
-
#4mdavid_86 jueves, 24 de mayo de 2012, 17:38
Quiero primero que todo resaltar la importancia de este articulo, ya que en la universidad solo me enseñaron un lenguaje(C) y de esta salí con la convicción de buscar un lenguaje, con el cual pudiera realizar todo, pero cuando estas trabajando, te das cuenta que esto es imposible. Ojala pudiera regresar y aprender mucho mas cosas, pero ya esta.
Mi caja de herramientas esta compuestas de Java, C, Python. Con estos se puede hacer casi cualquier cosa.
Pero como el mundo esta cambiando tan rápido me he visto en la necesidad de complementar esos lenguajes y estoy en la tarea de aprender: HTML5, SQL y R.
Muy bueno el aporte
-
#5
-
#6Javier jueves, 24 de mayo de 2012, 17:45
#5 No creo que sea como programador... Por lo menos en España.
-
#7
-
#8
-
#9andrew jueves, 24 de mayo de 2012, 17:58
#1 triste que como "contratado de microsoft" digas que c# es una alternativa paga...en principio porque no conozco ningun lenguaje que tengas que pagar para usarlo y en segunda porque si es por ides...tenés varias alternativas y de calidad para c# - mono( monodevelop), lo de visual basic...bueh!...a mi no me gusta pero decir que no se aprende la logica de programación con un lenguaje es como algo errado no??...
-
#10andrew jueves, 24 de mayo de 2012, 18:00
#3 donde te pagan eso por solo saber c#...en la compañia de tu papa?..o en el juego de los sims?....
-
#11
-
#122312 jueves, 24 de mayo de 2012, 18:15
En mi universidad, una de las partes importantes de mi carrera es programación. Y nos enseñan lenguajes básicos (Según figuran) para aprender; ensamblador, C, C++ y Java. Después nociones básicas de Cobol, de Fortrán, Pascal y Visual Fox Pro. Y por último, profundizar en html, Javascript y .net ...MySQL no lo considero lenguaje de programación, ya que es una herramienta para manejo de base de datos.
Aunque me sigo preguntando, con toda la tecnología de hoy, y lo fácil que se consigue una Ram o un rígido diminuto, ¿Para qué me sirve hacer un if o un for en lenguaje ensamblador?
Antes, para DOS si te puedo entender que había que aprovechar todo al máximo, pero ahora... De ech... Leer más -
#13Lucas jueves, 24 de mayo de 2012, 18:30
Hay un gran software desarrollado por un argentino para aprender a programar,
http://pseint.sourceforge.net/
PSeInt es una herramienta para aprender la lógica de programación, orientada a estudiantes sin experiencia en dicha área. Mediante la utilización de un simple y limitado pseudo-lenguaje intuitivo y en español, permite comenzar a comprender conceptos básicos y fundamentales de un algoritmo computacional. Nacido originalmente como proyecto final para la materia Programación I de la carrera Ingeniería en Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del Litoral, es en realidad un intérprete de pseudocodigo basado en los co... Leer más -
#14asteroide jueves, 24 de mayo de 2012, 18:54
Excelente articulo.. yo pienso que un buen programador debe dser experto en los lenguajes más importantes! yo lo soy y me ha resultado.. igualmente debe saber mucho de LINUX porque eso es lo que está dominando el mundo actual! Saludos! desde la patria más grance.. México!
-
#15Daniel jueves, 24 de mayo de 2012, 18:54
Estudio ingeniería de sistemas en Colombia, en la universidad, en primer semestre estudiamos C++, en el segundo me acuerdo que vimos java, visual.net conectado con bases de datos excel, access, mysql. Me gustaban mas las clases de java que las de visual.net :D, me pareció que en java aprendiamos más de código. En visual solo era arrastrar, labels, buttons, arrastre para todo etc, etc. En el tercero estudiamos php, conectado con pl/sql, Ahora me interesa aprender HTML 5, javascript, por el lado de la base de datos me gustaría aprender Oracle.
El consejo que puedo dar es que para los que estamos estudiando, ingeniería de sistemas, informática o de computación no podemos olvidar los... Leer más -
#16fugaz jueves, 24 de mayo de 2012, 18:58
Para aprender a programar, python es divertido y siempre útil.
Luego especialízate en 2 grupos, más es mucho, menos es arriesgado:
Ejemplo combo 1) PHP+HTML5+CSS3+JQUERY+JSON+MySQL+LINUX
Ejemplo combo 2) JAVA(ECLIPSE)+XML+Sqlite(ANDROID) + OBJETIVE-C (IPHONE)
Ejemplo combo 3) C + que se te de bien (C++ opcional)
Ejemplo combo 4) Ruby+Ruby-on-rails+HTML5+CSS3+JQUERY+JSON+Postgresql+LINUX
-
#18
magallanes jueves, 24 de mayo de 2012, 19:14Las empresas solicita:
a) C# o VB.Net
b) Java (un monton)
c) PHP
Y todos usan javascript para la pagina web.
Ruby y Python pueden ser buenos lenguajes, pero sin empresas que te pidan esto, es poco lo que se puede usar. C++ asi mismo es poco requerido por las empresas. -
#19Meta jueves, 24 de mayo de 2012, 19:36
Con razón que en el curso de CFGS llamado DAI me hacen programar Python, PHP, Java, Visual Basic .net, etc, también MySQL, SQL Server, etc. ASM para 8086, PIC. AWL para PLC siemens. Hay de todo.
Recomeindo bajo mi experiencia, empezar y centrarse en uno. Luego usas el más que te guste o haga falta como el C para microcontroladores en general que usa C casi para todo, incluido Linux. -
#20Gonzalo jueves, 24 de mayo de 2012, 20:05
Actualmente me encuentro desarrollando sistemas SharePoint y tmb toco algo de C# para WebParts Custom.
Hay "lenguajes" que hay que conocer casi por obligación, como JavaScript, JQuery, CSS porque aunque desarrolles sitios web en Java, C#, SharePoint, PHP, etc. también se utiliza CSS, JavaScript, etc.
En lo que a lo laboral se refiere, siempre es conveniente especializarse en un lenguaje, si tenemos conocimientos básicos de 10 lenguajes no dejamos de ser principiantes y tener una base teórica en caso de que lo que desarrollamos quede en desuso.
También entra acá un poco la suerte de que lo que elijas y te guste resulte rentable, p/e en Argentina en este momento tod... Leer más -
#21Julio caceres jueves, 24 de mayo de 2012, 20:19
Si no eres una mente muy madura, en cuanto a conocimiento se refiere(y hablo de conocimiento general) lo mejor para iniciarse es BASIC, pero si eres un estudiante universitario y conoces de metodología de programación, yo sugioro lenguaje C o C++ en su defecto, te abre un mundo de lenguajes basados en su sintaxis como: C#, Java, JavaScript, PHP, objective C entre otros. Aunque lo importante no son los lenguajes, cosa que todos sabemos y razon de esta publicacion, si no el conocimiento de metodologia y paradigmas que poseas a la hora de resolver un problema ya que los lenguajes son solo herramientas.
En cuanto a mi caja de Herramientas son las Siguientes:
Lenguajes de R... Leer más -
Cargando...
-
nuevo comentario
Nombre Campo obligatorio
Email Escriba una dirección de correo electrónico con el formato sunombre@ejemplo.com.
Campo obligatorio
-



