LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > General
User Name
Password
General This forum is for non-technical general discussion which can include both Linux and non-Linux topics. Have fun!

Notices

Reply
 
Search this Thread
Old 07-30-2009, 07:14 AM   #1
joeBuffer
Member
 
Registered: Jul 2009
Distribution: Ubuntu 9.04
Posts: 328

Rep: Reputation: 42
Arrow What are the most fundamental things to know about computers and Linux?


If you want to learn things that have far-reaching importance in learning about computers and Linux, what would they be?
What I mean is, say you're very active in these forums - you're a moderator, you have thousands of posts, you've been using and learning about computers/Linux/UNIX/whatever for years, etc (maybe not all at once). What is constantly important to know?
If you have the ability to answer very many questions asked by very many people, and you don't have to look in a reference book to find the answer, what knowledge makes it possible for you to do so?

Also, I cannot comprehend how people can fully learn and master assembly. Do you find assembly to be a language that turns you into a know-it-all? If so, where does anyone in the world get a comprehensive Linux book or tutorial that teaches assembly using the GNU assembler and doesn't require you to also buy 50 other books? I can't understand how anyone could master this language using the GNU assembler (but this is a separate question).

Last edited by joeBuffer; 07-30-2009 at 07:18 AM.
 
Old 07-30-2009, 07:58 AM   #2
pixellany
LQ Veteran
 
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Arch/XFCE
Posts: 17,802

Rep: Reputation: 728Reputation: 728Reputation: 728Reputation: 728Reputation: 728Reputation: 728Reputation: 728
What is important to know (about anything):

First, you need to follow what interests you---subject of course to the realities of getting/staying employed. Two elaborations:
---Don't spend ALL of you time learning things that NOONE will pay you for.
---Don't spend a long time at a job that you have no interest in.

Another perspective: You need to know what is required to achieve a particular objective. It does no good to know how to hold a football if you don't know where the goalposts are....

Assembly is maybe easier:
First there was machine code. The processor designer gives you the code (in binary, octal, or hex), for a particular function. When someone figured out that they could assign names to all the functions, then we had assembly. Maybe not the easiest thing to learn, but it was better than remembering the numeric codes, and noone had invented Pascal or C, so there really was not much choice.
Quote:
Also, I cannot comprehend how people can fully learn and master assembly.
Because they need to to accomplish a specific task.
Quote:
Do you find assembly to be a language that turns you into a know-it-all?
I spent 4 years learning French and it just made me feel stupid.....

Also, keep in mind the difference between learning a language and learning to program. It does no good to know the language if you don't understand loops, branches, and data structures---and why you need them.
 
Old 07-30-2009, 08:09 AM   #3
unSpawn
Moderator
 
Registered: May 2001
Posts: 27,311
Blog Entries: 54

Rep: Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860Reputation: 2860
Very good questions. In essence LQ moderators are here to help people get along OK. Other than that moderators are "just" LQ members like you. And LQ members are as different on LQ as they are in R/L: some are generalists and some are specialists. Some like to tinker a lot and some don't (have the time or inclination to). What we all have in common is that we're all here to try and help each other. Others may find it easier to answer your questions more eloquently or practically but these are the mantras that come to mind right now:

Computing is easy.
Only humans use fuzzy logic and language to vaguely describe things in terms of "worries" or "thinking". Technology allows you to simplify any state to a condition being either true or false.

Knowledge is not only knowing things but knowing *where* to find it.
GNU/Linux comes with a load of information sources and the 'net is a true cornucopia of information. Knowing how to search and where to find information really is important. (This also means sharing information with others is crucial.)

Everything takes time and persistence.
Being able to fire a rifle accurately, perform open heart surgery or build a huge social networking site have in common their require skills that have to be learnt and practiced. And learning things takes time. Anger and frustration are not attributes of GNU/Linux. Anger leads to frustration, and frustration leads to, well, you know... ;-p

GNU/Linux equals freedom.
Some people forget that and just hold out their hand for an answer where they could easily try things themselves. You're free to experiment to find out if something is true or false.

GNU/Linux itself is not a goal.
It's "just" an "enabler": GNU/Linux system(s) enable you to perform jobs efficiently knowing what you produce conforms to official standards, enable you make money off of having a smoothly running, stable and secure platform, enable you to build something on top of it that may have a global impact. Be inspired to do something with it!
 
Old 07-30-2009, 09:14 AM   #4
joeBuffer
Member
 
