addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupshelp-with-circleimageimagesinstagramlinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Re: [ruby-81] - tips for teen ultra-novice beginners

From: Loqi
Sent on: Tuesday, February 26, 2008 6:46 PM
Everybody's right about "go where the interest leads" AND about 
"learn the foundations". I say try to find a way to do both at the 
same time. Spend most of the time having fun, making cool stuff 
that's relevant to your life. But whenever something feels rickety, 
or like it's built on top of magic, try to figure out what's going on 
under the surface. You don't need to become an expert in anything, 
just try to accurately conceptualize one or two levels below what 
you're working or playing at. Everything is made out of smaller parts 
and arranged in layers. Try to learn about what you're walking around 
on top of.

Be ready to constantly un-learn bad habits. When you take the 
approach of diving right in, you'll repeat many of the mistakes of 
the past few decades of programming. That's okay. Just know all along 
that's what you're doing. Many very smart people have thought through 
programming topics big and small. And they often disagree. But it's 
good to eventually become one of those smart people and understand 
all the viewpoints. That way when you develop solid opinions, they're 
right enough to keep you out of trouble most of the time. "The 
Pragmatic Programmer" book is chock full of great advice for a year 
from now. Three years from now you can tackle discrete math, design 
patterns, CPU architecture, database theory, and such. But for now, 
just be aware that stuff exists.

Don't give up when you get stuck. You will get stuck. Ninety percent 
of programming is about finding your own mistakes and revising your 
design. Programming is a form of engineering. If everything's not 
perfect, things don't work at all, or they might even seem to work 
for a while and bite you later. Learn to debug by using the computer 
to step through your code. You'll be doing this a lot. And develop a 
systematic way of assuring yourself that things do what they're 
supposed to do. Eventually you'll be writing code that tests your 
code, but that comes later (hopefully not TOO much later). You'd 
better enjoy tricky puzzles if you're going to be programming 
anything interesting.

See if you can find a friend to learn with. Two can go further than 
one. You can make stuff separately, and then see how each-other's 
creations tick. You'll learn more and have more fun. Reading other 
people's code is a different skill from writing it yourself. You'll 
pick up tricks from each-other, point out bad habits, help each-other 
get unstuck, and get great new ideas on what to do next. And there's 
always the internet for finding coding buddies.

But most of all, have fun. Don't be overwhelmed by all the stuff out 
there. Just learn one small thing each day. Some of us old-timers got 
started when the programming world was much simpler and less 
powerful. You get to start in a richer, more confusing world.

And Ruby is an excellent choice as a first language.

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy