Follow TV Tropes

Following

Questions about Programming

Go To

ViralLamb Since: Jun, 2010
#1: Jun 1st 2011 at 5:52:39 PM

Hello, I have many questions about programming, its uses, language differences, and learning, but have found the internet to be lacking in guidance. It seems that lots of people here know a thing or two about coding, so I thought I'd get the best info from you fine folks.

What is the best motivation for learning how to program? "Job" seems to be the most obvious, since its my current motivation actually, but does anyone use programming for other "household" uses? How useful is programming overall?

What's the best way to learn programming, and what language is best for learning? And after learning, what's the best language for....well everything I guess xD, or at least what language is best for getting a job?

Power corrupts. Knowledge is Power. Study hard. Be evil.
blueharp Since: Dec, 1969
#2: Jun 1st 2011 at 5:54:45 PM

There is no one single best.

How useful programming could be at home depends on what you want to do. You can do as little or as much as you want. If you want to put the effort into developing an X10 system, yeah, you could, but if you find it tedious to do that, it would not be worth it.

[down]X10 is a system of home automation and control, you can set things to turn on, off, or whatever.

It's not the only thing you can do, but it's an example, if you like solving problems in a controlled way, programming is for you.

edited 1st Jun '11 6:50:28 PM by blueharp

ViralLamb Since: Jun, 2010
#3: Jun 1st 2011 at 6:03:58 PM

What's an x10 system? And yes, I don't know shit about shit.

Power corrupts. Knowledge is Power. Study hard. Be evil.
storyyeller More like giant cherries from Appleloosa Since: Jan, 2001 Relationship Status: RelationshipOutOfBoundsException: 1
More like giant cherries
#4: Jun 1st 2011 at 6:40:49 PM

Making games is fun. That's my motivation. Although it's also often useful for automating certain tasks.

Blind Final Fantasy 6 Let's Play
Usht Lv. 3 Genasi Wizard from an arbitrary view point. Since: Feb, 2011
Lv. 3 Genasi Wizard
#5: Jun 1st 2011 at 6:43:49 PM

I personally learned to program on my own just to make games. Yes, that was a strong motivator for me. Anyway, if you want to go beginner, grab a copy of Game Maker at Yo Yo Games. Go from visual to code, it has a relatively simple language. If that's too basic, Python is another good place to start, the site has lots of tutorials to teach you how to code from scratch, however, I don't recommend tackling Java or C until you've got a sufficient level of experience.

The thing about making witty signature lines is that it first needs to actually be witty.
NativeJovian Jupiterian Local from Orlando, FL Since: Mar, 2014 Relationship Status: Maxing my social links
Jupiterian Local
#6: Jun 2nd 2011 at 6:36:42 AM

If you're really interested in programming for a living, the best way to learn is to get a degree in it. Most programming jobs will require a Bachelor's anyway, so get a Computer Science degree and you'll learn how to program in the process.

If that's not an option, then pick up a "beginner's guide to programming" type book and just dive into it. The best way to learn is by doing, and with something like that to guide you along, you should be able to pick up the basics. Keep in mind that programming in general is very different from programming in a specific language. You may find a book that will teach you C++ or Java, but not "programming" as a whole. Make sure you know which you want and get the right one.

In terms of what programming good for... well, the only answer I can come up with is that it's good for programming. I graduated in '08 with a CS degree, and I haven't done anything with programming since (I'm doing IT work instead). This isn't really a good thing (you've got to keep practicing something if you want to stay good at it), but there you have it.

Really from Jupiter, but not an alien.
Medinoc Chaotic Greedy from France Since: Jan, 2001 Relationship Status: [TOP SECRET]
Chaotic Greedy
#7: Jun 2nd 2011 at 6:38:21 AM

I'm into computer programming because I more-or-less fell into the cauldron as a kid, so I made a school path and a job of it. Can't help but tinker with low-level programming.

edited 2nd Jun '11 6:38:36 AM by Medinoc

"And as long as a sack of shit is not a good thing to be, chivalry will never die."
vijeno from Vienna, Austria Since: Jan, 2001
#8: Jun 2nd 2011 at 7:42:35 AM

By the way, did anyone here have their very first programming experience with a functional language? I could imagine that this would severly influence how one thinks about programming, and probably in a very beneficial way - but I don't dare suggest that path to programming newbies, since I cannot exactly claim to understand functional programming myself.

edited 2nd Jun '11 7:42:59 AM by vijeno

breadloaf Since: Oct, 2010
#9: Jun 2nd 2011 at 7:51:02 AM

Well I think if you start with C++, the usual standard, it makes everything else seem easy afterward.

I don't think it is particularly useful at home but going to know about some basic programming may, as a side effect, make you more tech savvy and thus be able to handle your computer systems better.