Registered: Jul 2009
Distribution: Ubuntu 9.04
Posts: 328

Original Poster
Rep: Reputation: 42
Thanks for the responses. I might clear a couple of things up ...
By "I don't understand how they can master it" - I should say more accurately - I don't understand what resources they have for this. Say you are going to become an assembly expert. I have searched and used Google books, etc. I don't see that there is a source for learning everything about it. Are Intel's manuals complete? The books I've seen that seem thorough are all NASM or something else strange about them. An example:
these expert programmers that wrote the kernel.
All the assembly, etc. in it. As college people, with computer scientist degrees ... did they learn everything about hardware, and then use something like Intel's manuals? What did they do ... use reference material?
And as far as the question of ability to answer questions:
I've noticed here and in other forums, certain people that post and post and post and post and post. And they are all legitimate posts. When someone has a question about something, they post an answer. Period.
Does this come from years of experience, or from having a fundamental knowledge of things? How things work, I guess you could say, at a low level? Hardware, machine code/assembly, then one person asks a question about what to do about a buffer overflow, another has a #10 error, and another is complaining about an angry flippy-floppy. --
Is this years of experience, or is it foundational, fundamental, whatever word I can't think of? In every forum and every question, they have an answer. Do they just (out of the kindness of their hearts) look in a reference book (of which they have many). I am confused as to how this happens.

Last edited by joeBuffer; 07-30-2009 at 09:16 AM.
 
Old 07-30-2009, 09:43 AM   #5
joeBuffer
Member
 
Registered: Jul 2009
Distribution: Ubuntu 9.04
Posts: 328

Original Poster
Rep: Reputation: 42
I don't know that I could get a job in programming or computer science or anything like that ...
I don't know my I.Q. but I think it's average.
I took two free online i.q. tests and one said 120 and one said 140. I'm sure this is wrong.
I don't know a lot of math.
I'm assuming that if you get paid 70-100 thousand dollars a year to do something, you're very smart and have to be very good at what you do.
I graduated high school, but I took the equivalency test, and didn't actually attend high school.
I was going to attend college for software development a while back, but the math and logic and everything was over my head (that is to say I'd never learned anything about it, really).
I haven't learned a large amount since then about math or logic or anything.
I have been planning on learning about computers for my personal use, but I would like to be very knowledgeable about them.
I have some books, I've read for quite a while using internet resources.
I have C in a Nutshell, and How Computers Work - White/Downs, which I purchased before using Linux (but which still has good information in it). I've learned (before and since using Linux) some assembly, C, C++, PERL, bash shell scripting, sed and awk (mostly awk), some of the Linux utilities, a lot (in my opinion) about filesystems and the filesystem hierarchy, partitioning, etc. (I can't really grasp proc and things like that yet.) Everything so far for me is easily understandable, but is a black box.
What I know of processors, memory, hard disk, ram, etc. for some reason when I read about somewhat advanced topics on the software/operating system level, I cannot picture how they are performing what I'm reading about. It's very mysterious to me in a lot of ways. A lot of this (I believe) comes from interrupts, and things like this. I don't know or understand some things yet. I wonder if I'm wasting my time by expecting to get a huge amount of knowledge about everything - or maybe wasting my time on what I have been learning about, by comparison to how much I could learn at once by reading about something else (things that cover a lot, very important topics).

Last edited by joeBuffer; 08-24-2009 at 07:36 AM.
 
Old 07-30-2009, 09:49 AM   #6
joeBuffer
Member
 
Registered: Jul 2009
Distribution: Ubuntu 9.04
Posts: 328

Original Poster
Rep: Reputation: 42
Also, I can't decide whether the internet is an excellent source of information or not. I don't know what to go by, what is very reliable, very accurate, etc. so I don't read a lot of articles/how-to's and things like this, because I'm not sure about the quality and how worthwhile they are.
I've installed and experimented with Gentoo, K-X-Ubuntu, openSUSE, Slackware, Fedora, BLAG, a lot of Linux From Scratch ... I don't know what to do. I've only been using Linux, since early this year.

Last edited by joeBuffer; 08-24-2009 at 07:37 AM.
 
Old 07-30-2009, 01:50 PM   #7
tredegar
LQ 5k Club
 
Registered: May 2003
Location: London, UK
Distribution: Debian "Jessie"
Posts: 6,012

Rep: Reputation: 367Reputation: 367Reputation: 367Reputation: 367
Quote:
I don't know what to go by, what is very reliable, very accurate, etc. so I don't read a lot of articles/how-to's and things like this, because I'm not sure about the quality and how worthwhile they are.
As in real life: Read, attempt to understand, test your perception against the reality.

