Terminé mi carrera…o mi caminata
Saturday, 10 May , 2008
La semana pasada aprobé la última materia de la carrera Analista en Informática Aplicada, después de muuuucho tiempo al fin me recibí, todavía recuerdo cuando recién comenzaba a estudiar, tenía muchas energías y ganas de aprender más y más acerca de todo lo que tenga que ver con computadoras y debo reconocer que aprendí varias cosas en esa casa estudios pero también tengo que decir que las cosas que considero más importantes las aprendí afuera. En mi caso particular hace bastante tiempo que me vengo dedicando al desarrollo de software más que nada al desarrollo web, he trabajado en varios lugares/empresas y también hice algunos proyectos personales que publiqué con licencia GPL. En la facultad tuve materias como: Fundamentos de Programación, Programación I, Programación II, Ingeniería de Software, Bases de datos y Optativa y Proyecto final, los lenguajes que conocí en esas materias fueron: Pascal, Delphi, Java, C++ y Visual Basic, sin embargo los lenguajes en con los cuales yo he venido trabajando son: PHP, Perl, Ruby y algo de Shell Scripting… es cierto que en este último tiempo en mi trabajo me están obligando a usar java (uno de los motivos que hace que este lugar se torne bastante aburrido para mí). Debo decir que la mayoría de estas materias (de programación) estaban centradas en enseñar la sintaxis del lenguaje que se daba o en cuales botones había que hacer “click” para compilar con netbeans o como generar un reporte con el asistente de Visual Basic xx, otro detalle importante eran los exámenes, a excepción de proyecto final todos los exámenes se hacían en papel y para aprobar bastaba con que el programa “funcione” sin importar la forma de resolverlo.
Acá les dejo el último exámen que rendí, el de Optativa y proyecto final:
Este es el enunciado:


El título dice “Recuperatorio 2do parcial” se ve que fué reutilizado
, bueno acá les dejo mi solución:
class Plancuentalc_id def self.calcular_nro_siguiente cuenta Plancuenta.find(:all).select{|p| p.Plc_IdPadre == cuenta}. sort{|x,y| x.Plc_NroAux y.Plc_NroAux}.last.Plc_NroAux + 1 end def self.agrega_plan plc_idpadre, plc_desc plc_nroaux = self.calcular_nro_siguiente(plc_idpadre) @plan_nuevo = Plancuenta.new(
lc_IdPadre => plc_idpadre,
lc_NroAux => plc_nroaux,
lc_Desc => plc_desc) @plan_nuevo.save end def self.pone_puntos_intermedios nro str = '' nro.to_s.each_byte{|b| str += b.chr + "."} str end def self.cuentas_imputables ci = Plancuenta.find_by_sql("select * from plancuenta where id NOT IN (select Plc_IdPadre from plancuenta)") end def before_save self.Plc_id = (self.Plc_IdPadre.to_s + self.Plc_NroAux.to_s).to_i self.Plc_Cod = (Plancuenta.pone_puntos_intermedios(self.Plc_id) + self.Plc_NroAux.to_s) end end
class Asientoslc_Id def self.hacer_caja str = '' Plancuenta.cuentas_imputables.each{|c| str += "Cuenta: #{c.Plc_id} Saldo: #{Asientos.saldo(c.Plc_id)}\n" } puts str end def self.saldo cuenta Asientos.find_all_by_Plc_Id(cuenta).collect{|a| a.Asi_Debe}.sum - \ Asientos.find_all_by_Plc_Id(cuenta).collect{|a| a.Asi_Haber}.sum end end
Esos son los dos modelos que hice para la solución que me llevó 2hs, el código se podría mejorar bastante pero me quedé bastante conforme, recuerden que estaba bajo la presión de rendir un exámen y no tenía mucho tiempo, además el prosefor me entregó la estructura de la base de datos en un archivo .mdb (de MS Access) y como yo uso Linux me la tuve que rebuscar para leer ese archivo y meterlo dentro de una db en Mysql.
Bueno la nota que me saqué fué 9 (sobresaliente).
Que experiencia tuvieron uds. en sus facultades? espero comentarios….


