Endless Paradigm

Full Version: Abstraction, Information, Learning, what to make of it
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Woop!

Well I'm making another post again, no, there isn't much progress to speak of. I think one of the problems in my life is that I never feel like I'm ready for a task because I always feel like I need to learn more to be better. Then wee just enter a cycle of "can I do it?", "of course not, I need to know about X and Y" and I never get anything done.

Programming is one of those things, where I always ask myself "well I really want to do this" but then "oh I need to learn more if I'm going to do it".

Ugh. Anyway, there has been a thing bugging me for quite some time related to all of this and I'll try to put in the most coherent way I can.

How is it that wee are able to "understand" something fabricated from underlying information? Yeah I know, maybe that's not a straightforward thought, but try to follow me here.

One of my daily examples today was the concept of fourier transforms using opencv (if anyone is interested in the link: http://docs.opencv.org/trunk/doc/tutoria...sform.html ). Obviously I looked over the tutorial and my eyes rolled in my head, I've dealt with integrations and what not before, but I have no idea what a complex and imaginary number is. Hence, if I want to understand this topic, I need to understand other topics and come back to this one.

Ok so...uh...double you tee eff are you on about? It's just the way I understand things, like how a computer "works" is flawed to a point where if such abstractions were torn away, the information, my knowledge would be absolutely useless. Yeah I can hook up a computer, I can tell you that you need to have a hard drive, cpu, ram, monitor, keyboard, whatever. I know some linux commands, the vi editor, I can move my way around them and I can even explain how the computer talks to other computers on the network too.

See why I'm bothered? Abstracted knowledge/understanding is just bad, if I really want to have mastery and control over something, you need to understand all layers of whatever makes up that topic/knowledge base. I think that's just a problem that I have today, where do I draw the line where I stop looking to understand and be satisfied with my current understanding, even if it is flawed? (and useless when the constructs that support are torn away).

To sum it up, I'm always ignorant. Where do you draw the line and are satisfied with your current know how? Well, my answer to that is, when spoon hits the fan and I figure out that I don't.

It's just a bad approach, and sometimes misleading information even gets passed around because of it. That's why I always try to dig deeper into what I already know, it's just amazing what you can find and what bullchocolate you can come up with.

Herp derp durr. Maybe I should stop being a try-hard and talk about my life, maybe next time.

P.S. I really love art for this reason, as soon as you draw a picture you can always see what's flawed right away (that's if you're actually a critical person). There's no need for further explorations and ventures into what you already know, so you can find out what you don't. Probably why a part of me still wants to draw stuff.
Tetris999 Wrote: [ -> ]Woop!

Well I'm making another post again, no, there isn't much progress to speak of. I think one of the problems in my life is that I never feel like I'm ready for a task because I always feel like I need to learn more to be better. Then wee just enter a cycle of "can I do it?", "of course not, I need to know about X and Y" and I never get anything done.

Programming is one of those things, where I always ask myself "well I really want to do this" but then "oh I need to learn more if I'm going to do it".

Ugh. Anyway, there has been a thing bugging me for quite some time related to all of this and I'll try to put in the most coherent way I can.

How is it that wee are able to "understand" something fabricated from underlying information? Yeah I know, maybe that's not a straightforward thought, but try to follow me here.

One of my daily examples today was the concept of fourier transforms using opencv (if anyone is interested in the link: http://docs.opencv.org/trunk/doc/tutoria...sform.html ). Obviously I looked over the tutorial and my eyes rolled in my head, I've dealt with integrations and what not before, but I have no idea what a complex and imaginary number is. Hence, if I want to understand this topic, I need to understand other topics and come back to this one.

Ok so...uh...double you tee eff are you on about? It's just the way I understand things, like how a computer "works" is flawed to a point where if such abstractions were torn away, the information, my knowledge would be absolutely useless. Yeah I can hook up a computer, I can tell you that you need to have a hard drive, cpu, ram, monitor, keyboard, whatever. I know some linux commands, the vi editor, I can move my way around them and I can even explain how the computer talks to other computers on the network too.

See why I'm bothered? Abstracted knowledge/understanding is just bad, if I really want to have mastery and control over something, you need to understand all layers of whatever makes up that topic/knowledge base. I think that's just a problem that I have today, where do I draw the line where I stop looking to understand and be satisfied with my current understanding, even if it is flawed? (and useless when the constructs that support are torn away).

To sum it up, I'm always ignorant. Where do you draw the line and are satisfied with your current know how? Well, my answer to that is, when spoon hits the fan and I figure out that I don't.

It's just a bad approach, and sometimes misleading information even gets passed around because of it. That's why I always try to dig deeper into what I already know, it's just amazing what you can find and what bullchocolate you can come up with.

Herp derp durr. Maybe I should stop being a try-hard and talk about my life, maybe next time.

P.S. I really love art for this reason, as soon as you draw a picture you can always see what's flawed right away (that's if you're actually a critical person). There's no need for further explorations and ventures into what you already know, so you can find out what you don't. Probably why a part of me still wants to draw stuff.

I totally get this. Regarding PSP stuff, I've learnt it bit by bit, with most things going well, and then I learn a bit more and have to go on improving it. A load of trial and error, pages and pages of reading, trying to put into practice what information my brain soaks up from the many wondrous pages Google has to offer. Mainly with creating themes. I do something, then use it a bit, and find there's something I can improve, and so start again.

This is happening with my latest interest - hacking the amazing Super Metroid. Hacking Super Metroid makes PSP stuff look like child's play. I don't really know spoon about coding, and am just starting to (kinda) get hexidecimal (but only in relation to hacking this game, not in the generalised sense of applying it to anything). And even taking hex out of the equation, there's just so much to take on board. My brain is struggling to take it all in and remember it all, putting it into practice is showing this. The annoying thing is, is that it's my favourite game of all time, and playing some of the hacks out there is inspiring - and hacking the game is something I really want to do - but the mountain of effort ahead is just so daunting.

I'm gonna stop now a I am doing a Tetris999, and rambling hehe! :D
A good abstraction shouldn't require you to understand what's going on beneath.
Abstractions are good because they allow you to focus on what's important for your application, as well as enforce seperation of logic.
For example, an application that writes text files should not know anything about how the underlying file system works.  The file system abstraction forces this.  So that if the underlying file system is changed, the application should still work.
For personal knowledge, it's difficult to say.  Be aware that implementations change, so even if you've learnt how they worked under the hood, it's not necessarily the same all the time.
ZiNgA BuRgA Wrote: [ -> ]A good abstraction shouldn't require you to understand what's going on beneath.
Abstractions are good because they allow you to focus on what's important for your application, as well as enforce seperation of logic.
For example, an application that writes text files should not know anything about how the underlying file system works.  The file system abstraction forces this.  So that if the underlying file system is changed, the application should still work.
For personal knowledge, it's difficult to say.  Be aware that implementations change, so even if you've learnt how they worked under the hood, it's not necessarily the same all the time.

That's a good way of approaching it. I guess the best way to have a solid understanding is that you don't need to depend on other other sources or that you can make the assumption/statement given that the other things are true.

Good one Zinga. ;)
Reference URL's