Then reconsider, test your perception .....

Lather, rinse, repeat.
 
Old 07-30-2009, 02:48 PM   #8
NeddySeagoon
Gentoo support team
 
Registered: May 2009
Location: 56N 3W
Distribution: Gentoo
Posts: 178

Rep: Reputation: 40
joeBuffer,

Knowing how to solve problems is half the way to becoming in expert in any field.
There are two approaches to problem solving and you need to use them both.
1. Cut things out and see if the problem persistes
2. Try different things and note the effects - deduce the common cause.

You only get to know assembler if you have a problem to solve that needs assembler.
Intels manuals will tell you the Op Codes for various instructions but not the assembly numonics.

I learned problem solving before I met Linux and have always enjoyed it, which is why I post here and at forums.gentoo.org. Thats possibly why Gentoo is my distro of choice too.

You need not worry about your IQ for being good at problem solving. You need only be methodical.
 
Old 07-30-2009, 03:04 PM   #9
lazlow
Senior Member
 
Registered: Jan 2006
Posts: 4,362

Rep: Reputation: 171Reputation: 171
If you do not have the math and logic to back it up, programming is going to be very difficult. You have to build the foundation before you build the house.

Probably the biggest thing I have to remember is that things are constantly changing. What is true in computing today (limits, methods, etc) will not necessarily be true tomorrow.

The main reason the assembly is still taught at most universities is to demonstrate how far we have come. Assembly has become pretty obscure and probably 90%(?) of the programmers out there have not programmed in it for years. If I remember correctly less than %5 of the Linux kernel is in assembly. That is not to say that assembly is bad. Properly programmed assembly will still execute faster(per task) than any other language. However it will also take MUCH longer to write and can be extremely difficult to debug. C has pretty much become the standard for programming. Its execution speed gets closer to assembly every generation, it is much faster to write, and it is far easier to debug.
 
Old 07-31-2009, 01:20 AM   #10
chrism01
Guru
 
Registered: Aug 2004
Location: Sydney
Distribution: Centos 6.5, Centos 5.10
Posts: 16,269

Rep: Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028Reputation: 2028
As far as knowing stuff, goes, you have to understand that the total amt of stuff you could learn about computers (HW & SW) is effectively infinite.
So, what you start by doing is specialising in the stuff you need to know to do whatever it is you need to do.
A logical mind/approach helps a lot because, contrary to occasional appearances, computers are logical (at the fundamental level).
See previous comment re fuzzy logic.
Building a web page requires a greater appreciation of visual aesthetics than cli or DB programming.
However, good code, like good mathematics, will usually have a visual aesthetic, ask any mathematician or theoretical physicist or programmer.
You don't need to understand ASM unless you intend to use it, although a basic understanding gives you a good background in the way things really are.
Personally, I'd also recommend a good basic understanding of C (at least).
Most OS, DB internal code is some form of C.
Also, a lot (most?) other higher level langs are written in C underneath eg bash, Perl, PHP etc.

HTH


PS:
To learn/know a lot:

10 read
20 do
30 goto 10


Last edited by chrism01; 07-31-2009 at 01:31 AM. Reason: Add PS
 
Old 07-31-2009, 04:03 AM   #11
joeBuffer
Member
 
Registered: Jul 2009
Distribution: Ubuntu 9.04
Posts: 328

Original Poster
Rep: Reputation: 42
I have a good understanding of C in my opinion, I can read and understand it easily (except for standard library functions, etc.) which is why I bought C in a Nutshell instead of an introductory book ...
I first bought a C++ book and read it and learned some about C++ years ago, but I went a long time without learning about much else as far as programming goes.
I've been spending a lot of time on the computer since I started using Linux, all day basically. I just yesterday read Oracle's tutorials for sed and awk, I'd read IBM's tutorials on them, but they weren't so complete or explained so well, in my opinion, as Oracle's were. I need a refresher on PERL, really, but I remember a lot of it. Bash scripting I haven't read a very complete tutorial on yet, but I can get things done with it.
Linux is much more interesting to me than Windows, I think Windows is boring and I enjoy learning about Linux/UNIX much more than Windows, and it isn't just because I'm bored with Windows - I really care about knowing about Linux, where with Windows what I do know about it is just to know about it basically.
I've already read about 40 pages of C in a Nutshell, but I've been reading it slowly. I was going to read through it front to back and then study it more. C is also very interesting to me, where with C++, when I've read about it, I've sort of forced myself to.
I've been thinking that with assembly it would probably be good to learn a lot about hardware, and read a beginner-intermediate type book on it, and then use Intel's manuals, or something along those lines.
 