For a job, it's tough. A lot of people get a degree, think that's the end of it when it's only the first step and then find out they can't get a job. These days, having a degree is a minimum, so you have to do a lot on your own to show that you're both motivated and skilled (such as personal pet projects, joining in on open source stuff, maybe making coding blogs). Basically, the shittier your degree, the more you have to do on your own. If I saw you had an MIT degree in computer science/computer engineering, I would go, hey that's pretty good I'd like to give you a shot at a job. But if instead I saw you had a degree from a state university in say [insert crappy state here], then instead I would be really hesitant and think "that degree is meaningless". Then you take on "I made this mobile app, which is basically pacman" and then I'd be very interested again, ask you how you went about it, your design philosophy, the kind of data structures you used, why you chose to do things... and probably a bunch of technical questions.

Good programming jobs usually use technical interviews these days and they involve three things (not counting the basic, "who are you" fluff questions)

  • Behavioural questions where the interviewer asks you about your projects, past work experience, internships, what kind of technical problems you faced and what sort of solutions you wanted to go for
  • Puzzle questions (less popular now) where they want to see you logically work through puzzles
  • Straight language or coding questions. These are either one-shot (eg. "What is the difference between malloc and new in c++?") or longer (eg. "Okay let's say I have a game which has a x by x square grid and in each is a letter. I can start at any square, move up/down/left/right/diagonal and but not go over a square more than once, in how many ways can i make english words?")

Fighteer Lost in Space from The Time Vortex (Time Abyss) Relationship Status: TV Tropes ruined my love life
Lost in Space
#10: Jun 2nd 2011 at 8:59:51 AM

My first coding experience was a three-line "Hello World" program in Atari BASIC on an Atari 800XL. That hooked me for life. As to how to start... well, if you don't do like I did and start young, then I recommend finding a combination of several things: a problem you're motivated to write a program to solve, a coding template that you can follow, some beginner-oriented guides/manuals, and a mentor who can walk you through stuff you're having trouble with.

The biggest obstacle to programming is the mindset - the idea that you're giving a computer step by step instructions for what to do and you have to treat it like the dumbest, most literal person ever. It does exactly what you tell it to do, no more, no less, and precisely as you told it to do it.

"It's Occam's Shuriken! If the answer is elusive, never rule out ninjas!"
storyyeller More like giant cherries from Appleloosa Since: Jan, 2001 Relationship Status: RelationshipOutOfBoundsException: 1
More like giant cherries
#11: Jun 2nd 2011 at 10:56:47 AM

I don't understand the people who say they never use programming.

Just this morning, I had to find a rational approximation to pi^2/4096. Instead of working out the convergents by hand, I wrote a python script to do it all for me.

Blind Final Fantasy 6 Let's Play
Yej See ALL the stars! from <0,1i> Since: Mar, 2010
See ALL the stars!
#12: Jun 2nd 2011 at 11:08:45 AM

Wait, why would you have to do that? And why not just ask Wolfram?

edited 2nd Jun '11 11:08:58 AM by Yej

Da Rules excuse all the inaccuracy in the world. Listen to them, not me.
Jinren from beyond the Wall Since: Oct, 2010
#13: Jun 2nd 2011 at 11:14:27 AM

Asking "how useful is programming?" is basically asking "how useful is literacy?". Programming is literacy, in another kind of language. Defining what you can do with it is actually pretty hard because it opens up an entire world of almost as great a size and scope; giving a more specific answer would be misleadingly limiting.

As for where to begin... I cannot recommend The Structure and Interpretation of Computer Programs strongly enough. It is, if not the finest, then one of the finest computer science textbooks ever written, and is extremely accessible to any beginner willing to sit down and actually read a few hundred pages of text (something you have to be willing to do to get good at anything); or heck just read the first section and you'll have a better than average head start.

SICP is heavily tied to functional programming, so any experienced imperative programmers not familiar with it should give it a quick look over too as you should be able to zip through it pretty quickly. The exercises and examples are given in Scheme (a form of Lisp), but many people have made fan-translations into other languages, including Python.

(Edit: I should point out that the complete text is also free to download legally from the site linked above.)

edited 2nd Jun '11 11:18:20 AM by Jinren

storyyeller More like giant cherries from Appleloosa Since: Jan, 2001 Relationship Status: RelationshipOutOfBoundsException: 1
More like giant cherries
#14: Jun 2nd 2011 at 11:16:15 AM

^ I can't figure out how to make Wolfrum give convergents.

Blind Final Fantasy 6 Let's Play
ViralLamb Since: Jun, 2010
#15: Jun 2nd 2011 at 11:50:00 AM

Keep in mind that programming in general is very different from programming in a specific language. You may find a book that will teach you C++ or Java, but not "programming" as a whole. Make sure you know which you want and get the right one.
This seems to be a contradictory statement, cuz I've heard it before, but it seems you can't learn programming without learning a language.

Power corrupts. Knowledge is Power. Study hard. Be evil.
Fighteer Lost in Space from The Time Vortex (Time Abyss) Relationship Status: TV Tropes ruined my love life
Lost in Space
#16: Jun 2nd 2011 at 11:52:54 AM

That's one reason why many introductory courses start you off with pseudocode. The point is that learning good programming structure is far more important in the long run than sitting down with a C++ or VB editor and hammering blindly away until you get a program that semi works.

I have seen people who did stuff like that, back in my high school days when the AP Comp Sci course taught Pascal. A friend asked me to debug his code for him and I discovered horrors that to this day make me reach for the Brain Bleach.

