LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 12-13-2016, 04:11 AM   #31
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612

Somehow I don't think programming is abstract. I believe one of the reasons I liked and became good at programming is because I was an excellent auto/moto mechanic from an early age. The key is being able to troubleshoot a problem. One has to be able to understand the process flow, step by step, when it is normal and then eliminate anything which deviates from that in a step by step method.
 
2 members found this post helpful.
Old 12-13-2016, 08:47 AM   #32
Fat_Elvis
Member
 
Registered: Oct 2016
Distribution: FreeDOS 1.2
Posts: 309

Rep: Reputation: 92
Quote:
Originally Posted by gnashley View Post
Somehow I don't think programming is abstract. I believe one of the reasons I liked and became good at programming is because I was an excellent auto/moto mechanic from an early age. The key is being able to troubleshoot a problem. One has to be able to understand the process flow, step by step, when it is normal and then eliminate anything which deviates from that in a step by step method.
At the lowest level, I suppose it really isn't abstract at all. But human brains seem to need abstraction layers to be able to grasp higher level concepts.

This field tends to combine creativity and analysis in an interesting way.
 
1 members found this post helpful.
Old 02-01-2017, 03:14 PM   #33
DeeDeeK
Member
 
Registered: Jan 2016
Distribution: Ubuntu 14.04
Posts: 37

Rep: Reputation: Disabled
So interesting!

This thread was so interesting to read! I've been really frustrated by the deluge of Learn blah blah blah in 21 days, 24 hour, etc., etc.,! There are so many redundant, simply terrible books! Who's buying them? Those publishers are just cashing in on interested potential hobbyists and turning them off with such unrealistic, and uninformative titles.

Image Knuth's The Art of Programming in all four, or is it five volumes? In 24 hours, like six hours apiece.

Sure says the hobbyist, I can make something print hello but what if I want to know how to put pixels on the screen? What if I want to know how they can make graphics bouncing around sound at the same time? Now that I've learned all I can in 28 days, where do I learn MORE?

I learned to program around 1982 on an Atari 400 with 16k ram and a cassette tape data drive. Like audio cassette. I learned Atari Basic, and 6502 Assembler. Later I learned Modula-2 and then took a single data structures class in Pascal, and did a little more, professionally, in the 1980's.

So I thought learning programming in C on GNU/Linux would be a snap! I saw so many books on it, I figured it'd be a small matter to find good learning material and teach myself! Hah!

I love unix-like operating systems. I knew liked C and decided to learn it on my machine running Ubuntu. I learn some systems programming, and basic X windows, to draw some graphics to visualize various algorithms, and maybe make a simple video game. I didn't care about portability, or object oriented programming.

When I sought advice on how to learn these rather specific goals, I was much discouraged, on the basis of the same cliched assumptions all those lame books make about what hobbyists need and want. It seems the think we don't have patience or depth, that we need to be protected from the very things we wish to learn.

Except for one old school hacker I met in person who set me on the right course with a few URLs and book recommendations, I doubt I'd ever have got started.

Learn Python, learn Processing, learn Javascript, learn Java, or anything else instead. What you want to do is too hard to do with C! Or you can't do it with C! You need object oriented programming, learn C++! I was even told there are no libraries for C, I'd have to write all myself.

C++ and it seems like something good for professional settings, large teams working on separate parts of big projects. It seems like a professional program development supervisor's dream! Which is wonderful, but not for me. For me it's total overkill.

I found no broad and thorough guide for the hobbyist who really loves digging into things, who knows what he or she wants. Except for my hacker acquaintance, I found just a clutter of opinions, with very sparse useful suggestions. Manifestos on why one shouldn't do this or that a certain way, are met by others proclaiming the opposite.

And how much advice have we all seen from people who knew little to nothing in specific about questions they answer? Whoever said C doesn't have any libraries clearly doesn't know much about C.

If you don't even know they exist, it is very hard to discover all the great information and wonderful guides to learning really good things, like Xlib-XCB for the hardcore hobbyist, like GTK+, Cairo, Qt for the more reasonable. But if you don't know what even exists out there for you to learn, the advice of others who claim to be experts but who don't know a lot can be very limiting. Following your nose can take a long time.

This is why publishers can put out so much garbage and why newbies and interested hobbyists keep buying. There must be 200000 linux hacks, 1000000 OSX tricks and tips, and everyone should know Javascript recipes, the Bash shell, dived headfirst into a pool full of dummies and complete idiots trying to master HTML 5 canvases in 24 hours to thirty days.
 
Old 02-01-2017, 07:16 PM   #34
sundialsvcs
LQ Guru
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 10,610
Blog Entries: 4

Rep: Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905
DeeDee, there's absolutely no law that prevents publishers from churning out garbage.

However, to me, there is always "one great equalizer" in all of this: The Digital Computer.

Let me explain – and let me begin my explanation with a smudge of personal history. "My personal infatuation with the computer" began in the late 1970's when "a computer" was made of circuit boards in an enclosure about the size of a breadbox. (Which was a considerable advance over the earlier "big iron.") I was then – and(!) I continue to be – fascinated with the prospect of how to make "this unaware mass of clever electronic circuitry" 'do things.'

Even though this breadbox has evolved into a microchip much smaller than your pinky-nail, my fascination has not changed . . .

. . . nor has my understanding of what "the essential challenge" fundamentally consists of.

Yes, today, "the breadbox is a microchip." Yes, today, "we have an embarrassment of software tools, and everybody is (yay!) sharing with everybody else through a quite-marvelous World-Wide(!) Web."

. . . but still, at the end of the day, it's the same thing:
  • "On the left side of the boxing ring . . . " You.
  • "On the right side . . ." The Digital Computer.

No matter how "some intrepid publisher" might try to trivialize this, to me it remains "the same essential 'friendly confrontation'" that fascinated me forty-odd years ago and that continues to fascinate me in the same way(!) today.

If you share my (certainly, "our" ...) fascination, then I welcome you. However, know this – "it is not, and can never be, truly described as 'easy!'" Howcum? Because of "das komputenmachine!"

Your 'Worthy Adversary' ... but also, the only actual actor who will ever actually accomplish anything and everything that you i-n-d-i-r-e-c-t-l-y(!) do ... is a smidgen of very-very-clever silicon.

---
The most-influential e-book that I ever read was called "Managing the Mechanism," and it advanced the premise that every bit of software is "an autonomous(!) software machine." We never get to win the football game: we are tasked with constructing an automaton(!) that does so.

So: "Welcome to my infatuation." Still.
 
Old 02-05-2017, 11:29 PM   #35
DeeDeeK
Member
 
Registered: Jan 2016
Distribution: Ubuntu 14.04
Posts: 37

Rep: Reputation: Disabled
Quote:
Originally Posted by sundialsvcs View Post
DeeDee, there's absolutely no law that prevents publishers from churning out garbage.
...
Your 'Worthy Adversary' ... but also, the only actual actor who will ever actually accomplish anything and everything that you i-n-d-i-r-e-c-t-l-y(!) do ... is a smidgen of very-very-clever silicon.
...
So: "Welcome to my infatuation." Still.
I really do appreciate your postings. Even when I've been a little dufey and slow to pick up on some good points you make. Condition variables, for example!

Silicon is a Worthy Adversary indeed! I love wrestling with the computer and all those software machines bouncing around in it today!

What I object to are the learning cul de sacs which bad titles from bad publishers(even good publishers) lead the newbie into. It was hard for me as a C programming on Linux newbie to find them. It was like finding needles in an ever growing haystack. I hang out at a hacker/maker space and I run into so many people who are unaware of the substrate upon which their 'hacking' projects stand.

One poor soul was trying to do some project using his Raspberry Pi, and had been led to believe Python was where it was at. He didn't know you could access pins through memory or register mapping, controlling several pins at the same time. He was restricted to turning them on and off one at a time, really slowly.

Here's some words I really relate to, I quote fromhttps://www.johndcook.com/blog/tag/knuth/:

Quote:
I also must confess to a strong bias against the fashion for reusable code. To me, “re-editable code” is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace.

Knuth didn’t elaborate on what he means by “re-editable” code, but I assume he means code that is easy to maintain. The best chance most code has at reuse is remaining useful in its original project over multiple versions, so maybe we’d get more reuse if we focused more on maintainability.

I think whether code should be editable or in “an untouchable black box” depends on the number of developers involved, as well as their talent and motivation. Knuth is a highly motivated genius working in isolation.
Not a genius working in isolation and not part of large projects, it's good for one's creativity to avoid black boxes. I learn something even by wrecking up my hobby computer (I have another one for things I want NOT to wreck up, like emails, media I paid for, etc.

I love learning and using and misusing low level libraries, and nobody has gotten hurt when I crashed the hobby laptop. I've never had to reinstall the OS much less seen flames and smoke. Hobbyists and enthusiasts should be encouraged to crash and mess up. And then discover the cause and find a NEW way to mess up. That's the fastest way to scale the learning curve and grow in depth of understanding.

Like, I hate mutexs and locks. And now I find out about the Actor model! Duh! I've been trying to invent it. I'm a follow my nose sort of learner, and maybe was stuck for a little to long being led by the nose by those publishers and misinformed 'hackers' (real hackers are much more rarely misinformed).

A learner's guide for crackpots would be helpful...

Last edited by DeeDeeK; 02-06-2017 at 10:29 AM. Reason: absurdly too long. now it's mere too long, not absurdly. Not very absurdly
 
Old 02-06-2017, 10:04 AM   #36
DeeDeeK
Member
 
Registered: Jan 2016
Distribution: Ubuntu 14.04
Posts: 37

Rep: Reputation: Disabled
Quote:
Originally Posted by gnashley View Post
Somehow I don't think programming is abstract. I believe one of the reasons I liked and became good at programming is because I was an excellent auto/moto mechanic from an early age. The key is being able to troubleshoot a problem. One has to be able to understand the process flow, step by step, when it is normal and then eliminate anything which deviates from that in a step by step method.
That is such a cool observation. The neat thing about mechanics is the piece parts are of specific shapes and have other specific qualities, and perform specific jobs. Not unlike machine instructions, or even the electronic components etched onto chips. I like assembly language, which is an abstraction of the underlying machine code...

Maybe the word abstract means more "grouping a bunch of things together consistently and giving that group a name."

I keep ragging on this case where a 'hacker' at the local hackerspace was trying to use a Raspberry Pi to drive some electronics. It has a bunch of i/o pins which are memory mapped (unless they're register mapped, I don't really know) but he was using Python and didn't know what memory mapped or register mapped means, and the routines (methods? I don't use Python at all) gave him access only to one pin at a time. And it was very slow. That is what I think of as 'abstraction,' and it's bad.

This guy was an electronics guy (he know Ohm's law and can wire up any circuit you like)and knew little to nothing about programming or the actually workings of the Pi software wise. What he really needed was a little cheap microcontroller using an eeprom or eprom, a burner, and a cross assembler. He'd have been in business within a couple days.
 
  


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
Socket Programming making use of "select()" and "writefds" johncsl82 Programming 10 11-13-2011 12:27 PM
Linux programming "program to format an external storage device?" Karbon Programming 1 06-19-2008 05:45 PM
real time programming on Linux-2.4 " URGENT" mendiratta Programming 1 05-26-2005 08:20 AM
please bring back "linux>programming"! kervin LQ Suggestions & Feedback 9 07-13-2002 07:46 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 07:52 AM.

Main Menu
Advertisement
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
Open Source Consulting | Domain Registration