FRIHOSTFORUMSFAQTOSBLOGSDIRECTORY
You are invited to Log in or Register a Frihost Account!

[inf ] base basica de la programacion

 


kyberneees
LOS LENGUAJES DE ALTO NIVEL
los lenguajes han sido desarrollados y el caos viene desde el punto de vista de que los funcionamientos que tienen al interior de su arquitectura, son programas que tienen funciones definidas, cuando uno pretende usar esos lenguajes, no se debe pretender conocer cual es el codigo que le permite a una funcion tener una operatividad.

podriamos considerar que esas funciones estan encapsuladas. encapsuladas desde el punto de vista, que estan definidas para funcionar de una manera, eso en programacion quiere decir que esas funciones tienen codigos formulados a base de algoritmos. (capsulas que tienen los datos y las instrucciones que operan sobre esos datos)
entonces, tenemos una gran coleccion de operadores, que pueden ser usados para operar sobre otra informacion, tenemos por ejemplo el operador de la suma, entonces ese operador por si mismo es solamente una instancia a la funcion (acceso a la capsula)
nota: se hace por el paso de mensajes. ----> que a su vez, tiene tres metodos, 1.-nombre de la funcion requerida 2.-instrucciones a operar 3.- cualquier otro dato
nota extra: esta metodologia, es la metodologia de encapsular funciones, que tambien nosotros podemos usar, ala hora de diseñar nuestros propios encapsulamientos, (capsulas que tienen los datos y las instrucciones que operan sobre esos datos)
entonces cuando hagamos nuestro codigo fuente vamos a darle algun dato a procesar.
ese dato es libre, por que no tiene un operador asociado, sino que al contrario estan echos para que un operador pueda trabajar con esos datos.
nota: los operadores de un lenguaje de programacion trabajan con datos. por lo que al estar encapsulados, son invariables.
sin embargo los datos estan encapsulados (OJO) :funciones internas, que hacen posible la existencia de esos datos.
existe entonces un conjunto de coleccion de tipos de datos dentro del programa.
Cada tipo de dato, de ese conjunto de tipos de datos, contiene una estructuracion que le ha sido asignada para que tengan una propiedad para poder ser manejada por un operador determinado o que varios tipos de operadores tengan la capasidad de manejar ese tipo de datos.
por ejemplo la propiedad del dato variable: es tener una longitud determinada de numeros.
la propiedad de los datos string: es tener una cadena de caracteres (letras)
la propiedad de los numeros reales: es tener una cadena de numeros indefinidos.
la propiedad de los numeros decimales: tener la capasidad de puntos decimales.


estos tipos de datos son del tipo linea de codigos de texto.

hay tipos de datos que pueden ser definidos por el programador: como por ejemplo, convertir un archivo grafico en un tipo de dato a manejar, o un clip de sonido, etc (que seria en un lenguaje de programacion que entienda el uso de ese tipo de objetos=datos, por lo que se tendrian que encapsular, como en flash puedes encapsular un grafico para que tenga funciones como el choque con otro objeto grafico y provoque una reaccion)


1.-estos datos pueden ser definidos para ser creados por un operador previo algoritmo diseñado(generar resultados) por ejemplo para dar una cotizacion, una calificacion, et

2.-los datos que pueden ser introducidos por el usuario.

3.-estos puede ser definidos para ser usados como constantes (invariables) que pueden ser usados por ejemplo en la etiquetacion de botones, representacion de un dato estatico sin funciones como es el texto de una presentacion, es decir, que se le dice al programa que esos datos:

no son parte de un algoritmo, solo son a manera ilustrativa.

>
>
>

ademas tenemos que darle operaciones de rutina que son las funciones propias de un programa,
por ejemplo esas rutinas son, que el programa vaya leyendo el codigo desde la primera linea, y que conforme le vayan apareciendo las instrucciones (osea el codigo fuente), las vaya procesando.


-tambien cuando hacemos un programa y este se compila en un unico archivo, ahi podemos ver que se exportan las capasidades de portabilidad de un programa, quiere decir que podra ser ejecutado en un sistema operativo, por ejemplo unix, linux, windows, dos, msdos, etc.
cuando realiza la portabilidad entonces el compilador de nuestro programa, va a realizar las operaciones de escribir codigo, para que se anexe a nuestro programa, para que pueda instalarse dentro del sistema operativo que estemos usando.
SkateJack
No entendí mucho el sentido de este tópic...

Por el título y por lo que tu comentas, creo que lo que intentas hacer es darle una base de programación para aquel newbie que no sabe nada ó casi nada...

Pero creo que lo estás haciendo de la manera equivocada... Si bien lo que comentas es real, me parece que está demasido confuso y no me parece algo "básico".
No es algo para comentarle a alguien que no sabe nada... Posiblemente no le importe como funcionan los operadores, ni como funciona la función (valga la redundancia) gotoxy(); por dar un ejemplo...

Espero que no lo tomes a mal y expliqués el sentido del tópic...

Saludos Wink
kyberneees
el inicio mas basico

hola que tal, aqui podras iniciarte junto conmigo, al interesante mundo de la programacion, como te podras dar cuenta, existen muchos tipos de programas y muchos tipos de programadores, y nos ha nacido el interes por que la computadora haga lo que nosotros queremos, sabemos que lo que nos restringe son nuestros conocimientos, por eso mismo buscamos informacion para aprender a programar una computadora.
cuando manejamos por primera vez una computadora y no sabiamos que significaba todos esos botones, y tantas imagenes en el ordenador, que a primera vista todo eso nos parecia abrumador,
para esto, quiero suponer que ya has estado relacionado con el uso de alguna computadora, pero si no lo es asi, tengo que decirte que antes de querer programar conoscas un sistema operativo, podria ser el windows, no tienes que conocerlo tan profundamente, pero si tratar captar de el todo lo que te sea posible, conocer que es un directorio, un fichero, un menu, barra de estado, conocer como usar un explorador de archivos y muchas cosas mas, que definitivamente no c aprenden en un dia por mas faciles que sean, pues su dominio requiere de la practica, y entre mas te relaciones podras ir aprendiendo muchas mas cosas.

la metodologia de estudio propio

en la actualidad la mayoria de las personas, usan un sistema operativo como lo es el windows, pero a nosotros los programadores, nos toca hacer un analisis de como funciona una computadora y esto sin duda es de una complejidad tremenda, que no c puede absorver de la noche a la mañana sino que requiere de dedicacion, de una investigacion, de ir ordenando las ideas, tienes que definitivamente aplicar una metodologia del estudio, esto implica organizar tus horarios, y usar los recursos que tengas al alcanze para poder ir resolviendo dudas, tienes que aplicar tu imaginacion para resolver todas estas ideas, podria extenderme en darte recomendaciones de como estudiar, pero solo te dare unos cuantos, tener una biblioteca virtual en tu computadora donde vayas organizando toda la documentacion que vayas encontrando, organizada por temas y de igual manera todos los programas que tengas, los organizas en carpetas y en un directorio y que los tengas siempre a la mano.
tener muchos medios de consulta, como enciclopedias de la computacion, historia de las pcs, datos sobre el hardware de las computadoras, todo lo que puedas ir leyendo acerca de las computadoras te dara una mayor idea de que se tratan y a sentar bases que te ayudaran a ser mas productivo.
por eso mismo, la metodologia de tu educacion, es todo aquello que te ayudara a superarte, los materiales de estudio, librerias de consulta, conexion a internet, foros, dormir bien, vitaminarte, organizar tu tiempo, incluso sacrificar el tiempo que antes le dabas a otras cosas, para dedicarlo a la investigacion que vas a llevar a cabo, obstinacion por resolver ideas, paciencia, etc etc.

la complejidad de las operaciones.

la programacion no es una cosa sencilla, si lo fuera todo mundo seria programador, para ello hay que entender como funcionan las computadoras, irte hasta las bases teoricas, pero antes que todo tienes que iniciar con la mentalidad, de que como personas tenemos limites de productividad y que
el echo de convertirte en un programador no quiere decir que puedas hacer todo y para todo.
por ejemplo, un clasico caso cuando uno quiere aprender a programar, es ver personas que te recomiendan un lenguaje de programacion, y te dicen: con tal lenguaje, puedes hacer todo lo que quieras.
si tu te dejas llevar por ese comentario, entonces comienzas a ofuscarte, por que entonces ves que no hay limites, que existe el infinito de posibilidades.

eso es cierto desde el lado teorico, pero cuando eres programador, debes de ver que las operaciones que le asignes a una computadora, las pueda realizar en un tiempo razonable, por lo que tienes que estudiar cuales son las capasidades operacionales de una computadora y en base a ello modelar una operacion que pueda ser soportada, no solo por tu computadora, pues depende del proyecto que estes realizando.
puede haber proyectos que realizes para computadoras de uso casero, otros para ser usados sobre computadoras mas potentes, y proyectos para supercomputadoras de alto nivel.

el trabajo en grupo con otros programadores

la productividad de un programador que sea bueno en su area, no se puede igualar a la productividad que pueden dar cientos o miles de programadores, el trabajo en grupo en una empresa es de lo mas habitual pues permite mayor eficiencia y calidad del producto final.
seria ilogico pensar, que un solo programador hiciera el trabajo de miles de programadores.
o que un solo programador hiciera solito un videojuego 3d, o solito hiciera un antivirus, etc
seria ilogico pensar que un solo programador inventara la inteligencia artificial.
pues los avances que se han logrado, son por la intercomunicacion de expertos de muchas areas del saber humano, matematicas, psicologia, fisica, electronica, nanotecnologia, quimica, filosofia, biologia, diseño, mecanica, etc etc.
esto se le llama cibernetica y a grandes rasgos, la cibernetica es la filosofia de las filosofias, es la madre de todas las ciencias, te recomendaria que leyeras algo acerca de la cibernetica, pues resulta muy util conocer los conceptos generales de esa teoria . hay un libro que se llama (la cibernetica y lo humano)
a mi me gusto, por que entre muchas otras cosas mas, habla de como se opera una accion bajo el mando de un controlador supremo, asignando tareas a otros subordinados que a su ves asignan tareas a otros subordinados y que al final de cuentas todos trabajan para un mismo fin.
pero habla en mas detalle incluso con algunas leyes que es bueno tomar en cuenta, y si tu como programador lo tomas en cuenta, lo puedes aplicar a la hora de diseñar tus programas, algo asi como de poner programas que vijilen lo que hacen otros programas, trabajando para un proceso en comun.


la complejidad de los programas

cuando tu quieres ser un programador, te estas volviendo en un ser operante que quiere controlar la materia, que quieres que actue como tu deseas bajo ciertas circunstancias, por lo que lo primero que haces es delimitar la materia a controlar, delimitar funciones, delimitar operaciones, delimitar el caos de la informacion.
primeramente por la incapasidad biologica y psicologica de controlar toda esa informacion y tambien de darle mantenimiento a algo que esta fuera de nuestras manos.
segundo por la incapasidad que tiene una maquina procesadora de datos, por su tamaño de memoria y por su capasidad de proceso, asi como del tiempo razonable para recibir resultados de una computadora.


la seleccion de un programa para programar

ahora viene otra cosa que es comun a la hora de empezar a programar, seleccionar un programa que nos va a ayudar a programar, osea un lenguaje de programacion, para hacerlo debemos de tomar en cuenta varios factores, preguntarnos que es lo que deseamos programar, es una decision que puede englobar diferentes curvas de aprendizaje, se dice curvas por que para llegar de un punto a otro, el mas rapido es llegar en linea recta, si queremos llegar a un objetivo segun la complejidad de conocimientos nesesarios, sera mas recta o mas curva.
nuestros deseos de aprender nos pondran metas mas grandes o mas cortas segun cada persona.

por eso mismo, como no esta definido lo que puede llegar a hacer un programador, existe un caos de la informacion, que solo es manejable cuando se delimita.
¿que es lo que deseas programar? ¿esta dentro de tus posibilidades? ¿tienes el material? ¿tienes la solvencia economica para llevar a cabo tu proyecto? ¿requerira el apoyo de mas personal? ¿que tan ambisioso es tu proyecto? ¿sabes si eso que planeas ya esta echo? ¿con quienes te asociaras? ¿a que publico o sector llegara tu programa? ¿que tipo de problemas resolvera? ¿piensas colaborar con alguna empresa? ¿trabajaras solo? ¿tendras que comprar mas software o hardware para lograr tu objetivo?


todas esas preguntas y muchas mas que puedes formularte tu mismo, debes de ir tomandolas en cuenta, para que vayas delimitando el camino que vas a seguir, para que no andes subiendo y bajando, esto incrementa tu nivel de productividad, pues estas marcandote objetivos posibles y de acuerdo a tus medidas o nesesidades.

un breve analisis de la funcionalidad computacional.

tenemos que retroceder un poco en la historia de la computacion, las computadoras vienen evolucionando y ahora es posible tener una computadora que pueda ayudarnos a la programacion en nuestra propia casa, antes esto solo era exclusividad de empresas, universidades, gobierno, etc
y a evolucionado paralelamente en software y hardware, van de la mano.

asi que es bueno que te leas, algo sobre la historia de las computadoras, como antes ya dije, la evolucion se ha logrado gracias a la colaboracion de muchas ramas del saber humano y no pretenderas comprender todas esas ramas para considerarte un experto en la materia, acuerdate que delimitar nos da control.
pero es bueno en algunos casos, tener ideas generales y en otros casos profundizar mas, la idea general de estudiar la historia de las computadoras, nos sirve para comprender como a evolucionado y transformado la computacion hasta nuestros dias.