Old 07-31-2009, 04:10 AM   #12
joeBuffer
Member
 
Registered: Jul 2009
Distribution: Ubuntu 9.04
Posts: 328

Original Poster
Rep: Reputation: 42
When I was very new to computers, and hadn't learned anything about them really, I assumed that to get a job like programming or practically anything else with computers you wouldn't need a very large amount of mathematics, logic, etc.
 
Old 07-31-2009, 04:38 AM   #13
jdkaye
Senior Member
 
Registered: Dec 2008
Location: Westgate-on-Sea, Kent, UK
Distribution: Debian Testing Amd64
Posts: 4,706

Rep: Reputation: Disabled
Quote:
Originally Posted by lazlow View Post
If you do not have the math and logic to back it up, programming is going to be very difficult. You have to build the foundation before you build the house.
Hi Joe and Lazlow,
I think that really depends on what sort of programming you're doing. If you are working out routines for a vector graphics program or fast fourier analysis, then yeah, you certainly need the math to back it up. But these requirements are specific to those kinds of tasks.

More generally, I'd say you need the ability to think algorithmically; that is to break down a problem into a series of steps and execute those steps in a logical order. This may or may not involve maths depending on what you're trying to do.

Likewise, computer programming languages come in different flavours: there are low level languages like Assembly and C which deal with things like memory allocation and pointers and addresses. I have the same reaction to these low level programming languages as I do to a televised kidney operation where you see in living colour and horrible detail, all the blood and guts and internal organs. I'm glad somebody does it but my reaction is, Yuck. I prefer the cleaner world of high level programming languages like (Un)icon, Prolog, Lisp, Perl, Snobol, etc. where the gore and guts are left to other devices to deal with.

My programming deals mainly with pattern matching of various kinds so I can remain blissfully ignorant of the gory bits. If you like C, Joe, I say more power to you. But you can love programming without even knowing C.

Above all, have fun.
cheers,
jdk
 
Old 07-31-2009, 04:44 AM   #14
joeBuffer
Member
 
Registered: Jul 2009
Distribution: Ubuntu 9.04
Posts: 328

Original Poster
Rep: Reputation: 42
I think reading about different languages and experimenting with them has been very helpful to me, personally. I just like a lot of things about C, a lot of it is just personal preference, though. I wouldn't go into the details of the design of the language or anything like that, as compared to others, but it's very quality to me, and being a little lower level isn't a bad thing at all to me. I've never tried out lisp or scheme or any functional languages, but I've been curious ...
Quote:
(Un)icon, Prolog, Lisp, Perl, Snobol, etc.
I haven't learned anything about one of these languages except Perl.

Last edited by joeBuffer; 07-31-2009 at 04:47 AM.
 
Old 07-31-2009, 04:56 AM   #15
jdkaye
Senior Member
 
Registered: Dec 2008
Location: Westgate-on-Sea, Kent, UK
Distribution: Debian Testing Amd64
Posts: 4,706

Rep: Reputation: Disabled
Quote:
Originally Posted by joeBuffer View Post
I think reading about different languages and experimenting with them has been very helpful to me, personally. I just like a lot of things about C, a lot of it is just personal preference, though. I wouldn't go into the details of the design of the language or anything like that, as compared to others, but it's very quality to me, and being a little lower level isn't a bad thing at all to me. I've never tried out lisp or scheme or any functional languages, but I've been curious ...

I haven't learned anything about one of these languages except Perl.
Check them out if you have the time. They're fun. Snobol's a bit 1960's though.
cheers,
jdk
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: 10 fundamental differences between Linux and Windows LXer Syndicated Linux News 0 08-27-2008 08:10 PM
LXer: Is Linux currently at a fundamental disadvantage owing to how computers are set LXer Syndicated Linux News 0 07-31-2008 06:40 AM
The Fundamental Differences Between Linux and Windows Charred Linux - News 23 10-30-2005 01:50 AM
fundamental differences bewteen linux and windows gatomeno Linux - Newbie 5 10-23-2003 12:31 AM
The foolish things we do with our computers neo77777 General 2 06-27-2002 11:23 PM


All times are GMT -5. The time now is 09:49 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration