TV Tropes Org

Forums

On-Topic Conversations:
Questions about Programming
search forum titles
google site search
Wiki Headlines
We've switched servers and will be updating the old code over the next couple months, meaning that several things might break. Please report issues here.
Total posts: [31]
1
2

Questions about Programming:

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.
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

 
What's an x10 system? And yes, I don't know shit about shit.
Power corrupts. Knowledge is Power. Study hard. Be evil.
 4 storyyeller, Wed, 1st Jun '11 6:40:49 PM from Appleloosa Relationship Status: RelationshipOutOfBoundsException: 1
More like giant cherries
Making games is fun. That's my motivation. Although it's also often useful for automating certain tasks.
Life is simple: it has no nontrivial normal subgroups.
 5 Usht, Wed, 1st Jun '11 6:43:49 PM from an arbitrary view point.
Lv. 3 Genasi Wizard
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.
 6 Native Jovian, Thu, 2nd Jun '11 6:36:42 AM from Orlando, Florida
Io vs Jupiter
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.
I want Kat's glasses!
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

They Called Me Mad!! I decided to show them all; but when I looked on my works, oh mighty, I despaired: for it made me realize they were right.
 8 vijeno, Thu, 2nd Jun '11 7:42:35 AM from Vienna, Austria
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

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?")

 10 Fighteer, Thu, 2nd Jun '11 8:59:51 AM from the Time Vortex Relationship Status: Dancing with Captain Jack Harkness
Geronimo!
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.

 11 storyyeller, Thu, 2nd Jun '11 10:56:47 AM from Appleloosa Relationship Status: RelationshipOutOfBoundsException: 1
More like giant cherries
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.
Life is simple: it has no nontrivial normal subgroups.
See ALL the stars!
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.
 13 Jinren, Thu, 2nd Jun '11 11:14:27 AM from beyond the Wall
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

 14 storyyeller, Thu, 2nd Jun '11 11:16:15 AM from Appleloosa Relationship Status: RelationshipOutOfBoundsException: 1
More like giant cherries
^ I can't figure out how to make Wolfrum give convergents.
Life is simple: it has no nontrivial normal subgroups.
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.
 16 Fighteer, Thu, 2nd Jun '11 11:52:54 AM from the Time Vortex Relationship Status: Dancing with Captain Jack Harkness
Geronimo!
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

 17 Tzetze, Thu, 2nd Jun '11 11:53:27 AM from a converted church in Venice, Italy
DUMB
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

Needs to be more Evil
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.
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.
 20 Tzetze, Thu, 2nd Jun '11 12:24:34 PM from a converted church in Venice, Italy
DUMB
Once you know one programming language, it's fairly easy to learn another. Don't sweat it.
 21 Fighteer, Thu, 2nd Jun '11 12:27:48 PM from the Time Vortex Relationship Status: Dancing with Captain Jack Harkness
Geronimo!
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

 22 Native Jovian, Thu, 2nd Jun '11 12:31:04 PM from Orlando, Florida
Io vs Jupiter
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.
 23 Fighteer, Thu, 2nd Jun '11 12:35:17 PM from the Time Vortex Relationship Status: Dancing with Captain Jack Harkness
Geronimo!
[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

 24 Native Jovian, Thu, 2nd Jun '11 12:38:26 PM from Orlando, Florida
Io vs Jupiter
Well yeah, it's an analogy, it's imperfect by definition. tongue
Needs to be more Evil
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
1
2


TV Tropes by TV Tropes Foundation, LLC is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Permissions beyond the scope of this license may be available from thestaff@tvtropes.org.
Privacy Policy