por ejemplo un dato util, es distinguir como evoluciono los lenguajes de programacion, por ejemplo que desde el programa "c" se hicieron los sistemas operativos unix, linux, windows, y otros.
ya tenemos el dato, ahora procesemoslo:
no sabemos como se hiso ese programa "C" pero sabemos que es un lenguaje de programacion, que sirvio para programar varios sistemas operativos, lo que nos dice que debe de ser muy poderoso para haber logrado tal cosa.

pero tambien debemos de tener a consideracion, que para haberlo logrado, mucha gente experta aporto ideas, que hubo un financiamiento, grupos de personas trabajando cordinadamente, que marcaron sus estratejias y metas para llegar a ser un producto.
debemos distinguir que no fue echo por una sola persona.
eso nos sirve, para que delimitemos nuevamente nuestra capasidad como programadores.

ahora, si el tema unix y linux te suenan desconocidos, tienes que diferenciarlos, pero ese dato lo tienes que descubrir tu, te recomiendo que si no sabes nada al respecto, consultes un poco para que te des una idea general acerca de esos sistemas operativos.

eleccion de la plataforma para programar.

en este mundo de la programacion, no podemos ser ajenos a este tipo de temas, pues resulta que de aqui tenemos que tomar una decision muy importante, pues cuando programas, tienes que tomar en cuenta para que sistema operativo vas a programar, nuevamente tenemos que delimitar.
resulta que los programas que corren en linux, no pueden correr en windows, por que son sistemas diferentes, o un programa de windows no puede correr en una mac, y asi pasa con otros sistemas operativos.
pero mas adelante ya iras comprendiendo, el por que es asi y veras que desgraciadamente no existe un standar, por que cada uno evoluciono por su parte, y si estudias la historias de las computadoras entenderas el por que.

pero que te quede claro, que para programar en uno u otro sistema operativo, se hace de diferente manera, aun que en el proceso de programacion algunas cosas y conceptos son similares, pero no vamos a entrar en detalles, que nos desviariamos de esta introduccion.

el windows se hiso y popularizo el gui

sin lugar a dudas, windows popularizo la gui que significa la interfas grafica de usuario por sus siglas en ingles, esta interfaz es a base de graficos que hacen mas facil el manejo de la computadora, botones, iconos, ventanas, el escritorio de windows, menus graficos.
hoy en dia, otros sistemas operativos como linux, tambien manejan una interfaz grafica, que facilita el uso de las computadoras, de echo en el futuro se extendera cada vez mas este modo.

no vamos a entrar en discuciones, de quien invento la interfas grafica, por ahi dicen que fue la mac, otros dicen que fue la xerox, pero eso nos aporta muy poco, pues son solo guerras, lo que nos importa es el concepto que nacio y se llamo gui.

antes se manejaba por linea de comandos:

asi como se hiso una interfaz grafica para el usuario, tambien se hicieron programas para que desde un modo visual tambien se programara, es lo que se hace con visual basic, de nuevo amigo mio, yo no c si tu conoscas este programa, pero si no lo conoces, dejame decirte que es un programa que por medio de el, puedes de manera grafica ir diseñando tu aplicacion, en un espacio de trabajo poner botones, cajas de texto, insertar graficos, poner menus, insertar controladores de sonido o de video, etc y que lo haces al estilo windows, pero que igualmente no por ser de un modo grafico quiere decir que sea lo mas facil del mundo, ciertamente es mas comodo, pero igualmente acuerdate de todas aquellas cosas que te dije antes, diciendote que era nesesario ponernos un objetivo, ver a que mercado nos dirijiriamos, delimitar el poder de nuestros programas para que se acoplen a una arquitectura de computador, formular procesos que den respuesta en un tiempo razonable, etc etc y te lo recalco para que no se te vaya la idea.

sin embargo, antes y aun ahora, se sigue programando atraves de texto, esto se le llama programar por linea de comandos, y tambien se le llama programacion estructurada.
vamos a procesar que quiere decir esto, linea de comandos quiere decir, que el programador para poder formular su codigo, lo hace atraves de una interfaz donde solo es posible poner cadenas de letras y de simbolos, numeros, caracteres especiales.
por ponerte un ejemplo, antes cuando se usaba el ms-dos que no habia ventanitas ni nada de esas cosas, un fichero por ejemplo lo ubicabas por medio de comandos, si lo querias borrar tenias que poner el comando DEL y enseguida el nombre del fichero a borrar, a diferencia de ahora, que pone el raton encima y aprietas suprimir o abres el menu contextual y seleccionas eliminar.

ahora viene tu pesadilla, si ya te habias acostumbrado a manejar ventanitas y botonsitos, y que ya habias aprendido a manejar los programas de ese modo, lo siento pero en programacion el asunto no versa de esa manera.
incluso para el visual basic, hay que meterle codigo por medio de comandos, para la gran mayoria de los lenguajes todo se hace por lineas de comandos, es como si tuvieras que retroceder en el tiempo e irte a la parte dura, lo siento, aun asi quieres continuar?

pero antes te dije algo de la programacion estructurada, eso tambien lo vamos a procesar, para entenderlo, hay que decirte, que cuando se programa por medio de linea de comandos, lo que tu escribes son codigos, eso todo mundo lo sabe, que se programa por medio de codigos.
como su palabra lo dice, codigos quiere decir que estan codificados, pero esto no tendria sentido si no hubiera quien los interpretara.
de que me sirve tener codigos, si no hay algo que me los pueda decifrar.

antes de profundizar, debes de darte cuenta de algo demasiado logico, si esos codigos pueden ser interpretados, quiere decir que un programa identifica tus codigos y que sabe que hacer con ellos,
por lo tanto, para ser identificados quiere decir que ya los conoce de antemano.
es como cuando tu le hablas a otra persona, para que te entienda, esa persona debe de saber tu mismo idioma pues aun que tu le estes pidiendo que haga algo, si no te entiende no lo hara aun que exista la disponibilidad.

ok, pues lo mismo pasa con los lenguajes de programacion, todos los codigos que le pongas deben ser en el idioma que ese lenguaje de programacion entiende.
y por logica, de nada me serviria que los entendiera si no hace lo que yo le estoy pidiendo.
pero se supone que el lenguaje de programacion te obedecera y procesara los codigos que le proporciones.

de nuevo te digo, la programacion estructurada es parte de ese proceso, el proceso que lleva a cabo el lenguaje de programacion en la identificacion de esos codigos que tu quieres que ella ejecute, esto lo hace leyendo linea por linea de tu codigo.
pero ojo amigo, no te me vayas a confundir, quiero que identifiques que la estructura de tu codigo por si misma no hace nada, solo tiene una funcion hasta cuando dentro del lenguaje de programacion le des la funcion de que lo opere.

ya sea que lo escribas directamente, o que lo peges desde un fichero, osea que lo importes al area de trabajo, por ejemplo en el lenguaje de programacion qbasic, cuando tienes tu codigo y quieres verlo en tiempo de ejecucion , qbasic es una ventanita de msdos, cuando aprietas f 5, todo tu codigo es compilado y entonces ya lo tienes operando.

tiempo de ejecucion es cuando tu programa esta operando y es un termino usado en program.
compilacion es el proceso que lleva acabo el programa, que convierte el codigo a lenguaje maquina
para que el lenguaje maquina le de las instrucciones al sistema hardware, cpu, memoria, etc etc para que opere segun las instrucciones.

no te me espantes, vamos ir aclarando las cosas poco a poco, seguro te estaras preguntando, por que tuvo que convertir el codigo a lenguaje maquina, ¿para que complicar mas las cosas verdad?
lo cierto es que esto es parte de la estructuracion de los lenguajes, apunta esto: existen los lenguajes de alto nivel, y los lenguajes de bajo nivel.

esto es nesesario que lo conoscas, cuando hablamos de los lenguajes de alto nivel decimos de aquellos que resultan mas proximos al entendimiento humano, esto mi querido amigo, quiere decir que cuando tu escribes codigos, lo haces usando letras, numeros, simbolos especiales, y acuerdate que con ellos conformas un codigo que un lenguaje de alto nivel puede entender y te lo puede interpretar.

pero, me imagino que sabras que el cpu, la ram, etc no puede entender esos codigos, por que como sabras, lo unico que entiende son unos y ceros, que es el sistema binario que actualmente se usa, esto a nivel fisico, acuerdate que son impulsos electricos que son de presencia electrica o ausencia electrica, como switch que prenden y apagan dentro de la computadora.

internamente las computadoras, dentro de los procesadores, acuerdate que estan diseñados para procesar informacion, quiere decir que ellos saben como manipular la informacion electricamente,
que no se te vaya a escapar esta idea tan importante, quiero que hagas de cuenta, que dentro del procesador existen programas internos, que no tienen nada que ver con un sistema operativo de ninguna clase.

y ese programa se llama lenguaje ensamblador, has de cuenta que es un programita que ya viene con tu hardware, que le pasa la informacion al cpu y a la ram o a otros dispositivos como la tarjeta de video o de sonido, al modem, etcetera.


pero, quiero que tengas en mente que tu lenguaje de alto nivel, acuerdate que ejemplos de lenguajes de alto nivel, son programas como c, c++, qbasic, delphi, php, hada, etc.
que cuando escribes el codigo, lo haces usando letras, simbolos especiales, numeros, etc,
sin embargo eso no quiere decir que no esten usando una parte de la memoria, no quiere decir que no sean datos dijitales, cuando estan en memoria de echo estan en lenguaje ensamblador, osea que estan en forma de unos y ceros.

¿entonces que diferencia tiene, por que uno es de alto nivel y otro de bajo nivel? quizas preguntes.
aqui tenemos que hacer una aclaracion, para que despues no queden dudas.
te acuerdas que dijimos que cuando escribiamos las lineas de comandos, poniamos los codigos en letras, numeros, simbolos especiales, etc
como te daras cuenta, los datos estan dentro de la computadora y son dijitales, ¿por que entonces no tienen efecto, aun que no lo compilemos?

internamente esos codigos no pueden ser reconocidos, por la siguiente razon: cada letra o simbolo especial, internamente es un conjunto de bits que ocupan un espacio en la memoria
fisicamente quiere decir que por cada letra, hay varios transistores que estan agrupados, unos prendidos y otros apagados.
por cada letra se ocupan 8 transistores fisicos (cpu) , o bipolos (en la memoria ram) pits (en un cd/dvd)
ahora imaginate si eso es por una letra, cuanto sera al equivalente a un libro, miles y miles de bits.
incluso millones o miles de millones.

pero sigamos respondiendo la pregunta, ¿por que no tienen efecto la lineas de comando? pues resulta, que esos datos, estan en la pc fisicamente, pero no estan organizadas de una manera que el lenguaje ensamblador los reconosca, los reconoce pero como pasivos. no como instrucciones.
vamos a suponer, que el lenguaje de alto nivel, los tiene que entregar al lenguaje ensamblador diciendole que ese estracto de datos, son un programa y que ya quiere que se ejecute.

cuando se los entrega, los esta compilando, los esta transformando a lenguaje de bajo nivel,
internamente y fisicamente quiere decir, que un programa llamado (lenguaje de alto nivel)
tiene cargado en memoria bits que son mantenidos por un proceso constante incluyendo al cpu y un sistema operativo.
y que ese programa, tramita un espacio en memoria para los datos del codigo pasivos hasta ese momento, pero que no son instrucciones hasta que se de la orden de compilar, que esos datos no tienen logica para el sistema interno (cpu, ram, tarjeta de video etc) por que hasta ese momento su existencia logica se debe a un sistema operativo y al programa lenguaje que lo mantienen en memoria.
es decir a un subproceso.

pero para que las instrucciones corran, deben de ir al sistema interno, luego regresar a travez de el canal del sistema operativo, dando respuesta, unos datos se procesan y despues segun las instrucciones, salen datos por monitor segun las instrucciones, se almacenan en alguna unidad, se envian por el modem a un destino, aceptan la entrada de datos por el teclado, es decir que queda activado el hardware para ese programa.
kyberneees
tenemos la informacion dentro de una computadora, pues bien, si nos ponemos a analizar, la manera en que opera son de muchos tipos, por ejemplo en los lenguajes de programacion vemos por ejemplo que ya estan definidos para tener una operatividad de funcionamiento, pero lo dificil es saber para que sirven determinados programas editores de programas, pues existen muchos y para diferentes cosas, por ejemplo podemos ver que pueden ser para hacer cuestionarios, otros programas de contabilidad, traductores, en fin que podemos hacer programas de utilerias para un ordenador bajo un determinado sistema operativo.


tenemos la informacion estatica, aun que esta informacion es aquella que se ha compilado para tener una secuencia determinada,
por ejemplo un fichero, un grupo de ficheros, asi como las carpetas o las subcarpetas, o directorio o subdirectorios.
esto por ejemplo cuando uno guarda un archivo dentro de una carpeta que es del sistema windows xp, esta dandole formato y si por ejemplo esa la guardaramos en un pendrive, tendriamos que ver que el formato le ha dado una carpeta, por eso es que la compatibilidad de las pendrive, son importantes por que por eso se les da un formato ntfs, o fat segun corresponda y para linux seria otra manera de hacer las cosas.
la informacion estatica, no varia, estas pueden ser identificadas como ficheros de informacion, ellas pueden contener instrucciones, o ficheros para ser interpretados y renderizados, desplegados, informacion que es tonta, por ejemplo un texto de un poema para una computadora no tiene sentido por que no sabe interpretarlo, pero si sabe desplegarlo con diferentes fuentes de color, tamaño de letra, etc etc.


ahora tenemos la informacion que se escribe dentro de un programa para que defina datos, asi por ejemplo los lenguajes de programacion, definen varios tipos de datos, como los caracteres, lo caracteres variables, osea define datos con ciertos atributos que le dan una particular forma de ser utilizados.
por ejemplo los numeros reales, los numeros decimales, el alfabeto, los caracteres especiales, solo por darnos una idea de la definicion de tipos de datos.


tambien tenemos la informacion, que opera, en un principio en el sistema se establecen operantes basicos del sistema, por ejemplo cuando hablabamos de la asignacion de datos, eso lo hacen programas que han sido escritos utilizando la rudimentaria forma del manejo binario de la informacion, osea que han sido desarrollados escribiendo formulas y asignando valores que tienen un significado y una manera de operar con la fisica de la computadora, dentro de el manejo electronico, osea lenguaje maquina, que interactua con la arquitectura del sistema hardware, que le dice que celdas de la memoria usar, como manejar el bus de datos, como comunicarse con la cpu.
esa es la forma rudimentaria de las instrucciones de datos, que dan los lenguajes de programacion basicos, por que son instrucciones que han sido desarrolladas para ser interpretadas por el sistema hardware.

esos programas basicos, que tienen las instrucciones de definicion de datos que hoy en dia se manejan dentro de la computacion, con ellos se desarrollaron los sistemas operativos, como el msdos y como el sistema de la mac, o el unix, asi que esos programas le dan funcionamiento operativo a un sistema, para que tenga funciones como la de contar datos, sumarlos, organizarlos, y esto se convierte en una tarea demasiado compleja de entender para un ser humano.

lo que si viene ala mente, es que esos programas basicos utilizan reglas de la programacion, que es el modo operante, que puede ser aprendido, para aprender a controlar la informacion, entre esas leyes podemos encontrar muchas. por ejemplo que con una funcion del sistema, podemos clonar un grupo de bits, o en otro concepto podriamos clonar un fichero, clonar instrucciones, de echo la clonacion es una de las cualidades que tiene el manejo de la informacion dijital, en cualquiera de los niveles de programacion.

asi que le podemos asignar a una computadora, que determinados ficheros los clone, otra funcion es el conteo, por que si le decimos que clone, ella debe de saber contar, por lo que podemos asignarle que lo clone un determinado numero de veces, y esto seria posible, enseñandole a la computadora a contar.

otra se llama escaneo, que es el asignamiento del programa para que se mueva dentro de un grupo de informacion que esta a su alcanze para que hubique un determinado numero de archivo, nombre de archivo, posicion o tipo de archivo, tipo de dato, tipo de instruccion, una determinada fecha del fichero, osea que se le pueden asignar muchas propiedades de escaneo.
esto en otras palabras tambien se podria decir como sinonimo de busqueda de la informacion.
tambien se le puede asignar como consulta de una base de datos.
el echo es que hubica un grupo de bits, que han sido marcados para su identificacion.

otra es el reconocimiento de caracteres o de tipo de datos o de cadenas de texto, etc.
por ejemplo esta cualidad que tiene el tratamiento de la informacion viene del echo de que, los lenguajes de programacion permiten hacer una rapida comparativa de la informacion que tienen que reconocer.
asi que en el lugar donde queremos que se introdusca un dato por ejemplo de tipo de letras o numeros, se le asigna un valor para que el programa lo compare con la direccion de memoria que previamente se establecio como el valor a ser comparado.

no hay que olvidar precisamente que todo esto es un grupo de canales, o puentes que redireccionan la informacion y que la van transformando de manera que esta se vuelva lenguaje maquina y que una vez siendo lenguaje maquina, pueda ser procesada fisicamente la informacion, de echo siempre se opera fisicamente, lo unico que cambia, es el lenguaje que esta definido y que los programadores pueden usar variados lenguajes, podrian existir muchos , pero que al final por medio de un interprete se convierta siempre a un valor dijital, que es la manera que si puede operar la computadora.

una computadora en su hardware operante, tiene muchos lenguajes de programacion, esto quiere decir, que todos esos programas, pueden tener diferentes modos de organizar la informacion, por ejemplo en un lenguaje de programacion podriamos en uno poner una formula que le diera instrucciones a la computadora, para que a un bit, se le sume otro, y el resultado sean 2 bits.
pero en otro lenguaje de programacion, mediante otra tecnica podriamos lograr el mismo efecto, de manipulacion de los bits y para que puedan tener las mismas funciones.
esto requiere de tecnicas de algoritmos, donde para poder hacer este tipo de operaciones se esta hablando que es programar en lenguaje maquina, para evitarnos esos problemas, de como hacerle para definir un algoritmo que sume, que divida, etcetera usamos los lenguajes de programacion que ya han definido esas funciones.
si no lo hicieramos y escribieramos lenguaje maquina, tendriamos que saber de matematicas de operaciones avanzadas, sumandole que tambien debiamos de saber de la arquitectura de la computadora, para poder asignarle esos valores y se tendria que programar con unos y ceros, lo cual seria demasiado complicado y nos tomaria mucho tiempo definir todas las operaciones existentes que se han definido en los lenguajes de programacion existentes.


la evolucion de las computadoras en el dia de hoy, nos entregan una pc casera que puede tratar la informacion de manera rapida, no es posible programar desde cero una computadora por que al prender la computadora, nesesitamos introducir la informacion atraves de el teclado o del mouse, el teclado es el resultado que ha evolucionado en el diseño de las pcs caseras, es un medio de entrada pero que tiene asignados valores ya determinados por un lenguaje que los reconoce, incluso la bios lo reconoce aun sin tener un sistema operativo instalado.

entonces tenemos que ver, que los programadores actuales, por ejemplo solo algunos muy avanzados tendrian que recurrir al conocimiento de como se puede operar el hardware, que tiene que ver con la ciencia de la computacion, quizas para creacion de hardware y su manera de hacerlo funcionar.
pero los otros programadores no tienen que esculcar tan adentro, tan profundamente, por ejemplo los programadores del sistema visual basic.

sino que operar con los tipos de datos ya definidos, operar con objetos ya establecidos, y a esos darles propiedades de conteo, scaneo, duplicacion, etc etc.
es decir que ya manejan datos definidos, y apis definidas.

ahora por ejemplo, tenemos los lenguajes de programacion que ya hemos descrito un poco, ahora esos programas tienen un instalador que corren bajo cierta version de un sistema operativo.
eso es nesesario, super nesesario que exista la posibilidad de que un programa lenguaje pueda ser instalado sobre un sistema operativo, algunos se ejecutan desde la consola de comandos del msdos, ese es el primer punto, poder colocar en nuestro sistema el lenguaje que nos permitira usar ese lenguaje.

despues, esos programas, siempre tienen el modo de edicion, eso es super megabasico, es ahi donde el usuario tiene que aprender a usar los comandos, que le permitan controlar la informacion, eso incluye desde lo mas basico, como hacer que imprima en pantalla un texto, como hacer que aparesca una imagen, un sonido, como hacerle para que haga una operacion, hacer que clone informacion, que haga una base de datos pequeña, que haga un conteo etc etc.
hay que hacer un breve parentesis y
recordar que el sistema de ventanas de windows, usa una interface grafica, la llamada gui, y que por medio de botones o iconos se pueden hacer funciones.
cuando uno aprende lenguaje de programacion por consola, como el qbasic, nos vemos en la situacion de que en nuestros programas no estan iconos, que se maneja por medio de comandos, asi que la forma de operar es solo por sintaxis, no hay menus desplegables y
todo se hace por medio de comandos, y se reciben cadenas de texto.
estas cadenas de texto sin embargo tienen logica, por ejemplo si el programa pone : ¿cual es tu nombre? y que tu le pongas tu nombre por ejemplo, alex, y luego el programa te dice: hola alex.
ahi ya llevo acabo una funcion pero que ha sido de manera todo de manera en texto.

ahora eso nos permitiria ese tipo de programaciones que nos acercan al mundo de la logica de los datos planos, antes aclarar que para hacer esas operaciones, el lenguaje tiene que compilar los datos a su manera binaria y entonces al momento de ejecutar el programa, entra en accion la interfaz de un canal abierto con el hardware en tiempo real, (que utiliza el usuario)

luego de esto, nos vienen otras logicas que nos vienen a la mente, por ejemplo si desde un programa que hayamos compilado por ejemplo desde un sistema de consola que no es compatible con el sistema de windows, por ejemplo.
tendriamos dificultades para imprimir un documento desde nuestra aplicacion, por que las impresoras estan diseñadas para ser manipuladas por el sistema operativo, por que por ejemplo en los programas que estan echos para montarse sobre windows, se manejan controladores que se ponen ala hora de diseñar el programa y que eso les da el poder de acceder ala impresora que este activa en ese momento, y por eso puedes definir un tipo de dato que sea imprimible.
es lo que pasa, cuando algunas impresoras no son compatibles con linux por que no estan diseñadas y no hay un controlador que las maneje.

por eso, no se puede llevar acabo la interaccion de programas echos desde una plataforma como el msdos, por que no pueden acceder a algunos dispositivos para obtener informacion, por ejemplo si quisieramos guardar informacion en un pendrive, o si quisieramos usar un usb para entrar informacion, o que el programa usara un firewire.
nuestro programa no lo reconocera por que no tiene los controladores.

otros controladores que por ejemplo usan los programadores de videojuegos, son el control para poder acceder a las rutinas del active x, que le sacan partido a las tarjetas graficas, pero que esos programas pueden interactuar con las apis de la tarjeta grafica.
por eso las tarjetas estan echas para correr bajo determinados sistemas operativos, y parte de sus controladores es tener un active x que le permita sacar mas provecho de ellas.
por eso no corren algunas tarjetas sobre otros sistemas operativos como lo es linux, pues el active x, es diseñado bajo la arquitectura de microsoft.

asi mismo nuestros programas, sino estan echos para poder interactuar con las tarjetas graficas del momento, nos veremos limitados en el uso de las tarjetas graficas, sobre todo si nos dedicamos al desarrollo grafico.

entonces todo esto nos lleva los lenguajes de programacion que nos permiten, controlar ciertas informaciones, que nos dan accesos a las apis del sistema operativo para poder sacar provecho de funciones basicas como en el sistema windows, de poder incluir menus graficos, acceso a impresoras, acceso al directorio de manera grafica para guardar, abrir y localizar documentos, asi como de trabajar con el sistema ole, que es para que tu aplicacion pueda exportar informacion por medio del portapapeles del windows, para que tu informacion pueda ser insertada en otro programa o manterlo en memoria temporalmente mientras haces otra cosa, y te estorbaba en tu area de trabajo, para tener niveles para desaser y reacer, para poder seleccionar todo los datos que podran ser contenidos en el temporal de la memoria ole.

asi por ejemplo, programas como el flash, nos permite interactuar con elementos del sistema, como que nuestra aplicacion interactue con el sitema de directorios, que pueda abrir un area de exploracion de la internet, pero tambien trabajar las velocidades del los frames por segundo que se utilizaran, esto es por que flash puede meterse con el direct draw y con los controles de active x del windows.

/
kyberneees
otros tips de programacion, tenemos la abstraccion funcional, por ejemplo estan los lenguajes de programacion que ya tienen muchas funciones, o por ejemplo tenemos un programa como el flash, que puedes hacer operaciones sin tener que conocer como opera por dentro, el echo es que puedes usar una de sus funciones y no parar en revisar como se compila la informacion para ser convertida en codigo binario o codigo maquina.
la abstraccion es parte de la programacion estructurada.
mientras el procedimiento sea fiable, se puede usar sin tener que saber como funciona en su interior.

programacion orientada a objetos:
tecnica o estilo de programacion
que utiliza objetos como el esencial de construccion.
los objetos son tipos de datos abstractos, es decir que cuando tu generas un objeto, o te dan un objeto para que trabajes de el, tienes que verlo en una abstraccion funcional, por que no te vas a detener a ver cuales son sus tipos de datos, sino solamente sus funciones,


un objeto es una coleccion de datos, junto con las funciones asociadas.
utilizadas para operar sobre esos datos.

conseptos basicos de objetos:

herencia
encapsulacion
poliformismo.

clases metodos y mensajes: ??????????????????????????????


trabajando con objetos en programacion convencional.
los programas se dividen en 2 componentes: procedimientos y datos.

las estructuras de datos en programacion son globales, se pasan como parametros.
en esencia, los datos se tratan separadamente de los procedimientos.

------------------
..................

en poo, un programa se divide en componentes que contiene procedimientos y datos.

cada componente se considera un objeto.
un objeto es una unidad que contiene datos y las funciones que operan sobre datos.

a los elementos de un objeto se les conoce como miembros.

en c++ las funciones que operan sobre los datos se denominan metodos.
tambien se denominan funciones miembro.

y los datos se denominan miembros datos.
hay que ver la importancia de distinguir estos aspectos.

---------------
----------------

los objetos de un programa se comunican entre si
mediante el paso o envio de mensajes acciones que debe
de ejecutar el objeto.

en poo los objetos pueden ser cualquier entidad del mundo real.
por ejemplo, en un entorno de una avanzada aplicacion, podrian
simularse objetos que tengan una correspondencia de eventos y
de reacciones similares a la vida real, esto podria ser definirle un
comportamiento de un auto, de un animal,
pero por ejemplo, si queremos ver el sentido de esto entonces
vemos que se comunican entre si, osea que le dice a otros objetos
las acciones que debe de realizar, esto por ejemplo lo vemos en los
videojuegos, cuando nuestro objeto que puede ser nuestro personaje
se encuentra con otro objeto, por ejemplo el enemigo, se puede en
ese momento activar una serie de funciones, como seleccionar una
arma para dispararle, o activar una secuencia de golpes.

esto lo vemos tambien en elementos de intarfaces graficas, ventanas
iconos, menus, ratones.
------------
--------------

estructuras de datos:

arrays
pilas
arboles binarios.


tipos de datos definidos por el usuario:
numeros complejos
hora del dia.
esto lo quiero entender, como los datos que mete el programador, que
le van a dar una definicion de datos, para ser utilizados, pero que pueden
ser utiles, para algo. aclarar mas.

...........
............

definicion de objetos:
un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos.
de una manera acequible al entendimiento, esto seria por ejemplo, tenemos los datos y
tenemos 0,1,5,8,7 y las funciones que operan sobre esos datos es, a cero, sumale 1, y
luego le sumas 5, luego le sumas 8 y luego le restas 7.
o bien, otra instruccion seria, a cero le sumas uno, luego lo divides entre 5, luego lo multi
plicas por ocho, y luego lo potencias por 7.
y eso es un objeto dentro de un programa de lenguaje orientado a objetos.

pero no solo eso, si expandimos la idea, eso que puse solo es una manera sencilla de
definir un objeto, pero las ideas pueden ser mas rebuscadas, y mas complejas, y en esto
es importante a tomar en cuenta que en el diseño de un objeto se debe de ver que el
procesador y la memoria de un sistema lo soporten, por eso se diseñan para diferentes
tipos de sistemas.

si aondamos entonces en que el usuario puede definir los datos, vemos que
puede definir datos, por ejemplo numeros, letras, graficos, sonidos, tablas,
osea que, los tipos de datos no tienen inteligencia, solo son un elemento a
manejar por los metodos, funciones, procedimientos,

cuando le decimos que opere con los datos, entonces podemos hacer que los multiplique,
divida, haga una funcion por ejemplo aplicarle un efecto a un grafico, aplicarle un fx a un sound,
que los clone, que haga un grupo y que luego ese grupo de objetos lo vuelva multlipicar por 2,
y el resultado lo divida por 5, es decir es donde tiene el poder el programador.

ahi entonces vemos, que ya esta definido nuestras funciones para un objeto,
ahora ese objeto puede ser activado, cuando este sea llamado y su funcion
puede estar condicionada a un evento especifico, que puede suceder de muchas maneras, por ejemplo al oprimir una tecla, al seleccionarlo desde un
menu, al evento de una situacion determinada dentro de la aplicacion, por ejem plo en un video juego, se activa los contadores de golpes, ese contador es un
objeto, que se activo cuando los monitos estaban dandose golpes.
estaba activo, al cargarse en memoria la ecena, es decir que hay que tomar en cuenta, que un programa puede ser una cadena de instrucciones o una sola instruccion.
por ejemplo, en una determinada situacion, solo quedan activas ciertas funciones y otras funciones desaparecen y no son validas, es decir es algo asi como por ecenas, pero que un programa maestro, te hace regresar o avanzar a otras ecenas
cada ecena es un conjunto de procesos, que estan activos, que estan al pendiente de un evento, por eso es importante que el programador aparte de hacer una definicion de objetos (datos y funciones que operan sobre esos datos) tambien los
interconecte, es decir, que otros objetos le manden la informacion a otros objetos,
es de esta manera, como pueden actuar los objetos que estan a la espera de un evento, otra de las funciones podria ser, que un objeto cache la informacion que van generando otros objetos, y que de acuerdo ala obtencion de esos datos, los pueda ir almacenando, operando, comparando, presentando procesand.resultados.

-----------------
-----------------
un objeto es un unidad que contiene datos, y las funciones que operan sobre esos datos.
lo datos se denominan miembros dato.
las funciones funciones miembro.
los datos y las funciones se encapsulan en una unica entidad.
los datos estan ocultos y solo mediante las funciones miembro es posible acceder a ellos.

-------------
---------------

clases es un tipo definido que determina las estructuras de datos y
las operaciones asociadas con ese tipo.
cuando se define una clase, por ejemplo vamos a hacer un tipo, en el caso de html podemos ver
un ejemplo de su uso en el css, por ejemplo que a un cierto tipo de parrafo que marquemos, vamos a definir que todos los parrafos que nosotros asignemos, sean de una misma clase.
yo asigno una clase, que sera comandada por una funcion, operacion, metodo, que le hara hacer una cosa determinada.

yo asigno el tipo, diciendo que a todas las clases, que tengan asignadas la identificacion, a esas se les aplicara un efecto determinado, y ahi yo configuro la alteracion de los datos, dentro de los parametros que son posibles.

para una manera rapida de entender, yo asigno, por ejemplo, que a todas las letras que tengan la letra A, todas esas sean de una misma clase, para marcarla le pondre un asterisco para que mi identificador pueda detectarlas A*
entonces, ya asigne las clases, pero falta el componente que le dara una funcion, por ejemplo puedo ponerle que su funcion sea, que cuando detecte que exista una A*, les aplique un cambio de color, por ejemplo que se vuelvan de color rojo.

pero sin duda explorar mas a fondo las capasidades de definir clases, es nesesario y basico.

************************************
objeto e instancia de una clase : se pueden utilizar indistintamente.

cada ves que se construye un objeto de una clase, se crea una instancia de esa clase.

una clase es una coleccion de objetos similares.

un objeto es una instancia de una definicion de una clase.

una clase colecciona objetos similares.
una clase es una coleccion de instancias.

/*******mensajes******\
la comunicacion con el objeto se realiza atravez del paso de mensajes.
la comunicacion con la instancia se hacer por medio de mensajes.


el envio a una instancia de una clase: produce la ejecucion de un metodo o funcion miembro.

el paso de mensajes es el termino usado, para la invocacion o llamada de una funcion miembro de un objeto.


activacion de objetos: los objetos pueden ser activados por la recepcion de mensajes.

tenemos por ejemplo, la funcion de un objeto ya definido, por un mensaje se le podra
activar para que se activeee.

un mensaje es una peticion, para que un objeto se comporte de una manera, ejecutando una de sus funciones miembro.

la tecnica de enviar mensajes se conoce como paso de mensajes.





estructuralmente un objeto:

la identidad del objeto recepetor
la funcion miembro del receptor cuya ejecucion se ha solicitado.
cualquier otra informacion adicional que el receptor pueda nesesitar. para ejecutar el metodo pedido


ejemplo del uso de paso de mensajes:

tenemos el objeto 01: que tiene los datos miembro: alumno y curso :
tiene las funciones miembro: de leer y la otra funcion miembro es: imprimir.

ahora, cuando reciba el mensaje, si por ejemplo el paso de mensaje le dice que active la funcion miembro, entonces esto se expresa, imprimir la sentencia anterior.
entonces se imprimira el dato del objeto 01, en este caso si se tratara de datos texto, entonces imprimiria en un area determinada de la pantalla, pero podria ser un listado enorme de alumnos y de cursos. por lo que resultaria practico que el objeto hiciera eso.

yo veo que tiene cierta similitud con las bases de datos, por ejemplo estamos haciendo algo parecido a almacenar en un campo, y que cuando se le mande el mensaje, esta te de la informacion.

** por ejemplo,

un objeto es un pequeño microprograma, que es parte de un programa mayor.
el programa mayor es el que se encarga de hacer el paso de mensajes.

por ejemplo si dentro del ejemplo que poniamos de alumno y curso, podriamos poner un listado de nombres que estarian dentro de la categoria de nombre, y nombre de cursos.
asi que en un momento dado, en el paso de mensaje, se le puede dar parametros para que busque dentro de los datos, un nombre o curso, y el objeto sabra como dar respuesta a esa peticion, pues tendra definidas sus funciones miembro.



el paso de mensaje es un sinonimo de llamada a una funcion.
,.......................
........................

*******************
*******************
*******************

cuando se ejecuta un programa orientado a objetos.

se crean objetos cuando se nesesitan.
los mensajes se envian de los objetos.
se borran los objetos cuando ya no son nesesarios y se recupera la memoria.

*****
*****


**
**
**

**
*

la herencia es la capasidad que permite a los objetos, construirse a partir de otros objetos.


una clase se puede dividir en subclases.

clase base:

las clases que se definen de la clase base, se llaman clases derivadas.

las clases derivadas pueden heredar codigo y datos de su codigo base, añadiendo sus propio codigo y datos a la misma.


la herencia impone una relacion jerarquica entre clases, en donde una clase hija hereda de su clase padre.


si una clase solo puede recibir caracteristicas de una clase base, se le llama herencia simple.
si una clase recibe propiedades de mas de una clase base, se llama herencia multiple.

***********
**********
***********

poliformismo

La cualidad de tener mas de una forma. como el agua. puede estar en estado gaseoso o liquido,etc


en poo, de una misma operacion puede tener diferentes comportamientos en diferentes objetos.

por ejemplo:

operador mas opera la suma de dos numeros de diferente tipo.
se pueden sumar dos cadenas,

por eso el operador, es poliformico.
Jaime
la verdad no he leido todos los textos pero aprende con basic... es muy sencillo

La idea no es leer libros completos de programacion sino practicar, create pequeños programitas, yo por ejemplo creaba formulas para calcular el area del triangulo, si yo le introducia la base y la altura... Despues vas con cosas mas complicadas...
SkateJack
Jaime, te recomiendo para empezar un lenguaje como C ó como Pascal que son lenguajes de propósito general y que todavía se siguen usando...

Aparte permiten manejo de archivos, manejo dinámido de la memoria, etc.. Podrias crear programas de bajo y mediano porte...

Y en cuanto a kyberneees, me parece que esta no es la foto de enseñarle a programar a nadie, escribiendo cosas desordenadas en un foro...
Yo diría que hicieras un pequeño PDF con las cosas bien explicadas, algunos ejemplos gráficos, y todo bien ordenado...

Saludos Wink
kyberneees
pues segun tenia entendido se debe empezar con una metodologia, tener conceptos generales, ala par y practicando con el codigo, pero para formular tus codigos tienes que tener aprendidas ciertas logicas, dicen que eso es lo fundamental, y eso lo e leido de grandes programadores.

ademas no es que yo quiera darmelas de teacher, para nada, solo que es lo que voy aprendiendo y es lo que iba haciendo como notas de mis analisis basicos,
zurdosoft
Es asi.
Para comenzar a programar es indispensable entender la logica.
Recuerdo que en un libro viejo decia que para entender la programacion habia que pensar como hacer para que la computadora cruce la calle.
Es una accion simple que realizamos los humanos sin pensar.
Pero... tenemos que analizar las velocidades del transito, medir la altura del cordon, calcular la velocidad de cruce de acuerdo al ancho de la calle. Observar 180 grados por obstáculos. Poner en marcha el motor (las piernas) de acuerdo a los calculos anteriores, etc.
Creo que hay más items a observar.
Es muy importante crear librerias que sean reusables para distintas aplicaciones y su seudocodigo para tranportarla a distintos lenguajes de programacion.
Es indispensable pensar una aplicacion antes de comenzar a programar. Planificar, crear diagramas de flujo, pensar en los datos.
Luego definir el usuario de destino, evaluar sus capacidades y sus tiempos.
Seria nefasto hacer un programa para un cajero en el que tenga que manejar el mouse constantemente.
En ese momento decidir en que lenguaje vamos a realizarla, si visual o de consola.
Todo debe estar muy bien pensado porque luego viene una etapa de prueba y error que lleva mucho tiempo y seria lamentable partir de un concepto equivocado.

Estudien, piensen, estudien, trabajen, estudien.

Un programador amigo dice que para programar bien hacen falta muchas horas cu... frente a la PC.
Yo pienso que son 24 horas pensando en un problema.

Saludos
Mamsaac
Yo te recomiendo empezar con php. Está muy sencillo de hacer, puedes manejar bases de datos y es muy práctico hoy en día. Después métete a C++ o a Java.
kyberneees
mmsacc si es lo que me dicen del php, pero vamos que no es tan facil, te tienes que romper la crisma un buen rato para entender, digamos que php es una libreria de codigos inmensa, imaginaos, no nos podemos aprender un diccionario de una lengua, menos los millones de codigos y probabilidades de php yo lo veo asi.
Jaime
bajo mi modesto punto de vista, php es fácil...
LO DIFICIL SON LAS MALDITAS BASES DE DATOS Y COMO CONECTARLAS. Embarassed

y php sin bases de datos no es nada, es lo mismo que javascript...

PS: Oye kybernees como hicicste tu signature (está muy bacano) para colocarle los detallitos como la ciudad detras de la libelula, los puntos rojos con fino detalle...???
Mamsaac
Muy padre su signature... la verdad.

Y php es sencillo, la lógica que lleva es la misma que el javascript pero menos enredado incluso. Y si, el problema viene con las bases de datos, pero una vez aprendido eso, luego se realiza fácilmente.
comtom
Mamsaac wrote:

Y php es sencillo, la lógica que lleva es la misma que el javascript pero menos enredado incluso. Y si, el problema viene con las bases de datos, pero una vez aprendido eso, luego se realiza fácilmente.


totalmente d acuerdo con vos mamsaac. tal cual
kyberneees
PUES SINCERAMENTE QUE BUENO QUE USTEDES TIENEN LA CAPASIDAD DE VER LAS COSAS TAN SENCILLAS, YO POR EL CONTRARIO ME COMPLICO LA VIDA Y ESO QUE APENAS VOY APRENDIENDO EL HTML Y UN POQUITO DE CSS, COMBINANDOLO APENAS CON DREAMWAVER.

Sad
Reply to topic    Frihost Forum Index -> Language Forums -> Spanish

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2007 Frihost, forums powered by phpBB.