edited 2nd Jun '11 11:53:09 AM by Fighteer

"It's Occam's Shuriken! If the answer is elusive, never rule out ninjas!"
Tzetze DUMB from a converted church in Venice, Italy Since: Jan, 2001
DUMB
#17: Jun 2nd 2011 at 11:53:27 AM

It's not contradictory. You can't learn programming without learning a language, yes, but you can learn a language instead of the more abstract notion of programming, and that is to be avoided.

Essentially, something like the Sapir-Whorf hypothesis is at work.

edited 2nd Jun '11 11:53:41 AM by Tzetze

[1] This facsimile operated in part by synAC.
SlightlyEvilDoctor Needs to be more Evil Since: May, 2011
Needs to be more Evil
#18: Jun 2nd 2011 at 12:09:26 PM

What is the best motivation for learning how to program? "Job" seems to be the most obvious, since its my current motivation actually, but does anyone use programming for other "household" uses? How useful is programming overall?

Household use, eh? There are some. For example, say on your computer there are several folders full of ... interesting pictures, and you wish to be able to, um, easily browse them at your leisure. You could write a short script that lists the folder's contents and generates a html page containing all those pictures one below the other.

Point that somewhere else, or I'll reengage the harmonic tachyon modulator.
ViralLamb Since: Jun, 2010
#19: Jun 2nd 2011 at 12:22:17 PM

I'm afraid of starting on the wrong foot. There are so many languages, all so different, and always changing, and its just overwhelming >.<

Power corrupts. Knowledge is Power. Study hard. Be evil.
Tzetze DUMB from a converted church in Venice, Italy Since: Jan, 2001
DUMB
#20: Jun 2nd 2011 at 12:24:34 PM

Once you know one programming language, it's fairly easy to learn another. Don't sweat it.

[1] This facsimile operated in part by synAC.
Fighteer Lost in Space from The Time Vortex (Time Abyss) Relationship Status: TV Tropes ruined my love life
Lost in Space
#21: Jun 2nd 2011 at 12:27:48 PM

What's the worst that could happen — you write something that fails, or crashes? It's not like you're going to make your computer burst into flames. If you're trying to be useful to your work and have never programmed before, you've got a fairly long way to go, so it really doesn't matter how small you start.

Hell, write a VBScript file to make a dialog box appear on the screen. (If you're on a Windows box, of course.) Paste the below text into a file "HelloWorld.vbs". Save it on your Desktop, and double-click to run it.

' This is a sample VBScript
WScript.Echo "Hello World"

Oh, get a good freeware text editor like Notepad++, if you won't be working in a commercial development environment. Syntax highlighting is one of the best tools available to make sure you aren't doing goofy stuff.

edited 2nd Jun '11 12:28:07 PM by Fighteer

"It's Occam's Shuriken! If the answer is elusive, never rule out ninjas!"
NativeJovian Jupiterian Local from Orlando, FL Since: Mar, 2014 Relationship Status: Maxing my social links
Jupiterian Local
#22: Jun 2nd 2011 at 12:31:04 PM

This seems to be a contradictory statement, cuz I've heard it before, but it seems you can't learn programming without learning a language.
Try thinking of it like this: when you want to learn a foreign language, you can either pick French, Spanish, etc and learn it, or you can learn Latin, which won't let you speak a modern language, but will make it vastly easier to learn those languages later. Learning C++ or Java will let you program in C++ or Java. Learning to program in general will make it a lot easier to learn C++, or Java, or whatever.

If you learn a language, the things you learn will mostly apply to that language specifically. If you learn to program, the things you learn will apply to any programming language you care to pick up.

Really from Jupiter, but not an alien.
Fighteer Lost in Space from The Time Vortex (Time Abyss) Relationship Status: TV Tropes ruined my love life
Lost in Space
#23: Jun 2nd 2011 at 12:35:17 PM

[up] I don't consider that analogy perfect; it's more like acquiring a basic understanding of linguistics before learning a foreign language. We all learn our native language holistically, through experiencing it, but that doesn't give us any particular insight into grammar, sentence structure, syntax, conjugation, parts of speech, etc. Learning how language works at a fundamental level makes it much easier to pick up any particular language you're interested in.

However, the analogy breaks down in that [most of us] don't learn a programming language as a toddler, so have no structures at all to start with.

edited 2nd Jun '11 12:35:44 PM by Fighteer

"It's Occam's Shuriken! If the answer is elusive, never rule out ninjas!"
NativeJovian Jupiterian Local from Orlando, FL Since: Mar, 2014 Relationship Status: Maxing my social links
Jupiterian Local
#24: Jun 2nd 2011 at 12:38:26 PM

Well yeah, it's an analogy, it's imperfect by definition. tongue

Really from Jupiter, but not an alien.
SlightlyEvilDoctor Needs to be more Evil Since: May, 2011
Needs to be more Evil
#25: Jun 2nd 2011 at 12:39:10 PM

Just try this. It's easy, nothing to install. Then come back and report.

Point that somewhere else, or I'll reengage the harmonic tachyon modulator.

Total posts: 31
Top