Wishing to learn programming again.

Selfbondage software and other kinky developments

Moderators: Riddle, Shannon SteelSlave

Tenderfoot88
***
Posts: 458
Joined: 17 Sep 2013, 08:00
Location: British Columbia, Canada

Re: Wishing to learn programming again.

Post by Tenderfoot88 »

Hmm, I'd definitely agree with the comments about C++ being a bad choice for dabbling. There's a core concept in programming theory that explains why - it's a fairly low-level language - meaning it's closer to how computers think than how humans think. Opens some options, because you can do some really odd things with computers, but you need to school your mind to think that way.

A few examples of language levels:
Lowest: Machine language. 0110 1100 1110.... (and no I don't know what that says, if anything). Nobody actually codes in this, but it's the literal language the computer uses.
Second Lowest: Assembly. DIM, REM, SWI, MOV, and many more. Used for extremely high control over system resources. Occasionally used for phones these days. Much more common back when floppy disks were 8 inches wide and the 5.25 inch one was considered "mini"

Mid level, lower end: C - used for writing operating systems, drivers, etc. C++ is C with a bunch of extra tools.
Mid level, mid range: C++, Java - starts to introduce concepts that make intuitive sense, like "objects" - An easy example is a character in an RPG - the character is an object that has current and maximum health, various statistics, abilities and so on. With objects, all of those values are bundled together into one object, rather than requiring the programmer to manually remember that the health variable is tied to the character. (Keep in mind that if you're actually writing an RPG, you can have thousands or millions of variables in the game code.) There's also the advantage of naming objects - Bob, Harry and Susan, for instance, could all be defined as characters and would thus have their own health, statistic and ability variables defined automatically). The concept gets a lot more in depth - there's entire textbooks written almost entirely on the concept of objects.
Mid level, high end: Python, Ruby: Cuts out a lot of the pitfalls and oddities that can make C++ and Java harder to deal with. Interpreting code based on whitespace so semicolons at the end of every line aren't necessary, for instance. Also very useful for project scripts (as opposed to full programs) since you can run the code without compiling.

High level: Visual Basic: draw a window, draw buttons, text areas, etc on it, and tell it what you want it to do. Not quite that easy - you still have to know what words to use when telling it what to do, for instance, but the point of these languages is to be easy to use, not give you the flexibility and direct control over exactly how the computer does things.

Personally, I like Java, but that's mainly because I spent 2 years taking computer science courses learning it. The Thinking In Java textbook was freely available online at the time and is quite good at explaining some of the programming concepts and principles rather than just spitting some code at you and saying what it does. The author's started charging for his new stuff, but his older stuff is still free on his site.

For someone starting from scratch, Python's probably the best choice. You don't have Java's foibles drilled into your brain the way i do, after all. And as others have said, there's a lot of support out there for stuff that's well beyond what Python was originally intended to be capable of. (Perl is like python, but imposes some uses of symbol characters like $ for specific purposes, while Python tends to stick to words.)

I'd look around for a decent source that includes programming theory, rather than just a basic how-to tutorial, unless you've already learned (and still remember) the general theory stuff. As arcane as much of it is, a lot of it ends up being useful when you start wading out beyond the basics of if-else statements and for loops.
Jadit
****
Posts: 531
Joined: 24 Oct 2010, 23:49
Location: Finland

Re: Wishing to learn programming again.

Post by Jadit »

I'm actually still considering Unity. Would be able to make a timelock application for my android phone without much effort. Downside to phone apps is that if you do factory reset, you'll lose all data and the app, but i wouldn't be able to go sniff inside the files as easily as on PC. Either way, timelock app should always have a backup release in case of any technical failure.
Post Reply