ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Other Software > Developer's Corner

Programming in the Linux operating system: where to start?

<< < (6/7) > >>

Gothi[c]:
Only knowing asm or only knowing procedural programming is definitively bad for your mental health :)

But it's still important to know what an interrupt or a pointer is, and to know enough about memory management, even if your programming language takes care of all that for you.

It's a bit of a catch-22 isn't it? start with ASM or C and risk having your mind poisoned against OOP, and start with a high level language, and risk not ever wanting to learn about lower level concepts.

Perhaps in the end it doesn't matter what you start with, and experience is the only thing that counts.

There's too many opinions on what's good or bad out there, and they all have some validity.

f0dder:
But it's still important to know what an interrupt or a pointer is, and to know enough about memory management, even if your programming language takes care of all that for you.-Gothi[c]
--- End quote ---
Most programmers don't need to know about interrupts or much other machine architecture, really - it's pretty irrelevant if you're doing web apps or database clients, etc. Heck, even in native C++ you can go a long way without needing to use (or at least know much about) pointers.

But it all depends on what you want to do as a programmer. I personally see a lot of value in learning about machine architecture, but I don't necessarily think it's the best place to start. Personally, I think getting the big perspective, focusing on logic etc., is a better place to start, so you don't get lost in the nitty gritty details...

Perhaps in the end it doesn't matter what you start with, and experience is the only thing that counts.-Gothi[c]
--- End quote ---
I agree more or less with you here - and I'd like to add curiosity to the mix. Stay curious and willing to learn, that's what counts. I do believe that it's not entirely irrelevant how you start your programming adventure; BASIC can have permanent damaging effects to innocent souls ;)

Armando:
And thinking also of eventual paid jobs (not that I'm even thinking of getting paid doing that -- just mentioning) -- I imagine that knowing certain languages will allow one to fit better in the current programming... errrr... "economic ecosystem"?

Gothi[c]:
it's pretty irrelevant if you're doing web apps or database clients, etc. Heck, even in native C++ you can go a long way without needing to use (or at least know much about) pointers.
--- End quote ---

It's indeed not needed for web apps, but then I never really considered that programming... more like scripting :)

I think it's a really bad idea to do any serious C++ programming, or even VB programming without knowledge of memory usage, pointers, interrupts and the general ways a computer really works.

It is true you can go a very very long way without knowing any of this stuff. You could build a whole career as a programmer without knowing any of it.

But it would be a very very bad thing imo. Knowing as much as possible is always better. Knowing something about the code your compiler produces will definitively help you at some point.

Saying asm or C is like old stuff nobody should know, is like saying nobody needs to know world history, or saying you don't need to know geography. Pleny of people can lead perfectly good lives without knowing anything about the world they live in. But it's really sad for example when only 37% of Americans can locate Iraq on a map, while they are at war with it. It's the same thing really.

housetier:
But where do you stop starting: Do you need to know the layout of the circuits in the processors; what about hardware bugs (F00F or whatever). Curiosity can be drowned in details, so I would suggest starting with something neither too lowlevel nor too highlevel. Then, if curiosity still prevails, one can explore further down and up.

I agree that a certain knowledge of the underlying hardware is good to have, as is knowledge about highlevel concepts such as OOP or AOP. But starting somewhere in the (golden) middle seems best imo.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version